From 890cac4c24479ddccee9baa02adae0cc198688b9 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Thu, 13 May 2004 06:02:32 +0000 Subject: [PATCH] Putty -> Crypto++ --- stepmania/src/CryptManager.cpp | 247 +- stepmania/src/crypto51/Debug/cryptlib.lib | Bin 0 -> 6825122 bytes stepmania/src/crypto51/GNUmakefile | 76 + stepmania/src/crypto51/License.txt | 67 + stepmania/src/crypto51/Readme.txt | 255 ++ stepmania/src/crypto51/Release/cryptlib.lib | Bin 0 -> 4242298 bytes stepmania/src/crypto51/algebra.cpp | 340 ++ stepmania/src/crypto51/algebra.h | 275 ++ stepmania/src/crypto51/algparam.cpp | 10 + stepmania/src/crypto51/algparam.h | 325 ++ stepmania/src/crypto51/argnames.h | 54 + stepmania/src/crypto51/asn.cpp | 556 +++ stepmania/src/crypto51/asn.h | 346 ++ stepmania/src/crypto51/basecode.cpp | 228 + stepmania/src/crypto51/basecode.h | 82 + stepmania/src/crypto51/channels.cpp | 282 ++ stepmania/src/crypto51/channels.h | 91 + stepmania/src/crypto51/config.h | 247 + stepmania/src/crypto51/cryptest.dsp | 388 ++ stepmania/src/crypto51/cryptest.dsw | 44 + stepmania/src/crypto51/cryptlib.cpp | 687 +++ stepmania/src/crypto51/cryptlib.dsp | 746 +++ stepmania/src/crypto51/cryptlib.h | 1564 +++++++ stepmania/src/crypto51/default.h | 104 + stepmania/src/crypto51/des.cpp | 464 ++ stepmania/src/crypto51/des.h | 133 + stepmania/src/crypto51/descert.dat | 171 + stepmania/src/crypto51/dessp.cpp | 90 + stepmania/src/crypto51/eprecomp.cpp | 107 + stepmania/src/crypto51/eprecomp.h | 69 + stepmania/src/crypto51/files.cpp | 186 + stepmania/src/crypto51/files.h | 95 + stepmania/src/crypto51/filters.cpp | 897 ++++ stepmania/src/crypto51/filters.h | 688 +++ stepmania/src/crypto51/fips140.cpp | 79 + stepmania/src/crypto51/fips140.h | 47 + stepmania/src/crypto51/fltrimpl.h | 42 + stepmania/src/crypto51/hex.cpp | 32 + stepmania/src/crypto51/hex.h | 36 + stepmania/src/crypto51/integer.cpp | 4004 +++++++++++++++++ stepmania/src/crypto51/integer.h | 439 ++ stepmania/src/crypto51/iterhash.cpp | 122 + stepmania/src/crypto51/iterhash.h | 121 + stepmania/src/crypto51/md5.cpp | 115 + stepmania/src/crypto51/md5.h | 24 + stepmania/src/crypto51/mdc.h | 72 + stepmania/src/crypto51/misc.cpp | 83 + stepmania/src/crypto51/misc.h | 688 +++ stepmania/src/crypto51/modarith.h | 149 + stepmania/src/crypto51/modes.cpp | 266 ++ stepmania/src/crypto51/modes.h | 370 ++ stepmania/src/crypto51/mqueue.cpp | 182 + stepmania/src/crypto51/mqueue.h | 98 + stepmania/src/crypto51/nbtheory.cpp | 1127 +++++ stepmania/src/crypto51/nbtheory.h | 143 + stepmania/src/crypto51/oaep.cpp | 107 + stepmania/src/crypto51/oaep.h | 25 + stepmania/src/crypto51/oids.h | 112 + stepmania/src/crypto51/osrng.cpp | 172 + stepmania/src/crypto51/osrng.h | 162 + stepmania/src/crypto51/pch.h | 13 + stepmania/src/crypto51/pkcspad.cpp | 126 + stepmania/src/crypto51/pkcspad.h | 70 + stepmania/src/crypto51/polynomi.cpp | 579 +++ stepmania/src/crypto51/polynomi.h | 451 ++ stepmania/src/crypto51/pssr.cpp | 126 + stepmania/src/crypto51/pssr.h | 86 + stepmania/src/crypto51/pubkey.cpp | 122 + stepmania/src/crypto51/pubkey.h | 1708 +++++++ stepmania/src/crypto51/queue.cpp | 518 +++ stepmania/src/crypto51/queue.h | 128 + stepmania/src/crypto51/randpool.cpp | 100 + stepmania/src/crypto51/randpool.h | 46 + stepmania/src/crypto51/rng.h | 78 + stepmania/src/crypto51/rsa.cpp | 277 ++ stepmania/src/crypto51/rsa.h | 143 + stepmania/src/crypto51/rsa1024.dat | 32 + stepmania/src/crypto51/rsa2048.dat | 61 + stepmania/src/crypto51/rsa400pb.dat | 10 + stepmania/src/crypto51/rsa400pv.dat | 41 + stepmania/src/crypto51/rsa512a.dat | 35 + stepmania/src/crypto51/secblock.h | 385 ++ stepmania/src/crypto51/seckey.h | 237 + stepmania/src/crypto51/sha.cpp | 277 ++ stepmania/src/crypto51/sha.h | 72 + stepmania/src/crypto51/simple.h | 230 + stepmania/src/crypto51/smartptr.h | 215 + stepmania/src/crypto51/strciphr.cpp | 188 + stepmania/src/crypto51/strciphr.h | 288 ++ stepmania/src/crypto51/test.cpp | 166 + stepmania/src/crypto51/trdlocal.h | 45 + stepmania/src/crypto51/words.h | 103 + .../verify_signature/cpp_cryptopp/test.cpp | 102 + .../csharp/VerifySignature.cs | 395 ++ .../java/VerifySignature.java | 221 + 95 files changed, 26262 insertions(+), 143 deletions(-) create mode 100644 stepmania/src/crypto51/Debug/cryptlib.lib create mode 100644 stepmania/src/crypto51/GNUmakefile create mode 100644 stepmania/src/crypto51/License.txt create mode 100644 stepmania/src/crypto51/Readme.txt create mode 100644 stepmania/src/crypto51/Release/cryptlib.lib create mode 100644 stepmania/src/crypto51/algebra.cpp create mode 100644 stepmania/src/crypto51/algebra.h create mode 100644 stepmania/src/crypto51/algparam.cpp create mode 100644 stepmania/src/crypto51/algparam.h create mode 100644 stepmania/src/crypto51/argnames.h create mode 100644 stepmania/src/crypto51/asn.cpp create mode 100644 stepmania/src/crypto51/asn.h create mode 100644 stepmania/src/crypto51/basecode.cpp create mode 100644 stepmania/src/crypto51/basecode.h create mode 100644 stepmania/src/crypto51/channels.cpp create mode 100644 stepmania/src/crypto51/channels.h create mode 100644 stepmania/src/crypto51/config.h create mode 100644 stepmania/src/crypto51/cryptest.dsp create mode 100644 stepmania/src/crypto51/cryptest.dsw create mode 100644 stepmania/src/crypto51/cryptlib.cpp create mode 100644 stepmania/src/crypto51/cryptlib.dsp create mode 100644 stepmania/src/crypto51/cryptlib.h create mode 100644 stepmania/src/crypto51/default.h create mode 100644 stepmania/src/crypto51/des.cpp create mode 100644 stepmania/src/crypto51/des.h create mode 100644 stepmania/src/crypto51/descert.dat create mode 100644 stepmania/src/crypto51/dessp.cpp create mode 100644 stepmania/src/crypto51/eprecomp.cpp create mode 100644 stepmania/src/crypto51/eprecomp.h create mode 100644 stepmania/src/crypto51/files.cpp create mode 100644 stepmania/src/crypto51/files.h create mode 100644 stepmania/src/crypto51/filters.cpp create mode 100644 stepmania/src/crypto51/filters.h create mode 100644 stepmania/src/crypto51/fips140.cpp create mode 100644 stepmania/src/crypto51/fips140.h create mode 100644 stepmania/src/crypto51/fltrimpl.h create mode 100644 stepmania/src/crypto51/hex.cpp create mode 100644 stepmania/src/crypto51/hex.h create mode 100644 stepmania/src/crypto51/integer.cpp create mode 100644 stepmania/src/crypto51/integer.h create mode 100644 stepmania/src/crypto51/iterhash.cpp create mode 100644 stepmania/src/crypto51/iterhash.h create mode 100644 stepmania/src/crypto51/md5.cpp create mode 100644 stepmania/src/crypto51/md5.h create mode 100644 stepmania/src/crypto51/mdc.h create mode 100644 stepmania/src/crypto51/misc.cpp create mode 100644 stepmania/src/crypto51/misc.h create mode 100644 stepmania/src/crypto51/modarith.h create mode 100644 stepmania/src/crypto51/modes.cpp create mode 100644 stepmania/src/crypto51/modes.h create mode 100644 stepmania/src/crypto51/mqueue.cpp create mode 100644 stepmania/src/crypto51/mqueue.h create mode 100644 stepmania/src/crypto51/nbtheory.cpp create mode 100644 stepmania/src/crypto51/nbtheory.h create mode 100644 stepmania/src/crypto51/oaep.cpp create mode 100644 stepmania/src/crypto51/oaep.h create mode 100644 stepmania/src/crypto51/oids.h create mode 100644 stepmania/src/crypto51/osrng.cpp create mode 100644 stepmania/src/crypto51/osrng.h create mode 100644 stepmania/src/crypto51/pch.h create mode 100644 stepmania/src/crypto51/pkcspad.cpp create mode 100644 stepmania/src/crypto51/pkcspad.h create mode 100644 stepmania/src/crypto51/polynomi.cpp create mode 100644 stepmania/src/crypto51/polynomi.h create mode 100644 stepmania/src/crypto51/pssr.cpp create mode 100644 stepmania/src/crypto51/pssr.h create mode 100644 stepmania/src/crypto51/pubkey.cpp create mode 100644 stepmania/src/crypto51/pubkey.h create mode 100644 stepmania/src/crypto51/queue.cpp create mode 100644 stepmania/src/crypto51/queue.h create mode 100644 stepmania/src/crypto51/randpool.cpp create mode 100644 stepmania/src/crypto51/randpool.h create mode 100644 stepmania/src/crypto51/rng.h create mode 100644 stepmania/src/crypto51/rsa.cpp create mode 100644 stepmania/src/crypto51/rsa.h create mode 100644 stepmania/src/crypto51/rsa1024.dat create mode 100644 stepmania/src/crypto51/rsa2048.dat create mode 100644 stepmania/src/crypto51/rsa400pb.dat create mode 100644 stepmania/src/crypto51/rsa400pv.dat create mode 100644 stepmania/src/crypto51/rsa512a.dat create mode 100644 stepmania/src/crypto51/secblock.h create mode 100644 stepmania/src/crypto51/seckey.h create mode 100644 stepmania/src/crypto51/sha.cpp create mode 100644 stepmania/src/crypto51/sha.h create mode 100644 stepmania/src/crypto51/simple.h create mode 100644 stepmania/src/crypto51/smartptr.h create mode 100644 stepmania/src/crypto51/strciphr.cpp create mode 100644 stepmania/src/crypto51/strciphr.h create mode 100644 stepmania/src/crypto51/test.cpp create mode 100644 stepmania/src/crypto51/trdlocal.h create mode 100644 stepmania/src/crypto51/words.h create mode 100644 stepmania/src/verify_signature/cpp_cryptopp/test.cpp create mode 100644 stepmania/src/verify_signature/csharp/VerifySignature.cs create mode 100644 stepmania/src/verify_signature/java/VerifySignature.java diff --git a/stepmania/src/CryptManager.cpp b/stepmania/src/CryptManager.cpp index 46870afa2f..d561ec0732 100644 --- a/stepmania/src/CryptManager.cpp +++ b/stepmania/src/CryptManager.cpp @@ -3,11 +3,27 @@ #include "RageUtil.h" #include "RageLog.h" #include "PrefsManager.h" -#include "RageFile.h" -#include "crypto/CryptRSA.h" -#include "crypto/CryptRand.h" -#include "crypto/CryptMD5.h" +// crypt headers +#include "CryptHelpers.h" +#include "crypto51/sha.h" +#include "crypto51/channels.h" +#include "crypto51/hex.h" +#include "crypto51/rsa.h" +#include "crypto51/md5.h" +#include "crypto51/osrng.h" +#include + +using namespace CryptoPP; +using namespace std; + +#ifdef WIN32 + #ifdef DEBUG + #pragma comment(lib, "crypto51\\Release\\cryptlib.lib") + #else + #pragma comment(lib, "crypto51\\Debug\\cryptlib.lib") + #endif +#endif static const CString PRIVATE_KEY_PATH = "Data/private.key.rsa"; static const CString PUBLIC_KEY_PATH = "Data/public.key.rsa"; @@ -17,17 +33,19 @@ CryptManager* CRYPTMAN = NULL; // global and accessable from anywhere in our pro CryptManager::CryptManager() { - if( !PREFSMAN->m_bSignProfileData ) - return; - // // generate keys if none are available // - if( !DoesFileExist(PRIVATE_KEY_PATH) || !DoesFileExist(PUBLIC_KEY_PATH) ) + /* This is crashing in crypto51/integer.cpp CryptoPP::RecursiveInverseModPower2 + * in Linux. -glenn */ + if( PREFSMAN->m_bSignProfileData ) { - LOG->Warn( "Keys missing. Generating new keys" ); - GenerateRSAKey( KEY_LENGTH, PRIVATE_KEY_PATH, PUBLIC_KEY_PATH, "aoksdjaksd" ); - FlushDirCache(); + if( !DoesFileExist(PRIVATE_KEY_PATH) || !DoesFileExist(PUBLIC_KEY_PATH) ) + { + LOG->Warn( "Keys missing. Generating new keys" ); + GenerateRSAKey( KEY_LENGTH, PRIVATE_KEY_PATH, PUBLIC_KEY_PATH, "aoksdjaksd" ); + FlushDirCache(); + } } } @@ -40,119 +58,80 @@ void CryptManager::GenerateRSAKey( unsigned int keyLength, CString privFilename, { ASSERT( PREFSMAN->m_bSignProfileData ); - // Does the RNG need to be inited and seeded every time? - random_init(); - random_add_noise( seed ); + AutoSeededRandomPool rng; - RSAKey key; - key.Generate( keyLength ); + RSAES_OAEP_SHA_Decryptor priv(rng, keyLength); + RageFileSink privFile(privFilename); + priv.DEREncode(privFile); + privFile.MessageEnd(); - RageFile out; - - CString sPublic; - key.PublicBlob( sPublic ); - if( !out.Open( pubFilename, RageFile::WRITE ) ) - RageException::Throw( "Error opening %s: %s", pubFilename.c_str(), out.GetError().c_str() ); - out.Write( sPublic ); - out.Close(); - - CString sPrivate; - key.PrivateBlob( sPrivate ); - if( !out.Open( privFilename, RageFile::WRITE ) ) - RageException::Throw( "Error opening %s: %s", privFilename.c_str(), out.GetError().c_str() ); - out.Write( sPrivate ); - out.Close(); + RSAES_OAEP_SHA_Encryptor pub(priv); + RageFileSink pubFile(pubFilename); + pub.DEREncode(pubFile); + pubFile.MessageEnd(); } -void CryptManager::SignFileToFile( CString sPath, CString sSignatureFilename ) +void CryptManager::SignFileToFile( CString sPath, CString sSignatureFile ) { - if( sSignatureFilename == "" ) - sSignatureFilename = sPath + SIGNATURE_APPEND; - - LOG->Trace("SignFile(%s)", sPath.c_str()); ASSERT( PREFSMAN->m_bSignProfileData ); - if( !IsAFile(PRIVATE_KEY_PATH) ) + CString sPrivFilename = PRIVATE_KEY_PATH; + CString sMessageFilename = sPath;; + if( sSignatureFile.empty() ) + sSignatureFile = sPath + SIGNATURE_APPEND; + + if( !IsAFile(sPrivFilename) ) return; - if( !IsAFile(sPath) ) + if( !IsAFile(sMessageFilename) ) return; - const CString sig = Sign( sPath ); + // CAREFUL: These classes can throw all kinds of exceptions. Should this + // be wrapped in a try catch? - RageFile out; - if( !out.Open( sSignatureFilename, RageFile::WRITE ) ) - RageException::Throw( "Error opening %s: %s", sSignatureFilename.c_str(), out.GetError().c_str() ); - out.Write( sig ); + RageFileSource privFile(sPrivFilename, true); + RSASSA_PKCS1v15_SHA_Signer priv(privFile); + AutoSeededRandomPool rng; + RageFileSource f(sMessageFilename, true, new SignerFilter(rng, priv, new RageFileSink(sSignatureFile))); } -bool CryptManager::VerifyFileWithFile( CString sPath, CString sSignatureFilename ) -{ - if( !IsAFile(sPath) ) - return false; - - if( sSignatureFilename == "" ) - sSignatureFilename = sPath + SIGNATURE_APPEND; - - LOG->Trace("VerifyFile(%s)", sPath.c_str()); - ASSERT( PREFSMAN->m_bSignProfileData ); - - if( !IsAFile(PUBLIC_KEY_PATH) ) - return false; - - if( !IsAFile(sSignatureFilename) ) - return false; - - CString sig; - { - RageFile in; - if( !in.Open( sSignatureFilename, RageFile::READ ) ) - RageException::Throw( "Error opening %s: %s", sSignatureFilename.c_str(), in.GetError().c_str() ); - in.Read( sig ); - } - - return Verify( sPath, sig ); -} - -CString CryptManager::Sign( CString sPath ) +bool CryptManager::VerifyFileWithFile( CString sPath, CString sSignatureFile ) { ASSERT( PREFSMAN->m_bSignProfileData ); - if( !IsAFile(PRIVATE_KEY_PATH) ) - return ""; + CString sPubFilename = PUBLIC_KEY_PATH; + CString sMessageFilename = sPath;; + if( sSignatureFile.empty() ) + sSignatureFile = sPath + SIGNATURE_APPEND; - if( !IsAFile(sPath) ) - return ""; + if( !IsAFile(sPubFilename) ) + return false; - CString data; - { - RageFile in; - if( !in.Open( sPath, RageFile::READ ) ) - RageException::Throw( "Error opening %s: %s", sPath.c_str(), in.GetError().c_str() ); - in.Read( data ); - } + if( !IsAFile(sSignatureFile) ) + return false; - RSAKey key; - { - RageFile keyfile; - if( !keyfile.Open( PRIVATE_KEY_PATH ) ) - RageException::Throw( "Error opening %s: %s", PRIVATE_KEY_PATH.c_str(), keyfile.GetError().c_str() ); - CString private_blob; - keyfile.Read( private_blob ); - key.LoadFromPrivateBlob( private_blob ); - } + // CAREFUL: These classes can throw all kinds of exceptions. Should this + // be wrapped in a try catch? - CString sig; - key.Sign( data, sig ); + /* XXX: This is opening sPubFilename for RageFile::WRITE instead of READ. */ + RageFileSource pubFile(sPubFilename, true); + RSASSA_PKCS1v15_SHA_Verifier pub(pubFile); - return sig; + RageFileSource signatureFile(sSignatureFile, true); + if (signatureFile.MaxRetrievable() != pub.SignatureLength()) + return false; + SecByteBlock signature(pub.SignatureLength()); + signatureFile.Get(signature, signature.size()); + + VerifierFilter *verifierFilter = new VerifierFilter(pub); + verifierFilter->Put(signature, pub.SignatureLength()); + RageFileSource f(sMessageFilename, true, verifierFilter); + + return verifierFilter->GetLastResult(); } bool CryptManager::Verify( CString sPath, CString sSignature ) { - if( !IsAFile(sPath) ) - return false; - ASSERT( PREFSMAN->m_bSignProfileData ); CString sPubFilename = PUBLIC_KEY_PATH; @@ -161,61 +140,43 @@ bool CryptManager::Verify( CString sPath, CString sSignature ) if( !IsAFile(sPubFilename) ) return false; - CString data; - { - RageFile in; - if( !in.Open( sPath, RageFile::READ ) ) - RageException::Throw( "Error opening %s: %s", sPath.c_str(), in.GetError().c_str() ); - in.Read( data ); - } + // CAREFUL: These classes can throw all kinds of exceptions. Should this + // be wrapped in a try catch? - RSAKey key; - { - RageFile keyfile; - if( !keyfile.Open( PRIVATE_KEY_PATH ) ) - RageException::Throw( "Error opening %s: %s", PRIVATE_KEY_PATH.c_str(), keyfile.GetError().c_str() ); - CString private_blob; - keyfile.Read( private_blob ); - key.LoadFromPrivateBlob( private_blob ); - } + RageFileSource pubFile(sPubFilename, true); + RSASSA_PKCS1v15_SHA_Verifier pub(pubFile); - return key.Verify( data, sSignature ); + StringSource signatureFile(sSignature, true); + if (signatureFile.MaxRetrievable() != pub.SignatureLength()) + return false; + SecByteBlock signature(pub.SignatureLength()); + signatureFile.Get(signature, signature.size()); + + VerifierFilter *verifierFilter = new VerifierFilter(pub); + verifierFilter->Put(signature, pub.SignatureLength()); + RageFileSource f(sMessageFilename, true, verifierFilter); + + return verifierFilter->GetLastResult(); } -CString BinaryToHex( const unsigned char *string, int iNumBytes ) -{ - CString s; - for( int i=0; im_bSignProfileData ); - RageFile file; - if( !file.Open( fn, RageFile::READ ) ) - { - LOG->Warn( "GetMD5: Failed to open file '%s'", fn.c_str() ); - return ""; - } + MD5 md5; + HashFilter md5Filter(md5); - MD5Init(&md5c); - while( !file.AtEOF() && file.GetError().empty() ) - { - iBytesRead = file.Read( buffer, sizeof(buffer) ); - MD5Update(&md5c, buffer, iBytesRead); - } - MD5Final(digest, &md5c); + auto_ptr channelSwitch(new ChannelSwitch); + channelSwitch->AddDefaultRoute(md5Filter); + RageFileSource(fn, true, channelSwitch.release()); - return BinaryToHex( digest, sizeof(digest) ); + HexEncoder encoder(new RageFileSink("temp.txt"), false); + cout << "\nMD5: "; + md5Filter.TransferTo(encoder); + + ASSERT(0); + return ""; } CString CryptManager::GetPublicKeyFileName() diff --git a/stepmania/src/crypto51/Debug/cryptlib.lib b/stepmania/src/crypto51/Debug/cryptlib.lib new file mode 100644 index 0000000000000000000000000000000000000000..df5df2dcf63728f792f2c9c7d4400f43b6f45a2e GIT binary patch literal 6825122 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

  • kbS*96n?G}@ zKb=ZPY4A1OH6qvXO0n@`$7z%Y3WI~n14VhDSl5993DjO_Sb#K6qpG6ZeGJ_ZIZ)^Y z|Af1bVJnoL?b5SddbW%AY*%0Ufudn3iBhE}s`Ox~Kb=Z%mKM9QM5V=ETI}nw*sDz( zu($D;O`MaXQdeq9LkvU4Z-{or{!$vDr4d>hp+y^^)g~$gkggKt*(%La;L2+xt)0tj zq{6R};y1X`EYOS>zL7~#QzhAw$Yxrihoy2amAht^Qn{~LxnC5M^51$Rv+TXCN~wBL zCZ&G{>9N(4u8=5hmr9_$*lR)YNUm4+dfVq->%3d{tQ2~cSJkSAptj!8vh2B159Ribl#Pyo-JdOC+Z17{8e;3f2lTC8kHL z30yKvXvK1DNdyu3ucb^VswO0%Ty@UmsFb7Cr+$C#qki$_V}IbQv1MvY{S+MqZc#FH z)p1dMmB=lJJ``1dElptXkSO-M>VUn@@s2T~QPMYISgPc^k|IL?Pz_M&Z;^vWivK1c zBi`+;gv~MMpOs@^rFWB7dF6`QR2w@oUzk!Y5ZtOlKw`(}JOkC*t1X_! zlya~v4_B6lE6e2+UZko;=7G+ggrE0t$M9yqcj4c>AE`v2h7^`wJnfhXIX~UB6c%C+ zoA^{zHiRPkgcT0;xu78ox?=Du@|hHy_E9`1BjorkH-T~!C^vz^H-UDwS~XR^xg(G@ z*sD{i-sxg6XN~u+`u62Mu@dFIceyNM;>13I+a`h=G;68!N>BJR@Ps1@vzS|wXD}CG zUBFsGcWL_ez=H7Y?c*Qe+v^O=C%UC)uk`G# z!Lzqx`qQh3E9>^B{?7~b8N zx~tS(rS96W?z$*%-@$XG;FW^62ElXRzF$lxbY1gu3k#Zx#?Tez6;qZgCbjGt&(%fN=Mcd!{3KOIz`XbG z$`Itzy-s#%c?v4}6oiyYpH(FRhY$Tn+CksU#D;ZN5<|xJL~RzO4{(?KfL#+y~p{K2)&BuNk8s}g$+;FO3*0ob&Uuj zIp*@dPT^uB1czne)AD^{`94t#{%SHGO0!n_uEpJfj`zgLygZzjhx7Fu&U+p3)=MuY z9BjztK{)S0STB9XOUfc+QQ063Rb!_i!APDSAqy zygUN0^9Zcn;kczRo_;tZ}xi^{>}Tc%u^|LrPvkwv}cEd>=uuY<-vhY z4W(nDbSxC^SP(l|G{$x1gF~fP_j=oVC)M+s*X`d_URA5!R)s(P`l!{ac}LU90+MZg z^X*}^cFf;g!j`qa>zvlx-lhN8pVCd2^B`#olHI~9;?%7|H*E5 z;e!_nTm2Y=!5WuT(a_&|3Fwk%|1Adi*DIPx!r~Xalfadey&q0ZU$~WPT zty-r;*gnmDjjkBwp*LB~9~bi)oWCC;#Hu&E+VRP;f%beNJTR44^_F7>^^@={g4F`3 z)?w=uSYW`~;#SXF5|2RcNJ>ViX@WUzH)<9}Lbd0|2v8cQ$H!hB6y2T8{l|y?c-Xgp zoDM3x1Co{ifkxYFoSmF`wf@ZS^qOOE3TTcsIi1|?(uY``#cW5hf+(o=AmW2V|&L)ig49Ai`tjt?_U^?2n+x z9D2!KUxWIWRV1r92Ju?BWF;uG$*4c~Z#1;nuCI{-2%0;zusq>dFj5i>403{ziaaBL z?qa^1G=Ub){FtY1v~^+`Y3oGAY}Mh10Hzd6|1`5J{t zLqiyokm|#xltzyLCH7AtLPGx(!f?;q;b;^bZNY=vv>Af~E8Df^#gRYur~OfM3NRkL zYV~@1#}jgrsc~&_d+THOyFyxw+3jTd(4P+{W6uO}36gaAV9nS9`KmoDornG;9 zOn3eFBO(|#Pa=a0d~*9Rcrs#Zhu&GIa|8oO1ToAi`{ZXOvjzX12*c-`Ex%oBAFrQz z?N;+BhnaGeL@TVRN@7;&9VJb}XbFHUvEF&BVe=oHS8;`xc*oFvyY2erH{I#*Ble-T z|75_yP&wedJ=p%XyLdku4px9t9pBXNecVWdW(1=p^Nec4`6cI2)K<^CYAe3~4ym}x zt4n_%>}{`!U#cS+cku@NTSxNP@!}CWP(uWdR;xm80#bGsP_ep&a3RL60yrEp8gxA$ z%>CS0i)V_ffmm+h7V20254kZH!>$luE;b{~{L~-c&F`fUn3V5zl9yX8-0}dbRW@S; zyOOH+fKSps`c@!apFBQYP`aqA2`r_A9Q5=k zo;SUl^Y?#;z2k5=vbQ$a%SlMlz60gOFqV*E-8VriWzYp0POMhS17!(~LL0tdvH+F* z+9Bw=ly(rzkz1#cXsU6ghw=wK`ZSH+@;r9pk{!OBmz-hkMA*sWWx6X15R}xO9Fu33J zM;~C9YBN;NABJRS^v&&BHLz?E<$sWwAg44+Dc`|^9eT#R-OpEv`t3Na=5b>b01PNzTeIdFgtNSy<_)i(aWZKXTNbYzeniBYG%3{1$> z@hv>Gg1@V9mEMivvbvh!FaORuK<#zE!tM(C&7U6q-f(<7@lZ(=i~rX9V|DANfAf#+ z|Ltslv%h=r)$Uh2_UGI3*Mse^clW-gU;c}q{zqF|TmR|*@XM`#_rLve>#P6zS6l!4 zzyF_X{gc1>&$j;MzxdC${=NU{pKkp(AO2?R)xZ3ktsghHx3-%*TmR#KxwG|;|BtV> z{@efV+pYig*WT7YKlZl%#ot!9e*ZW1t$+5vbhrNM-+Z_AZ@;|Q`k(*R^;Ye_dbjmY z{`I@9|NH-WxAn(=_s6Y&{%?9)KmAvOt^fD`y4kw;Kkv5w_5XLb_22($YwI^#Kic{Q z{`}bZ>Br)eAK@GQ=QsGC+VbB&!%zRn`1wa$U*LECgj&(})b{6q%g}fX`t2{|XZmyg zj{YV*zCgb(@#h!fZ|b37{I!7kldYd@{T4s{O8ochE&fBlQ*W9L{hjyEUt?76M`QmQ zP<|oi_Z$37I&*1XsxcOMv2kq6)16Q-(O6 z_+3$u+7f>gcYi6@h*H!T(Wj;%!0k3ih^*Z8CR{2DVQ?WK8x^ec_S6t}S;Jk%%Z zUxgJ>jDBWZS#A{_=~G@^S{wS0@uPp~H6?NtnUdrQHcJqoD*Lv zsihTGzpKyaUz5sNerD*rYJ?Z{F*OCxk!7F9V_ilP#F~SDH^1YbXQz2j>b%l$+++dXOK%y0BL@mkn|pqa20K~loF+AyNO@vipy zaxQCp+B;b%)89V@<$elU{t7yj{`?;QvE4!R;d2dBifz#^#oj_^45B&dz~7*c(vJTK z`sk9>NnH9{*^^HOUtknk71G?KseXc%v@iTvd_sEvxA>3#{)K@5Q~dnb zVn-l|)bLF0rv~=KjFpp3*p8iP@jK*Kl}+nCT=AT{R4V1H<4vQX9b##;^m*A549qwzuEdL zeEtO}@q56h6`fy31@}5ELlSlY`ukf<}E&hbTX9}JbacJ};@ni62_#8o$;~kAC zLR@F=V8o>?eax|>Q)mR@OtoK`yOg4;+M~?f$)11mZ%SebJ6>D8<77E8kly{RkVG1X z=D;#TP#Cs31Cn~Ri&A^C#OZt1BrKCe74Av;i9S=D6P^k29?{YMoW^IaGyml^BMZZB z&E6u-^XgmDi$r7ohE|h)|FJkr(0SrF&@+kyezf%;2Cdnn!D~n@sEziI`~knye`*x_ zJNlH`{$}f!0y=RP;rlE6%X`N!fe+(F`bPyAY4@da2)e z1=M$Rrlr=jUwsKY{#sC%^{%2d>q558>6FZLVatr#5Rd*Pdh@A9oqN8N`dwkH{-u-G z7Z{1;ns8$el=3{$Jboo;P56-4i1yOI5EeO~0e*>3$&O^25^a^msp+ggqtiQm{vY6P z`j>VQngN~gX#b%-N_jJAr&81;JlsFio=M;EnlRMAz<&2TK<7`X=U<@}$r52tJ!l=6 z!xbIaT2{aDY`K*hnbMn z{Tsn&EkafRaT#kBnx|eN(#!NmS=Gc7q;;73^o`O%`dqB~5T%LY42}AbjQvVbnyJkz z$N@LcJ4g~6|cl|_~o>qFL^WT&Y=UxM$+YfAc_@nVaHA@I7A^pRw;jiW}<|FSgF zY-ns+2dzVR{(ot$hQgE}@b^m3&?odQalgicp^^q%;?{rf$sDzuN`4Vc(M??~smVi$Kp!OE+;J?WOdG)mSeo?}KFrd|8Nv5CZ6Xq+EtB8O2 zWWt)3_6Y7ve-rPq)bc5fup^yGXNMn&GZD>5|M^RN@BTwOHmwZX7i5L0lL~89qM$h& zvLHyy{w3NGb=c=moJ3>Li1dvbnLbf#ME}x?(mq1C@Osdvv|=!O6-(t7?2}V`lsecuBDz0SyR~XR0zYwyhJ|Qfr4Xu}gLH}wv zgcETA{mYaf-X%$+&rBOZTL~ngN_Uclq^vnwO`a=}rzlmOi z3(@$O_`}{ZV>TQWbfKY;s_W+D57zEKjc@L`WLa~0?qR*HvGzYx`Oj)`g zAXv0s-1}!j%1F{k^N?0$jtk>MFcnU8-)R1^$N8}XLz<^rE#?!p3)#Csa2X@QnK1n_ zkU_G;$r7je{U!bo9K{)$0^FN4n28ttOk6`yv;5(iQ%f3w*GzF0uYl6~Y%>w3F!zu) zq5YX|WQeY;19+_zooNPSmym~t|E5y~|HiyYyCjW6GbWsA2PbKxwNfWb8j(-Sq#Nl! zJ`>yLN&7TO^rT*@2km~;PoIGZ5@{RqWHEHot;_Wzy3rrJR6tnndlXLY59ZCqU^GOz z=W%25&>xPy>u3;(5#2-Y1SrPHgdiSGEYYt!L4@* z?6{4Az;*rVqIZUHGWiW+u&rRM2zJYja(-A_VU#+0r_Lki2p3e!K7DbjHF{z~;Y8*V zW$YZRthE+b{=*|Zt)grh_PP|gc5%zNCRCCZI1Ux{2BQUf5HT)?_<Q zS6^OzKcUx>Gb&Se)~NSd6nk}jd0aK18$X)hA`gD9MKpcr6_93odi1V;L%pnoUrB&N zJo33rE8yNGC)8+O@+uj$G#2?~tjZ^zM9dmo9rp0FK)lMIl2n-NT6u+Uo0lX|=Xkpl zmXYi3&fZshy|bgk9q{?9oeDMTb$gBGVfFRt6+YYRB9#8scGcwi*B6&ne06M#hP8Xy zTtYaEQ!so@q4YZ+cMc5n*D}y2C&eWqN`3cAU0!-FIta~%8jwrSJ#Dbd%L{|xD-3k) zPlva|jm;~4IMCA2HMBS6qG0e?dnUGK#n6R+Oz$m1kEIQ?mAz>1I?hku?Bl`C&E%o8 zpz;`32ub#w?E*6=15CN0(K|EwMDp{RKfQQuV8>R3GK{;=bHbXn5^R;vYmFmQE`*ym zB(~3vLD!*Wy0vRO?0xVr{SiL|w=`3cIw*0~ikq5TweQ07Dpb8B&Lz-j7Af7IW}Ww1 zG{&czMLs34B9@XL5(vFH&PYHa1FyI_X!D%0##t1|8OvZlum;_A2ubbq=6DNTSIV25SoOpCx8 z$z2FyF3oQMT5xY3F2)0q6+%z+ z+Wa_TrJ(ee8vybiMY0g4;$jYEU|?VR5Qkw{vu(;?i}{57ut>v5*Nl}{t?}am`7kMU zjrb%c*_+0|&{f8dgow6O>_PH?wBU%_Fuq@<%Y@*5a?>|$Q8|82n5nCnSe({+Rg{A^ zYsbSuiGXM5-soCfNdXOmag84nr;-;?DlWK%LJ=9<7>6&y42+B)b0D__&>j8C`-UGE|sq<7E(B^h9>! z!4z4;ttg=D=ELLMOwUMMu%Gq=AG28*>CNY--tj-rskWI1HYru6m!11^S zd>Kr`iFDA+7Pc7n4XtY05(L24h=Za4k`{|Yve$+av^icpTunrH<(qv<8+<;cCpMaa zULjF!+;5~&M0!|$L81x(73mMBU`CfiUENWHbJd0`^=KcE6FbxEt!Ei}7QxdDdB{1^ zGW+nWILQeCn}b$`rg$L?rwC_T3$I(Ky3%ofcE22tk%Uw4&?^?pztI9sM8kYuG?UlwPr!Z28=a;9{Y0}bjj_mL}bB$?DcEv$OVVmGRQ}n5eW977H8M?&yF?p64 zFe}UyKs~C-vr*JB;_A55K7Tof$vFrlVi{&*Cg-OE2JvGhX@y}ee&cb^8VB}?-x^o@ z#_N-Z2gBW+?Dcdq7BPWRaPe?sJzJ?Ti+g%xV#>8YR(50?3%eBboUW5h!^OU2G%@Uw zoM7>Bm#hv~)&t1o=UkQlc<|5uHYi+a{xlu@?Lfo_9_;+>r0+le)4}88?zdlmv-|b- zfoa-UxU_rLEdyEI=DRfUa1+`dpE0*wqGrT{fBs09{o;kqI^U^j29-~!fZeJ*Y3;4X zq8dLEfnbHi*<&gyr|YJjJmgQNS!w5bITkz_i;{re+Zhf{SqYTa#nwB?*Hx zQ7%*s!V55Zl#A6AhyVFv>bsUY<3l$$*7QnHgAb~GaM|56e||r?!35-6HUnd-*CyX? zzj&If3TA(PBriaABWz^`F@6da5i3NDsY`;^_NX^PoB{}LE6d`=umBVz(|)!*@e&m) z;q03`*)yDk<^W^Q5W5_L{fwuzTu_P%mQvVX5P%o6rM&E!FKxXnG4151=z4Xug6^VA z@2q)-c$IB4m4R;iYP+&c!7L(!fzu|?ZNsZhwcS1=+eW>ZH_XWwC4{wOQ2>m*Ix(X5 z;%8VgoFfTHI46Y`SfvP5r=`vW8eCNVO=owi(XtfxB_^rRsHvHP^|i`_&(}!bq8qQQ z^IqiHLLLLFgTdlqfs9)6+$^|9(EK~WIz_I8LpOukONLE3-mJaz)&V%jRq@- zNT}deoi84>QI<@pf}kp^y@0p`Q!yuiyPQw`{zKMTNAP>jDQq1Kt(NJzqn(q^Ykdmq zh=2>JiELEeG?D=gCyVJozxKXHT$_Ih6=Y_U4GDLacci!n7Vm$h107M>H;|&oo5^JA zdg>3yo{nvgyVwn(p=OX_C~*^SC&!Q$9&KN2U$sk}N21&ldDTW1;@C=C6qEzO87C|qe zl?qlOD+M;~2LLza#u5C!YRr(flcYm;vvH(X1$0Mb zCCPM%Rsr+mr&YnMj@g*E6q}jDixP$9DMTB0B%%593T`WcnOB-Ui*IOU;o@({isG+wr-v`+7jH7rtK=F^|uG&kCrtl0x6iP0xzD zyqKxJoV_cU?}`e3V~d;LCM{};&vOrxafG2`#GlWR%W%nrb}Kh!UW5wU=%hBPtP*A> zf;>We{G7~-&7uCnEQ*|jc_BN^W@ok0%_V+np@S-Ko$@Bb%0&Sd#c7GZk9U8&z4gH$ zvDYF=&ZeL@pQQs76+q z(PDPrN0xn$?)H&!hJuSkHkk6c4W^+rfd)B9nZQ~tO7>d~oMa;tzq~oyv&7Aq@Y{{U-QGp#$YlMclxKtPd7bK#C`d#%#5b0+wJod2LiFdg*gnnlPkbHn;*I?%BYa z2m4O7_FXl-x`NPy%W?B3om+&NGm`dWf3)z6(6UP1vTS80bz$T01({v)Xp_Q*x2GRn z4SIrLvSO`Stp!2bjB%~qtx1DJ60z0}9z2UC*8`+VGOU)$tKQYrhdoz_0)A<#9BJcw z?b|WRx!}3yeE86REQk;pMQ1rJ!8QqSue{>oDl4rWWjQkKwhgLsH4&ij`OHO33X$B< zCWf>ss%k^El)O^%O3CYXy%kliJff-HlO-=?NR?9Oi9$u?ekbTq?sw~vI%B^pC9ae> zrIJevb3Q3@pWE?5XS%@oS=yAPO$_6F9y% zv9QoC461eQ3Az>mm_&U|*lO=jF+`1JVaH~j5&>FTpOeDLQX2=ZIRe0?~d4t;3w8(sZf zKy>k%$b!Xzb2^$%%|S%f#SeoR=ke@zGJOaq&x$NNA(hzLKwczkLg?N3c=Y5cOcFaI z^kaJ`pdF313=C+HRjxvL;TE^I{xp(n%qF}k#+l|PiGvc2LT0=DX&*9aZO^u7Q#HqM zFl1y+V%o^t`~XA;LLFiOYXS<4qn!j5sy}WMgXcy~s9skrn`S84MH7_JQ2AX~{|X^5 zn_MB^J_hVgM#F(ytJnKu1Uep4v}p*0Ise2~1#ndT9%%TZi^*c{bFD*Ix;6=`)oa=6 z^84X@aF4AG7#1=1@bTWCCa=qAG8VD8A(V`rs_t$g*J1L2&{F@V1CG9?7@jVo@n+!( z)}pmNrT4K;ktD>ciIQP0Sf(DR@u_ywY(r3T&Y*`VI+kcoG=i-QPtL%Hjy2W$T!zLm zdL-EA07C6t*#=B)ojM|!1JJ`4{tRI)p%s;yL2S8kZJ0sOgs6#=zAR8$*{M|ONMbmr z4cq<-k)HB1OGaMTn(?79dmhBcT@+=HV!Zb$AWH;%Z-a{vP_e^XbY$>Ph8OLA6zCx~ zpvLec&XBdIKl;;&7qy&&O+f9I8QSwYH0!nA`PhHccPmRU6#|&f8g;H#rnNz6;e{ls z!LxRf7>q;9ttk#b5l)bwt)CMjgMTu-EKVRpT;x6+jz1(WLSnlDc98&)P!h%nFQzms z0+k;IzR)Euf=CH!#+xtJX`W`UUD#g`(RWeDAPZKe*jqN{`60brN) z7#CG+07bX%Vt)D9ANXAAJA|1DpPuEYO~Q4MXti3ICW0~3K;?nsd?`e{m<~kN%OZP+ z65&5vGeZP|bIc`3(&imctmlRQcW}pIhA0R=#@Ug7hh^c#F}0>zh=r}gqyelD z;7pPs>KO|6*r+147xRxResU4GegP+{8fPGw!!S1cO|3e0RlG+xBQKLWa9}0(9I)#$j z7Kagh)|~k`9ifD#E8!CejbIEt3XW@`r~fV-)lMYWJYV;f@K)j@&<<_&pS@bin}9! zJ{*K71jADqf1LU=>?CPd2WOM4T_S_g zYpO@McQM3A|7bc{JYK;*RQGQe!a7u)^qPcd#*|HSPX=~MVnYdQqP(?>$48Q`m^INT zv1T#uI66y#P{WVk%PW!#*vIxLs>vMn_nsVn-Qasled3cP0JGQzVftD-lX+sp0yG{K z>`5fLg-=>zIX^U`XX@n0+19grSB-TQ?%?J@Yyb@4JpBUVyk!=!5-Xf4osK?+JVw8j zC#3UBdUW3-_llkj^OQE*k{T7TOy`gOIPmYJc%;(X7LAa@Q(`$PEsWfa3qq-T)P-jm z7Xn1AsB#KcO<6^RS%yB6EuAS%(s)m~9-JjwsWSu5TD#U}LEZNoU7 zw~wfb@f|1Sis@h#+K6l8x-l?kg)0S^B@e^#aE2WZN%-hbX&+jS?ko06W-bCAV+#Uz zl_Si(7D#AD<=#1=os(&%!w3J;A90Xje2by~(Q!Mk6bBw@Y#;M6CQZ76x~<7^J|Z7d z#HB=QoaDW1wd8eeS5;PZlSO@-j6>Sd2H#`0vE+kh*YsiHm_8zTc!&`?vn8yX!^r|E zkrX(4nXDZoM?Y3~+@U*}gu~I~(S*NGsR5*AFTOcWss7X|C1v#T`!~U^?cVpatN0?N zG0*GrxawSc@cQkQKbw=MdSMmoB6Lh6F12L=TXCQ`98PricTTUi=}C8YV|TjyI~Pbv zM5vzr9AvW4bF~NIOl6dO$sp~;pnM?qS7PnyEv|b)i)JmzP}W#XXs_^&+(pVSmb>N( z*LBmJn^Na6xuH|P!S;6oO(yA^eGy=1TPwk75dg`CaY&YSbR-ms(6d0JV3&^FQPGGP zEm8=^0;Be=cqs8z?+iepMm5rt;jkWFdUztNDtbx!=$ayg$ceA~BwqT_Pg%-2`>qy0 z1@V{zP2}ghop>r_7R$uo-$bBh$qQbn*bLG~DEY)SolQnI9 zY>Y&uQ%QHHXXbo~d`%q3mzAW`GgG_D<#v?B zyKT$kOV4Ee`tyL4c#%j-vSh{1M&Z4}%xinCEy-QE0^h~VRsf=rCZ6}mQWV~nw^YL^+HR9tj z*orUzD^{OTUm1agO6|~(zooqlW)vd#wU#aG!F@x2i3_)tbZeTR+ijLuL{83GGQ2*% zr#8xq;?x;3#Gh&CYvjE1api(1kR%VIfVSNT<08LpCH4f0YmIE6L|HIcDJ~Ghcy|?j ze6?at$Oo*lb?l$oGVh4cUh6N#;Eny$0lwqz3Ts7|R=32#gIa4Ce>Zxsgd2VIKAfIY zqtS5GY_)4&ukWBtenKjf+J}>xO4+Zt`^TqC(lsq&L?^K0;!HsJH41G~hup_RuTBc% z^&qDMtHYOG!!8Hi(1oo4glGGtl<#BDO#YG#tkJST{$;b3I9G;XIJ>0guYbH&~i7n zb6SMcC=;td>;+3RX69e_0zff-NCnAB>s-`zj?`7wtQbuC`WGAPzG2BAluvp&G2f9@ zoMUF?35_}^hsuHzXNXfHZ9{pw&VEUKyQD0k@~2~tJR_>ZusA#Z%9mo-goTWY1Ei%H zbtn?+UXMOi00L^lbWEggyJus^p3F(}!ftF>VcM&?W}%9p2-!^cEWS@qL#U7=(-4R_ zOwIXY8d1E1ImLAgeBj^WSG5cI(Tm8E-w9`$bv{M&=hL!22 zUKI?P>*)2s5J~CU)5Ule!7<`nKlDCgiIlw;wed1=K6*mFPgZ#JqdC;>Tl3{c&3#2& zuqQ{D(i*AlFt@&w(CtW=N2)Z z!Y;>8Jb%f3He(`oH$QmHam&sgWZ&Y!=dC|sx~QXB|g+<$m=o2V=_vY*q9*% zV7rVOk!L`BNB(??p7~GllnZeIVghyMPg!QBMy1aTS008H$Y{v!h)fFxahXGQKb$n! zkb-nZa78nnMylH@9ibu~8C9Of$H{6^ckn@!?QGDR3c1n7$LfwmbGLMnf% z^1wo%P$v#nSqbEfR!ZVYu}z9&L{C)kN+^^-`~;%ftt1cLDq)&(2*e|ylm%u62IcoK zZGw!ESP2Rs5lG|q^ylfB%(`mMMujJvi8DlDTIJ6S{JR5g?!d1kUgsZ%VLl}|_)pZp zLD}}h$@vL+|5?0XsR%~lUT<^xcEZjX-zL{Yidtp;U<)XbpR#c|3z*DQ#+J=~FRXER zJ}#56TL#I5s(TccK#cS_(m*>8oW0Fmgz?^l+%uY^YC=k7ldGq=7^Gzz#Nt}84&t_u zLl=i`A6ur#0&?nXMLiaRKxBj%scft$O=cX4tEQPdRSSn8D*q{__Y#Z}b zou=HI*mvm3Tc>Blq5-9|+@{6Z&G8IC3cEwWQw7qVP*Ckq98N(jMZeLYQmw~A6Y%+RzakIm+0E@y1Rw_!q#FA8N;>9SyJuqD6V$lTKvMsHE`o=sQFr`?+ zzC_Il%`$e=N-%hST9xeV05)(9h@uhI;BZu1VRs5~M}TpO55?V41~V5zvqH~D8MsEy zfkR)^9rtuW^eXg%?6fP{s@=bzRSTz{EYEd8uOmON%E068pIL%Rg#>!~gK0%I3~wd! zyXgzc@^Vl;p0i8fTTsAPwz&Dvud+})%rh*kWg$hg_wPE!6c0?(2q=`$Vr$ZIcciJs?x*7j#|w7z>iKiuDR4y`hi7ZE%EPm_jj^> z1$pbmBs)3lMQ`r&79d7!WdSmNk)Sp!1twpON{RugM{Z%QO}@G?&_twdDnlEVV<`B> z&Pl$u%9TPo@D&~zSulu}J{JzvXsmk!ze0hLj>Bu+s%o4pfY|FzsXFD?#p7(der9!S z=w1{-+!TMpUJt}8DO>j67)d2Y%gxHW9~cW#dZNZel$lcYfY?gL@F?>n`({dC8cj6! z=imJm2d-EdG08w`V1hb+p1cRPF$`6_6=K+Wr4rE$JWB@t;X|X2gYf%!J)Ml!tbUc( zL}bC_dAu5JRw!|_Mk;=`f@n65o+K&h`O!E}TJZuikz+5xOI6KXXkwI{-}+^+p@{;e z4Q^(WpS)%z1@Oq_@A8F6E=Sn<>o;>1Ds2#3qm;2RMmUQ|t0N)TCNO+g$JX1HHL8(I z%K=yw0O5$EzJ>*g`!Yt2FHG&Wf69r}!{e^ibgY)4l;;68>-uV14E-B7Z55HEe2(%K zn!m1A;JX&7Zcyv3}INFo^wYTW4fttCqMj+ksj>D=U_Eu71w1N4`vA%;ieMr{5+P2badjd z!&;d}vI(0;yg}k`Tdl*h*sbMuGg!=C(u>$Dn6kt@iO@XbJa|4B*D92OqOYtFj_fb- zi6uLbP2?cdgq{&uNl7n>Xi$MQn17!lzSCMcQEj?dZ|DVQjrN;JuBpJUP98Gx?SEwGGZb#w*Fj`o^L-wXZnn zY?I>CaJ#u(q7v?H$xzEqWS zQZw#hKtciHE?%cN@pHW7uww*!Q|0Bk{{ZG!{+&C=paeh}#W-q$NJe@^d5TS26`sB^ zN-fk@Pun@pWlMk7h70YD|Btg(bG#Y1gVlWOYz2Lb#}T_Gl#Q_MW6mvCzZh@D{z=70 zR0{v}SBbzs6QvAhsvHKO-UY$!bFkWY8G*eX|MvykQQxm}8`4u`6Bxbm`bW5%z*r*8 z&)C#oug6ag-J>_1tb%p$xCwi&0+Ro#{7~STuCb<*=O&WMO^_$$X550s<|&x_tCt&px$@UwNW1#h+s-!A*+USZ&2>>&R=gxcSkA#g=3U9;MOrE8ZapPVw-5+>}q`e_KP28pzJ2x zt(^)R*#7ej3We!~rGweg9IA(XURV6IkcMa^#HCfVp%E7zt`?C1vA0=`mk&X(a%#76 zo~_e%SQ{53-qgjf_jGGPiNAWG!s}(wxxS5OKOiv4&1CoVS#AfUB=`pH*cW@n<{l>Ehi#R!q#Tf7xB zt~$K*#1IrV;f_4e9w}v>)51r}tm&}=S!Tw0ZA$yYQO*^+;HH8i^TROeJ!S>5P}zcO zMCx4Frc*zOasI$@Ifk+sls|2V3Pqw3ET`DKJa3aY08B4)GjOtmM!vCCGJ}+m*~NxW zBocC>^NNdP!9-+o*dafMNmxMyv6CkBglAJ=vcIFZHB4yFKzpL30uGel^Fy$O=Rkt$YTH$$A-XaUs-|#~3;SEHk zYpsYkJ2!JJ_BeNMCIn;31ZP}mSX?kGLvWRqf45uZNwX!}(UC>R4J8S)qhB*X+s-YV zXt@;73Rzxi0?M-5k%>fCE_A9nnet%reLVRwnl9G3LL0$$MGkFvbivH2@v0(JD^l3H zk!hLQ)k4%Vp>PI{8Rt*NkXf50!pY1nBMUo?oodb~G2_@KH-)jGAqL0X&QeTJvXZ%* zE!@V~I!g$Fv19UP$kObm^CsBX$?6+2wzgjeS(-a;ytv#;I)@ysdGxYD`y1*#34?V9kY zX6ls@al1FPR{P2vj`UxCD%f0}CV0*yQP`Dt6y}dRPI9i>;{5r6gwyEsBL&SxGUJ3p za2EYr4*s8d>zsK;I}FAz@{2ZYkYn0AF8rB|*qFfX&;L0;Pwu;P-8g-W83ZA* zL7pc>r9HL*W(?ON+*3L*^6g53dcvl8mwE3p?_K6m=xo6wNXT!C%u{yU4$@BP{VwN1 zSu4bw_yekIr~*bO4O@&qYV23_VDCZ&43$8=N%#=Y{5~@3^P5y$!m;D3WwHfDmWuuf z#WO!k{HCzPyW0A$wyNBnQwu6!>~O7zHsIS=Th$#`Y`?yX@a!V|w;kkj4J8JnI;=Ys zRH@aP-1ni5vs27Q>yjBf#m6ZDo_ecRZzadEmh!My@~G9iNxXI&#|+Q@s;U@4&s|uh zRvUGa6xeB)Bmr^`L(5tMG<+BXG}d)>lzIVuB!{GnN(#m7imB7v6RfhmQ)A=GxIRIK z4#pX52`+S--{Sra4@wD-Z8SlL5KN37{S_&hQv1}V7EV_AU7b~LTh^#j_htdLB@BD& zB}h;Vaqdh{juD?GE%^qxx*ztj_@7(+vbQEa$5S8FTag4-wD(L5ABo)h`G*UC!(zGl zQ|HEPyha61b~)jA?rATbz>Fs5R=169zHo|F=+TBLa{3Ny%?KJX%npa|u+}mT<33w< zFKM>(d^;93+j+iUAP9CS*;eg*Nd8byuAlWRvg<0tS~tN4G>n@Kb}!sUfG20nd8XHp z`eM{cz@2jx0>wT`z8Y|5c&zK;&pwHtnSbLZJkb?ZUVi-4I$%-6wh$(ZvR1|%2 z$&}VM8ofZ8H~UoGXeRIs8PIgg3@akq zgvJ<%uVR?CV2Sa}9iqV{%74@ljT<>HPbgi%X%t4#OelHpYQwwQ@UAwLuQt?<-5yMe zicGf-p(``l`(5>LsUDJDUQzW>6vg*r;r&>6KNj|IEC>_hNZo`@MMz{i5W?FuwcqwUw~u}W`v-cta)s~17}&tYTAfwJFnD;7%Mca_4WQm`y8CK2~eHW%4&*LQ+k zIn4TOrq^3@3+cmhT-sk4 zL`sx#i^-geTmXh$BQc-1^Cg2HsvoJrm&&u*-Co>qb-MUC{Fzmuao7uz$GDv{s`Is39i}2kNN<8B@#kQ(FvDTMScM+@R!1lulI?0LEj$Qhug4V%996 zf+i3h5=`^2-#+tXlDtwcRiF{Ioig;syC5)jDH!D&rI6r!!(lRutDYc z?tf(~N9iyYtJsE9agba4l^1ItC=KiPdJ#KFqi~1)C;n--omLwEl}P>4U~(@>NJvMc zJ&@EfTeT;RlgP!ORJUi&^S}w!rE-q%!fu%d-xmUSFuqR|^x-cfNx@A6+X?I>ib{xL zf_8^#)XB?aqpZwbI*VnUI3wcgHR>s~SHZljEE}N*oHV%MujXtWC`Q=&J*M6M@-O1aP#DyH}BV# z2XI{(tvfc?uB(pP1V{YDf^DMTBR7$h6;klYBC~(Qe8`df;C{P5G7dtXI>S6%3jDEy z(=G%f@+1F|%V`(u{AV^K{wy-b=rr3TqmPbu+$}izl-}eQoWS2v@nSsLw6>Gk^uZr5 zn!$WLT~O++jsK)orcsvWOWlKKeWdiiSOr^@R>;|F7|f=Vm&;&A$L`nK!^3nl{pmNR z%V&QTLB`uClixS)P_sUG@WU^f5tM{%A9LJJ=gS#YwMU(9LV5K#p7>Cn<5bzp+@`AI zWlcS3*Y{3Z_Z<5rZOYuckhTGmrE+WmvKAkIHL z1FD9$CQGi@Y>YaK$H2S4y{svVqx`83=RcrE+G70}tmfm*G=P@EZ28!aQiG)EPx-Hy zjT`&tm%3>zF50KqFCR|NsnKXSYPQ<7uh)0@?Gv)3);^rn)Xnr2 zP9c1{)VG*&JnDROFz_Kk3Fpw;m-WV<+d2P`AZBS@ul>c-=K0uwH`Exl%2bfNwMb#& zuT+%v^ylfB!r}ROvD9huuvFO-@4^}7!jLTVT4;S=SxBYQrV{u{<*2G4-U};M1AIOn z=9TS@r|j*mXA)3MyTvo4+-GL#Q-QN+%<*Qs@^2^4{#^4~CC=>f=g)Z_qycbyd!rl# zd!uu%X-cMXzPWSK*HWJv+YX0u+1$K`$#T+q9}wgd9_bK(>RicV@72gI-bHehJ5T9k z&V%GI6NO8U6t=|G7K}=fOS?;GhwLqGS~M4j!Tu_pE(bz@S4VXp>t_nylxtop%9Sr; zbIB=%j6<8tN>kY@w^xHF3IjALgk1jv%na2mfDf?OZGY7i) zhTR!n_%c0q#TviyQJ_}-+!=w~^Q2}%V;Lyq=43*&Jg*fP*C~P zEGkt{+`Ut#zMU?9D6=VlrcdnZYnWDs0SUH+cgP%UBiriV75MI{jV*XjX(!KOIcUWI zq_OGi0pPMzvU0CRq1*J;3vZ!bclBNkh%Br3dcdWu9t&M2 z`PQB;#OO?=3deBDjls5hcGb9zG* zvqxWhnNy&9UDCB0_0eGAe;dCX8rd9>?U`iQXnC$#^0;v5Fh1aYEPTC1?c#qg3HL5- z{>7wC+4slpN0qTA%3ax8LMnA{yeVW4oLh@JV-AvA%S7tnxwTYeOXAi;^EMRX(nCh3 zH10fTBunJVLsGj7bLF8TQz};;ERrc)xm|C9IS)1-u7c(GDNJqRiqkU1xixkf$Pn-q z%LF%g%$%F4NRYHSZmrme2IS%cx})$+WX?B&2?PWUB4yRX<#_$PTNc_Df>Eh=EbmRs zkri3zogL=WQhj_l*?mHanf&ICX?9OFRlNjVwjF611cI`K4}H zV3}A!T~ij8yblNjMwTRp1|SST8!?p@YhsYmK2R~hK*&u^Kw$to2RXk@H_x{l zoF)??D0bP2eEaiv$Qp;51WbWBwcW@k?KRKhe&%RW8A99$=5r;?)g6D9LcVfGO8=9xgSx6w8Z;$4&T+b0^Qs zF<4TDJ686J@*?dkeV5!2VRjNgSCk5xBBHR4^5>WO`3ID#`3Xe`S#%r0a!Lt+-!2j4 zY4gqwFUt+9#T;V?aQWanJ+S17BGoOzR2+p<-x!}D*}b{812)n-<0QF7V;tHHRLg(L z92Iq{IKz&LAVwb1*k%7G>~4@4tM4OqL6y79`!mT4KI$4@jN_~ z)hXlxJmTfTkrZ2kbdTpTqq~d$Xa{`VIm43@5tlLOGU~N@$U<_WR)mplKb)MOP>K>( z2&N*@_&Rv(Lq5I^CUW(ZbBhkEl7(c2*i|hlD@4t>TH3-@BrXpN=UrrGl>Yu$b;(G1 z*4**2lkyO>;Z#w1|+k$}iyUGIdjvrvaTup-l1 zQzQ|ltkf2ijf-fK5#Bik&^+7Y9!ITlS)auM;SugaU=dLjtw>4@u2vRpZ$23|~wbMtUhGI#durC>1ni^Bp$O z%IY2={KAqoc{ef;UPO&5LPTZgGR4&HJpGDL7Gmqyg}W5aeoYi2FM)-(g)mmGuEH%m zdG_bNeoy))UQ#>a4c{c@($0e{`uB+R%xql~d(o{up(r0CvYFzS&EQs`g?9TZ8fu@~E2TQW#nIS;Ue`b_SOxN8z z;1+-$78^RH?cu_l$p$!7@S}Zi(f@OU4a2r*iX%nY;#nA~eG|;||A;Kv#o@6cUQE~? zE7p?7%n|#7@AHfDqasP!2gOk#FPT8`%zdesdkno1itOi*dlSTo&I-#B`tDem`LRGy zx$(5iw0BB5Ddm()@3c#!T_y?kPDVEw(;OTz`V~;4_HGep6GF#=K_207L^$oTX^#fI ze2PN>w2n&6N}42l->GkiJ{8G=4tkb)Rj_=N41xcFc&td^Az2kp%K%oOQ+H8{_xT64A4q*otXz-}S! z<(*p5>!;W&0qnDoMdD>%v>2y%`q}B1(}VC%N*gJ&YomgO1stO$r$YE>-V}6{Rt;u{ z1N-Q($SW+4Wp#kpuABI1P|UAb6hQ3_c{!D*q0-}3#?F01G^$W8ye+D|g4B6S1k5kf z3b|@4^Iuu3R;FG;2*LD*5QTIhY{s%)h3z8ZO=7=;R$OTD571BTK7-#HwpH`{0WP>K zVVxRSEB1Ur-)?2XJ#RehTS9OL)_w!aDjrx?#>@xf&vr}hf@^y)SXR&0hl6^G4jxK! zX*zrVt~(3ubrIfL3vKRS_PX$$4^~m-bMvc1ku-sw_tMZqqDb7t{5!7kwD+j*9HVdy zP8j<&-8-dpN@en@y%S9(nmCp$Dyo@Ug)Hx?46bY^aLmJ`=Qe}3Wx6fgM+mYM{JN9t z?JR&6SHQHvqhOY8xfZqEf?KpevMt z6=D?&yfPJdDkLTwcF@Fs{IF4vRUQFg;kpKyJT#REOw{31U@Q+t!nE#7c4gc zCD1l|z6+clN5vn>2yxwW@XjWJO)5S4j*N*ksrp*y>QU2dms7i7sKRSGyCYP!+vap< zPc`7?IxvrO0g|@Tk>HWvj5-p;;^H&58Dh6CrZf2{5sd_a&C9(9L@SL^(w5cc?TM|m z;gYXHn5&e26{3~F&0TNQmaw z`I#$Kib<@6G-KOIiKi8Pd2)vX0Wgh;4ixIN+YTGpktkC(5=eRThXtxIYCy^)ei8R28DMPia*l8ged|Nv>A{>r~=hI}<5n>eW z;WFh?g>EX#A#&6%?VY&j5NKYyn5qz|lyH+HU6Z{CtO{4fvc26YBK{8OR9t&_3*2iq zMxDiD;IYSN#?jz_yq(UMGarvy{D-^Mc(HyAR`c;@8Z5l~`Yf3Ii2bMx6LUD4S}RB1 z>j5S(oGzX^i;cf}98Y}pzCwW3Y~6B-Ni1K3LVE@yjUHbYkF)LidHj9md-v_>3>5n| z-8^>|%kAbrTYu{-CX4dtm%8Z~-FdKYqxrZuS(cuugLm`ZtB~~4}YUgVxWz&T@qwEB?hah57GL-d9{c2 zi5X{K>SmzCLS!9fv+~FD*rB8i68mOgA)1Pv1rTV1#q7naZyz81RpJ0NbWLw)pksQc zBvD^Beq7d?1Z>^dE-_rA-WY|k({!?{h`E==)zP&Q)Ncnauy=D#)~=5-3dshV5?od( z>S&NcDf`H`PT=ouQXsN7NP)=F(FxIbu?RM8(g8G1;R0vp9q#Jr1ZNg3m?EHZZ3s&+ z|2|##5B>4nzaP)G{%|~9txZ6)1QtfUfsfP_=LWV3_#^GyaJNtFKQxbyfz0E(IwU9X zCxjw4H&@ua^V9S521MnC4l4Zy6OT5e^urJAfJ#jNN{|VX3Baa5r#Plw{`6OYM|QzeY}GmZtwwz`Soq(@ zy3Xa^dbUn3J_loX%xH7iYhUUvT_D>CX2>Ju0AuLfB9|-i35*o}Rs|y^rhg^K5{yKe zD0ZEn(1t?>iaukrsHRh-vbO%2_-yAI89n>h&W=*S4&Ny&NJA-?Nh37g4w`{HSj`p1!ZO`;Eu-BFkL9l8^rIWIE{r&9ZH{o3t zUbJqr{c&{Dzc8#g*6}U~Zl8nI#>=#lz2=!=nBI8(BSamWNC2K(uQ2pEi(zbSn%L64 z>3TliOrD$mhVSauUt8>$%}XPgFUPCtTIkdUfP#nZY`m&5znj0APE6PZi_KFo_g61B z{&MB7u?e|<-7wsCwwW&B-$R3+{>3WTF7F^@BG=yy6ER6u)i7zQMbr-(&#?3S+3j|@ zr1eXcT#>%g4;J4;56TThUJ{Fbu%TORpTrFWnxVmVHcJN(jfm?=%R7-{{86(SBB$Q( zWP)%JFtD5BsSV5;aeBRdWK!7c5gk=buKSo(_;JyL6u(56D9FwF2`$bFMEUXob^ zfwmjCzlN*eAKkD?o|6Mh%fwC^o__lBY1F%DpBfgOilUwVJUx>SN6Zfyo_;TWF%#S?#wVMIsI;A$d?(S-j}hZN?m zZ}l3D_}yglqk|(ji*B6p3z_Cv;`#VKCM1dhWCNXz$ zEE?ihN4-{$zmih-X1D;W>D<5dXHebDiz!%I1CkGv6!YfR86>>uD9=w5usCfK=A6k% zz|Lhu%jB6GkxoM|q)qhA1(VG}GMt;XrWRt_np-UtTL-gUg4SS9=i-|k*2#5I+d+G6 z2iwJiLv`ZKhe4o6AaJ5vKFTGCcATYQVug9T>3`Yvq;A^TFflb|mLo2g4SoFagU~%K ziskKP&CnD3?(xoFZ^&J94N7bhH(;Y48s^M+6}lHt~3mC%LGDld_zYQT%alvLj>p?$CHZ zBwHspX(JWJ4ve*h8ytH#2WjH&zT_5-pSN{7-b}aT@rL#zgI%`Yy)6C6dFG}1bHuJo z0{Cq_`vJw%9Lpm2b#z7PY%Zn|t>K$v!D0|DwktYa!AJsV|8CHd?2Y-rai#NDIQXK_ zJ@y*JRrQKz3_yGs{utC+!}wkCz2bxU=zTanr$(dUsM%`QzFyyXAH7e*TC4Wqq~j0~MNmHSC(=4mX))qZeFpUn9(!-5n9Tzk40 z&+dF&SRhu4#Hy-wDX;UmT;yI8J;le~q_Gsmp@1%dzcoTA!e05)D)-;171ia7Q!8B{ zSZF5%Usg^t2?}w1CmF_h^N^Jn1dxh!K4yHXTdfi{Y+_9>73Qm6F6@&R-X67f<}`kU zD?)*O7;oTYGo3&g6^H~Y-II98aw&@kqT~V0Brqbq#3CVfz|5_$B(cH+=x`=R&o z>&T_9<{KeLCSHk^{S$I5=0HZ~4|#6A0RivI_$L(wm&AW3oc<6Zsd4VYe?s!+=f9E< zjb!?w7+(lb^|K?!7oyeSBUJHv9hH=QeQtPLR@P%Ba%bU8jme8b zNLJ|6DvoL7_%RB`16oiufHZc<*_W{(auxcw+>*_RAzLw5K*_tdh_G?Z<0E(ZJMp47 zq_NGUdrCuJlJ?+;JI@THJR&7afSSr5qNPzlI(=qp!l}bAwh_Ja>d&s z*{(cSNWltkHkHfrcs!Lf5~Itf{MVs{bStsB3L$zdnxw$Cpu$zz!sgW`%R=xFHOlZI zpghpMf0t6Jh!K~k@tsU8(H`YuVPwiA`OQQtBonKW5gJ=42G|}@s#MHd@nR2AVp2e8 zL`(oGr)v5|MCsbE2DpsBh}(EPGr$qyk!>TDygEmwg}&0-A32qF=d2^q<21HVWwdFx z6vU}g)y;-j%puFwQpiGnqAI<>x$tW9@AlxTv%*^c08>Hf3)biFsMeq zld6nDuHwK~C?uR1(A!nsKs-s6?ISd)kzULq`eILtk{l&1ZQ(EVXr9OwpWY+Xu?e^w zouZf2q7V6e%(=soK)Ko)z=2Q_K{^Hw!e^m6n?Kvm<|KhJmeSZfs|HR)vWy*-!TIER zez9NmVa#Zujr?GqUw&6n)CafC&jq2GkdcrveHD-WO&bU*nu?YbUak z30A~mELJXNOIe%_X+6@G4gCelO*4v*DvaVsQ;!TY@`Xxt=2Qhl(PCLz*xuJCx2wHn zg7$SvGkM`}kh~BHHYU_O7n9zXe5 z!GJOl%4%3l6O{HaBmKY2!*_2!akQJy9$Q{1#~jZ(l1rVJ^tNr5;l{pnx5~XL#Ez0A zM`ooT2*Hh_`WWN5#LgAgk%9AA)&wi<3*?4^cJAh;A8AVZ*bxD z#`?gYI>YOl*PEh)I`UO*Q1_4}TmQA!=(YIJpY#v?PP<1%6ZKz*t=5%?of`Y~s(dc6bG8?lxD-0u&%-mUNJqn|a0y$cUsw)5Zg z@y}YdM%SYZU9kzy`n8LJ_c)%deGQ5a4oS*5_d}-IQ`Zp}= zn>O5+cCS(M;JBFk`eJ>#sQ18`XWvm>aIJT_YV>Q~3!A8Se)cKWuiFG2*?=(+`pxT( zcLQGSVm+GR&SpQ}qSxwsD35>=2-=LlG-|!3w_W^L1b^#n@=N2QHuU(qJO?B>g{Qx{(4z&x4eEmq&4*hU+7IbwMNIg4xT=e!4~^; z(Z2BdC}o!*!mrmCkPuXkVDXgL|G)N!y&8!Rf|%Het=0LNEvHL@CUL?8 zH0<|F+66z6QL6RNGFYGxhSnc#TJ1(1DTYykp^gMps~0LtnP}6w>dL)FR0|#fZRZaE zfy{4o^`ir$UR;4iTRjN9-&ic$`ENf@N4kVYtIl9B^ycTEk?OebKe1XPG%O!gApx3p zuOV>eqnZD>8TTRDQ-_S!>leExamKb?POYb*wB_GqQRO8V&6myM=3fi#EEB2K_6 z5?frb|DCZ9tfMX}Fjc4GhSS1dKU-LfYr^vrRx<)kVd*eR+N5O~$JgJ0&i$fcPIR zt4XK=gkc9P#%qk&wnD?Z8e%ij7@akzB~tjqp<*U_(`&T4K#Nzt0?bo@8Zvf6hPO zqS_Ej4@*oMZ7!Qa4uyD%;%!&;9^4qk3%7)+_Cz22HdVTyA^m+$n8CcNmE z-XgB?)mvT?s2xaWH&{y@dhxmw}E@v@Lzwqi8 z!=AT99)I-=`Qg9BhS2s0RTRfsEUJ)XPPfg6!f~n;)Fs-fk{2YV)I;IG_Mu* zrA`o}78ZtW)gX;x4aUVmy`h!53$6pGc;XaRxA~=a-GyEq3Xi*hDeX}m4Sk(DUcC*b zg_U+aUT^AD`-{;l8kYbIWl3yhI^I;j zpsu_|m+W^4M1F`59z*}(t&ia?=g^gRG3;J@wt8~$DLOS+mEecz208^J6+4pg@Ac4M zpPs!3Q&T zg^UxTOq+WK4n{BvWwTEP~{xO=a$fQ^<%P5^Nv zH%Nhw86x)m-}Bn!4l);7ZO_I}*f{Fm?|bdm0P43tpUi2!J44#eHTutI{Ikns-)-m5 z7XE=#lG8XQbNVoX>OGIk8fHDH5N{W2e(;{5syvBClO5Ifu4;rh98rWsLkT~_3PuFYKn7m$R*eI+3YrNNWtugd?sY#3o;||AR;~IzJ zZ%`_M_#OK%{*Kf(2!$BR1Mj*CLy9H1r@9ylz^Ji77rp0aCV+cwsAuPA0nAvYc%c=m zyL*22H)39ziB)-1o3)T3?CFT;0u-!pFtZE74z1i zdf*s%oRTsiJpW&pk1HsV_@1<^;efbm_Iuv<&G~0=#|=NE=*$+)X;+1M%aq&%*FI#D zLKO1cb%#(|!N^K4As(i(1n2qL3nUbFP^|j^rYt6#$R zEd}l-m<4~6wbSSrWG`)JUH+;=U9>K0DGmySZN6JP8S03gc8A0(m>0?ep~KGrT03s@ zc9>DXj?>s-t`2k6>eMg{30B79*Fv20k-|OlofVhn`lid;k3Xd>Io`nPemM8fb5QT&CBGU)> zZ^84ZBTZ`^S?^e2f;?0=@vGK-0QnNd?l1wxV=m6m=zzr*#WDFXU5~%3ox0c8gIM(v z>bfB>4T0`(d9S|NFUs=cmi z7Z>o%wgU80(BjqY;SON}F&# z-X@Z^>^pafFg}u#TzHqmR$Z|cX*S~?55)mvZMA=|fomJm7-ISuXfzow&VMDZ(+YVB z##I7u(dDClOc@osIMb+uR==sTjX39HZfO;gVH3)MD!@Yxm_)Wz zC~2$6UOlhXf@sURCg??$Dc2+X73L)V#de32dAb?TND1M&&()dQ&C7<@$j6;M@1oht z%` z{)0Rjmp{}Q2hC1+?#2v(#Jb5|eXovN-Mq`z2U&1gnsc$?lD>dukiS>I+sfaocLl|W zGt@U&G`fQa92RZ_Ns0liY`6t-F4@4lsKG;&j~NHv)dg;TbNA|X8@adG&}-Lga6vN9 z;1pJd62L?|O$Y=<7@<$AThB}Lp?A>-&tpH3!P>~QX(aiF-sKfef2l9HwTDm(RQq4m zalfCFyN2FX8`rtHdkq?Ox@6+E8R@C6ttx!R64*IZ17UYB+FtMZ{n zy~twAJ=gW1n^)Xnu0C#aaGSq|llXzzfJDa7@t6F3 z>P=1*akt(Z56CJjjCj;2`(i2&y{;uv6PZSJ65 zj-|Z?AAP3@01*vOz5sq?GfyPbq}R{E3TkPjO3U?Xdbq6VsOku*t>iy`!Wd_3c%s(u zq(JxHJj-4!1We#Igui@UDH`xdGfc*=oh#0yb zEZB`9)5e$>0vSOzriC!?kJ_z2fWt^s*rfj4+pu2x6Y^ZacgNQ1tFpo!+;CrC=K~N? zLG}6taYd*e;i7&!-=er0j4I69WRU~d)Dk%O{(DzFk4V<1=SUzDYbxTJ6cb17)w-+! zIM$2Z1!wDZ*~DETSA400H^I~hmM{3_2^VIhQis|cr=^?_b2YCK`@sy6#B~9NF)SB2 z_F~YmAH0J4avJzKhb;(S7QC93)1izZyvD42<9>-xceFk)|LA*k?e;b}|?vm0x zDf*{h(2zT?h7^ercK8UT0l0{fq`wAUl;Nr56L5DDILG2bE*bq7PyRbE0+WUDaDq3=;A`=1GSOOVY37 zT|zOi3kPv0sCF54aQT8m86MKj3%@o()agQU#KRP#d?CG+(5HtN2%h2seg-h5( zuIz)@>jv&_r4);Ta(e#e88PL89irTVN z^I5KqNd*LJ8@j*Q-Z_&l|28~|txHoMIxPf;kXj`t>cg9eYyBwf8YoA9oEr|(iwM&e~66)0rGnD;|UZbE(TD4{TR18#QQfZBJp^&|@hmof%*{EC|4kVr|ysXTqAtZhPT0 z8w{@KP79B7fR+q@KZ#9sbqzM0kKj)aaEVAEaT-E^6Cq;kgbdxYz{xS(^#D;4csfG2 z-lXovh8xroF>?pkK7Z?s9ji|_Y$Fa(S*ehKI?!;KLCpwnG{Y9aV6_^*Xv3jhANwo3 zsRj%48|-LR;)AxXp(=6~FjE8i+C>}oNq9S(SeQPde&My%T>2_{aJ~((u7rLRv7_VP z_jsnOLMamI>{skk{2K2ArB1Ud)$arE zvUM2-#zWMxy`~K?0AmdyPM^n%g+IGRpaO2^^bxLV4YUG^xF;SwGL0V5m{7j-X5DMJ zx0V!L6=HhE-yG{y$`47)MzvuAzHuo_4*FA96t?f ztr{yTDtn34O4`f$|I}K)|NbXw(?$?&&;JF8&PV>G&h+}kkUCAMNU_CWi^VcprRRgn zLy)xD+;6n=%oJUEkyNMxv-J6#&w}l!K_zZOxtiVi2s^?tP8$e2Nu;w;vU~A;VJc(1 zw|$q`iY0KgMhj)_ls~l{ZlRFa=2w){y?a2*sstY9TFip@Rj91) zwlld(r+Q3`E9sQN$0ooEZE-=cV?VaaK;+m~eg`Qa$W%zIr~8Se>9p^nfcE3799)m+ z2onew6!VoWZxIGAh~t4CWq1rn>CXPO2AJZciEnH(X^ujURf|=n63c}eyGf3*@*(LN z6~caGszqMP6col)9XJ)ERp}Yyz%6FDay0=Lsa$p{9l@oro%naVUz`~n`bB#<*qE;3 z!tfSsbe30+$8?gFs$KQQrMnHrh_ftErugi|sJjDoJoU^>B+UtZg-3_95R|2jqY$mW za$g{p)D-%F9cQ{S*hk6o{lQt14oO06>tjWG#)65dPM10WQ`(R;#@t=C*o>Gv zd~eDuXeIDu$Bk_)j;pgtgs;7kt$>vTsCB5(jo*46LL+OxcRUv2XoS;7Nq(9m8q6dT z&B2tVOt&9hSJNJ{z-eS1PLqtsMCntykJsGOSvY^cIHphPJik(qgeZOwfD9-sSCPNp z`mMMWu+T|}0!3lsqSd4=rHKY9lvO8gB)Rc4Hg_20H{@Q3$+NOB*^ksolAw4*yS4?C zWmf*oPA4wql;x%$m>p(X@r;5mi8U*O@bmO6y}m@kF*dqFHKRC$Y_%5_2r?)Sq@^Vql#1VObUIp6k=&D%NR zGSaG$+^;HLBFpmuquC}kU%~2y5I($vF5@y6JOwISXuHZ*4Wfr~+?lX72Oj==4m`!L zWA;s$2~=pqSH<|Rfm@}*EFHlkiqbUun|Q_|dE~G+s|7TxBhy9H6*jt|jPyB@gXvX} ztMo8R#V}?ObA<~2buM3(?%-P(V*LA_qc@F8pAFE6)hwWv8^URYEN3KSH3yLN!z;uw zAF_P86_Q2o%G2=x6hwE?@#Zm26U(fm|#kLl6RIEQPQt;n9>4VzoC$ahD2(I>sWkH zdWViaLzsJ*t=Ne~{g0ZJ;-}v4aa!A>abt{PS^RImXjog8BiTv`o;C55vx86*l?6|B zNF24vCXqa_kE5E{lEjI{wl#|_F+bp`^nyC0zGEG3+4wPurh*hqgHRxh*~Dnd>5<+p zB1%e2TYRq0Hpt#u`@Tm0{K=-ZouIO%KVCG0`FOgZG#9Myi9!nHPfa2yqgMT%_m8phu$19VehZrtiti`)$rBk85D+S+`zWRf&`%{hGWB*Lhct@m~ty_+g z#O6Rya0p{=xa}=%t48+}LOad@0i`ptqU^~q>%KEcr<25Z-f?;`Lo3}n$w`*93Eh@m z&dDsN^gi)RpVDb6WkYZ{UZKPUs-QBXSY$6R{by31sh9<;YB3y7F`puRBGp8LStu;p zuirj%t&UqacPO15)pv`D(i~%2nftAh;Xn}H$65~S_qb}A`?vlKW%^*GYTUC2#4G3Q zs&UxIDiy)ONpLkaw^@MfZR%k?D&97auLEUPfzJ zd^DXWijQ~Sfcttw#fEBB0!W-sJ4iVvO$)G)bKI=FlAzRf6Og`#Qgmb)pMU63E#w=Y zO0lwEEbdULV<_r|@@L9Cc}9&7#q2)r93W#-SmagPl$qh$t6AuPLQsZE+1xWX7(h`L zN%=GLFmTkN_79AAhu!WPmsN3``D>`fg_uAYCv^B5Su%l_((iV<_@RKR{2A{h-BE(3 z*eYiKk8G=dSBAf*HdJBQ z4D`g=Fj>Kt)4ZYgt@(1JCaNHg*pqY4<+{ZQ<#qu>Pj{;7T$B@gQcA&IHq2)QZwuh@=Ieucb&|yerHbi2v2ZP6)m)S+E`}lr} zkCn#^>)>L93PoRz*Uw%TmV0Zlo!EQ(6x<+*`QhY5`&SDlE%lCF06R6^ zU1qJRFY7*>6rGl=@Q=G-TnO1*vuYR@p4RK)taRMs8`e-Ry0YTRp9w}(n2C8gx+bWN zqoxiudIj(?XI84X;Quz=Jl}30VkTmb?811Q=Mz=@_B6A`e0=I&^USUMNl!{6n9qZS zu?a%f7cmOudArNF6Nb+CrId9nIc1%JTf>ZOwaH{V-=ffbC~oa>pouZSsG}b89>FNM zAD({t@@dq&XrC(V^Wo(Dgnaw-Kjmk~K$*~1NEbhKLy*`DIMTdGgX=t`0pL)KQ^H&A zpg6|dRjqUkdAq?Io4L?1xkW31a}Zw)ihE{?DO){`C;p*D3dcDnBhY)j@=b|ez74jk ziM$rShh6U9Vw3sGS}1?UF+>n9U%o?2D7gcmLZ4Icg%Sc3nVq=5^4kVj#p@vDtO^PJ zR+C8@s32A(D;1pa-crs)D#=cnB+G!a1l=})O|>etfeNv-27-mz?oq&HTk7pFbGCGI z>GTrJo}XSNv%M?J+FtQEs%=q>O5C6{F7=_9mSr(^Ayg~0GRwj@GQtjhan8Zf9FrXddqQX3l^3?=jUB*N#EUF;nL##9HNuRVu(zusfo> zkS4Ax8T=#DI(AswBRPet$E?zW$Bkahi@}dpgdlKfs`LfBW^l2yJYhvEc^fvL4a|te zEP&z)YxxiatM+z*r;ouxZ5AS#qr$iauH(rASq=gf9x2k6P*%=>MZ^Zm1w@Qv49P63 z(Q@~SLWP1P8y>Hf3o5}A0+7Al+Qz5-x_F#z*U#hcGvA{-T3mor+yINJ{?FFmX1uQb zK3-2JBV?wd*V;{ZuqMyr)o8OCPd96?>8&>p9z_6-XR}~Jp%(ZJo0`4_H}&o0hrhAXiv{-# zR#P8wFAwqoE>o!_f5b+`4*p>cv@x`0aW%;1Fj&l9ywu0`u>sgS`9#t^D{OeN5f@sq z0izauESW+VT?obA9@?g(W)zw2q!$Hf%kXVwN*%D++iL5SB4`o=JkqUuzFc;f*#(}tfpf%Bdgx5DfR+<`5>NsFQ8?#7gC!}eJ(oXwS|Y?!N95*!_!w2>2pv!WEG-Lvf+nA1q&^H5toZRa>v9OJNd{LtC> z|D?8TjyL0Wu$qrkTXy}IYk%>yu}jDhNZC-etoa*@G{9s082e{3yHr{_a(%tJ&GyI9 zP5;6Q1wg+Gg4^d{wefNQPmh>vE7u#Ze}vl(N4CNLpo18OPrHxX-gJ!xn>;s>wqybw z!)yJu1$%5>@I-1kUQO2`PrenZ-~qwetJ(@i33RgQ#14P3*gOSufAwvKI_U&Z8s;8IFW!!ZH2Lu8y%rIPvGx#dM90DBM-%()MTL+J-Dk!#dWA^3CY;SCR; zw=&vl`V+j3Cyvm|O%DGCeKuArnqoEMBPH~8a zT*#!giUf_jo&7>ir%(Lmu1?!aO@r=kp2qhqvpQuaiF9f&qrUlVJo^EGOW91^%KEqI z;vx9^ma59AT7d2v`vygv`8u)mIBFc6X{%_Xk>Td#y!Ms3A;BojO3mgb^nU%H^Yanw zoo3sns@IB;$T4h!_07XXtChzBQlQ9hEXd9UFA@ZW?=3!VWhO($Vkvo*b`7KZQf*+# ze{3AB>Gt|5!-@k#XIN80`B;l{Q8LSN(3cZf&jXOqao~ zRR&F^iK;L^AKmB=TnR^ays)I{;kxb0JiK}hMX}N^$k{Lb5R`MIxhfSj-267IH$__%Pl#ry z3yLI)c_hg=>Qg`X?_=_))(#%m=sA<*s)8G15`*xLzgx=PK*L=^oL4F)h zrlgdYaywAYY~C@J5C*m>RThHJOk9y(6?%{FfeLMpLWHO=Dl+rys6y1R+4G0S7`mWP z>_(WzJM4ynXjd4Kxw|9~MnU+J2B)vZg9-w2EkblrWwH2inBs_a4-;0*cmp*Vq{h`F z=5yz&R4I8lB#7NhYWfGlA=6M&_TSz~aJY%DIqKGIqQzF8h7C12#L|ewsL*1f%XY1% ziM^PEU2shy&H~Y}AO3W$PY0CW}xg89M9l6UR4Z8SYBKf;w?!(j&zbcqQ}?$|Nw* zfG2GAAtNIFfkp47RiUVpbrs#QeDv^-Pxx=0{_AnSp&U4OiHq!m<28Uiq%p@Z#lsi1 z$vzQ5KI6Z2`Y$8M14SY4LW#OcW=7zXXh5lZ{ZSirhV;MssB_whzNb;gF?6pKipU8f zS_s&OpXpKNoFZKmtKqg|!efZI%jtHWqXS|=WA8C;O%!VSk7FQu6TlztMWLjBPZ4FS zz=TWt-?5w)w|~g*4-ch`1%`>PGj@6a7_NK#HhcZ3?+S*5q;z6XjmUEXIR@`7JGw(T?V;lkr02br>rRZntIoIxt)8jw7IUI^<5P zpbB!Uh12$1R;srjK~xd~S}_Srb*jB!AoL+c)7;CUS~opi-^ZHt@%)M2*`1%BpP#Cx z33Np@R!Roflkd(e4e43%H{Nrtnn@}J^&1Ll7UGJEp-t!E z^yQLL4pDRN4KcJlw9-3o-&mY3lI}P?Lb}H~nx1G_+J;~zUUXQR^K)Ss1X^Ma z(RjI>y@=Q~)hDe1jSx%4dn)~=)LR}rVjPE5;pe9^nEkX>{IlydLcbCAJAIH5=||#| z>A)YyU7UrGAm>S|+4?x@EFJ?@N-JbYWXrivso|xa@G+N3xp03vM!1iV)W5fWe;raI zz8|N+tv_Kb=e3}k)}oYeWU)17{&=xndM$-_l|Px+y3SaT?qk;L62=?WThYd&(Hf}_ zj0gzogvfINM0*v?5qAF5`Sb+w4!=WM#h&G1cj?1e#A~L`m;P+2J6Gq;VyLm^DmtezTyuh}4kZsB#tw$5Oz=oj<7~ML zq60<__G$Q~HtM761}`Z`Q<9><8SDMK_h&6)Id+Plf4K1Ju-W>BNGhiWU%{x1-YBpI zb4}zRhIPy+ZC!W~rapZC14!aFNmF(1;Lxp-(i`;#ADjNJ7+aIFW(>$Kqy{Vm+)0*D>W zg6MGjg(FE32P@4!08S-3{&FfD)JvbZ#q%V2uHXY0z0UOlB++@p&wPOvULR`-YaolY zT?%UkaVWR_Q+iV-F;CkwqrQ#=_0B(vwvTBD^ZB10ti*uklPnE8Z5VRXDwF{MT|A+6 zRrymQk-}9h8bGYyPDAX*m^$bz3*>lK+rYW-9pN79)WtzOvx77-zT_Fkwed@mo_9#- zx6@AkzIz_&mPWg;3o;(GIGq%(snxozZZ{kRm)evdmbOzeD{+b-2#4S~2zf#>jdxul zS`|&Z4^V@S%b=KU8puMjF$rc^I7|plkps=2OxJp?0qhS>3gqv;3n;yVn#lxTx#(eE zzXdBT&x!a-S?X#tECb5~>GndvBgEmMPE5f$|G;|iR0edrA>IujwRf-C;JyU=D_%Mm zrj!8>LM@?G=JJW;f^DzyEhb3ROGU2>+O!ti`CUM%V!UskY3T+lJ);Zi)hi6iFA$Bd zot0L&PfV=OE;AeMF7r=qO;z2Apk#TYJ?vt*Bfu-3olR;`ylY*y6}Hpa1LD%>{v9)K z)YF0=*q~+VenK1PhQjw7AIh>;a^#QN#Rc22mam~)vV4Vg)*aTnd`qGYcC2krHg4{e zMP=TDNNHgf{>M}A1pkj<$<~y$9M2|*Xx;eD=@W8lu`Icj?& zftn?eYkY}$%yPI945PaYg~a7X`e5mqYcl|NI~gNWuJHXx0%Q!1H(c*TqJUE%HbE)j z*2<(J+&UyX&ypL3IJ59zz8N%Qiri`irP1|T#? z%`n(Pydg+SpPCmIIRCJFRT$=6Efj1#>R+C+lYy^42g%|XQ^XH>5sNZ{acT$s_cWt5 zHF4?lbrulqxKM>ZF$;z1dZWud{D&#b zM&vD1&SU1%*)xZPaSttIu1)1w91X>H%q2IaLv{?OzeSA`e@#FXtI_~>%_~5dxW`b| zunLG$7Y>ZHcd|I-%iibCCRFwghE%*+8XB}dxFbRZz`3*!!B zD7m{;DE7+YX_N1f-P}{B6Q8063X4{Z5$8SfL7sl8X8sG+)BVvifdW@xs(>wn6kRhY zxM(L|Ji^WGwIDJ5@9Y|j-OJUW1SC#HU_RG?!y z(Ii)xx`wQSn-Vb@>T}JNOkM6AYI1ai{b-^j=X_)wB}tuO>J0SHJuMZS3v0yT!Gu!G zhoh1#mxOJ=uPfN{=I#D%$p0Tb-w4N{Kv?)?|AtyDqE|*8Y*%(+>OY9ES#Q))&{O^- zVZmXdvHE^#Lv5Gv#6M7hR6K%!$cn!)s9|E}GR3^+x)KDMp+&OhYS;>1d(a`5pprZX zcRPac8c{V<9(G6nbdH%x24$K=%p7kW1`~2nu(e!CUt|Dd)I7_T0D2|I4GF-Dw}$?T z+T!8%dHT4y@t=@!91+CGT#1}~VX3Rqa`HKE+;O*q>m=*Fp#IQM;qy>pA#ydm6MGHJ zh+0xQmJ2IbkxH+hP(@!W{4jBdwdJMW1>s7%4-y-}Tv)zzB4v5arIo8RTicyX9n;{jr&5fJb=_05bxlHpJV{jN+>5MgI7G1Gc0;x1Dj5VyQDV;vfP z2%pZR>(aY4=(>gPP9kkWnLhk8?sUa#dA5h}edn$abp7Q)=3dO z>gg6WM#9S^*g+B`gIn~KKtZem!lnbghV|=EB@s69N+hxDo>zi~-Yy=<0&(|GG7Hda zY@t}~XnJ2{f740NJod7Y`6I;xSsquVZYOyVIlm9`WI6@A{1hy{I?*wh@$`-6Eh^ok zX_GIeSi%gJ9E`VFQNSx=KBwaa>WjkBq`rS63*h4}&+p82Miq#pI@|iv?aqz2;9yjPsei zuCB@G6=zZbNKWu|`G6NToCe7)}ig#bhXS;^Cq7oft!IVD@K&Qfxb(;KRj}8Gr z08tW#&S7HI36{#L{DA|DZ~ZL<+G4|=e6t7uZuD?gqMTt77xTA_a<$12VHXtY00zAr z?b!3)hN)dVBtakZZoGQ(H}s4c!4MDJ`IF#rghRL#7Xq=_y5VCO?pYvOQZqKF{pk{G zil|D}gq1|eH(D}yK#l~m<$x=H3K@x$Bj-de7_1q4N*RSR_T(8TW5ynOdFx^yIz9!d zYH8VaQUGKdPK>rgwjH{&)(0sibB-*z!#(Z-M2cuM`=%wM=3;pou!NnHKOc=iX}4rD z^r}k4iDgTx$b&SC%^Sts$WeAkNt42q8i(ggNt0*fol?>ie9Xp_UqL%#N*agJi>Qa9 z1AP0eMtrc8Akj_#DUxt<*}?-M!vjk0tCSQ;p%}Ow-8a6RK)3%fULn{W_M~2%-jlNbey9RyV^UkWR9_9XAM_&G3Iq(MDiyTp@kSAHCEJO znw;0ZG9Zz(01?Tk)P+kops6l|T1|jp4$Y*n8W&_#7@Ml7!fFbHs2bJX-vODOYp?2r zI4odFE+ix{)5La%f3Hb%vO;UkDkJej31CVm1lxaj`svH3QMcI+FB&8@6eX9L?pR*X zhqKXoGsR61OSQybx4W_$I1EmvR3g>NDtK{*=r;XbQhbKJ5}Gdbd06yzGnnDXQow`> zoZ=3WeOPx9@1@M^G*px&6Km}pZy#1%CPeaBZpi^5ze3-5Z8G7tF5`|BzLBTMr?Pq= z7r@#x3ogm;#1)*q(QAd&l-I!%od@l4?0I;U7pyt`IYn+YnV%$Ef)+UXqB8^nmFHC9 z92X8(Vxh_qM2RGOOoQ~fYX01?Q3RB1jBO8rj|1xjVB-IUhop;zdNQqtt`V206-$0+V5wRFH1}+ETQ& z85A6bZnC8JwgGU90vw3brUY*MPYFTvAf*`~j7Jqc8B-$}HW_2*Xt*61(>-MVO|QUH zN@6Ajz9=!1oZ`W?-D#s(-Cfv84wDCR$E3eIN29oSdndEf@3cEutU0D+DnHfhY9&utJ zaBd4AAiVf5(){2;fwGZ=Pn@k@makC>?-z*^8ER$cprb(rcYGY-Vdip%8_0>@ zTF~Qq{aEL##WgQjj7~MI?fVbk$6>NnR@7I@%Rg$vdXx4sYyf{fA{Ol|)|)ZQtp_&N zlfkm1u?@>+mMQfk!-!hrneO%Yzb`CJfyr?nz9PiP4}Cn?{D%LF2b28&+@cDQ{**_w zUagVR7Kea#0x>UZ#D>v|ou1NZ#10I9#qEp0J6OC%mGQ zi1*9i)9^+vF(os@_-kYKa+TYy%9~U*`t$`tX3oM>Ns1^hU8VSt%MK?aSU^r8^W@^G=Wm{&a~i@dnT2t5fb;r+#|k@LT@-~~o^8$lMOZsmu_GF!(1poLCA|-jG8wn}Ggob1c7^eCCprN+JWJ7QK&u})L!U`2H z^^ZlY9T(_v!FFuW>!NK}=wD4hME=G?O#f=o$Hm*xkzW;Xv+epBHcpY;w@4t%42e8R zYxO=RZEw`q+gNi+#Tqu@#`*~hfsg5mr6Dbr3He|(@k!Sv-8a2kZs;wv7 zmuy|bi@VUvgsd9!CQqJyM3qa&jUSJoh=#%-z47{o$1jw67wuCWW^z>+E-&C;fZu~| zmiY68XgCCQWbxQDjYRaJnj0S7WsRs7y2ONE`0&dsy)lZGf2Uq_$%*IVS-P10B-wk$ z!`4A%A^~Fyf5DR0(}e}`hnD(DB)x)l6LAjD#B>?V$cD_C+=#5B=*E@8G3>=f(o&sB zq^;M&WI4%Z%AZ)17Hw6r9{a^Pmbu>s6?nc%sAB1@azSP0^Ca{x7B{rUD-YT{=cniA zr*h%`s5u0|?|*{#40Pi=CCTsFtgYp*m@&LsI1{Z96OiL5vF!9i89X!`tr(7+Sxy4m6%7&jW6XD!V8~rxe!UB^jD{QdD>)t%@rh=!yM5cq`fTTOX zP?m4dgcU%$oI+|=5Z#4(ZtU#_m@#c?gN<(tA;t@HkFw#DBhJe-=r!fRdY$#L zO;C>|F zaGUTj54jRm8EGDc9jH(kI?FaPF}nOrzDhl1I*cuzU6(hPXSvP<F_CJd2`nmmq~pNFbXj|p4;{BszrS;A7!VSvD}jZW$4CC7CT{Matp z8*J~=|A+mog`YGKF%v0wywYbVeGyP0vxbGC6>XM8_TaNc!Jlq&YiR5g)ddEH_lu<-3s%NA%h_|b-b7%B4<|A zTA^^uZdtTpIP>E|(7T6Bw1$MK@mmNzpZol=_nQ27=!c}J_~V$;hi1_cqNoG2A{7c# z8!1IxPdvIVos^~Lm$l0Sj-q~q?hmnJ;}M-Ms&Hm+_w>&xWMj|a4?V~1-giYIDjb|n zQAj`>y)LnX>?nxyfoKj6#1R9AgH=g*d~$CL4*PI&enK@1Slt5cWQPliV#>lxd|Ze{ z0ebS@M6qvN?ycmn1o_;IL8hfRn#qgqu! z=0ZwHWj1^^2QJ^6EY4!HT}AcJu%q;se7kPVLZmu4eNFJz-sn|O!KsY7bkjvS&JUhM z2ciS!r&I92UMru5>QpOyY>t~%lYc>KYw$B+lSlWjQnL!j`&iz1TfCyN1mD?!&|dS0 zZ|w(<3{lEk!!h0!#XcNjKYh9-9<1~S0d`P_6*QFYBE`6(@rpO3}RvY*EMX|Hg}iU?yYpM3Q@RyIVXOqQbx1$47sa zNWiQiB&H!p-W(+$>3){3J*j@Mm+}Zg(XPYpL`g9OH0w7Vw}QP ze?0(W&gb0$lz|lo7la}AQ97N=M#C9=VFWBJT#vAp0J(6G;!S%$b>EsVH)_%v*b)2M zyH4i)nDUfM<0N+Yrp1kgQulE1ckYb?!k>67^nt+GFK7EX`4+g#eWE|})1T7ub$7Jg zdCh6e&<%04I3ri!*X6B0d!&><^k@g#oD>OMWnvix6Rm{$R7_vvYTvHf9(w9 zd3S*aIh68sbva%yz4$2$iEB|rw=TwJ=9Te{J*wSIBDQ;8je@vIV`i4Gg|C-M2nrsV6&)yuFePr4WHBO*gXnY z+o}6KWlm*pMOZMtgd8U^f8@imiR%eGS(e{Baw&aB&V1x0&yaDPp8+2~MP5ND#VkYQ zFqqQqZl6v5gLNO}pdX`gm@`kc4u%^O3l~d0JtF-=U%YW>ks25cbX3Q-?>LgR`^t zLZYMBQV)?T2cp03MjCme`K~KuiElPjIlSAJ_I6yENGJ0#=?gpylQAK*RbARE1>Tt2 zupj!qG3~)lq!M;xAzB@%F0ogFy;04gh(s?)l7m(&Bwg?ha{7S#wBsvm8Ku736@#iv zTUy|?N3$UiN$IooQ`}VSwQA%6%>BGIbB8E_T;>iaOnLs{`*=N_jNnII`Qy3Q#Ow9R z^LRCa&u_X}drgnMU=RPxy@k7sAM9y-OU#{c-(`oj-VB|gIlAOtQzSgeKTE9KPJZ0( zDPq&+`^}7Qx*IwBP^7ay!6Uo_F4jxsoXi=2oSU<|qfB&uq@sM}{O$XtKU;z}(m&3U zyR+P=jKchTV>Vvn9k`hsvTq#CQ{<(vbfQm9T;gtCmi}nEcnmxwOvm*{JWVj#Arta# zEpmyYyqe0?xxiP4QGmu>07k{s>i6vMso-SI3ZPUcqa?D;dnCo(Z5$_SVB~L~KYiY9 zY&CNMV}-29buq1WJY?K5$Wn+pj3qt++K~xfk~Lb0103t;s8t=Lm{;F#qc0!qnd8F>#a2NR<#0(MG9+ zatA`9BOt~;c)+mt6mF`RD3!CqA>p@=)!i3<&V^F*FI6jeoM6%6By|!M$XB6~nKI^I zUj@Ko{8$)d=USG!dd``;3eW5pC!Ig{JD1D&lY3;(Fep}IRdZ(L>Fk)J8u9n(!hf(T zdD(|bv;DG<HC;_7##@MzX!3q~bHO4}#k^V-QqvCQwO}(=X}oF_E+uj;g^itwoAC<O30?+4a~kXb|YbXhX2V;4y}dtaUjyA9eQVxvH4QYNPgqt5B+X-E!=cJEEs^YLba+<+T|BjTAYtEE2Oyij5A z@oKs@)Tl;P7^)1&L0&)eWl7ct__#}*8gp$rg`m7ZHnZ0$XK3NcYwEj`yt9X4p+19x z0v{`=kpKdqPG2`%!}W6(7_!zD$UpWTswQwCMtLyIQQjgkI=?Ve%dxj-aiOqNI$PUx_9Qx znKLtI&YW}RjCDn$8k8Y2o6oS2qt;!Huo4aR_r)WmBxbR6waXHEQh=)ni!i|$3fy_J z#i?8Y44PeEK$m3aMn{7|>URm0oWqr$kVxnXfyhK$MPAgUqHfw#>ulySTOu23R9|mj zTo-zyL0UPE5X(Mkv=bcX(j{QT*=>jr;lAGZNY>byP!HHQiml@md1KhJdk#F!%XAVV zGQslchqXiiEn{IZc%XGe71+Aoam(+>RE_uivf5ePc7XGe)=)S2x+UUq7d3%L;|EIY z;Q6_d$ZTTTU`GgCV&<@(cH)%9MO{Pv8x$UbMUvg$9HCdy?V+v>8$I53Z|d=Qy8-M; zc8C+Q%d0f}J8m$l?@}lX4v6d!uPJIdjS*mP0^%#QQkma^)wYqeyYRU06L$$I)OH}{ z3$|LmgIyY}G|TnoZeK*v??_pTY_;0a#z}P+$4$M$gpRQfQ-B6UH&TtWQJ6?WFw9xE zN=wxHYr0EZ*Tqh(*xlr~adXT-(7Eiev7Z=3(Z{XhG$eHuKtAYX7uQx`U0DkW*p-5$ zGTxd|3AqO%f5{a?mLKRW-TkCrnD`1 zTRrD2oy#KX=;=0l4CAh7>?kJ_&LAX$M_Wps4t#ho*HlI+0y-e-h~{QK_)=g90WC3* zSQW1M+~rjQ*|lEoP99GFqGqT>54;ZwGL!608 zB0D3wqg@ye7W$n*KJ~2sU#D7m}+7L$c?$MvWPSN)ih@(s64K z>%BV#+k-!(11||kX`1V$@b)dNQi6>;CSxyq`yHDu+phZ9z|gVLY5+r~U~mi|3j997 zA`)S1uQXUm`sf{3$T({RrUliAhgPJvs%ZOd22N^Pge*_BOtpdU)*;xnTYSiEQZGeY z9O{V%u`|z#y(B2z?6x$E(rogKAYv*chm@BR#2QXan(@7`F!`jY8jA7-qln75hOvt5 zX4UCYURt1RfaThtFpyz`?q8pCxyRM2Y$W9(M_Czg#p`U@Y=F1gRH<7n5#R`Y>4 ze_#C!mh2!47^}qGcY#9o(CzlsTO|$?agKS6cMgSvk|n=L$h>nXQXkS2(6z8TCY4@R zMhE0LTND>{5Sb%u$p^!-qPR00dJzzEXV`s=R__+s)yhW2KG3ZjfjE=U7T}D7HjFq< z@$0kkSf*yzzTY^u5Zl?SGNfg~t@bU@v4xl?(MXJRY|5~X+js2Sa~V>yyN4&1Gr6%{ zyxVp`S?(RAZ8rKorD`{XY8Iw#&2h|5NmXSt=dZvv_j%$N&DAS$EugD}Vr2w5j@qyp zvbqWqRw-&}d#ge4kS+98ItzGLWEAJK$(cefo4$eRGpm_{m9>z9QZwKsa<}>QS=*MY z-Hz$wgPANBW{xRT2WHLYb4#LgQs$SFvdzZ7c0O&#sAfhT#qBT|pPT6D_2opNijo0( zJs1$`(WUT`z7;U0W@Y@nJ&-)Iza-lmis%)drz0M|mzfP&nNouTcCn|Gz8hqAF{mm0-~&F*lA zS>ZQQ2aISsyH6>mB)zccD;G<-S!UM8NYCXHq%6y2p*wd47v_H1+D4hS_q}lPruD8S zV!?NT{Jnj_^&*%ToLF{>x|FTr6C4Qn_A|7drZ-;{1PsGLDtB_r3N061RikuS)V@E0|jml<|wsvma$`5^1yn-&)d!*c;f&-q?M-@g~k*8S_C5 zJM_P|(+AEIj)vHUI&?#puM!j>$0|`|-blQ|_-z+2acvG9QPG{`BL#XbXX}0HbY3w0 zd}?-F@#DVVK+s*J-_QLB!m15?_T!;wY|}iv$Q=^^SIg3H)P|ON_;foK}^fb z4mj#EoGoLx~;gK0&h*a~F2>+eY1Fi&{u#56j4A}TPZO3|706gzmC zm@-%z;@x_9W=kWgS)(%Fa>#2?hOv zYZ#%?0uI*9;*f)S4z%tD=Jp|0!q)XPO!#Ruat+~!dAce*Gj+Lwqvj=v%<0I(HAL;D ztsxwX%_kstu>NJImT3j!6*r1cQ!w#&E`UY}4$H;qLemJYj!I;4#*CzJ`{&}Yd-uz3qJGIZ$5lhuoJV`AZvNrxA_mm$P3%S&-&ip2`y=XI4s z8dwY=Dm5M((sLqs;B7PLsf3sFPkq|S_d!Fr{F4rr&CB)Lw^@oEG1dUkuHq64s0hrG z`M#M%Hfv;jMPETFY|t8t7r`eUP7)TNjGohK>C1@;y-zpMzM1>W>xVFBZ6rpK$yA!SdtmJO-e`w zBTa|m>mFZYkiBrujOK{hnq%1y+vUuw90afIhupX4iobh(Io~oX)L5pB2i-3ZE4W z1szm3`t%|TC7k?OT{cYRu5JG#RtdJ}77Em1MBPyYX=Q5_%jTgfwghiz z*+yVGaw_>IMmxJVcE^Xd4RpdNxW02MWr~l+`@;jF*p6{L>!$F9bUIwAMV(!aYDhn5 z*_)vlvumq$4TAd~M0C>edxm9z!j)~Dlxano0$XdZ(BK>5z3F5F)b1(S+tbp=y8YqzVq2luq-V9)PYEt{sL3k(SBrnLzp z>!Z3}$`Q1_V`~R3k&a~&hsDfQTMrEpSCr+qCUE7V-cuf0Qd@v2iY!&vSp&rlhy|=d zq%Y`V=8Z8z7!X4g*$HbS#%sy@Oo}n9;^+E5o)nycT}O#aCUTl*>5_&FCp- zT=H6>$r#=kj_y4qM7B3I^k+&ZPtS)|lB0{i2F z1~x^l%JA$=LRfoh7t<+x`Ap2V~4(68(pH=K~)e*=1I$7fTG z_#nT3d^TD5)YN2A%6~;oUUSXypbVMaA#!K3rj+G(W*a^B-0}(#mCx1|#G20rE(TaA z)jg?fV9b7z!w>Cq!I)=-DWl8+V(!4mE$PPq7XVE}d*_+hLQ}PpFf@@O{ALuBb>JG6 z8Y>vjBRi3Kua?asWdU z=w&n*vs~m9oY_?nUBMV)u0o||yK{{{LgcN!Xy;t#hHBnyrkkG4&qb*STMo1qx#m3t|8Cg33rCISx!uBUE?w4mT@jMRO%T(KUy2rD_2ekR?4eFBeyuB=Dxv zww%o*T+ux?yiJ+#yF;!^PG^u8A(z6DDRa5visI_h5gDM|i@TflbcOuft*EcA7_7CX zibJk0fFs%QnRKy1Y7}iys-Wty`$?Y7?0ZZPw1y6Viflp087oOgEGNF;K?9J; zNcZQL_$f+@e=yC*^0eF0Lv8~63xJu=6L21w$#clnPfW_ZmWoz)8G(o!RAJxOACHp* z9ur03N=kAW@%JASi!Df+QMe3uiF(jOQ#*-V4koP7TqbLQx&-%!)>wVRt#Z3kPv5Ve z)w!as6CT~ib$_CiVE43`_g321o$B+`p5JSZ9s?(u9W-06w%5nYmkYc4__-51$)~H2 z8JX8>yevIWU+Om0$Jd=$X}GK6T~fK=d2$Vf5h%$j^Fo7x-%4tQy!1T2DtT+TAlkEa zRh?7Jb=;1SCt*G7tBvpT!+EesCJKm;X>eH{ds~Vb;JR>&`pYF8F|XX&BVt5^X`|r% zg}qzD=MK617vI#m+DdsQ9_6t@*8q%|tJwCA=HX*gK9DD>ORY^Jg7o>ucg_vL11 zvA>fd6u0eZ#tn|`qCaR4XkI2VN|}ONFHLUVg9CN>*+e#-P*a8Eo+LY*yP#B|oY9Ix=-<-vifzJ~RJWX{J_PQaJnqqC3scQeu!!0>zzlo8<{<`S^mnkuiWMQ~DQY|7za%}K$}ii*2#l(VF| z$ZOmR$8$SR6vgEq$urDn1Lrrv?xb;u~qz*vm!q-{rOIsKw{>%`lv(Pm&! z@#gxqDnZ+ug}OYk&8%849-7yP_%T3qxO=G=ukQ{;SfGtj!`SCf;|;40Dfs;t5WJOD zp+80gt)~LjC66AE=In_I%=;XSt==kG)#}Ni!TYF4ZJ3v&Khvk(%HN-!OWO_(IqM+ts;d(r9*77gR+eu}ZKy@dlcho;Y4?P6^EedEzuxJ_l@8kmkOTun!& zMcl#C9rH#Cbfy=TgHI|^RLmVC^cL0JHYHG6Yv5?0*(k%p502bPZU{9y*_zTSU#z3X zY`O?M@6KvChguApxsI zAQ}wz&Xk+xNn>~{>L6D1y3#aw!Bs$Txp+jM4}x*!9VHc6JuV_~$qU}*h%^8{pUS-Y zD@7{v>2~QFcp#PL8k`DnoT6U7m^x%-Debi!x+2=UH!9E}&REgOI&kLDb>0x9&*~CU zzoK^61L_qyxtgx>>Wqqv>}0t%p1&h2H`eg>Nb*{G2dASjW3845PcfB!#KVZdc*1zN z-~7aXl_J)_b83Ff!DoTy!#y=JNmou)^rZvwy1bj2*#L}!>nGsb%mZF{uw}*l*@rHN z4I;Ek@*?Ry-Q~j{*SoyOAakkHU+>aND|)LI-Iqi2WrN{Y_2p1}*R6B^3>A zh;Mpe>>NGxaBR#r0L2d$9&Hk6Xu{|cb|!lJO?8o}g}~igLA#=e6c!L!*f~B^CMH?a zIv1mm7$Pr1fHPNLh>T-K5q|v8uaXMF{j3s=1`{kaRwz_T6iPuHv9c;)x+|Mp?NSLk z#O*+oQi;VuYHk9P*((82kTHAwomwSvU31)a4wV7cxifaRKg4iSD?St+a^42-(s4~f zqM>a{W5l6lt&7$Wg*$uL@ugx}$#FtY~ibY27~S zpKx8avJZU`pv_|=zBn`)ynP8+qF%^YYRmn=AK(+!M`WyO<+IIMRt zEHkPUQrZL6>b+!Jqr4!wb74`64!zGo2{K1PJ0Oyp<}z6Y#4B-do(l^6Ap4x5x88}& zo!E>_sIefpaS0=y*XgS`PGG0Yv&;{U#glM>QRTS5KSX>0@rjP-(S3i&R0UB574xEM zmwxodp?X=j%2_-f8D7UdR*u9AEC$QJWq@Qy%CSL!l#Fk_n3_PtQWBcN?tB8qn5WQ6uCa4`;AW2GG#%`oGgza?$sjdZWOizwL55^S-E^+L2j9K) zEs0=;FZ2p)2@Nxk5H@Du(p_ManP>K2g)X~8%=OZuxOpevm_bB^l;EQhD<&w)Aey}y zGJ&0RwvIhV_oqwA8KqKlALF7@uzI>_;F_VI<*oD4tOj+#=xbN9n0uk?%jtr_&R`fR zuC?)JW`S#&#psKMfg7#LrCbyVBgJ=%4qX#I zcU7|x9Xh77oTyzX>o7{m$?lRpou4rZnAV14L#JeCTfb%T-h|%9YLa`U8rzL*r80|r z09yioO@Fo4+Xl~aO4ak(egF(ev2{d&IukXwtlX?!bDh> zb~`MV;K#1x&(f1E6K1v8`SmoDmiy}CMCSDxBTHrFUmpA&?6l^-_P6xV%+(GRK|IJB z%pYwkk+huWMn{8mPqi$_b|rk0(=EetP*Uhi_5R^b+-3>yLMAJvr)PZK^=L*I9rK&t zyc^OZzb&SDG-OqfD`!*vx&7JkoaHD0;Z<#mnlYC5m96M%nTU?}4~2Hw;D>tQ44G6B<~)f(1#$MQq+E=~p0o<4RSXqpI20RdbnSLMR~bdq}zWhpPlhGa{O(2F1GV zDg@O8*&C{Z;|VFL+n>ZiXOWWES(i_m_VX?!b6cJ*a%IS&$;>swL~U@u4kg@)SxL)A}0bBVW2Tl)UgMokogmA=Wn+z zJ35*ScHs0BWPBo#DZ@|)E1h{pr#gI?)KIsi+5r2^q)N&RHiPIa50K20)2+WFiHB#JmIH+zk?C!6%^^SF$SH`;P z*cTgZhE^E7f&7VZtVOw`npwyY@tJkdOnQoEq5V(qJb1P}GY_?{&+G!)nVIdJe1kS~ zSAm@?XE2lbGHwXZ0Zr%v#6RXr<>-vAjJ%qsg6qqY6ynqjMahPvGv+CR#bXz;b^RRN z{cx-~K8!SiP~>1?VLyY#QYska-*NQ-TUQWT0NV0E{IJ|(Y>pMM3Xwm&n?sd{|B&h2 zL6GhKL-fQbIF!v*>H!L{^O|HXl`4qGD>$2w7^~;E5YN{| zAV7s>mpi%;O3a(UG#VYtJ}xYP){6#V{gEaWgbe%6r1DV9MhyFA@3x|M`;SkXVaEV;GplYh& z8N=I;{G~+J$d!xMX&&6|#LQGRc>q9)5Xw}`0|Jg3@Ppuj1>vQur-}zd{b1!iOY+uA z=VA34pquJ5+PGQP6`%UKdMYt%Ys@J_t=Q7mp-bSE!MkK%I$zz99=kVFWsU4OhUKdS zA6h72uG=u7S38b@dQ3qPk#{o`kfE3>6m{O|a@%E2v0Mi3T-*`nx^f~#>g#0q`m(B; zCEE;h9g%|+t|OSh6x4zHcyr}Q_`pn}jOkB-pK4W?2+=Y>nL7~F?BYAG3+?U*<6^w^ zeZ7Mru<`tSkTf37Gdplmf&7ERWK0-DCXMktRz!qyNro>DsHo-G^Le=1SH;RSOuWM7U(L;Y;m1Rle8 zN+j&}W#BSb&IkK(OavJsmZq>8DDuh!qt<~6Gf-eQ=02qwDD2QUEZQj9FXSPduyK}< zz<5HL=^VSsj@y{GBx{aXAgj9{z z)TP7o%hVJ5)La zYm88)vCx$A!TOG?)^~Ks&KF;H=Nhl)KZ>@|ELWDMH+#@9O2NWZQ5bSjmqdDCibz&B);-*WBDz=pPDzi z8rhYb=_JJF2;6q4aMbYt8TOOqkfUAH0Q~kV#3{_}k4(WPN4&&j z74A-2ZdMT1@pf2}4SB{lW)^vzLChAXa)nu^{y^bf%pZX!i(56-%-F=1FdBrk4%@v3 z?ePLaEJ7KVVy+IJzUDYA!QCB9jK=5l#!$M5M&KligOe#E3&-Pn`+-Oa+2d*2rttIl zkWscFBveu`5`@S2eQ_Cn#hdC4 zPMS}5)`(FNf)8_J=-3AaLr9}`d_fS=2~aN-BINQV8Pp4cg&S{qA;!osF0gb;rY{Il z)Rq1iLdbCd@dY7`BR(6v9+#h&==U%$2sykWr+bnH@_6&vtgj_!kgxp>^LYD`Bkf9> z;ACE_O%sN;!0Y% zUt-r9Spncgz5a?}jI$U{F&sBGu>Vd8XK?$W3V}PsO3RypkN)ksObSyXX3uZWqYOHf zKL*Ymo4aYpHW#LFb5txJIUGk%+>WObV}VS63?S_DY)|b7%frak2b;|6HPD1krSeX| zDrb%8WQ3fhO0xEWBT;Qmvm9%W8=|$+U*mj2`+W7#akuOAunIeGw5Sh)s`IY{g5!pZ z8X(a95>7or%g{EV5EK7CzG;Tp_Rt;P}#T^oza#U~-%Z~?F@Dv*qsw+t*g;=YGN4&nG&hXtDVll*zt_) z%BGTlraz?P4~9`lPx+KXNengRR@EI?u0O0skE0qAfc>O~wcFH5k?XRBgF0oXei|8?B9#$e`wi^4W)Z8a2xleX9BtO%i1q0p z8FsB2)VqRi!CoaDP4Jc2C;=>&3m0}`NFkr;m8z<^xTcuS3Nfd0%h21&O+>se#SX8Q zPBpuT_8)yXFsVI`i;g7A$4>aL88Dj_OSn61Ht3LRWzUeU+uC(H$~Z(zeHmOa;BvGJ zn|hqpp-%M9!?L{5C{)|{#j&LcCgI&*ilb?85(a&@u1^`)mkqX%m`;g!I;bAdA`y`t z7e)EGL>AFr*y$~}cZNb_Yu+A%#UquQjVF?HotS_fFD0hYe}sSB^g|Ry;mNoie=hF^ z@s4deHRWPE)2M8Jlwt|0x@r`Ob@6C>no?LM&9i92xm5NBUdpCx-kZee45AKlmv+Hg zQ<4>MMGE&8gMRE-XuP*PPba$l_6H46D#K4y`0PZhP!^gVR1_aC7zQ2hpG*|f$vDP2 z9ry1CGfB=Q3h`1QK}R3^dFyR7>L;ek27$$S$e+78kU(M=6S=L!8o-&52hWTTPEoJ} zI+T%~P2`(Ih-E<^RL@|hHHb2ZVCz+@FPEVS{P-vDhnGxSSfju!!HD8au!Eu&>2CbD zvnM`=kPVq2(u{jx>YB4K135r0;Qj_byhF-HJYOm_J_0neyT)*>}_NYCi2N@yunIn9y1+TC0UR)s}q* zy%bjqSU%waCf5da>EPUpr1e4>mnE}_$&OS}JU`c$R=2#^1Txy^#VpyHP9Qs5Z8glN zbka=DSRFT)Jqb0*l>T*1g7npdO$l_jUUbv!N~nYfS`=Q~+?5d4pk!;a(Aq4tHVZjA zLfzOVmveDdz=i6_;%qNAmQCKeG4qxOy6Lx4wbYUsTQXxyW^6LkAPXte?0=r#?igIhNP zZdcHa6qcpKrt6e_suAWY$*;-eQk`d9Hr|)x9yU#!cSsn>UJ&9E;GX||IeKh0E1r2joK_qVNDq1E8M1XAVDq6b=X-%Z1)-;gx!z>b~GnssS z+YL+ecCv?a&VrXVLo}J8J3=9DrKY0Vw?6FD;p=^gQwaXUE@89GIpG3bhuku$woIxm zlj>4wNrX+6v48>iF4XKWL4|7fn4nVRAW(~!1(j*JS%8_h+$>r$PHD+xoJyY1@~R-O zKD$W8_U0s5v4p9ksU#iwllbIuqY%fq4H9R_YUPax8oS?r8CDe+`y#ltqr!c$rDJaC zm{ql>rGE0Mt!dn|=cVYEAau-;Y!R1~w01Tv`)^BAvm{asf)xs1eC{tQ7G?zJwwT$A z&os<7X>?pIj__TU4hP5FJdX+p1rLs0w0KU7=d^fE^LY+j4(mUu!5rEJgJN@h$0S`m z*P5-Z+1i?|&7Z9ZYN`4JH#Bwmbj781t;yP&tgXq~{K-n*{OW8)nht;Qc{iKGIj@$5 zuw@}^SqPWHLTI0P%s+BRZa=o4Ts$@1(^zP9<|_bK0(cbgsaZgbV|L$LOPAczCAW0R zP4-vT+M9+F2U?3^OA2jCp-Ul!y2+qJX=3lKMXt5TwHCQ1FLHyf8^0kQ=%eMgV7i}> zA4EdxYrja!;Eu2;LpwLHvPRzJ(cVvAB} z9q?t18_G?CiVd>5+BE}iR}kcwup+oSIz%&m>GFNL>x=tX>ig(`@!1(EZLmYZ9( zAaZ2Au5s^*h~G`Sw2=AL@i-Kgb6tE#WH=m;Pb3h;u5;_wtsVS6;n7?!que!&z*cmJ zaIj~9oP;XMMA==x;|NkyoXQnu6Qy)6JCM#GjEw^ZZerHu#Uky#lc#GSd!diqH=0PL zaMfxwIb+Nk{7Og{ghJw`aJBy4a2Ub&T#AG%*JU&s_%efwz7X9DJen(%5|bH2sVIt* zlI+B!c@Hra4qiRAVN)VG*;7frP=>6h?8b5gLzXuf><%#~9TeS%-Dm8AL~(w0*1#pS z$sxLuHJ_Qc!Jx%IQWZuiH=9oOr{{1vaAj#ippz5Ms~HT2*^HrFYLt$Vc2z?21FN^3 z&ZO9V*W(V_;wHCUE?tOAx8@LZZKPZZ4&}0?>D;VQm{)J^&Se#BaF;q_NLiiUjXQZJ zdgyX5J&{e=&jv6pWO8q9{lK3@(SJTgDoQ zSi!ebt_{i0V}?%~0aL8NUU0w4*ZZgegbjAZG$ za;}tyA7U7Hy@Q*m__3?}FrxX8t~x6F!(;4jcq2Fx>93@;Yct&t#C=V43$$hg;HDTa zxk2PVG#;E{`_jX5L8rZG>-2Jt|NdOQZwg<{F&vU>|Txt$& zP|hZ)=}JXFmxi%hJ)rt|H6?EsB2yxp>H=$d7rnIIvJm`gSi4IK+VV)$W z4WATtW4_xHnJINONR^X1Zo-zhPWQQi5V{Rb%1Aa{N+&Yu8~n9rmyXVex}YCH5;)^d z5RrD|a{J2pP@#~R5BB1Ug<-m94tz@;Qkd23ZisNiV#mSm&cvn-ot;-z$|!0Th4h?} z!Z;l>Fom+i#{MXpRjgrB=^7UbMLJCxLsvTnZP9>Gp&v|G$OUI|B~o#~Ajx#Jkeei# zLd#%!g+RcrnsOm`aYs3sDEbEEjuAv*h!f3)<{K?nhIDNrnVU>2JYjceJG#u8#vYW} zkpSZcf8Cxa&iG-iu1w1UR1>4F4$aRlg%}{XzAG@3Ek&_%7{xFm`1Mv3>evdf-I`>T zqZ`AzoJkazLzm={yF-e2YAtsi9j?7*LWy2q#t9Bzu-wKagOtTbs02GUb#-_4bWc{!B8;9c*EJh>M5tXJ+(aqQH$Li`@3%az8Ysg^U?-}t znu+ySXny=wJ7i$8)Loiwuj(z%$JTXa1168^la{tGp5qHFATd8l5)1YhOodS$Xoxx& zf9PD-nKhP}OlOB+J2VP3vy=|P7ID~BaA)g>oW8EiCYsC45z@3CT~|(|urEm`!&p)r zy9Bc`2@x^3`F6||bG|V7)Xdbt%#{VtLPyS9=u^0C=*C^Z>)__7*M0FVw;y$t;Fygo z1G#F*C@_T)7(q4R0wYmw%$GFAi_T}>eM|P+P=@K9FrrMKUMO#rDT0*}g}~f*F+6xKUd}8) z;!9t~NMy@-+>qla+V8hy*jbX6GGBELI!g}vE!jv*;}zA$b@dLU4;U%h0So%7J0rgzdeWF? zQRbpXlJ7{uC?;5jjio4*Qj(0iVb+d@K_MCtwvt2=CnzGm7AtjXIWC9&DK|JL<+xTJV^l1g@f!PkKQnmH=r zX@mpu29B%Ex3IG#}(FKi|*WNVC> zhvQrbwG*OCZhtfbZ*$eg%-Jd=FOb?zAdu$}^{_Gbnj^BR$TS0}<-$Xfmka8ZlCKSk z%GYFcXv%ZYTC{YGJ0_;;P|nM1=qbwNFaMv z6#+D?%|bw^DZHyih49@l&2|n-`Ul}48UbWrorIxt*P%gfBUCFJg{cp3T;2&+9VzkP zd<}dgb%5AjV_3e4le&9Woct4+y z!|DJ>>39b_6%{3KaX3NX@R80rD#D$a!F2m_vw0k<2(iM!^&l$dJtlm8P}ylE|4=)Z z1XrI>Ys7WKrfz=TY;5a#aulcYUBN-LHJmNaj_1bb^9CLJ!WMd@U|%JOsB&1_e_`!_ zy#*>hm~_Y(?@qfE`IBv3-vo0@!;plvC1seZEMHc8aP(bFIp8Q(-DqD!Nr#cPhLWm5 zh%f1Wv2_~lYpB#_?{TfQsy)3Hlf53hs#VltvahF#noailO6>M`U!%cZ#Mdy88eE&W ztr;*fC#LrD?)DYwx|xVIQ}kvisxqTDqCUiMPXNsji)%w!v%dRou3Z?m8kWq_x{f1I zTh}u$>;CjK{3^-8%X~gD)ZeA7H%hV#3d!EU)|AZa0b_$wP)XJRV=OWn9_sJhsIGqX zL5gk7AOtYon|hS8O0qUE8?a)_C0$9@21Y5UBx`^%j?TAjNF`DN3UmZH z(r!ymWaC*(Kaj!@a^|X$Uo9zHcmZ*t)0s49Gz9X&j@-5eZZMaGLp1}aI~l65INfU( zg4!7#ej%SRn`gF}s{3m2Hg5egU|?#BoXi2Wj5aN!jmkW0WJQf=ySb?G5;fXr+-&%S zt3K1UK01C2d$`ze5G@0emjTJO+e{_4x3ephX=JP8g!WNFIM>)pxGkz!=cJJ1mWhks zLI`(P+*cr~S;=fQYTj2=rpeRvdORFTY-FrvWFiGTLyp`ucuVMz3PsgqCqTISMuB3p zV8LyzldW~qHvg7e-SLuLCoPFXx}~;eTkEpJ)@6rHzw8ip7z77mcJF$W5A8^CFj)EJU&{WKq)P0 zrzP#Qq@AWqJMcDeD03#dVb>3o= zE%LFG)KY)$b)~(J5!~AJ9vhq9)@HZ0*@aTdG9}v#R+d6!In^;QrOhsM2i-lU#?M^1 zeb_W9auhovp)UB%IRXT}jJ~Wqc7um>ADpH_KQ=(J1G2JHbOjt6N$gI8?Kthtj!-+E z58^rVDswz{v&bSlos%H!93?bOL1sD@qR9*-t>Z#AFe(T1lB;l_Mc^$@uH%$E{^5<; zQuU2_3`5qMO~unw7KO}`q{sAe@SQaX!L{iypBI*vI@1gRHRZbq1srC^_vv^R!QC7| z@ul9idxHF-9j`ls@Ee_u=jnzN874Q1u*T)0;K(e`|j(Yq;bIXDL9b27+8q-lrO!&lY2-*@O$eaq60KuwZIh8TMspL|EM**qqBA4uv z_G$&Jl`bXRDj4h^=!%aGZ&TnXNshC~!-1s9LoqxQ4RulU;YcbtQO#GH{I)Ag!J%2H zN=bI{{PC%@kx8+mN!}6b_(8^&rnO}cY1u=Xe{~{wK+F1AKqOveBhpf@w$!Ujqh7_i z0dnE6Hn;27_ca*H+k&(V+hj}-zMm8evY)+x&WvMjWom-6OKz252(seR3J@)Qvecsp zg^Ia{(A(1FDD*jYnt6!IF_2mc*_J}KpO03X5>T$n%gyIn-bY~ew!T=#9Zt7*8Lh3$Cz08Q#Hps@K@R` z(t)4S)%13LV0cD1@Cm>@u7OVg?hy@q0#LM%O0vsOX|E^-tUQ?=;*+^DJK5bjXx2Jt z);egmkD<)7Und zOU+kVL~s`w-M-DPkVM!!+{`$G+n2X?ZrzG#ZKfH}dPx@Y!c+nmYj0gYJ`f+7+zXRr zWHz7aC4ch?JVHDjrkyIVC(>91Ss8En?`U!c*WQn?8%|j`WxNSTNunQt(Kt9^x6VwA zc6M*@3)j?5{++^MguBQux8YKZldFuUEpN?Xt*D!RN->2Qwr#(&R zQrvRf>@GFOW3G;A8Y5}4bFNdB{yb)z=Z(gk=$NVl{*M#h}sB%X zqe0#Jz(hJIOx=YtYf*^{@Ol=7IYi=N?W=WFxLg49k4Mud&#xWLmF0%yiE3TH1S?NN zB#%bN6j8tW5QiQPMdCx@Aqp3+%BFG&THmp?gLX1(H?!1Zy$*zqtwH~y?E%61Ya9_v zFa;)zLK@zV`i+2KnlC)BuP!+WWZhPd7o5ZY+R*xi=j;uV8gh(e$~Cff+@G%K9V8fc z-rlsaZR6-Z@n||r|Meohj+OhOJm=-pQ$p3cZGcR5wTTFFbcLC!aVSyTx6Q~J{0b9A zt77s#Rh3E|zdY4j>_FCDweh}4xP+~5X8mr>PZwtsC3zF5bah6gNc_WvMZ>+&UDdHc4Jf}m#BP3v z(iy6G29$2JDdS`k#mHwYPmrS_@1hy_6igdY4V;JJ#8)3LFS*&6Vp)7G6x{3~W zDhmL+J8L9D9$$1?D4)x-yM-`a{dk$OJLjm3|1)Q}7>!j_NY5I~#G@bsYezgntr0IP z>_669evGABYs$r$nwn#}&E%DGEf3eA>A(WTgzyj(&Me1(JFD7T{`{OY-MkbIMxf13 z7l$aCYBb1dnl~oeg_>?yvh1so2oIj`C|&)crO{A7{`oKNxL=1Kd6mU+?=g$tl@LcV zN6IBI=g~s$z`Vi>Om8uE5L2In*hs;!;HgJ2T~6ysrmxiF;{c()lBy?3Wp%s`eF4sQ z3kEJ~n1 z#e{TFs3I;DiiuP)T_uyVulre7S7D<{ldTKjop8c#a8!Qk0}ch-7h`T`x-`=V4w)_I zgX$$_KH$_ihRtj3ovn(yqGP+|&K;kYXJ5;+Pi0=%FD>tlc~~x9O2;9%;BKF-)pvUK z{63Z^Z2>oF*tR;kWwI?%TJV|`%LZBVzB*9v^-aZtu6Yd=3W@pAL?JPYh$iYKY&Ndn zN0+qw%f3I6Z&XI%cgfP)U35UJk;P-@UIDB6(5Wm%Ex)d8lvT%0NXSm$mGXxslW7m} z0nT(cMJ*8)xQG!$J{;6Nq$odva568yv0D3LLNsnTmr@(3hZEQ00_~MHI~-(n&)I_S zC2P7C(nu|;w4p6m*)7^^zVF)BmEPGy2CtyMs&@9o$Bfiu2J@sPEVP7$max#gV*m($ zMqI9(&$rInuqX_W1Y6;NS_hPuC>)SHOG##@M$g))v(}VdEM2fTYcn^FtJ;cFxxy?~ z&j>`;1fuYf6^;}K6sIqplsN{m_X=mrv*S4yJ#1$W$vPv2lugiu`Qg>i51>e}+WkZ8iKW5MwCj?DI-xE6gH;@auX?Yc-lqBJ&0B9IsBZv>AGxnXA z(rJv4)e!Xp;Dy+bY4R4aEW>m~V!AX>w&z44UCd=GK@;WbDd>gBaISAAkU%hjJPxKgg5ZYLR<0-ocgCqNCK zA5@)fy!78dwu2#+I+m~N?1VY)nPAY^U@ ze{y>*fL1orgxQzQ&lrW0alj3#HbZr|{fSay0BbLnA3e6(4AtQd8uL4Nd;~pM-TPXg z!mcJ9Qn~l63;wbq&my93_ii16U{Xlq%30nb$4|NkhYe!0!yK<2KPk6YmB4yDmy6C2 z@ASl*Rp~poSCzv#cGMV0hj9v74PwlyaD6L4Ru0{fD8-+RYuK;$jTfZ6krkXq!_`LI z-wUXkjKkV{gZ)FT z+@$HC)V^C17`W|?WCky>vm%$2u{3zXsz3aMQls8ou#>Ca;#u7 zm)9~TbJf6$Wg#!did^Fn51u$4X@DiN!tNZAzpl;@c|Lc3$lo`>4mki%ZfMKm#teBT zFJ8!VxUoX>tuIc<^ZI9mJijL&G_y2=4UR|Z=YqU!lbN7DpjCJv2T~UcWJNtVAb($l z0opRT@IPA~2fuUtG}#|7Q49CuCA^uRCQl{rQFym zi0pY!M@P5%k$U%`i;r*G!6k3l2F1FuE4IZ@0& z(Pn=L6~VM&$A2oFFQPwe`KH)r$X)}UIqEd>1?XvK?M(n;Mf;N^ox94UCv7z(xt`fx z#U$MON%3pTnaE5-2cDR9J~So^3HEH|l~(tgeeX6(Iy*WxZrs@3zG=e-bC|q!<&NXp z0w?D02Y+;M@xiGkGsbHY0M z9$$CyP&!%26?0Ri_E(R+rk&!}&8BaF1*n~@78oprC_yv`0(jR64h3qVMWWdwL_ody<(ei~~j>IhzVxp3P-))4BG`hx$|Pm+$Ou zzkJ)S_RHTGX}^2~zxxpquQ#?0iJg(*?k;+OME}UnD3Y;gI6gWS?i(2zjqC{b$G3+= z{oygZ8OZy<+~hD~fajAl?U(P~h5xQVVj$-q1ahZp%H7|7d9wZT2+H*DiuMm)y(f}Q zX38l;dA27q+_xjvAI76gkgo>%nguVZz2wk9pH*!gr9MGrS#c+6h&j7hj?#~tW zfgXF(oE$)6e6;=YU4ddD>1Qm;)dJ^31NqdXuR?sv%q2H=TtP(wfwKa~uPMKh=G@Bg zaNpSO(ecR0u=Vh`z{>ux_3%RE{P@|F^Q;|_@$ntuczC!!5*m(=jA0<2Z@xVa+#v#u ztnz9NUOjUL6+AgUoJ(iZrStG)WCJ}pedkzYJRBbk?~aa-g+oKmzJP=qB@5^N}@Z?>C2mN?(N*tH# z9Y~krrB!&+juIzK!oE+%FQ(%A(^d5ymC`h@zO>3*$XtzjTeo02}^sC-OMMTord>s!26TqeRE*z zNh;pGhMJYm!8A|sOMrID>|_yc3jlE@o)BuQvc~>67OE7O+4<(PGqJADrV;AN5bz1W z>lqpP2u0LDl%kfe*q>xbmsaD!RzN&4lgwr3==CM^IzB~*9^$2TJlKmSo^S2LH*a=q zrOrW)kDQCHl{um$46eiTSK;}E@_D7*p#z!DMyA(zW!k)1kzY5U#0r$S!n=ftq>!Uu ziDH8o&99KfqG`lIHIRcjE`WFxCv_w8U5$KKR>=o4Ou$3)`f|F!>>Jbxhe4+^WjSmF zv8~M&-h@}50>+vfI62Dw2O8z6lCx@9{X%g-MQfJ9rLbH1*-i7h*BF($an;Fqb1^y~zJL{Z4pj~Fu z)A4F#ybKw;s%6}~*||U5jH2x*+FiY9g|iDa@oLOYrHP~E$xJ$luA}kvdcal2)6PV? zMA3sU$E)~;K;V_K%1|nmE~V!TZn6!5TNDz>(r6B_=4pgniCUBqVivSK`io~H%hxf8 zPLmL+-)IJ(jE+)faOI7uG`imF7+p5I-^-C94B+QT;Hn=*2(Len*PG?*T4%v1K&%G~ zi_{N-xSH@4GEx@+;slUdD5{>V()0i0o!6U|uVmZTBtXH9@l#wI~(~3nb z{REnOg!@%!n1VZ)vU%P>xjU9>oC978&)}`Fv<$?!uSEuhaoaP9b;2q^YvFIA>T@f| zF-BI#;)QtsR=hu3zK61{FPEREK~MAHT(nS`4}F;&yB_x{yqZDxcgTX$q3;?4zI`eK zu)O;&>)1l`k0cz0YQp)CM(w$nHOi<3p+pp3T7`a!=G#{x@me%~G?RdY0UrzQy6_ql zD{Tk_E|IAA4fMu!)0QS5$xO=R16#nvHWIT?&QQFVT$YB|JGDbhI&aVl{zIUutl($~ zM<5D-#w=7M(4x$U%C`K+-wF1(RQWaZ3;^i#bP6WCgRVf4_EwQ~K>S7Xil`iI# z=}#AElK%qZMw#Ri34;C!V5mSByjdVf(4WMRRiO8#OTFdfKBM$ny!&kcSSP#MN z`9o`JP-V9Pj#3%18+#_2y59moW$F^KrV9oWKm=0MUrYqWt``Cv{XC0$b1I)J#!GL& z&&BftfsJsU-Ml%?#}h#zV{a)%Qfs+(9z;=Wj{^NlQLDY>Y>}N$YA=#gO(n_f??JpMfL#w7 z>}Uosi!QXh_hCN1i~(gr{WXr7iFdvN^XN>o-c(#z(a*&zY$^h4l+x7gTZmi#7?a~% z_99J-qZlIbQewIr?}KOyZ#EwY=^P&?m84)G+qY0{-vT1MHfTmLdRPY%AM3%Wynv$t zMO$*N#CwJfNAS=s+mI)Y8tHW7=FPH3dt)o>w!cR=YyzOS0Z^wM5Mxu`qk*p4>mG&(ps^5(|+Zjk5iOeB%9x`4EQlG&x zl1dgM1<{a-22F$u@Wz}7${Tb87n7*}eiNU(vf)1oEe>V#AE|>4H@z0iMkp4bi@K2M;<6xjv7ku4cL7JLvF4iKf6>FmgTx)Ydpk)4=+W7;cy=v!vJ|RIdb1 z990^Gj5E;o>U$V2n^{%X`Blz)D!KY)_Np#}ggwo6@9mHvPK@_L=S97E4`^!gIw#R- z!Tb`?P!~+BwWQ6UCRMU$Hm~_($;#Nn_AO%owhO=p8SC8M1|!^oeblldD*Z>EtxuYCS5l^JkkklX8qPm~)YxS7W`R z0SsLlao77$j&oP*WjaM8=398qM~wA6-Upt6{p~!>?(blPa*?v?2xX&)jY}fq--57w z8Paj>n#q_3$m;+S3KSt@m;Z;6JhN0&Oj3_V{< zkWrF-g3RwCof==)8Tb|8w80rcIxQTBJZ;CvcvjDE)rEoD*LFNPF;x4g4h?Or6uC51 z`+$@I>6J6XoHwql=Bu%xF zLS6N46JQE>DJ{VUNQaD*<6$}L4j`lri=CPgz1Hs@Gq;9kx;Qs>tX08kbzKOrp z9T-A^lLPH*M&GIun6hW_w-N8}#2Y@K=j{`Lz{B`k5m>2(cRlj0-Wdqoh(G$c!TS)n*1M7CvVGWbqw$}D z&0E*rPXfm6ct2cZ;9TK-53eVYCk&##4}V_xeHHI}%ii#)&nA#(%SS-Jj|KwY^T6-- z@IFWc!pE(>gx@&wTy=LK@Z0$F!tWpPzUN~MoGZL*@p?P*ya#`W@YfbNfz!`1{!T`| z2TfQUB5+;P5p<4IG&k_ix_k~FrFrE08S)iB&Y`)rm+<>-)d2OJOi9acvgKCx z;&&^&e z>T^ybrPG~VHlG1qc;SjhY}ti^hkF8n>tt*E72LeJU`!%z{xxrf#XS!V-^Jm(>UE~viL${BfxxKJNF&J{M_uQJ4_?&1g^aU}cxm2@ z@(+RfzabG*CoXZ@E{S2?E53xTnZ0iY4mSs(JdwGg6~w8m+M7ORe&~Ng0DsImqILkO z+rjP?H%rkT`x0k0ge-x-)~>6!f&e#RsNN`ti8@p@F(Bo@b;t?+Cj4c#Wd}?N8<8z< z0~XtX#Q{AQjtNs=y%Mx$w$O}!$$RjU@$!#Az{-@$a_og0NFqYTn_j1&D z6BZKHUEjJr$3BIb+(>pJT6a$AO;3ljsdU1ZlP|UR`ik~qAkr4;So8k<9pH2j$lfG- z&G!tggbnTs3iJ)e3Ho>!*`24Zqy?hfeSr78K zC<2y&;cjU;P`i0nwQsTP<;3|~4%8{`tqpn4q6_T>S`O5>)6KUZJ9$d99H?6k)GY^U z=HuUTpjMpK$ahI$t}O@ZmIJlzAcfuS&WG<{%YnM(K#gz`Qb)s1+kwU8A%(OYsFR2k z!o7AK6!I~(S`O4L2kJ9g4%BdRI|NOpt{`_0_eE&`NPh9=X8PDv#^X9GZ`Py49yzBiRJ^9h&-gL{E_r9ZZ{XgEg zI#zn~y@g-?^|#;tmnS{;q0%!S`s`=ZA9~`Q+wT3*=Rf?}(;xcC>h-zHzJK{gZ!KN> z*k2vm^UdG+>D<_LTi!qW`Obq6zN+oe7v8q}AAY>*@y~C2_g{YPy5yHmntsh|*1luq z-@aZh&dGa6rba3ir2lI=A_y5^- znJ=9Gg5@ak(n`snb; zmu`R4k8@Yd{MXIDU&#z4QP5*-!8N?*rF={*sTs z`hOD*zHIzx9ns;+*AG2Kv^e^$g`0>To9@~EW1`9V51;rqM3)bZoc{@;&3QM?ev|0a zdwkoU5smK6<-uRM!7IP`%01K%|M}Vn-bj7%@1J_#hp9ilo&3Zi^~u3c?!Simt0 z+pphAeRt%mf8Ry@_u#|-a)kOYdROQ=>cVzwhEN9C_zgFZ$u*U;g@y-~7RW zuV(-2Z6i1S&!=QTc z{C51U4L~Pvrd}^n!y-kF`8?lQNWoJbf5!#r#KQ3b_>RD9H;nHS0=w{iVqhP>PYPTe zShWTT@hKoh;SlNV3Mf?h=Qz8U8-*50mo5yPxrQ8SgZQHZ0#u#+oE|u7&GWy)=?efk zp)`{&9*^4E@t$y76{iLw7HR4|j(TEe;)7_uyjrQ1>&7vDJ&mFNE)FE8n;G#Kobb*Rf8y<$)D#;k$2p zZ^sAbZ+_!K?C!l6ErySbTCWzusNqO=_%QMln8O@Q?+FXx2inRH5S+UeIEMtBLj>oj z0tYA`?FO`=y9v$_6V8f-@PlpT2MNw01V@!=ZRIBkPD6CQY$5zqTlp!1(-56I7Q#=rm7gX!4bi!0A^dDx`B{R~ z5S=$Igr93GKSyvHqVqKi;pf}R&l8+_=?uOfd$v3Fcz5iWqW{Ki3_5qC56bckBTLu*sp6Y2Ow;EC5&MECl%Z?%0#vv4?@Q0@!3(3Lj_- z9}$47vl;??Uw7=O?${$hS^;eGFoglPg^vor8r}m&3Z7g(1c>1Wy2DR*hac?@Kdi7P zi<>!n?IS<@Mpn!1!BQDeg7{!}_}T98W8L9L6o?jIbIubEQPW*ut_&zae5gD8TzB|! zps7H#IGl6FaEO|I!fM8V62ynQ!_Rkzp8%Q)M2pus=MIOc=^#c#040czbcgTj4nGMr z6^ItsbIu|Tu}aUNPtZ9}0Zj#>#sBK+8T1J{2i^Uo0@31xb@dGT1f7HKeoBF8@x;1% z27Q9gL3cl`K(x4HT|I+7LFb^mpH(1Qe6p^dL7$*=(B01|5G{^bSI?kN&^hSt=M{(+ z@2sn5&?o2|boYGKXJ2ItSgY-Odcvr_`M=$t&>`F*}w(l>>N7t3H z%Q(7LaVL!%Xkf(vV0^8)C z719EStzCuIm9ZN+w2F2S*d1}$kZ&M{K+t(gfo<~93W0&c)~-kE%GjYCUPT)??3g%g zh&Yf$AnQD>z&1ImLR2m@aM;?FN!OR?MRX^`oo5x;CU0%DFCpllJ26zAQ(&81w$Z*s zFQPj!RGwF0oBX!XzCQHaagc;nAHg{JX)vL@%N{F;sN?TPkAsj*O2J-#iw*i0;Ht(edvF=Oua( z-HD;1v%E3-ahC|f$ zmfV*?)N+@DostZPs9guKxi$A?o^r5LlHm}wtDo!{PdT`*p7E4}>*^U#Ik>K#@sxw> z>KRWtxUQb@l!NQ)8BaO5uAaf(1f7GqsM8bF)icBP;5Mm$SZ&(f-iRU;NNFwm=BYmw&psnkKM<)CkF!d2iPVrt-5^r$6RG<}>fc0a zCBoP6+AbBTF_D@TsSk?OJtFm8k@|&5y%xR$99~$Y3LKevyic)PhKTSfq}K)OSVdCn9ymNfzWDk=ia& zNs)S|NPSSG?h&a+Md~S$IvHW6IL@yXsVyS4Tcmzdr2asp?h>i5h}3sQ>K7u_zQU@b zN2EqXsvuJD6seDh)B_^*s7U=-q|Sjk*Ti0=!Xh;zQokuue=Jg;7OAg@)b~Yd^-2qJ zyGXrWq~0P@1(CWT4qPoJg&P zy_(bIRU&n*NWDd*=0)l+MC#Kb^)-5 z1(`i4QelxQh}1hp>LVic6_NU`Nc}>jUJK_U4ta}6?G~wbiqr>1>K>8$u1Nhvq|SgZ zfeBBf#zbmXq&_H89~Y@Fiqua;Y9(C5IJ`?mYD}c2MCvAy`nX8lFH-*|QY+82;9VqA zSBun?NZlY(?-MDCqt0>px=1}EQWwFkfxqn%sUeZNL8N|9r2a~z9uld?Me64wbmv1xNUc5Fg8XWc>JzCck-9;o-X~H=MCu`t`oAKz5_g1@ z*~)p5NL?*bdqfKHn$3KRBK2{Rx?iOJO{4R(0b zCnB}-JgbgNMQXc9?GdT{BK1L$`nX7aQKX&{sQ`j4bGlq0Qd>j{7aE#xXGQ7{MCwkF z`UjEvu1Nhvq|QKWOkT&kkh+BRLOZ^>gH9Wy8FJUbwL_ zq>zxlJhl71bvekCmDsCGc%&QX+N&QWg8 zX4C(1%3fG0RR6Pge0=)v9nNNjA7`&|IGb($pOHUzIGep~?6m91`9bkzd)Lf~AKH78 z?a^J|xaAdlPqsZe|I3fRsctW|5}L^U)qY!~J}6RGAjNy9nh)D=A>YY?cjJ3S;7)v> z61c`OM($!y5my%fr{x$?F4p296KZj6O8}0|v5gSseMc$NvF#v|aBSP#jvdM9Z9{ih zURSHX5T>RFet61a`1V`wgJah1x7>Jp@bp_Az?4BMP@39%#-d`kU3_})S&Ku@S>;!B zKMl8#&;DR#_kWY4(aG?S5QfCX=k}htIP`$b`rKmdfzSS+t@~$fH{RFw%Y_^7TMXZ~ z@Qz&=eLp;7acK4884EG_h&o+vB2n$C#n>UCob7&k@A;~y8PFIy+)bOZL+ieZ-BkDe zZFq8fThDFOy0&|$lEv83wy!V5$WR4+|3dg~jM4BN65Xfwp1LS0gO=?*XEAn%QYCV) z3*U)6tA_4ej2&F})m8TcP}}FRb(5r$25C;J=Vkjrs^?8oJxQdJR$NZ12W3`}>OqrK z4-lyy0AWp1fu^e$uRCEOCZ7?lTU&bqLoxM6Ri$))7JBDqSawZD=-^Dt0P1! zY)lWr?y?X*NVJkR4O9VINj(Io)lsEN-JsROCaoSKT0I2H+Gw?UAts*@ zt?m?sIj!zg5GPvQX`|J_Zqjw2yD{J-t!Uk{XmyBa1*7X7uw5;L?;u)9TLPz*)bwy# z9agGD?sd$9y^1FLQBJEvM5{xRR?5U;v{EJ(XoZQzX!R`7O8OLVT0J6~OSF2#q}9Vj ztA{~Z8?DwX#N;!gm0+tYIIUFXL9~+0hQ`&M-9raicVoawT0vkDw7Q#U1>^To*bqrS z1X@X(4yTo5k(^d4i$v~q%#&ahP4*+4R(BJv?v}JtCKjWWGO<7_Oe{vL=ZIF1imv9g zdela%M@?EiLbQ4Wl(o@n?LtgGBU(x3!D*#352BT1HbkpCx{2kYyD{J-tsu$?S{)=> z9mG^>3m*iNAzDe6$7v;5B&U_iB9VI?^8#2!ll?HK)j^`wK}joRVli4N6AQG$#A391 zo@n)$gI15(X!V#$t4E1ekAku`TAjBLlh24&l6i1ismz0DC7BJ;>S#ByTy!@EoTL?m zTtTZliB@-FDz%001d}0JNtVZHC0Qh=mC7QKdmVXW99%_{9Sbh4gLe|G?v%7rCKjWW zGO<7_Oe{vL`-oOjv(LxX<2G77Zqn*8qSa%dtc_L|F2v+BqLpMGoK`CHAX-UgL$o^5 zO)MAPjR7ZVb)iD5JBU_yU@EnR?*Nk_T1l42X(d@Cr5Uup`Rl7o~<&dwGiN$E8Of1j}6N}O6L88@@4q82Fqt%lpt)3uSJpszvXtjPJ zCZ7?lB=g|3Qke(QN-`Uwm0rGDuh42a1g0ePRy?P-gpAoGj^Wd~nnFrBIG8>|mUcP#@LaXJFuat?!Xr)Xn&Jg&VvkqE4Yopb(Cas<(T0ITQ+Gy3W5R=b{R?U#FXxnYcqRSy)DHDs) zN|{)o6($y=)uTkK=NzUmJsMyqQUV)7Z$su}XtH43ekPQLp7 zYyJ~TA8xycK&;sAv6WD5_Yllf+dVhdueNOWhq&#Y{akAq`q#3b=UHw5=dqs`nmz*8 zUg)&s?`0J+Q2q^FS685kt&GP%_4QLNPR`5zAaL?V~m~CKPhnW zaTdHzkqU`aL8NXLsSk_P$3*G}BK0$oBCi0B>Fbb!k{z1+A@S_ZB1QfIJl~&))W=2Y ziz4+6kva!@eqQ30BDGPZb|S@Vn-|X(MCt<~^(B$|rbzvdNSz237q6pNq{c*QQlxG{ zir4n%;@LeS^*NFHiAa%00f&6CNOg)-R-}GQq<&ANK7kak?W^M1cSPzLk-7xd4_-%? zNDYb9n?;H|3V6Pciqxk?>RU+h+I}IPoeGNzFY$7b8WyRyh}67DEr`_TMe6G!^&cX2 zG8ARJw$~uV>$qB^A|iEzNd2xz{kcfpBU1k@QpcZS!8=o=x{>0w#l$m1q{<@o7b5jH zBK1{~`i@9l1YZD-^A#esMWo_L@!D<@&)zLk9}%g45vlKr)GtKp)Kyj;*NW5|MQX1| zEh5Eh`a&|Lp=MwNc~i# zUJGj*uVb@F#YD;wsXrB|Pm0w2BK19_cx@-1X2CmKq%IYy36Yu-shdRV-6BQ)1{|wz zi`0LK)aj^-*Vc*uc)pNGT_;jEi`08W>SH4H8Ik&#NYPD~9Nx=B>h(w=1Nh{d#WV6j z;Q4M8De^(!&+ZkeZ-~_QMe3FCBjEWqiqwEeO(Vr?TM*AaAX0xNQr{G*ABfb6F#2%F zXN%OBNKJ}VL8Sf=DPG$>;@Rg!>T4o(BW$miu#tG1NKxzvZdp44mRF+BW_+&*d>=gZ zl)wit2Ui9n=(AOUp90S6z%TKAT3{8*pB{J_zSjg^gYPo}oA7;RU>m;A3QXX8ZNR|y z*?|(i&kfv)@ACrh#rOGvki#BF_akB;v$y*?kYJzVE|9^PEqk2JY^;s!lRc^YF^eDUayzYsh@W0QUTUw-LU zywR9uU-#U5e~C953+*!-UmnLBjiL6dH~+`S@J3^=eMM%=>+nWnw%zxc(9iKkW4)cf z__xl&8;241uhH1G%qf7UBKXZyNs+oyr2bf>C=bu~Pa;KSd0!pJoDGg={nr+FBc7fR zAOrA;f#1XTNdfBHlLPnTdqvQ}7LEf1{jesq!j?!JHF9na$VV)%C! zWAFMq$O|T1yr<{T#{T#$Y}4M}_W8x3ThIFEh49-KhHhPqy?x<*PqAXRF1+JuB!1X# znvUPT7(%?1TNj7kzHl4M5xe#OllLa@R!wjG|EW8aO4H5sHC;+FB~3!;G|H5RqiVv;LI6}f1I%3D5t9Bkez<#WcfEqb%eye~8F%FV~+c~eA`Pd`ig>7wj4 zTbVgBc$e}i9XN)+Ss`Nl-Lrg-boeV>w!eFqPnQmVrHlEiLk*{N4=VWdFQ}el+FYvj%(G~q#ZoHs*jR&-_d0%GURSMHT z2-E0(NED`j5T?;x6Bnj@Z1+bzOxG4oSf?_XOy2ZI~=A{6{gb^ zrc=whOrtZT!*rSp(>=_`_IwmQwY-$y(V14>WokN3r&YwMT9kIv;|fvNPRFTqw3~F< z?M9qRN4rTExo6|F7l&GyXtmMY!bGb@6{k8=acbh3I5n}H9jDc8oNB7ej#I_9;#9G% zIMw?y^R9e~T0YP954C=g=^th0c-eFvQJjuvi@yrzY=4PU>F`&&Y=4PU>F`&&n7=yI z&;+-o8k(54XiXEXAP8GYA>6Q>iiU12z# zOq@>4a)S39j>qYSq6r%nr}K%^xshY(IJHM}#p&GgQ|5=`bcW(|w&HX~S(n-LhIE|H z&Wck$+MZEf%I_=9F7GlU9jCJ^;#BQNyQz`0on<_gj&_qS%VmwH($Q|xMef-+?arYV zW)QZ~+`^2#7FC?;OvR~*XX3P<`0O}kg{<+^ekzNltA@|^mpGLUf2GUzmpGLUf2E80t3wUlI4-K8iD`@0G=W{d zK*wvEXidkd8HI^cjkJ~H)c8r98b66saMN>a+W(+v z!Y7K;MZ{_JkV7=>+oQSSRF4IP<8-d#biU$rZdsT4^oDet&d-WdJ}RGEUdr!o%`fjV zHyx+*E80<5Hl|wDeAZ(+#g&BJ-syNk|ic=HM z#OYb$v*T1B#S^FYQ|8P#RctFx72Aqay)QHG>~x*y`iEM-$n=jgGt!lrF-~zh1P%VG z;j{fEPNl9YMLPNl0tT^SP_l4!9{2rSgA56#TqKY_Gi_&f-Y_gptPNk#W zq|0(yaVj0{CS9!EI&!Fm8H8;#w=iR`MHQzyQ*mnInK(UJe0H1`+c<5+CVSpjY%5L` z+lo`YFEj7ln$GnPwSJN5ADL@A#c4k@_^XD`_Ln%74u7S~_Ln%74u7SK`Kv<>GuAl` zO-x&~rU~rw1vg9c9SmFZY3OQk#Swo!d+Jg zRh;Tf#i@yB;^N;=<8=Q@ajMu>oGP{zr+Qyz-r4Co&-D+rev#=PnQJ@6=~-y- zw>z6`e~DA+@K?HQe~DA+@K?H+zdF<~W1Z8`#I!|gn!qk!ptEb5Xidkd8HI^cjkJ}= zQ{yLbYWyTlji2USr8r$goJJp`N7qq{h|`Ksr_6%vC^J9D;&f}#gg+Fg%ZbzIA+#t? z?a^Fu`Y6xwh2xY*Iq3$9Q~T}Md((0HU{;*+Xu!SYrTl)Qekds&rw>-dsalkF8^I>K z-H21^XgBGy+l@Gtj&_qS)^6iC)FR`$qJ_Jz5UM!UnTk^r&%|j5@!4^zn?=m~_EYuD zd0(-uI8|&bPW8UbytC7Fp6efK{UXypGS_yB)05HQZ&xB`8l^mUXynk!CM@>F#=PI;7_ZlE}QR6i7a z%A@HxU7i)EJZkW0c`3i^sUOBl$LaElI8}?%ZiColw;ORP9qlGvcDoU$($Q|xMef<_ zs1Y1$k#Swo!d+JgRh;Tf#i@yB;&i^Rk<48*DZls+>~72Aqa#kS&9@5{_PJ6-3w z{-M?{GW{cSZKpWxj0S%@vdQ+BIF$~6rOWo0IF$~6rHlEiLk%<5ISoxrTePML>~eEQ zs-}t7bex(|m^jr)TRBdRpTw#0lQ=bgns=4r^g-hE-fUNx_a7uqqlYJ5oSOML7N=8- zCQMVDzC@g^i5yGEsXdx2PS^01b~sK~Do$4^PFI$7Sw(M1$0=VYF}F|mF!!ZO^wpcv z4*cG9d6$*xI9*i{r)p8!trweYXNgnkXgBGy+l@Gtj&_qSa?i%;AP)VP_fJb~oOWQ7 zy*^cJD^3;Lic`J+AHRRPoH&ghbBe~(<;3ZuS&hbf&Cjtool!Jlw&HXhak@5Y$aI|A zqq*XAEl+)i<8+PU^d-gVnzAl0(Hqin%GXme;{H}DjBI8N6pPS+_;*Oqlz zM{h{SDPMQVh|{k6YEbFP{62kom$m6QT~`sOS~(G?T4YsEGPWAqO{Ql`n#Oa#sreofJi8x)8)o8re{2YtZg+&t< zDNa8jPCtkmG99P(Xs$T@fTz;Kak@cqx>0eup{&bBdP6!+`T9&ooOah&jY`kr{}z;Y z*^rLYjTLbkT(2?j2iI$ir{VRQLifMCf7;!~=~iz%t{nL%a>4xm4V?5nRoNmZ!G~R1|j>YM{MH3!WoNggbzpE6d_Gqp+ z{Z5a!1Rq1$q&VHIINem%Wi!1Y9jAP~CnHV=>8ntsL-;=@Rvn5{z5gG-fBFe=`az{Q{e(FEAQq=)evZZIqeT;zD^C9)PPbNy zQ+qU5oNm?gEx|bbPI0iz%t z{nO3FY4o+c=sIdMaTjTqq*XAqMmOF#_3kY z=^u*It^5N!dP6!+`T9{toQ~61wMxhHf020nD;=kQRK)2JTAJ}x7bKP9R662Rx=L{> z9dRmMCxWUXs3_Yj`rS-wEFE+dv5P&Z$h;9GJCcx z>!Q6@d}GL-abmPLG}_~Fai`U9m0Ioq_H0>>j*j(-_NGMIucKqz)JmVbSF|^lJzJLX z(cZg}R^J4&xoyXHc%pmOY!>Rnf6KqP>?RZ7Y6p(w=)_w5Q*#w8vJkXUnoG z+S`jk)@nl`X&oIqDcTzwY2S^G{Tl6U$76ohN`LljS%yS= zFGt!hqP+rs6w{tDH`=>9+FQ+@Ez5h+vEQP-UHKxF)lOm0TDdveTM_MT%fI8bWoZ!Y zjb+cCF*Dk`E7~h5PHRt%_J*=&bGtk`c1yIkI?^7nNBZ1jqrLvo-b3u!vMi7GcHJ|5 z#v#$(Dbe1hXz#CRZ@Y%+vNUDy>6B*4D_?E7eM+eYa#da!59(l6Ru9ce#| z_Wq3aX6%(d_qJ$n1$(w$-iVI<5bbT(IIW$)o-OJ1(cVMRUcuh!veb(9hO%eRD2w(M zM|*9Wq_xLKd;Qt7Ww|&yHZR&+5o!0@Cw*>dwAUlryNf+rFAqk0+wpZGTb6^Oy)Mz- zbNi*g@%MJLcPg!7zlN31FRN-4KbF_(sZGpc+oYy4=F~_vDb_ci)?lYr>SbPQr@r8| zPO2JK>ZbPMwO;B-UhAiN^IDX;gx3bC1-x#TdYsoCQm^p3W9ma*D}Uo}6Gxe_jP~kg z?3fh$#-I7}R@OKE^v$ah&~=DTuSn@{{58yv|4{36%tt@e+Lo36SkAKF_?yVP2_?KU zKijISfbn`4edAB{WWW8Ty~J<)ZMd=EDZV?`W5MGuni~rh{{_6-`thyN?7PprKKy7^ z=5MO*@a~9aXwIl|`pnpGvL14J?O)Jr*nHr2v7cr=sOHMQ(F|TfJNyhqre@IzzdeCw*NzVzlku~y_u=gSt#ADG!+CIA>S(dNI4%l=(m0M-3k{>+bVPp2Oy0*nbdyYQm!v6m#x<>c!+h@q|zULBQ zm&LxnovzeUa&6nnWX?;KvogNF-M{Y?4cxy1C>?^j_n6_MPCIAJpd*L$ z?>%hnh-~=q;=>O;bohw=qePwABRN#{E8TxEp7(0*x_5eh7(>AdjQ8n?Rb|;m(%ygH zNU#0FM$#yoN=;3u%8N@3!b_Dt6*bkZQdRcsNt3p2`HySU@&88^dO_|Am1DL-wdX3d zgfC1_nozfdIDdj)HAn-qP|6-BPUg5BX4Msj4`_1oKKr(*G>D!FrNLSBq!M0C ziVdO_<3P|Zq{@}zdqkL9dOQ&{+v4!`RnggYGB@x|6ocPJ*aonz9U9(PCAwJ z9X@nK({uWr-0+~3zUZEpYT9p9|Gs0+lX2!Qj#ND*4JT}yn({U3CPe<_RXvauH>#Bd_x!KMGQ|_F{Ph0?Y_dn1j_E&6gM*UT zysD#kE#OB8N_Skso;=&O@00`B#L^+|eSWGqRkg}?ywjPrq6JFRJ_DjNWVydg@jnzY zQ_~@qsm4LWq?-1(M`WwwEN(tzq|7=j;CNouVZ2)Jbe4`a8~*Ifj8oXn^t6!oc~$j4 z6Fy{G-~X#R>#e63e?EEV?6dSv!LOuFR<%k)_H^bh>BFg>L;DXM-9KH6FsV%6m6!Eh z>zj&{_I*zd87A^w)+^5HQgI4-+hG-g`XzEWNwH9jb18SL5o;wf0hqy-ZJK*?JmP4M$*HE7xG(Fp;OW6zQ{i z7&`ru>8XaGysGNMX-}&gPs`T*a#@IP1~uvogj*jSbnYT+4X+(qkhp%{nQ|)7s`N zU0HujE4SY?;V0|q2TS{%lzo=oz3UFuHlCi&JDs`99qzE%RI8GH7jI?dWqp4tjhJoP zceS!%BHv}b;;gr`&&u$f8^*C#u5En(;_6qg$T}&@_qyh+bSvNbpJ5EcD*W@^Zfc%= zmfqEKe$`FkSCs)A(V15)lTInKFUzv^w7NUXAX$CcFp;OSRdH52FLzdkr}a3L-O6>1 zr8GkNs?Tr6VmJRMA(wc}~ z4|KlQH#Ihq<0`?ucSQg@oipl(kw0UmRy5>Q)hMm>YX6TIz|wu#9?N_^)7jBk*>>o< z*ddTiTL1T-4U_C#;OywE?3qY)XxsERYs$T*qgV5-VWKvbw-smonSEA9n`-vYtE#av z?O%PCA8MPLr9@ zE6dhX(;d=C6ut7)Fj<~foR#PDvL|Ma#yfB*+tclhr}y5u*X$@8vy&OUJDRhsr&Ut* zf3NqT^|b!->qo@Sa_iM6IQ-9}H{&8T!`w^Giycjk-G)Xb_#+y&Gh=lpG!-$nYvYIZ ztZ2&&lWw-R6;g&1}J4%vtFcy#J3o_qFH${^!qUr}>KQHO}-d zrsf|&p)+s3FHK~|sx0U7)G%3|2G7dybXP3rRehD$w5PimPoI2br+(>@*lnh#y3)$4 zstdmYM%tx+Ugcu-ozv>bU`9%hv^w<9W7R*>zUzv(o2fCij!LkDs?Ma$Sk)CwURBLC zN^eg8g2^-Op*@!Q`iE2Ltg5M=J$nxsGJ4PuOB8b?vn}MiZHo<=CbGs2!$fVNQdXSx zPWD+DZBdLSd)(N~w8bMkUot%Fr1aYFWF6hZoYf&4@V;xBmrAwoRKgDi^6^1Q`nE|) z$w4O`(X-PLPSw0s>ui-Y`k6SLm!auWdQ|uBXQbLkA40_R-AcQ6E$!6xh)yLy>GQLV zdrf2`UMtz9_gcwDjFp}grl(3n^Nv;fj;bgZcg8)gMfZL)bf=eg>U69za?a2ZJux+U zbpKIfQtjLKJhG%`v)0EQd36CG5#_oxwN0pX# z>Zqo%1*d37cj$CviMjn}ihlww9N)fGGrc+T7$e#{Hhq_}eJk#)ao{+eQsH9PlH-o( zeDptdG0TgdK{sf(ig3-?HGcH8j`(Y~Wncn#kVRl4B>!8KhGi z+h|SC>R@gYjT+s%>F_>-4?L(@o0bG;^VZFZv(iD$nze4-y14kDmIt+Hsh#3pH9A*W zS2KUa!jc=e^828N+s>GIFGxpDL0Z10IVvOZD{i<@$g6o&MU3(d>(KsO{=^FNS^oRGi_H^Z8xN*9FQ~{3X z_zN&c53roByh`deD~XqH7z?E}Fs;wcC|}*m0c5+^Oi_&tb1M+>bE(jI7AlSI=QF=}$~P9zt+3Y}X8QPKd+L`r!>mA_Lqh$s z7Tn9|-$Im>ug{OmIsOaGgbB&{D(+{(JeR@w;y~9p@4#Goak4$t%N&?z9T%z>#r-ER zhfhqlw=?!mf*I;KP798I=fk{qX>NO;in+{kN%m^M^qZ91-Z+?9j!Uw)0Ops;x$V`Q z!uX6RCE05RbLHj9_H^BLqhpLgUVQC4hvN^!b-E(ip89!Dm=_!uwQp?xP(R<~7$oI) zZ^N{77x=R3o44d|N0`2jOR_f<=DAt9%l8h<&yGv7mzvFbXil=dYbf6^G1pp-WnOR| zY~mOYlYIR{&-pilyZ*Z5e6>Ek3#P-|-1!c1jLX(LfAk~YF>o8MPtI5Eu^Fb?Jj*53 zUp<&}Z^&)$5}0|8OR~2J=CAp=?bTmUHFW@@lw|K;L_{gck0p*VATJ?5?uFZRX>z{u;~>YR z?fLxZh#$wo&AcPop8DHjn3ax8YTp-N8ZFChuMJE$$0gb80rSXR$@aQYz87J3yW4Vw zyf^;pX^4u;WIj*iniXcKXJOzpmYxTp@qgIwmRKxhOw? z8~1#2zUsfzVBU9JQvB`w0-r%3N>ROd#+S}8BOE8%7YF(uc9UV|y=?6zjW1uqw0p&J zN#(l$W}4%Y%6A9MD~=15Zv+NDf;s8+shJ@~es2}w}KNL|?zP@%F&+$1h_1;L% zSM$tXjycwB!}k+UK))e}J>6H?472B(75Vz+{hQ%h!@QZn`Q|OP+gC7!8?3#gcB>0B z_^pb3efEyR-o-G_I4;y~8i&4ux!~<&dn(^_m?e%&D&PGuwKnFqR}6EQljWk$ro4Oq3HnE^8Ms|wf^hq7;DYn-=?GN1^0Chdy3O4 zA8_9SQ3}<|OmqjrtaO}cUmQHe@pUkBKD73tIEdAY?mMn<47(=z>g7r_&%<^5D7jwb z$3U2J$A$cu1vdw#$;Zj|o`q`*Q}q+e=}FbleALo0ASU_zn1QAP+&ag~s;~YOSDRqE zeQNVfimQ>1F_{{Bl|L8ylH(V^_5Cc_U)A6FFgG|ZRDbi}7Q?jvJlWo-aNS_qY_eQZ z{S9^urmxnYG7shx$3^WCTfek~+x}bZAxi4M zzV;YG`9{IK_nqa`pMCMH_0_50S4}NNl#V1yYLCfqi(&TJl9_Mi^^4XU?O;wv`XZtAhRSme`jLo|UVVNj z-zhNL{FKR6&R6S$U17RqaK81yVz_}YwSG>vcPLyj%o&ag)ysKs{b1hCVNdn^4a_#b z*nC6w4o6W0bK=(I@_mcF{xB#1YPsloAr|-Y_YIhfezRN+-kW-f#no9He;?+s-z~Qd z?|to2lfaw?>3FG} zui|e$%%jNDNGSf)U)P{thbZaQm+u`M{{ij%Dwb0zef?aYpWo}4)n@Bo@6LvM5q;09 z$@Ub_qhXe2aK3nc6mA8~*t}$WdihZ2k7G#NLbO zPbo;YCx6d@xhaG5`KyO$AAspym~2n|Z7j?T$A$V^8x-?kUaywh-e)jX^b3-JS(m|u+GCSrIK?ENAJfo$2RFWUa=wa#88E*)E>wStgPrPFTP9OpeEDjfy$9TV zjt#Y&;$U^mp0B?xf_oS4(z?0*m?Ng1<@6e=zug=IVv^4fUB5Mkd%&?FKh)2kgZapD zp*U!QVlzyGqGUg0uL;bNjtkk-`ne0t?G19yEkY^@F*@aUpwZk207#J0;uGxZ4osA;)R`5{mnG9Rp&LFYaqnpikkx`&V+l z>c9CrTgI95*7Nl!cY%Azv7vgFAJ4;_xr?=#oxWBPhkFbTqq9IkG9!8FEtZU3e}(NErwa? zxR5=K8!x~#+9S8UHZa{B7qTaRd%*mf!=Bc~+wPf{+6QTYgx19k;0{6G1yRyD-xdZtQsYcGGePh=t`@;Q$SVk4TbsFeifY0UyaXA9V2^6zVZ1&j+eqcp2MEv{#BSS9T$pI#r+nT z;}1wKpX~L4nc%pPz435Yz~t%cB&1Nk)cR@%n9Cd|IyAm4bd2mN`Ql3V@0Y-}J}^07 zjnBt9Mz)lE_53==`@pqqmTXUcbcA`paY=r><{0Iv8cV!=B>#3z)HoB>O9SWiX2z7b>6n`Q0#W z4^6hG_UH;T#&IEgs=te28XT5vPvvU@bEM-!_9nu0fqD5K*!vLXj~w>oZ(-ZK)NDj4 zsXdm!Jma`f`P4sNhB>BPvOTR!&V)H1xfBVlOLYBv1^TNIC0oAApZAPIcPq@!hi7t? z?-TZiI}m0z@(r>LIop02{d|qGG2h(Xg1%OJYft_%o~~>fTbIa>?O~cbuA+R|_V$1~ z8fM@>us0HBdJcPyv3E1fbN|5JYcOBO?Zy1ia{yIJ@>2B>CB2&YBeq`CI`Kf5BQrQt ze;#|iVMaPGs+ZX3p~cvn;uv;KGWo{rslP3Tdp>S2wjSC7_b$w9rPdF{k8eG6AjkJO zg6l@49}>Dxt@8(?AB8AIe#G+CeY4A9b~rMVs~mqL;P!*L0r?OKtvglEpQHaBQPQia z=UDxzd^>f>OYMOuMdkC6mO!-=EnP=6GZXq7wS-X}lVRelwzE>(5`l z)Um8LkTmDBr_WuEgZVat^TnUW`@G}wQoA8aq49Jwx+XBo92Y8|{8$NdXeVn=zv*Gh z=jp!_VP-o{wBbDQazD%)j*H?d*1r1fl`mm_=xp;1#f#eah%VfxMwDdFSAREgd>YJt z$5(K^`a1xwJ@nv6_;~f`j53M)4!+es%p4QJ>9mB3kzVel$ zsoRzD08t9HZ%cIdz!@WgO-{;74MRfXkgm_ipuZ7O z%12DTv3Sw-`Li%TI8LyYYrZ1Ro8v&y#s z{d0&?Qu)4x+4)qm|<)!!U0< zE);(g;XZ-scY3ltjW6S1W;rfoZy4MHn3`uK+f%&k4s!$YA(9j?pQEpLrnQ&U9*4m6 zcbsTnyc|NoC&4T~%i0UYi^^BrgU>IKkC3GDZ9-rF?A+x$6lQ?qLghP%@=b<$sAqEd zE}?uo^`c)Q?;%O$`viUM-nq-y8m5oqLgiEaO@w)@Pww*V+L!u6K0=bpw+Vgye!0tc zD9ixIC6#Y7%!>ZW-iUPG$! zM3Qej)qRVH(62$1^y(Y$HC}xNQ)5VGzLl@bdQyM8!AuxxxzPIHFzmeyQ+*gdBl6hf z>sjyakG>_MWc?-I822c;j$(#et|{+J>Xuac{fPTH{?drN)Wst+?Nwg?9SV01%uC1z zNYeGfXU-O+!##oijM2&V^!&y!$4oL?zdfx> z%Fs6$lWeaUTocE1H(S5G_uP)ous3zMUF?+h++6iW{<3i=r`2LtyD8#f+A z_c6?Mms?KP>%RH-0gj(Om3~{6X|MA9t9U7fISe@p39W~8-Pj5J^N3O?UiL!wE=<)c z$s0+sS0DWhB*~tBb#swp9yeQmyxalz6#8?^lkI7qxx_KE&DL*Epa0H7f6TPp_Re(7 z2($IuQ~x**ea-2~_B0;s4s%Kd=j(4856*$9e^s(QwQpmXQpY8Y2c2Nv%wg|L?0p4u z^wq41kgD7n@Rjd2xKZeLoRM6<#&G+?oP?Z(gyKc>bRYCzAWEV5dl%iGFmKP~KF&26 z<3Vh^Qu}s5|2?7@BG74j1jvUdU8@94+O z&TVfh%w5PMNRqu3=v&W8wx{vsIGDeX?$_#b9RK|=T?Y(Czvp$y_SD~6!*oJUL89`- z#x;$9XF6N#n&eyG_eRqfZk1z0^{jk1z~9qc02lp*XOo(uw%NKt>4}x?464KtsM4rJ@Yk8**xYNq*|bTuZH^& z{fHZq%cu3)WSAw${YX^LvHo@?+@t7^n4jC;sW2BJlaY`;U8h`$e&+?r_C|8U{y><8 zi}=j;cAm>j?d-;@?9UPR#@>xfc>Wnt(l|*Rct4kX73M3)**IW*5L-v+bHBe~>MXVP z^lIWNwtm*{uN?r>=MKx6`B>|#SpTTU`6KSM47(;7dofP;OD^?s75_%WoU3x*Rhe5E z&sX#BJ(ami_XTu4^Q@2a)XPtB12vm1&>y`r zvtBB%*ED~e0dombhJ^aZSh%av=RcKfPw}=RObetP60$c2?nv~HAWF8~{N;NQ<~!s! zBxFzXTk2{44H2RgvbP7i>5jSEZ2jY(>hD4H`#+OxPyM_EW*{;W36)R&o{#=3L@880 z-52;9=Ezm7J(2uqJ(NAZw1k_4{t-keX?%GK=3U3xeEs9g_b^pfTYGvnaT<$fjYGS` z9O$^nUM&9f`QVW-A7ycs+gI)OGtBU3xfVd8=R9KL+OBY~qTh@tu{K%$fZa$KF8uuae4*%s}ZFrPGkLO7P?zuTCdIID#wB1>NuE*8Jw@(bR9Jt=Fr!Y z?J2H~hdIY_p}5lhlF=}~=CG%EX4}_!{t9V}gzEWLxFgViiYVE7sqC-f^jDb1|Eb`7 z{?3Iv6z25|&Nr`a5BHg4{xDnrydZz8t|ML$rBL~vL^mJi%=LWch=j&9^^eEVe}gC$ zAjXf_xT|rf_zl((h*D@Anny#8huMCE<+M)m`Kx@df_Vyg5ec=2`sHir`@WUzuk4)< za|iMu60&zY+`rNHemmJ-8@RDBcOfq#vS{ih){j&Vuc2R$C@D^TT9<~9G?mEkmExA{8$S9JWT!ftUZknzIM~|Lw#U2 zBKyCeT)yV$k3y7^%GVd>3de=YS48=4fVumF$3^+Z+C$$< z_z0%$x7J=LuGAh~VeWTaQhRKL+2K2DFR4A+!<_3l(Z2TRhoTJT>mRMXP;fq!L0qsav^`!zMsGx{Ilhf+IKX}<&F~_YTrdLYaAD9-(65_gxR{)<{N5X z`P=bV<{3mO%N>{09#6xpcbu$-+T%x<9sbJ9xANyqBT(-Lb3+wHvi&cbzIjIV_Z3WGRm&y$ zTNh?D2?_!wi9hYS9R+vBYbK9#|ke}KgQ3~19_}m)i3CAUs?{%23bJ$b7`~q`g zwcO?F4>Qqmq4Hfz`L2X1uAbXoOPCWJ7qT}Id#A&^mBU_h415i?#u#QZISdkAKY$qrwWsSUU-?#X{CAiq_pIQ2<@=ZlyP;uz>f-$^r{|b_ z@vY)wDv;dfj$q|4dx!Cs2MyKjUTai*$-|f^c@hT==v>o zoiYU7c`zS2PUEZjoITc$be;FzLHVgh&8mE*n+f+&UTDPCTL`5W1$UD%#J->-xIQA8fA?WufiV7ek_ zAffVI1=kDxH;7Wm->0N2%}+gp?0N)k66kNcz%@kQ9#PV(Z=Bqp;{#!4IW9Dg-$gv% z2Xl4@YcDj8KZd=hVJ6^IQmB2ku6q?`&l4?| zw5~fFW~Aei>hEfp2OJk_U;Y1z=V0n|ORm3>l&>eu+6*qVjwn8veuO9`&2JN6?sJ@I z-~2X%^1TIf&Z*X3XnxZ=8D z_*@VD0z@ffZ&wO*AIvMK=cjf%gY{=>Tkkqd{bLCFOAw``_FVw;l;c9}JC}Ud!wfyk z+6(pH9pF~Ltn0yCb9Qq1MxmdAfs*g8y~6HkSi8|Px{;*N039K)_jzIAaw zG+W@h52z@gFYag4ahAh$9b!3MfB3E!{zHTAKa_E3EMv^L{M6B@dfs~Z59jZ3L4Ilr zqSOHK)yp!DFTXH9HRvMCDIR_0yMufik7qoXY`J|6S9#rj1MNHJa>kdb`Kb?)?TBcT zZ>(QF&G|o~f2hpbv+YsYp4PF?!@P%VLZW^dYY(;CH_jHjCi(n02hCq_1Fy`T??o^( zkaD3X+KiL;d}-(%ozcWhEUKMu1Nc^e7k zyAzpx;A|!3I|}8maOY0T?e8TpvymH-qAhc{N;}tCI6o{WWw2#hFWzYMHD)H;)4ac%V-7Lfu)X%^-}ndizI05%HOkv>Z!wyh z=Z0=di;od-C{L^*lj_B`0ltTTo5xUhdUm!msQJluc(^+u8qMvqc zZhH%1Rw1t-N%q#EA9!7Edl$jnge*lu_Vm2%J?J~l&26tI%p_zw60&z2_GY0!c3rJ#vm6XN%khA-*;YadxyjHM}{LIdk>KBSoBS9NVccXYuh^J472se--mF$(3j3n zwx{vs6vqrRTfe>M;l`kEw;xdHXbHjNz za-S7ZvT@IKUThtv^-2qvV;m>i%;zyq^Zsy{OXBuo{bMuSEO9qw=39Baq33*OIpz+t z_1E7kaQC9Wcww?V)!#KRE0A}Piu&u{XY9a6-B6pfiq{X(FTOdqy~kiaL8{&owpWb? zsE)qQt-0+rggG7=f`rQVHRT(HzUQK3d;7qRhMAAthJ^aZR=8#87cEY4q@q3;37--FQavozV> zFt~OwcOvg11+<87{rnc(x9Hd0k!)`O+(wuq?&KaNQZ-;t{tiOlVp+01wZ}1z>1DS5 z`nv&c0QxF-<+it-W15<+-`@4uYl;5l9QJfw@*zykyBTAU=sCvNcyKq|Ug-aWD23)< z-7onZ=D>UNQy(MsiD=UvvCmVE!^RirTij>uMW2Jku2XcM=K{wlUnMiH#Wf>VLWC!d`f_u)fDu?g-=p?Q~^X|`2o$`qFL*uLOI#kzXKf%;^G(Xhb1^>=Z?T9Ev_j6+Pau&MQFxNOv2Gp;a)=DXJxXzRdDCQ9Qss#YB{oPpr7mc-KWuiizw;Uj0dsy zZN%{%p3YAlhA3@=7=L4&v~ystcbr`}(Y`TG_pfe+xyNyeE1$j29Df;Rr)O-wMTX;d zNn+!{{v3Z3CU2GHB73oM@?pT8Qf?uBXiGHW8F zFg>rv<^{#+Nc5K@O3`=_YmY|g7Qw7>ob{t}KktEojWCD2X6=Rgx#F}8=3!(d67|bi z`wqh2XVEwPPqM!nH;!=3nP%&64?Snp8~x+!a@%{=F`LXbZ0{TN9p6Z{*Ou~~<(Ro< z8@6{N`mJx~wpVL|WjdN|*xvEzm%Np1uM_244pZ&z{M2bk^n7-#Jyd@^&_D7{vb{aA z_o8FIHrsIdenj8p-Q4ziJ7$vEhV7N1|MzlPu8m`(d}DEcE2d6``SmMnGc?Z}jlCY5Epw~c`r~ve z+*0%heQjA=FO}C3vUikY%FWhqPxoVIqTl|TWP4-b_Jz3#c?U_F7rsVc^;>H%XEO7iePi`E7z5p5p8mnw3(X5HC|~^_^HWD5Cm^A?*XQh~pkKZv*Q&s^o0+s)SB9_r_Jp|7?zx4oSm)6#6i_6|iq``2W9nrD_c<`c6G+xrrI zhu?GC>+YD@W*fFQ5B-)ulI>}pss3kvsvB}Ek~GgOMW6R~vOUc+J2>VLvkjN8J^Jg- z69DP!l*;|B1bcTm=4-PJ+xroHm#Vsg4BKmjt~bmS${hW()Ec66zniKa^iskop5r3XNClA9br)W*@Wl*WZJ12crMju_1de z!~FuYs(L}H>ox_c+FYsl<|AEyT#i07+3UCL?{_x@xCZVa$I?wTFRYCJPL`g_coJqr zjbwip!%c?Sr)EKFIubq48oU4825uJm7ZIf>-`ISl>(%uz-#acEPh(sIxPn>*shtod z^%CQ6Y<;imt5TSg9TytMbsuFE%w>)X<*RtU7Uth^E;ine!ogQyN^0Bkg~t0&;AX&# zsaud5Ru6xu8PmQoKTap#G3Z}Llr;bP;z0QvRKFl~2%;4E5nCU~k1mceATOr=Vw~b? zTkZdQk;&2x!@nzn+|h*4trX+KLYc)<5Z4NzCHJ_K7g3y<8=N&9~X;L%^#!TZg*@n z4#nc?ZnAt8X2RY!Z(F{~aiI0uPcTiI6r`FXq4{Vq?b`({=5Bi+si+|GP{~>*j_{Q6PhO5)B10wV_r7fu)Y7F zKcHD|d!>$1{bnd<8a33_POm1gt;_>3)!0k^Il1^JFV7Bj&Y){|I-xuas$A#+UcDQaZzvZx}=V@vmRgh|hD5?H@^`d@x zEX)MQZOeOKz1++3zhUk1zaKeXAq@O`|3G`H^p@1ngR)p z8;juTqJI!k3fWWn*1-IZ6dW72r~X?L{j-Qt$e!kzw_&zFt{}B968aqbX}D(Se?XK% z_VoKcg`H?Oq&*VySJ!1nq5m0C3fYstH99j6A;%ygdn@6(px?GjvOW2`2TTuSBogvh z$BTOFTlPyQYYGY+{736)RrHx+%G6O!#63)dND4ssI`viCmRV)T={Cfhp+ZZ6E1 z$QC4IFP{$k8~VRaOtyCz_UfO+{SxFfBxJ7;dp*$i?Urm$t2w$22ry8 zvhwGHjmYRWm>15pTxsPqFsmIGJx>#BU)5L5UR<9eN}=}ch^{TnWXIL#edu|MHoXf{XCX?V zdOjCFM!>w&$8w>1F2=@weJ#_;Z2jxW8{kevzuB>&aaY%&seaa8Gqd&En+et${d0~D z+1nHD9mo8cU~eK^UjKsBBt$7>PxooAbId(v>n~p!+(YOOACTMLNsbw8wtjolu{Q$! zpE>Lu3|DWU&9kG~`t7ZRJ05-QLCNJ)d+h0$lg!p{Pv5idj{eIW_Ef&V9MkF?omdW5%1U-=5~d%h2~8l5FoWxUn!z zhjJeY3H^VK6X2Gi{~b{>>u%5Q1FN5R8di{+g(!vkxyIdNhQlFB8ee?t(}e{3TQC=l z%CuMcK1grQKVY1ehW^AcmJRhIjnDmIZph$#_OyPv2d3xPWP4h- zkA|6-!5Mq8d9VZA-7r5mF8cg8c0HrkAeCD5KUwXd(;mT`O&%y#xhuVrwdcKZ}&pG&O0P`hb;^&gnCCno2s zb{hpV-EpCIn+A6sOv6i)?WtZ4h8dc{`RZjU+@&!4UY2aHKiuIkw<3Qcq2B{&0GBtZ zAhiRc6j~n~g07Wg49JTa4`T6R)?skhIM(*x%ImOVD(p6xXD8cyL+gWq_;o|X+D+yhKxi)*B`o` zIUoH+W!9d}w{kyH++PjzDDpHCvbP0p4f^F*Cfn2aw-)A?49?e&)V?*#3sMInO4}g5 zdEp_Bm%$u9EjeF3*L#v<&M{m6e5vP*hNC}cda}L#a1&rYLfT%H94|+pKNV35#mh

    !l>lv>Ogz4tEP`j-`F%ag!xz=8&-Bi9yU_L`iu1_xC(df@Wl#sk7_s+i$bG-V3g47d;lFhgBIHY;&b(rcmR&c&~ zOV17O0(0d}6`XHA*Lv+nnBx~(F0_8pc(oknW5-4H7mHJkS5?QOyC#L^qsQUicWhL?SU)PJ zKtIA1-DdL*#i{DAFU*yWlRe*fUzg)I!rbk+eBS%U`)@h^2F&W)ZN8y+QT)9Hv&C_t z`1=m-FPLwZB-_*TDpi+qe*}E(HWf2p8C-hFh4Czwx|1v+uTK+AWETno`SA9%p;BqwVUoYy$G}K z-PWG!&lfN1A1A?_?YL0?P+X3One4bIo@4DMZmwh4HOUu$51?5H*X^FKvh5S&xoC|Zl93%$P@P`9jY%tG{i4 zsr{(sRL{Qt@dn5DgxQ+G`Q{nftMynx>Ig(BWbY+(r^4*{?+VUmZ#i6Rm>(Rcdh*4U z)=h&SFGyX7D24h_BXm!~eC)W;yruKoEiXuwB1-D#p?2#8bDHC#_K5Yj&YV9M<|)U8 z?zgLbFImCo6^K$~FV?y5TBr#UWE&$|BT4YTy+ z-1b($Y;au2p1!C45lq)ta@*?%bBW_Z_DWEc!94$JZhP;-Y;|17UI!Fa*Yf$>YsvQd z;Kvy-%Ny4_f6VHfJG_HB(g=1mHIxaMB6w>gsV6Ig? zU2q%Gmu*b8r}1xrV;(nKfBCeodkX!Sca!bO->HsSXtsWP`aJ$N^gZ57wx|1RBVpzt zi;$4Ny1#Y@`WxR*wx@CJewa-eoNxZn?~?ohllNh6dpp2%$>4nUo*>`eFuQ-0Y){vN zEnv>b;C%Cf)+NJWu5nznE{Vm#GjN+>?)f-5UyaYtz`W-;-1n~QR&jh2%(73C?df`O zCCoUyE|mj$T-h*C6;d+P5hnEM?U)nAO$JYVZ8 z>JL$}>lgp`_nW}9bX+tq#O!sz#z`>OIxgwHO37xMr^%QXvo7(>M;+nDI5x^R7SBge z5!b-1`_9@7%}1IC+kDS@15paavp(nS4O8of%zCN3j#XS0!2Oqb2B)fz5C#n!SvXYY)|DI33Gb}=d-7E`{OYC{G4pB0InU(5x-cj4)%?`*!6iA zj&Fe3Ypdn-YPeXuDE>}^>FKzn_!|v#iQ}R;@Yq`bv-ls_dkkiE4twfvAHx*=YW+~Z z^j*Knk8;PbYm$%C`LldnEbjIE=}mC|ajg2eZ{2<)#rhrQ`oA;FS2<1}^LgS14Ev#CYs*fmz+O0FXW-#L&mvmiwXkKAz0Fq@d zHXih%;FDoKsb;y*c%c5#v3gy z`Bv^9ii0Zk3R4FoN})Jdjjj_+-TD=ruY78^MleS@E>ymya9v=2&S7sKxEe);sTPP* zsC@0o=opyG8&q(<^2y(MFl#e7Uz}=Q_yp#p?UU_k-97+j*BvYu8ecS?mcu;mxTNvr zW0-0?T6;<3OK+H=jth-19h5K3tBy-rmt3%u&6871GW{qP&-(#c@%*c)0EME==u#D1|un zqxLYv9Vh#~^@if*bH}i2l8@8*-}<;%+-qI(JKTXyZ28oGee;agC8xpsbb#e-`6`dQ ziu<8W3sch&rKGsO7Uo9BMfL27tNUSUHM90YaleqfieXkdPW{rfZ)_dgh~te8Dok}m zl%jZ!wVSvBFjqP*X}tOb=DQ4gzV_&hz1q#0FA=5CdPw>1*rG7i7Eub-%Mc3Q6=r#B z%Z27u^|x9F7p9It()N7gf%@C2Fss^BaK8T57$X~C{>tEd_B0;UKcp}<wSUju#M!{U`xKRC_hvE*H;=`@IQ2q7A-UyigAnzj4 z{f$_h=Hc(h=s#

    *nqE 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

    tls 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

    1T`>f_qsBKZ1tsFM5L)}%Zp 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

    c+KP+~V+%|46-x(^MP)>@L!;$*G^ zlU|*&q=fMf=GTY3v%^#9=g+ZbOQG(}Df7ms<;hxHZ3-wV`s1&Wc8nCLV&;G_WC) zP38Ir1uq^?_G5(Y8%So0lpN)bw`|_L2(z!`5|sjvlKrfAD!o2aJh|eNl(9H+a&vET zC>I|{4d)>KiOrr~7GQGp=#B+FPy(vz{f6<1ow-+0n_xLA5ZQ`rQFu*>wuSwY-}5~lp+@wpIoo>Ud4>`@Sf zQ9V2;R0ONBH3|DZvn5o7q*ECKPd;xPb?TNWA4xiA+i+$8hF70CA_gfSCAoQnAcvdA zcuO>1e`4F>MT?`%r3+?tV_j1d^mNNeHk(Z6_$074E3{q<#PgR}4^M5wvB9BSFn2&t zDZiG1WFi}!C2A5R6~$8cC8HR=zq^!LAU%QvRn4Jn=6roxi%JrSes} z}S8FEqb zX$A_SA5BwRmN;jNr#i+k3U|Y5yDB~DzDzM(Wp&mo6N8Qjaad4UigCy_g_Z$6#YAH-w`C|9ryUlJ z&Tkg`PjYTc!-taUYszjI8HAcKnC8pB5F$zu9_=d&`P4KAObSl{USexiys;6M(*&F~ z%s5C*l_&wyeY@LAENcCPi`v=T3c>LDoy4-!qeJVGXvgxFCbz#d&S{)C%zr5uka!L8|px%PW`EsN?D994`6d^DTWUaBIXW6oN z%aW#!j@Yu|GtJo(b7VGq<)e5BeWFoP0*_RbkOFF?DVt4f=}M)~GT6j^tXbQrnyIL_ z*ln-U6WCcuL5t?#6R=Y7?F{@g(4uK=i_AaEEg_-!k^&6WAU@N_4h z8ht*)Hu$*5({_kGfA2)3KT zhhs;0m6Dm#FW>=Y791XJTIBK#SdX^z5mt%vtk>d6d^)0F>3t>BCVMGK8r33EGTWVj zt39aV(l^8WEVH9cO-p5-wjZ-SmF!e?$7RJKU5(8(! zAsr;*+NRdaq0m?baG^{bUq(Du5@McYms}VcG8^LQk%0l3nrqlyueQ9akS@mB)0P|c_)$9f{D>GRu$m(kV)-C3Azgp zn&RS#Q8ZasUv&34XS&XWhQ@r+6efMVX;E}nfivUEvmvlwzF2Crcu-v^;DVxQ0@|pA zG~Q`8D7xR)ZQ8$NuQO@ zY)Wg_o$S#s!Ag)_h5BXpU3;-vy_npRNXvWSTf{CdzOfbzP_G@JpyPg_oKtN5PHlj{ zuc*<1_6+d)$s4J*f_3!GYd(LzHR6?0`XZm*4Om2yMYH8Am zdlc9tQ*X5C?c!_MO6+mUMbk(w)0NtQ4e_1X%ur&3Iu@fOITG^^rsJ-XfDy@#>^h4= zB*M@g7)6&VhxdeiFZK?g?o0{U;tjY-&Q@j% zNs zNpSOum0p^^4ybuOutYD`>NV2sLcLH@AJ3GvWWv6FHJ)^y&Qy9ramDL1RJ@)hG83cD zY^dFdNIJ!sqnVyUDBnkqK@qNxiRIvRmrOEg@Mkj1s+=-CYHh>z%FJzSn$%K5in`k- zov1SbP$w%*tj!=5@s4V}^X=jlz7G*5)v& zs1DcUik3b#B#NDU&IzFg$ZRLlTL^fM|>W>fbn?O>FD`(BX&{_ z*=zO_9^%1w?G&C&s-D4^%QD!wKdEIll-p}Y87~J+UYYF`0IzZi*ZHOvsrR9gyJC>X z7yDw&RPk7$$OXR00449J7}bk4`lLT&!3O~ zbLK6WJ(qE3R4pr;Up95<`shzjD6QQy*T`s%bXAhC#dxPObm@2FpsNEbFfbd*GXpk($mk1W$jBk$6WVy!A}W>PFx- z4MFgXFCg;yT!i-m=RS>Bj^ELm`lxx9Kk>dX#j<_{oZANZ%d+?ZxoAy(`Oe4lL(`V^ zNrV>>D)B|4pz`evyjKuEBLe`}R0P2@z8b{ml?cZGXST*eF;w|{cn{(EBH&aF0l>xY z6+~;I(c^vfIvd||%o0m|ogk>b{N~HCz0_sS`pBjvxYukq~@ z#%@A54)Hf?Tvd;J{*f>DYMgHsptlux-$Q)&2moAR^jN-rjdQO24=x`+r^0VU@3xWD z3e!7Sf435&jP1> zv!KcMMZ@GT3Y;#D=g41xyqpc3D>a@Yf4=fPh3swx&inM&cf#c57~uUx2IA_%++wZ}5x3~9Wu_V^=cTnL=(c|uO~NKpSh z5YZ0+=NB3;tiEiI-vVdTyA{2#`YuQG7;t`u@G=6w$QGv8{)PC8_n7pccYS*8ZbTmd zobPBnewR`7ny-C7g6EfA09{GNfGezgCn0Vja5f>FkHBx+2gwWB`#!{%Ur1`<^eBJ( z1E<5l3!-;D@YVrm%0&Qhg_V!(u`h6DX}qxZptzq5oO?>3_f6nDSA^bmp!Y}MT%x}# zRj7O)1I`yUURe1!3_S>(Iqw62D~#UBh+7Pt3lOeHC?qd8A^tN6ycE4)d3gXh8!uLP zVe)c4qEEa8x)*_0Sovlm?gilNK4w|_A%w{bKW%j|;_pP@6-JNp@*r?tG4O)q<&(hM z9fQbS97u45(WAUP1e~WeURZm)2Y9~&PHGzfTw(N*h&vZJzd|_WQuW1cRlY;JoF7f)+Y1oPg*Ia6X3cIfN;; zp7fQEA=7FU>E%yH^6;Cw~nkzP=J+5F!F&W4Wy zz!fGh4T$?M;M{}oO@u=I_q&>w5X3ETK8WW(0p8%p6joTi$0PcDjdQ2`54Nwq0=#<= zpZ$1YdJ#mwSL56y|AXm~ZFeAk$@Ktmg_Um~#I3!a7?ySR^}Gkuk)szCrB-vUOnQD*EsK#|H1U023{ZHTWBcYnt~8y-|vU#r)iwD z{12vg8}M?7KjcOLxWed>f3r2tV)-9T@6*6*NBrMQptlE=0RFZiW4a;EW5tadi*iH6z}R0Pq_zWQ<;Y|uEw;}vGF4FT^8jjQUL?{|D#nPuGqoL{p;;i^Ok>gOCU z=Y0meM&N~Hf#b&&c)kWWf7Ezkd?vjqcVbS1z$=X2Ify$FI5%j#FnR|8?;hZM58+7! z#~$+WkM;W{;(v$0D~vCj5%*8vjNBz?q4L7^7zNJP47{Lml|#!9fRp`fVS4u=`n|x3 zehzjo!VGwpgY1aCf%jv?{|qGn|1YU*8cO`JXsPV$e_ZdWd8#w<(2H^@T-zo^ww}3PA%a(ONLXB0e z<Go`$|e3QAKvMRIqj<&LH`T#-ye&(yMXs|jqB9I zr%x|Lf&LDh^X^x~s_-vJZ=8VVzXHyi9OR~WrJP@sOtT& z4IxPW=HmJLfb%7dSB~F7?Gc-5SdM@hb3J^7WN(Z#+NY z+Zg*1c!7Li`Refe4B%X-@f2V3$G2Yr@58`3=Q{v!RU!nHZyNabC~&^}UCiYlr{1Ux zEFZ_2k0bs|2)xLbF#bIYoc+EhXo45Szd0y)BXF`mP#K@CuW^QxG@(XPAE=@FHFi{|I36L)KBxiS zT*S8`@CuXrcOh;7IL~XmFg{aGU)4AfPO6Y|P`iyH<_N^!DLCQ%d_M3V1kNi4UJ$(- zfVcZI@Mk0N3M=265%<6|#DLxO4DV9|%a=pU{~$i`OX7snn}Li*fOGz{@SQzpS+%eb zqMg0;aFGOKFt%JeUWL@z`=;%L@noTdC ze;W|j0-W0r%6AxkexDrF0#vvZBAUUYR^G(3JR^vML_1O{U zKwsSnoTL9Dq(a99w%ZnsbD8`PZnrN2?<&MEe^Jp3lY^rX-3y%eBV2{x=pkSEUIyNE zh`-{c!t~}L`WE2)0^zp^Vf4yT-~U1UpZ{8z9?LiFf1x80PDBW!2U6BT#Lxa)VS3ar zi!@GL{s;5#>%dDQ{uovqR~Y|DZ=uFHP5uYd!xYMT2jcg5h1A07ort(YfwKl7jW7io zKS-Z)7=JI~Py0Kmh0}{7?kwQkj&Kh`SqQy{fcI_0fAAjwaD~-(0pdOdoS!579idP^ zw_e2jpvX43w>!P09;|^+YfPL8s`)8Ke#=<1iV`i z-wTfL3Zp0e7dY1<+=<}K7kvF=ACS2R@sE}jrgs7IdI~saOewRjL#RNSpz&yL;C%w| z_aN|c^pJ0yVflUloWE&2htIz9-HV9osb$uKG%Rt2*`1`fcSV`C0AVRYSbg^gnH7jn zO)p;GbAhuH;bbfh6sm6%;=8$kfU8h_v%tAZvg~P^`WO?onnnBJc{U@8gK*0?uJ?Qh0^hcNjQV zBixPabHB!8`GVS) zSzT?=~m17~erVS1GNA>iDAa63X7X23!8?g8F65r5v{ zh3TCHyvu>}Erh2L!t9*8fcH1V-+V-2dMw|Ufb#;v|00w@qJzr!H1H~qEVF)#z)Q(< zz8o|n?jIVb;V9yk1=8D&m?-0qE=+F@@M<;AV)-9jzH@+gI^us&gx)sb{T4X6W6G?% z5GowMa&q0shPp09%k^j6|AP2u->S-2j^9CggXOC}R^cp^|Ka89MEs)~*WsVf-e?BB zr+^bV&c_!YUIKV?fpcXMydL1)3Y>ox!K(+}UdNYN%?P~0%13!w1)TR4!8-wX*8=C! zB6!UADd6mZcLR8Zvt%gXLn-_zyGT05HBV_kS0Yi;Xp>S%3Q-qGFG(G!cXuqWfi0$y`l z8rC|Wq%fgu@7i8@%XQwYwXGDgwL>H8&Pr}M9tWx&KXvb#GE{t;_`Avvn*l=Ihs|tH z^=31}nf1BIQ7ey*EFa3H22a$A7&*~i@8jcd%kWCCm79r{I zT9^2$)bL1RAkvi^=}TqSu4*~y#I?mDed|g}qPok*-ud;%GYMwA z)|8sh?8EN1_p-L`?q#uftfRH9sUyC8C4}qEI<^e`y=}24ss>SieiIW;k9TBJ=~Qla zYii91epkf%k{jc>J@GSkFvhreOJ-nTW3smf4_fhHw>VC%-JHtBbJchfL5lKq_y#eP z&t&pVcsndE)Z}M8mCnR-2O##F2ceWBNIQfVosxZV9^{xyWzsI0OlE+&{Js{snf2@AxkK=?8O7KyKAeo_vWfKYKq8mPI@I<+{M!&eJ>IeruT%9h`J5V7 zE0tL{vYzyFptjrKy5U?R2NHYX35!;pPHu|pBZA+opY4@PW(QMg;@PDofs=&|Ei58( zAg5T>%1yme=-doEXavP+1HGB_Mn)gX==gfRF0Xj;1Ssrnzq8iR;Jkl!D3Je*xB~;? z8XDBc42}g(HO$MyT^u*WItQ5M>ae8=iLo#~|Vrmd`SYAv+!}6hIx^r=7YqB@f zm&AAQh`WCXE)GZR%M7YR0{OMPI^gaL+=Bz?k~PV`baHr@l3NR`{X(#gNBmU89~lsD z=7^(o7iC7$eMbQQe^LLp1mL%(Hm3TL&0E$avzfzycO>u*a`8Hs#+@eX>g~s&()B>v z2S`U3LTYGOn%vTz$#nH+vblLkQHd1C7fzuY8wu6-t61u#&{#&PyW}KiV4!K)QrY#1 z-Xx{sB;c7+5ro&!(6%bRGI{n$Dl2DWzYXcGY`|U)Pq9{_SvMxLJe1I>xIRZGmPU&s z=k{c-KO^G0;&6|+b|nYacPEE)iy+VFVl$D!kC4FuZU)_p;-DfnO}05PoTU1=8#2F_ zi?X~cE+1Ds5K*t7gV(xI%kXV495#e{&qd_bh&;}X40?z96#GrwNN;~4yRZkT?n0`L zaiwZ#$R^j}4c=4E$mwo&+)#qU8p<(m)|?|3o&vI;2HAPLMD`%0-T)=FkDD4+!R9SW zDN)q_0R3W!dQW=&z{qevTgd3|3Vq?*f&Y2PTDMEhJ=GO$XQVLRY4=71pX9JGvhZLK zUxmW#>k?l+lsJ1NsWNAaU4v+&#g-(7`&A@`A&r6=!r&M9w*ciA5QhC-^4<>@%m%{C zKzM5yLPLYR-A+x@o*EuZuegF{?oReDHW z*AV*JlH|ZpGRtA>Fbq`F`e51gQK$8y{~0<>4zE#X5N5I{2F7mk?%il+gLlv^P@<|c zaM)jqsu@F_b1Xhf6+@g+DkrX?!TAy?N5pp^2V+E3`oa(=ifSiD5JOZ$M-Wq!s&Ql% zQtyk@$GGeX6(TK6N_R#x+OgjS690@TKwBUh~jM zQvwqrQje3Mn~i#Oj;tF<^BmdH?k@J))Ngn_T25FV}8brj= z%Px2GL@#kfLm8vKP6I)*t86rW@y=x+gM^buux5!YqzQaDTE#Gd9RZUPIc66=+nUbJ znZ2+HDINxY8{EnmO1>oXqZ1_RFjs8bbrQajh2!d_L8Cnnnv>$K7)g#KDX0t4_=cc* zT2X|Yg8EC00*0WrCx*{joJ_-(=Ev3Sv4BR>DsaLulA5|YW-VXGkFe3?el*; zb`xIEPHE~kTVZ4vd!-)lQkSi7E%Xo_v#?gFOZFu$zgn@i$m^_P>9A*4yp0NTae3Ah}I2mE~V&R zG9;Nb=#NL90u7v^s+g{lccHmGt`gzcN_swqsk}CznGNNY-@+vFFDNgANb52fWPLI9 z6)lc(XCM<}l!I%9pTFcJlomn?sSOLkZ@kgc+7F^_SX%Zciq1gPr7((5_psVGuKDR1 zEG|A?EkF+a7&z+P9AfE_!R`#FiKiq18cLhYS)T1fE7mXUN5XfbXbCrAeuMgp7TAo% zjCHos`ykauE1_PFq3l`{%b|b`rH{6fLVl79n^$~RG&h_8dQ}gQEf`$$m9u! zLscOi2c%n3vLjr!ID@CxBoj{<&6RtRr6KujP-Q%tPI3C5ZU>^_e+ov_{_sZN-wb?X zb`yr5_guW-9O?cH2{uN$&RKKj&xyA$UNnm?`s)zs?f*r37mcO&)_VGl9#mRVL;cAt z8-k7geH7bhblnG%S^DMwfL1m9@`zJ>R(1wgPUsJ+-~c>-F5B}qG?>wzGNP`|WH~I7 z_lr>pgZF+V(k!~0WI3)2**UYRg;#>Cp@o-^K;BLOXB0>z@4pefUE98N*@<0L$S*c2_ZyA*m{~bQL z3NH$K*>$Ltp@J!(-YQZ4D$vUe`73UzQYUXg4Go`p%4NQx5S~Y%$xy`dqnZCC8pbg5*{e2W zld`tsG%k&^hx6889Bz>x)Es+Jb6~Fs7G3#sZ~k0Alo^ia-iDuJZ-yTcXM;90z&*u| zzHVfFJOvY;>&d5ZKsi=o32~)4l^d3)STdmTwJ*rk3&Og@aH=<+QA7$S*)U`llo zqMtngo@66$r{aZ+y%b41P~TP~sa;>kD>BSg!F-l^P_tl(f*0HmeHNG%ox2b>q7hxU_*6g~Kk zh{SV=4OE>`)J0WW2|_BPX?o{6vECrw967e^w z@`Sg7A*w%M)-%M_2`Qbdd%?c24iN$g`-2O9B2cZ@Kp+$jz} zsJXX7iz&^ml~C!Ln*cqm+NVmQaA51>}+ zDLT5;l}h5+KW-BBbk8bn~xU~WA( z3b6ne1r%Vt+ABf%I1pS^@&VzEXV%9d^&65LK|ksnLG>_PSUMY#@GD4Yj-Vwav_}dq z-25E^w1>1T&4E+c&sfwyK;^2UqFZ7zt8^|c{vLF&gC&8ZVtndyZ(u!)s?HFs_%gVP zQ#p2|T8v7nBeB!ihJ-IQ1?yTz+|c6&xwDK#JppA>MP&~WCDw$;&q7=pBrC5<$seMQ z^=5S}KBB#0A=mmNFo&kao1tjfiuZu0S}hyJlzz@Fb+mS->)u9d;87IIv<9GLxZXkh z{E4rmWPprD?w~Eh%J@MsL^VdiE$jsCf8>`^NVP)e!Im)CHnZFm=~ZNgYa0` zkfy_UzVHcTSdJF?o)FEV?XWQJ=o2-7p*?9=iXsyr5OOGzWg$naBxnz6U+rWl3Z!tv%YXS@kAot^5GY7tV$Erawc9R~-mY1Ptf zI~I}3Y|D-L3&4GIf7_A2GaLb9B z^ggtg8lt6fv5A-l^;$et2DOYpN`%-9BTh5WdV+~>sIj1ikw%n?n`(hDI1^d83?#R~ zY>pYc!O*PCW-ll6Ri!r`)Tn$pP)^r9jlPR}!H2_yy4N;y#wJ}B?xCzeE1e*?rK^EO zNOvtP;>K~NYiPiR=V5n-6a}5nfX+$drek*`4t4JW1vS)_UIXrK)H;ynm+PVd{xJ)!Y7zFcZm^8q$iQXZjO7%k$d$52URi` zC8lpu;#G~`e8r@E5nk+~WzE+~ro}tk7j+PI2(L;`-UoxXP8=+8+`sK%K%8 z#Ui7z?TD0z7j54dJF{#owm&kfU16i1S;lAERdvR;u~Hzled_~dqdnUVq@6bWhdXsa z><44*FZGS?&Z5TO`S!72zvDq3mW1&SFSYVT!iYfVS{mXj@)%oilv5|}4PZsBb)oa@ zWwFWk#59*|IB@vZpjRuk@(Ry*#yS<7*+0^{!O6rP>_;8^S~8?-C@;JqMW;glxG z8v+)3Pz*?-hM=2uF(QDlh=GhKZhT&AfxptM{{N9_A9^$2;t#s`)-U|?nxSN61t`ID zAy5Q&tiIt{+}e%J&a21sadUUob7||M*?6~Xa4?gO+A9pvsC=etRsI@PbXHV-DlXO* z@4)BFl5PfX&-*m{WMxt}`}N6Y*6Wi^eaxz+a5z^6A~qAh-iiM|X|Nxc8LKaWoIJ?d ztL8djM-kQ{uy3i0)c3S1YAW&nYDi;wKNcI`ga^|7AUqXHx$lQZ#HBGYLp@TP25JyN zd8$X^X)=G>7f;wpiCQgB6ehEQnzbSb<%4h@lO}%%&0Z`uV-DSwOJw2Kuc+A$AwLw6 z({%*P^bnr$#g2;g@}e9G?!cp~z=-l;tZ4J(K*~E6NVS}EL#WD1;!b(5wo)3ZvK|A( za#vfAYpBYa1Fo{KR9g!)RAqeu5EVhSb)SZ+tUm)%dHhvFRaV$IvGs*k3=*U5JCvqY z>J(ZKBrRyyt@o=@V~mQpa&$=qz$NW97cZ#;@CcEhPBGBflRi*gG>EjWwQ z`4K80Lbi?q;9Sf=wMdUZPQ<@C(B;%Ci}tS&NvntURIJ}FvFt2wmuHl+74l4ag*;+&_Ybsj%t*T_CYX0a}hwVI7Nmhd^wOc7f*N{sF-|5zuu4odRf?#71#nDo`u# zrwX(L_cnou!(SDW`(lB*abG0RYTRQ2t;L<`m1wjG)Q5YsK>fHk2{eFvRG=Z;Z>po?*54Jxen<4yssur9-$3a-Ms0{4>y`Y`US zbA@#s?h6FE9(U$gVcm%Pe1UGkeV#yf;67KNyKtW)(A~J7FVMZX&lc#*xL+#JcHFNO z$R1@mx}uo_uW~$HgHR!3IQddxo#_sAXLv@^#(IvDYTJP^fXZj8o5DuWRrcm*?+y@* zuJMlOnjtr@^?8HpYmi@E{UYCpL{8F9Nh4fNK&~=lQ;}O~wVO^cfJ0IzaH9w{2s04W zRgZtRYQGE=%X9sy;oYI@D-pplYD)j$KKRKLyFp!7C33k$Z$Etld`w~ygepvJ_4XZm zT%dYX;{u^7YY2C?UbRRNp(-))Sb}PcrX!&$F*H@$g?OgYLf_k}{nfk5wDn3sWGC?s z+92O1Bx0vh6%HPE>jhizsq$6D2uZ~Pr|ouc*kPJrl~Qlp zy3$i#zlkMN)4M@D*ua8U%K8>;uv!`2couZ6jINI&RApU)J7u?826aMJ*4J=XX&=;(PyAz*aBjRh zwgM*jt79<4_u9F#M)idU%B}54LvzZjgO0&7_Jo-TSGqmH*wJSWel6ItmP>Z(SGY?P zbY}ph%CAH=>AhvLb57Eh{Ox$CB%hG4PP$8v#VWTxQwAs14Af1zB;ck3?9`7E^dv&9 zbr|l{t+m!_Uu|hzv9|QWTKy0_%902(9r|FM=3Wk2AZY-0IDBtEc4F zZb0=8zCAE{pO#j^gOH17`2HcXR+S-CNQ*5|lS-|{ww}Ag%2i{cxOIE&XzY$ZOn)SH z2MD10ca*H!o&kQaYNH+U0z$3DK7NZp@4!8RP{B#8a+jyx8r)R%0qU(l%DVc+J_+eZIVc#XAzbB3h_M;iC5K_o z{Xuc)MxrP}ErM&!)#F#5u}j&es(S`OsX9WiLvbfps%4BJRApU`J3DT*b(MyytnUJP zMxOmZL*9O2_X=aAKUuoO+kF)_M|z`682jFXyM)&8lhP+Bd8$tk3a$t>HoYg60?Zg) zLOu6Ll(GZ&$*Yg>zW~aQf=62MRm$AshhTQC%owMYQKTDzT_(_rlG41b!jJz1pT?_B zJ%W4~f0tPD&-G!vBG2~6ePjxGa1fxE?r`@f?P z<331=@?kt8(1obS+oVPp<9>=j@5lXQfiA$1FRKPdmHAI%lA9kx|%oLqwY-pIct>x6TkgfF( zutwFMP;l*yF@@*E*21CaZ8LLBx!SFmv4mk%>^uh^r>xoyMmDP=6DnF{t^m}+ryXA8 zD_DNH%8VCP1821I?s?dBS0YQR)TPMMVPcBfY$GIG;DrLNtrnJR* z{8w5*zX39yf|8x8poDw{m6hwt6}B-_WSr)>Lv2zkldZ)dS7E&szgq<2Qn2^>PZ_7_ zaa8t3&^X;CvEFg|6nXal$LTl1IPG^BoD3ng2do=h_*p#!6BIZ*(hZypQRvmgZ=Evs*XgBwKIY)PTKf5^ImyFL$%@f^3U@t+OA(W^HTV zzLUNyu9WNF*sS!ph_6EEd3>e(3iR$?kL-e7AV+}O$0hazK-UV?4Cr%!YAvp#eng&i z0=h|_tpOB4sIaKF-Rt)`lAm0qlG?ZGoFiO*d{oY zfG!k>RezU2POBO&Cd@Xi%O$oN(2W9d7(4)h`pJ8devRZzsvi_=9{iF#>gY&nID!KO zB63nK*RyZ{@|I-oc&7=9xv8#l^8S=SI87fp$u-O4rjiV!_IWb~BYT=-olUD|&4x3+ z$xXZ<&s$XrfqcJw5=Eh}svBVs=^QLuncrH)oQ5itlAx< z99xh4W#>`ODneDVL4dremMsN@s;ujQ$L>%qi}i%6tRFdPf2tv$s)AqMg@`$6l!#h(#GeD zL0R~Q9XsOGZiLvD4cof!b10h9eS`|>K6_hH`woxFgA-U>Veo))XDBup)u?!9Kasu8 z6|jq_Qu_Xng*|Nc2!h%!s35ZDM-saT&<_Qo>){6i^#Y0@R7hjU-XWE>uit)4u-R{a zCQxv{{iejZ&1I{^V*T;E4$UV8y1?yHn?3!pu|7y^ayQ0lbDhI%qxG|*P0gzs>zuvo zSjvdD_B7TR8`Yz&d~-V*1)8%T8_#A()#K=zi`_Dum)EUd$8yxw`yEF^Xa#Bq`t#de zp+Cg+pg2sz5x@4^_Z0O`q=+K0^@3HzVq4T}wW#y(;N9dsFdliu4#0$N2Vi4U_>>wU zRApU^XKd1H*&9Tt%HjuE*x#$I*&3>{`T?o50~+$Fk@i=euAr?RR`+*6t`LR54N6`+ zmgbIa$F6XBV`xr?Aq@?i`V+a*G(e}#7Q4?=9jQJ~D6iPcUMXn>kDJ3yOSO2$Y7 zhEvI?(ZtPEM*s?$so!vFPsmq$$9HeE9vlWrt>|XNOAcBAVWWmN3aF@*njuTLtIgZA zv+#^f%LUx!E+Y&ll);Ge9JsUwcB*YRFw3ACn2@iE6@ROE8EUi01V z>>tA>-pbC1R;ZQlc340tm<7gUL<#b8U+v7v$Oqlp8K*Y-Yj>XaL22#hRLE{Wa$U6_ zAt`*wgv1_{WiLU{z&y5M#%L$T=1Tg#$2&Zi%kX?K$`CwDp)?;Pu~g1#cs?DF8lDFM zMG$1kw#dLdQ>ak2D}%b!!S_HX-Jt@VbOmvbC@<{P!W&kFe*@rII^+b)W}AtN>&-kuWG9Wv4pB* zUn{3z)nY0Ws8dW1iT+PmVIbT|;|m}Dtctq6H*HCtEaK`y)J zSB0f#RrWx*XM9yjq}%b)ob_AUcp_G5jd?e6aHjYXWXVFQk`vM;*Xz1l&#ko1-R+Us zy&Nk3u$zo8X$ z*EsbstmV9We3u}76oEZ1xMMo4#+R3fmP4o>(p!dc*bwEENh1h(a>`c-6<-K>TlA7x zEyj8M{-@qz_$E(xt&#l{`HfwVtXTUa5x(r!z67~Nca_FYakU%gX_d0e+2MfQbGgc2 zsOQ>y?a8UCK^%vb*pS4=WG07F4`viMjwnVE@-oU6eQdV80Fjn;hEE#Ue{JFay2}sa zDE}~NXdBM(t7LszD#p2qI-fHrNS+L^%&KaHyj61)6t}$OSB!OG#VB8oj;mr_$(;LD zC3}NAq;;H49wzj*9%ivs-3WQ>W~<)^`65zy-Kep?HLkiXo>1NLbQg=K>Oja_2V3+W zyjAMppH$iH!#X_W*1?!mg$W+&(1BBZJ#shBwz1oQMN{P`N9@$Xg*tsQC66 zol{;z#%vIy9t*}@j|o+PWm6R(6J%8izlB?x2NiM1MTM3ih%NQD9~$h?uJ(x zm_E)MIZnt`c2e=NO}|z*NxF@j29-7-RJ1ZjOJ)3ScC#{dZeQ`K1l~IO&uQ$ zf}ZIq8LEm*$X8^0B|$d;7Y$|stHNT*z1OkwoYIh$Zr$Q*B5r)AzGj80+*%pm7jRe9 z&$GeO>a?4`PAr|O6Cq!n#SnY_GnTl;g*qb~Mdpt0CN&ZEvtaEg(8d{X5KdM5VMw z+11-=F+5u`O=$?MQ6X)uHH>FH^6Xts?0W%qNbL21)N4GS1{6W4u$CZ3y`ESm#?llk zgWprFn{hA4b}7XnV=$xCDF6pS`dIb8UJCa=E8J6UG2wU{5 zVr6nDo8+PS_)y)(WE5XvfRZouYn0{~)*Op>GzFfhFguEsd!8E??QD*+1i@*LUv&r#XzWSzqEy5ptFFxP!*{n2GNf^Rx894MR!K**keh}1> zt$^}WnB8B23;g!|S6tFli+5<4POSxOi~St%jxjhGcYr33ru#W&aC>e&_Ze#h&edPCUV;DCCGA&S-2P;q{(3S*e{DdGgY_46mC{<>fRxs{3y@MIUjYm?n9b3mXQ+>UXcUEb!|0&{4LwwYk7n{~ zFpgWAt7AWhlG+XpSb>2MpW?KY61$#KN`$IJ&r_zKON zjBVpDsxhw$nmZOPr$*AYRr~W)P0#OKi6b(f+j{PE*2tV~vD@vv+jl6>lCyXF4(#3j zvZU-s$*gTXU)FoKV>Ktop4)iJwu?3)Pn~+(W)?u~RuDjKt!?rMG%hx2T^`R zfKg#>298?YFOyAAQ{-jUsTLg^)2t5&&I7nlx7dTR4-_e@ES`I{hrD7%t*b8X3D@7P zYtlzD8~RRgO51dPt`wV#^xqLkN~km8KboTFOH3u8{7vCnTpm>IteW1iWWfNv8H`6h zC0O+)ea^$8xo@sc(U6IK=?MM15*YQe98QI{QNwAP9039 z>>-fKRSkiJs;n&NQC6$PZ%e4k`VF2@lB=!XYpBZF2#!+uRa@t1sLFZ(kfQgnhJ20{ zzH(3&^kS;=9>EPwUnLW(R}St*1{I=_@z}WTl;`YV>Xm~|pS6TKiYJKMA?N zwU&IE*7r6#Rv+1>3~CtaxxL}@nT#~CMr&If2x1w&U7;MyA?K8?(!-; z@eQg@?F;#uKI8C!P%sY+=dIeH>OYgt^mpQeRCaqBXVT?W?>yg=aW*KsM+Eth@u~?4 z`HDZj4T4IT{i14a5M1Y0?X?qCdyC*1$jsPD$;#4RP?aSll@0U@p8vv!fo+?#Gn7dy zwjNx1&j_H6O~*vFpTpdH;gTh5S8VIqjv2OI=UO>;Y)ScwF`l|^*oCeI35(LPCP9F& z&WZ(%8GUo*&d$owi+CLSm>kLuLs&>CT75@P)_LpJSN3_7$z-?v7~%# z1w=FA^-`zFkVpV^GyR5!}jB8Nz$57Bp(6|FH*_#C^4=xBEpTY9Uee|NW zfRXQ%v2BE$Vt|~$$YwNl3lLCjRY=E^plUG|yCu(1#%a-Lk!R6r!Gc5s<3_v9IwgTEYH7&`*iDJ+;@`^r^=dvG}YD!?lY`waNpf&$p>xT08nf*EL4sQ zD%0HosUmS)Q4oDvzeN$$?$rbE%k{tFhg`@@E}C~zTK(Jn$6THfIvmQM7Kr`#DS;w@ zo)_rduIV-6G4%Ka*rqhxW%$5cHdn~LYlD4DL5*ZFJ2= zZUO!)&-Q!03Q;%vjZutQZ;WEpxBD!XJ0Nm1Au|;7Yh6Rt_$<56Q1vz(N4Fc1Jc`hV zP{cm9PaIl?ZZS2R-e4P~A@(ZYGowLDFY#`}5ZeTHRVO*>Q{W>A)8SX46w{yl473^@ z!ajep&mKJhnBM>2kY?MMzB)iUoRRAoKr zq~%t5l{Wl41@E#AC3yPi`;$>#nKU&5)3i`)4ffYeMq}?8>v_-UmG43)uq~;J_yb1A z6Zu95U36pOm810|4!e~H(ZsOnA(gT%cG&r!ykp}Ysvve8y>qa#RFTZ$F;78t><~>X z*ju+JI2$b6Zw0gV6N7_B$dE{R8z5y!Tmwjr&^G|uLnNPG*g8pZH=y0+8J9g~2t<#X zGFE;JNEs_n15)P59|0+PF9V7oR9MrH&R!_t_U|du&{Hk?49l(0<37#0ANLCDS=^_? z+;~W84l6^|*=J=a`mU9+H&X45JSyaj7H=0slw4>l$8`j03cOg%YN10(t`dlq)_W8|=!n&@IAjv_2Ua5WM2lC6nu1!>VlMI1#O zcu9edB6r~B&`D}RL#J<)-Ms;npQj3QWV z{aiy;Rs!5%7pfMkpHP*!#udHW5Uc3P8UCw9?crQPsJ)kMpAYoP%dU=zy{x8!FJL}p zzif4iGZlQ9%K|TBNd$@Tj=7vcsuxUd;T#CDx9nWG|HZMtjm2Jm7!$oqVt@1ak(A~* z6vbD%f#!>9kur#6dgf^usU;Az%5xL4$zhQAe0xhILSx4QyicpmZuLM`#TmOVvc zHIhdWFajAOfgd6gucC!Y6$v)*%fQ!eJJzmaKf#JZJk8b|>~ zp3%y&o|i^DF|oE^CY&L5ifX7MP-fLo$K^E?MZMhO?i{RV<6e>XPSaI*%7$X>9d1Jz zTfg%fO1n(GEwvWuqX?WPx}6t4@>?qOWkW7UGA;R@w;ahX&)yqiYX`J1zs0m2>fhJC z-d5!|- zZx=&{uf8h3%b9?b$wN~^nGoLu)C?-M)(-$FqlS7{nLNJ+q)eVaIk7ZqRBtJR-c=^g z?tt!<-1Y^eV)+R@mB(5@$}N%t6hZn5s{wi1zL--0O|ia?`&2pkx?Db|H_hUhSYh?z zPJ>AC0tS&10|1IyKFg@E|7Ec-Y$mcg03qD}f=IbIeUXyd4~+kO-X!$c<)Q-7R%#T8 z-B>|viY4+a)FZPfwK>_Rrl76KUcM$l%SnTo0Mn_lsRyxm|1-S-ZX9eZP!5?eUk%pc zuqCdDN9Oe^L=lh7>sE}y9+}sz81>!0X($)CD4`VmFS!HC@$NL#FB|-1fnR_)_+JJp zQG`wecSzwFVB3TDfxg&-p+gEiHcV@KZ0xs0X&F}ariS{H*>1cMM}v{V&yi=hp@Bpy z&8M^iABU<{Rv_O>v^VWl4<-8gl6}p5LEN?usm+viNJ#lv*oBmzg^=>Iu&XIQ3nAra zVMkPc7DCF;LLH<0EQG48_e{ZhtUS9=L)tb`hkWoPYfh`3mwULSJOTU)afe7u-fgYK z<7TZ9sM3MRv_X01|LOo$11$z{&}zd%t-8vLuMRYIbEZpj!-*j<so&dUt8%US^k@mI(QH6BsmQopXW$nW?Hl$XAVVEov&a)nUkjO;Gr|DBW%~ zjqjqkZ88~q=baWSw4V8Pr}~6+^`o$^U>T-(U;VV#Fj*4SVuYl~ zAV9u;k9?i!m>IM;y)($(TnB+wq01;_yg-_H>$m2 z*z9lab{oCuSVW5zxs4EZm_777>8nh79j2*lvpJ&gVQASK8 zx3R?7idU)`T#MaowkhQ1x2^p$DX(UL5FM2|)50CQlC@VWhui4O^I4==C9KC&wd0Q# zDSu%VQ?X@Cm@|6OQFsPwW@O(@zw;rCM|@msKdkDW4KKLx1>HeZ*4uQy8U zg@CRHRBPP96w&uE}3!jqN2+|uUkHA5P?P#$p{QrLNc^K#KRX2F6k za^>TaJ@v)M1fqTLQGqxDUMEl;plb!H2Xvc2>s+tjYR?(~MibjM)?kor%uQ(p4BfVyF2RMLo_}$CmauU!A9F(nzD+w!RIcyqLjF z{i_UaLRB)}u`^a%11K(`D(m}z*j1}VqYy^E={R3DolXuEJWq$UQWg^-FBhE3*IN8mQT}IXSzlJ3$C^CmR^Iq5t*U%W zW@rl(vWaziRjd1kE-MVOjQ_u1?9elF~f_y|JY(L1c3 z;sPNr7cg0o!O@wl5#T&fz6WM(=xdhcJDR%BAhyDyx&L#4_;oPvwF*D~6TSiV6R97o zmqjP^f5)7sld11o^RzE@478fHvL$$clllhO4xtjkv;Y4Mu-Ee&VC#L#jGkNe=VK6z zuM|0psF-1otcR)@zX?j_ERMyegq?`3NQVDGk8yZ*mg`({FI$UNG)5lh19Y&p(^VoB&R@C z%O?~GRavbNLX~!jhP-2$eW=s}m7-}a>vW$6Fh}&O=ya2-Y>wO63uyqGEsF+5hWp3a z>1l(KBN2q%`V-kcAwt{5?uB`yHU|r(9|(DC%4K%$w3fA6IviyT*P}HX{ZJ&Sl?`ZU zd>Uey$5r>I{@|nnwqL$NJByL+}3AMjEibYfB6R73#(TtCa`9nX5 z1&@T+N}h*jWazO7X}&loSJ{UPF_d3N@NiSJ@id&B+cJ<$q(_EajuKhena|B#p;H}X)9*a&vgyppXH#YZp1X z3aEFvR%P@o;wwi5>OJDtd)4IEn;&g0t&V5gy~VC0i>~TO$X`c(dd8l35yrL#rOQPH z!J)1gfRT)T2(`uXC_sInRVyzqt3kL-b|Ou&Xsu1P&hs(qL_DQpVrHx=JFb0}Wd!aU9?vEJ*CGb)ZP{-qM15_brE{_UyKJMP@KV|mstrgy| zm-@mIog{C-M}!{5ktZToSnS`+5h}!x=n#nJb-O@wasPMxB6y>e{yn%a6zD?S-zLz- zxO1;kh3w5gS)j{sr*pWJFM{U;??&9`3v>(aG{x|uG4AA-`9<)%@%wyvb}#O;1^P1X zmkP8U_iF_@)2Bn(>Dl?IAew1f%T?Cu>d?SB!=lsxraWPO107phUvEOLVu;!LlBYA4 zoo)AWc0kq333+?DF(ab1;e>i$?aUcb%&pzLQfs#hb0ViYyD%qWB~)DrdFyHqsGZNV zqFW!bZ3sFV^kzCh7oq>w%2qx&GJVWoS7cLjq&$EUB3IdcE;F!GNd4&AGMq~eau2@Y zDZj*88Mgw25)4Yt0}uXY)1i#@@e16-L`@A6_- z@)cw4S8(_674qKgWn;0+Mq}@{cM!C{U$xTn_yocW&g!;)ABAt%c=u<@%T`}SS%R0h zd(cqoMHBAHR7@Zg!H}kP zGk2Zf1x{ZJnY#H{w}rm4Yc1rgGaGs~UpK2=4|Fv9JD8EIc*mNkdOpgpp2;Dlo(a8C z)bp=UmR(WLZ2uC}^KXRw_|@|-B^}lCZv}eX)n^Y+l6rQe$xxp7)TyJM!{x|KP+X8g zH1v<%8a+0N8v6gZR(18i@~Hq*NgFEQ%m0olV0?PoqXDR=+1HewCZs-rM?tT)euh{= zRo0`>&g@&&)^{{iWqktLS*5*6L#69!bZ%JAuAb&GB$oA@uaQhW-RSD+uX-BEdCRh^ zw;$h4_nE}#2t-I0Hk`vdRiFv&WEpNj>lp8`x8t#+8~lozEK-V^(8Lur-oTs$JGuf5 zxhsmA0#JgYt`hR&SJcxa9Tj!8KtFQT+P6H4IuvQ?uB*3sas!s;eJy3` z?Jieu-#NaPvJWRP?Bjg1y09_r^xVKsCAM^6FBy-b?(i#W@{B!>{9ekX+*VD(Td)b?m?j=-ZJ%(o#ehhvpbxA0U9qyO512+_}26t;M?qO&L zq&5_{38d<*?yKg>@t7@ne1!78eiskwUe2$ak{L#lr?)FEzIkKh8BY zxyowYUaDRV;Jvgp80Uouds&bB?NuKmRLCSzuUqfHUI=|Ch_lFo1(|YLXThN$>WvQq zYInb0bm4I!L5nSCioDWo96>O*2p@^xDa6)VCjq)Zpk_e*l42R4K7q~v6hXl2-uUgl z*J^0RwpXt@FsqSAu$Wy7W%M9dtOYj)!Wlr}ANku%*a*EGGE-B1>2HSFH50{rR z&h{wGNb^l|rZTcH_0y_+V;FCI9f_ayHN_l06q~u>GXA;W#$zW?jgHed^3K? z(e}+!KM!sDW(9kqY6*dvp4HDRlwI*o1NUrwXMWj{BA$_G7E>vHnRUoZpRVi&z;6Q( z|E-{g7<)yf%2MXO{ZK*=l@B>h@uV=slfu%vc#_{-C@was+~&Y>pyoS=z{y3;flQ_F zvt3=w>D}(y)Kflo*Ut9N!Q_0(XXhPn_gGA49lX)qP-bdp1TraQ9g_M5Zd)LK^gJAE zV@G*7JI}c5`EY(>|qcJiXC?IomrzYkiQxeF7r;(f#7$I`x=@944L%QW5;} z@bm0r7+2<%GiRbA--$1ti48QH$3^~*X6Io^mS}CNYc&2M*-~SLDZhmH8aKL!d56CV zLO2_RC8~Ox<0mFZpO(UbV|Mn9AThu>5UGLq;aw59HZtSr2s$+9p|p?l(j%m8VCgxY zw5*Tw<|M6#*iOnT1oIVW;dwaW6 z=l;#JM!)%s2!o6V#4zDQm3Y4U&gc3~28TcDAS0rERlL;w!wlhwhm3r^b^+Z%YkUHdMt}(=Lk_Vvn)RD|-FN|NF z8OZ~ko+54J zJhvN(M5dLL6k69@xZ$zjLOcgtG%*jjCk9BB!;GnX%oR4(g%;J6PaavTL8&Brv8l5N zl}?gMPsN%>RmxO8l-jNo$C+JLDqL2KEzvw>DoC%0-yc*JF_n+=@^(eTqKhggb^2jM zN{BC^QZ$&#$8$?Ijp1l)Y1c&fMM6b{seJ6D+eE^;A=QawWm8KdPM<)>8!QR49sI60mf*9JkG-z~!*~VjI7f zIx7bvc>5LJd^Ntlr3GjbBK)fK_;|yj5k+`vpT6Vx27D4Pxt7E++aV{oSRgx(#!LG~ z(l!f!q2REoonx?cd=hWZ)L>8w)RjP$yTf4L^7+4ORQ-?L{yr^bN}!L$5OTs!Ffa@$ zVtyExOhiI?6yFl>(><`-!>TaZI5?_urf&H$u5etkn-vQDwVwugeeV?gL5yPb55;$p># zZ~Ph=Dd9lSq1XgV%1+Ugy`1OVy4YvqSFChturK)GDP{cKY-fC%PP@|zW>-pv+cD{^sw1g&7k zMKju?#ziiJ3xkO-LKshX!V7O``Sf(q7XhjkTkw9f2Z8tGk!cC+FNV|7a_&mY`6w-? zl$|QU(D`0kPA_(y4~CEb`Ez=?@-TEROv~Ai;*?-uE>6qYkM`CFb8TAAII4jU=IFGX zAEf0xk(SeqcNu(iW~Swwl$LWtTF#4UIej^7eUwYma$3@Iewvo^YFbWTqrTJ)sbNxD zPGefm&1pH$r{#QR<-`LEL0hY#VnpKob~6{I_7-1`ZT;A7p&&;jm9A{~r$s%*D!g#^ zLx&qG-rt)v9b)xx#<$Y`s8V)YD9C)TJxm?=&CAYG5O%!h?&^wIuq_rHc2X$#0Aen} zRUn;Tp8NW9=Gyx^Q_~@qs&^G~NL9DcvXJbgP;jJ%{Pc>-j})huoO%19$V>?jgAQp3 zmXsaDdt3-A$F_$Y9?Bl}4hV>jj6Gzgz_|ACRFfm{DOlEA$<7W1&j%FS!l2sxZ1COH z>e|G%J!B_^f&--};A|ap;73Y2U#xtPPfMnR&6=;>oG|RzT9gv=05kFWEI%nLPE%~S zw)|vAU|dc~D=U`8DLXP0T!+}`&u*fJPn@$~9Wt$8bIPVG?WH$xapAP@EBv?Lzw#{$ zMJI33oc0w?HzJo@JeHADf+|kKNO{5TQ-N_gC9SMj7N=a3go3QyaN1Wm{l9(-M|<@! zWpm2qZl*pxZ^e{{{8+sDtLC(yaC$a!*bgVQvy8#kUQ$+^a%_0P=2T!@PDv{(mc=Re zX+yzpBQ~7&6He#PIA)?(4^uX$Vv90p?-`31f9%KN)t(e5LVw}(Ql!|riBw|=Hm9Vl zI31-+HH@Xb0^{Q}E0)FS01yfVzlYdx+Fv+5cHhrj?b3BwJ}p}s3i7y60KeXY#=*i7 zzhuIPm*G!JsL`AbB&YDh>G3O%n*L}gcsXKI`#`CE-X9g0+b00<8JR zx|It5#GxnN;>Y6EX}b17s&;ar{b%}-{uyMD)P84KBcBsb2|v2C3?rs6PB>xP7YhI7KgS+JMoRdhu6@6> z+QWbh1~2xKKIvxELXnZBIr~e($qSPDrOb19Yh6f+fYP zk;9;J>~TSwq2Rv|n{lBiU*Gd)HpL3I#Ar=3*|C3(y@g^-2|v)ak4o#W{Q>FM)lnj` z=enOo6K4gx_5+X~3NBy_eL3Tx^XgT9{o{}u$w*4LSJ!?3YY%XxPRvhEw!vP}Fpjj4 zB||w0NC1}nU6_`0aaztxX*oSOQAjX!rljR8vvT5r{{ULms1beM@@Qn{?sXrpDHF@@ zbss2nZbdu}KNVPOe(CDF&9(RU3QdPt{+$8#g|cJbUN!M-J0>u$9i#NKVp(>K_AV5> z2(gjI0iqj+Hhi=KnO3lMV+`^`LEdNx;NR$~2Fww}Kl5jM(J4&{k7&Neh;DGthM1>r zG+?&HCS}EGFVi3avpE$Qms8Tpie+&+7I2{;CpbfRjBpygtzffM;YK#6?6*u7`{5Nm zUv&}O#QU1laiZb21sE@ME=O!?A1AdR_2g5tTy#m;wNF4!CJV4?-@Hmc7Ow`<@j;l7 zR(m0GLqSfFruGR^`#z(7H-{Kruxsa3lBxE8{x$T1hhb8abnQiHwNDf}mmoH^7fJ08 z54aS1V+XtTNhruv``H)HeBQ=U>6os4Qd;c?3!N6kruIov`$LnjJH$`Nu6?p#5rEcj z{H;qdc@Y1=?mxTJkHxER>e?r>_5k0shTLS3~A z?47`3NS>I3It+|$qexkCIy5V%0^@Q@T3N9yPKyB-3Z9GD5S}iaI)k3&AhLqZsc2~i zukypyQ?9d6bn2fAXk*J*n`!4Xj+0f~D`> zl!vxwk6P{oHO5!?H>uyyT$GTDz_nnUEtqkpU1J|E1SJ3la(1`$oCtD5L9WXvu|FQw z@w{sDeb4trDmCn{=|oTfI@ZoxDRM$Vu0$xYzg@AlT%~SqO=OV#3{8hv{`Qm!oneUC zo=LY&KSt5X+@9k!9b)<0!->pm&u4#{_zy+Lx#Fc8P?QqR)^v!)_B+mVI)`b03&9vD z(~o5fmrq`^LE&U>;Z{wDSpF7P2puCauZ8_z8uAE=QbJ#L5dyLNbYM!*9!_3RCg;6d zABM|D9-e(Cb{zhsggQ-!Sc=orbPfSQ*;?IjIt~TtMv(H4ztQ)XB{B+r_wDn4gN&5$ zq^3hG>>FFUF&83FDBB+CZR?EZkk z;dN>_Q_~@qqWnALY*RItO&}kS$nJJaHcd<>jo@IgS%1 z7uLNt+6`sHi>Xp>uxBfQacww9cvdXShR*|BDEI+lwvIt@aqW4%FILwkw(S@<4MIWs zdqL>9X=kq*pq-;40j4Nkyk`>F6b2Z>XL9%SP zm@gw`*hPImL8cXKIWItdC`fOxC**w9`oBG)@b5nJ&nH_bI$5pxS|D=%3nWI&2|iZt zwxp_B@}iX!5AeNEriES&+guotm}LPt)p{1-=#h^^76@NQo!v0i!#AmYXv`3Z<-c=u zIC3)e;Hq;sy-Ey!xKPs}mTK*7I)`v7Cy(1#I;flx$l+MlwOjUQA#(j=S#eSP;YEE7 z4eu`xF>$mAmSpeAEiMF=V~-P%w#D^(?Wv-X@NNbRv}^HvFp8`-rl6RaY}ko=z~*S)S`$0p;y}~Om*tIW5cBYm1 zw733!oQGjj&ARsGX|;bt=$wYw=-6_p{pka0KR4LwuU-4mf^|INp7{M?)m3*Y{O)V} z|3N|9@j1HoqgCyeU5x_FZ�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%0Ai%_abCINW1c^PoBc{_5QVjcx7 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%0Dbh)6HO$y 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 | grep -c gcc-932) +ifeq ($(IS_GCC2),1) +CXXFLAGS += -fno-coalesce-templates -fno-coalesce-static-vtables +CXX = c++ +LDLIBS += -lstdc++ +LDFLAGS += -flat_namespace -undefined suppress -m +endif +endif + +ifeq ($(UNAME),SunOS) +LDLIBS += -lnsl -lsocket +endif + +ifeq ($(CXX),gcc) # for some reason CXX is gcc on cygwin 1.1.4 +CXX = g++ +endif + +SRCS = $(wildcard *.cpp) +ifeq ($(SRCS),) # workaround wildcard function bug in GNU Make 3.77 +SRCS = $(shell ls *.cpp) +endif + +OBJS = $(SRCS:.cpp=.o) +# test.o needs to be after bench.o for cygwin 1.1.4 (possible ld bug?) +TESTOBJS = test.o +#TESTOBJS = bench.o test.o validat1.o validat2.o validat3.o adhoc.o datatest.o regtest.o +LIBOBJS = $(filter-out $(TESTOBJS),$(OBJS)) + +all: cryptest.exe + +clean: + $(RM) cryptest.exe libcryptopp.a $(LIBOBJS) $(TESTOBJS) + +libcryptopp.a: $(LIBOBJS) + $(AR) $(ARFLAGS) $@ $(LIBOBJS) + $(RANLIB) $@ + +cryptest.exe: libcryptopp.a $(TESTOBJS) + $(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) -L. -lcryptopp $(LDFLAGS) $(LDLIBS) + +nolib: $(OBJS) # makes it faster to test changes + $(CXX) -o ct $(CXXFLAGS) $(OBJS) $(LDFLAGS) $(LDLIBS) + +adhoc.cpp: adhoc.cpp.proto +ifeq ($(wildcard adhoc.cpp),) + cp adhoc.cpp.proto adhoc.cpp +else + touch adhoc.cpp +endif + +.SUFFIXES: .cpp + +.cpp.o: + $(CXX) $(CXXFLAGS) -c $< diff --git a/stepmania/src/crypto51/License.txt b/stepmania/src/crypto51/License.txt new file mode 100644 index 0000000000..2a8ec4e487 --- /dev/null +++ b/stepmania/src/crypto51/License.txt @@ -0,0 +1,67 @@ +Compilation Copyright (c) 1995-2003 by Wei Dai. All rights reserved. +This copyright applies only to this software distribution package +as a compilation, and does not imply a copyright on any particular +file in the package. + +The following files are copyrighted by their respective original authors, +and their use is subject to additional licenses included in these files. + +mars.cpp - Copyright 1998 Brian Gladman. + +All other files in this compilation are placed in the public domain by +Wei Dai and other contributors. + +I would like to thank the following authors for placing their works into +the public domain: + +Joan Daemen - 3way.cpp +Leonard Janke - cast.cpp, seal.cpp +Steve Reid - cast.cpp +Phil Karn - des.cpp +Michael Paul Johnson - diamond.cpp +Andrew M. Kuchling - md2.cpp, md4.cpp +Colin Plumb - md5.cpp, md5mac.cpp +Seal Woods - rc6.cpp +Chris Morgan - rijndael.cpp +Paulo Baretto - rijndael.cpp, skipjack.cpp, square.cpp +Richard De Moliner - safer.cpp +Matthew Skala - twofish.cpp + +Permission to use, copy, modify, and distribute this compilation for +any purpose, including commercial applications, is hereby granted +without fee, subject to the following restrictions: + +1. Any copy or modification of this compilation in any form, except +in object code form as part of an application software, must include +the above copyright notice and this license. + +2. Users of this software agree that any modification or extension +they provide to Wei Dai will be considered public domain and not +copyrighted unless it includes an explicit copyright notice. + +3. Wei Dai makes no warranty or representation that the operation of the +software in this compilation will be error-free, and Wei Dai is under no +obligation to provide any services, by way of maintenance, update, or +otherwise. THE SOFTWARE AND ANY DOCUMENTATION ARE PROVIDED "AS IS" +WITHOUT EXPRESS OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. IN NO EVENT WILL WEI DAI OR ANY OTHER CONTRIBUTOR BE LIABLE FOR +DIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +4. Users will not use Wei Dai or any other contributor's name in any +publicity or advertising, without prior written consent in each case. + +5. Export of this software from the United States may require a +specific license from the United States Government. It is the +responsibility of any person or organization contemplating export +to obtain such a license before exporting. + +6. Certain parts of this software may be protected by patents. It +is the users' responsibility to obtain the appropriate +licenses before using those parts. + +If this compilation is used in object code form in an application +software, acknowledgement of the author is not required but would be +appreciated. The contribution of any useful modifications or extensions +to Wei Dai is not required but would also be appreciated. diff --git a/stepmania/src/crypto51/Readme.txt b/stepmania/src/crypto51/Readme.txt new file mode 100644 index 0000000000..d9ca490d9f --- /dev/null +++ b/stepmania/src/crypto51/Readme.txt @@ -0,0 +1,255 @@ +Crypto++: a C++ Class Library of Cryptographic Primitives +Version 5.1 3/20/2003 + +This library includes: + +- a class hierarchy with an API defined by abstract base classes +- Proposed AES (Rijndael) and other AES candidates: RC6, MARS, Twofish, + Serpent, CAST-256 +- other symmetric block ciphers: IDEA, DES, Triple DES (DES-EDE2 and + DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, + 3-WAY, GOST, SHARK, CAST-128, Square, Skipjack +- generic block cipher modes: ECB, CBC, CBC ciphertext stealing (CTS), + CFB, OFB, counter (CTR) mode +- stream ciphers: Panama, ARC4, SEAL, WAKE, WAKE-OFB, BlumBlumShub +- public key cryptography: RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, + Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN +- padding schemes for public-key systems: PKCS#1 v2.0, OAEP, PSSR, IEEE + P1363 EMSA2 +- key agreement schemes: Diffie-Hellman (DH), Unified Diffie-Hellman + (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH +- elliptic curve cryptography: ECDSA, ECNR, ECIES, ECDH, ECMQV (with + optional cofactor multiplication for ECIES, ECDHC, ECMQVC) +- one-way hash functions: SHA-1, MD2, MD4, MD5, HAVAL, RIPEMD-160, Tiger, + SHA-2 (SHA-256, SHA-384, and SHA-512), Panama +- public and private key validation for asymmetric algorithms +- message authentication codes: MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC +- cipher constructions based on hash functions: Luby-Rackoff, MDC +- pseudo random number generators (PRNG): ANSI X9.17 appendix C, PGP's + RandPool +- Shamir's secret sharing scheme and Rabin's information dispersal + algorithm (IDA) +- DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and + zlib (RFC 1950) format support +- fast multi-precision integer (bignum) and polynomial operations +- finite field arithmetics, including GF(p) and GF(2^n) +- prime number generation and verification +- various miscellaneous modules such as base 64 coding and 32-bit CRC +- class wrappers for these operating system features (optional): + - high resolution timers on Windows, Unix, and MacOS + - Berkeley and Windows style sockets + - Windows named pipes + - /dev/random and /dev/urandom on Linux and FreeBSD + - Microsoft's CryptGenRandom on Windows +- A high level interface for most of the above, using a filter/pipeline + metaphor +- benchmarks and validation testing + +You are welcome to use it for any purpose without paying me, but see +license.txt for the fine print. + +This version of Crypto++ has been compiled successfully with MSVC 6.0 +and 7.0 on Windows XP, GCC 2.95.4 on FreeBSD 4.6, GCC 2.95.3 on +Linux 2.4 and SunOS 5.8, GCC 3.2 on Cygwin 1.3.12, and Metrowerks +CodeWarrior 8.2. + +To compile Crypto++ with MSVC, open the "cryptest.dsw" workspace file +and build the "cryptest" project. This will compile Crypto++ as a static +library and also build the test driver. Run the test driver and make sure +the validation suite passes. Then to use the library simply insert the +"cryptlib.dsp" project file into your own application workspace as a +dependent project. You should check the compiler options to make sure +that the library and your application are using the same C++ run-time +libraries and calling conventions. + +A makefile is included for you to compile Crypto++ with GCC. Make sure +you are using GNU Make and GNU ld. The make process will produce two files, +libcryptopp.a and cryptest.exe. Run "cryptest.exe v" for the validation +suite. + +Crypto++ is documented through inline comments in header files, which are +processed through Doxygen to produce an HTML reference manual. You can find +a link to the manual from http://www.cryptopp.com. Also at that site is +the Crypto++ FAQ, which you should browse through before attempting to +use this library, because it will likely answer many of questions that +may come up. + +If you run into any problems, please try the Crypto++ mailing list. +The subscription information and the list archive are available on +http://www.cryptopp.com. You can also email me directly at +cryptopp@weidai.com, but you will probably get a faster response through +the mailing list. + +Finally, a couple of usage notes to keep in mind: + +1. If a constructor for A takes a pointer to an object B (except primitive +types such as int and char), then A owns B and will delete B at A's +destruction. If a constructor for A takes a reference to an object B, +then the caller retains ownership of B and should not destroy it until +A no longer needs it. + +2. Crypto++ is thread safe at the class level. This means you can use +Crypto++ safely in a multithreaded application, but you must provide +synchronization when multiple threads access a common Crypto++ object. + +Wei Dai + +History + +1.0 - First public release. Withdrawn at the request of RSA DSI. + - included Blowfish, BBS, DES, DH, Diamond, DSA, ElGamal, IDEA, + MD5, RC4, RC5, RSA, SHA, WAKE, secret sharing, DEFLATE compression + - had a serious bug in the RSA key generation code. + +1.1 - Removed RSA, RC4, RC5 + - Disabled calls to RSAREF's non-public functions + - Minor bugs fixed + +2.0 - a completely new, faster multiprecision integer class + - added MD5-MAC, HAVAL, 3-WAY, TEA, SAFER, LUC, Rabin, BlumGoldwasser, + elliptic curve algorithms + - added the Lucas strong probable primality test + - ElGamal encryption and signature schemes modified to avoid weaknesses + - Diamond changed to Diamond2 because of key schedule weakness + - fixed bug in WAKE key setup + - SHS class renamed to SHA + - lots of miscellaneous optimizations + +2.1 - added Tiger, HMAC, GOST, RIPE-MD160, LUCELG, LUCDIF, XOR-MAC, + OAEP, PSSR, SHARK + - added precomputation to DH, ElGamal, DSA, and elliptic curve algorithms + - added back RC5 and a new RSA + - optimizations in elliptic curves over GF(p) + - changed Rabin to use OAEP and PSSR + - changed many classes to allow copy constructors to work correctly + - improved exception generation and handling + +2.2 - added SEAL, CAST-128, Square + - fixed bug in HAVAL (padding problem) + - fixed bug in triple-DES (decryption order was reversed) + - fixed bug in RC5 (couldn't handle key length not a multiple of 4) + - changed HMAC to conform to RFC-2104 (which is not compatible + with the original HMAC) + - changed secret sharing and information dispersal to use GF(2^32) + instead of GF(65521) + - removed zero knowledge prover/verifier for graph isomorphism + - removed several utility classes in favor of the C++ standard library + +2.3 - ported to EGCS + - fixed incomplete workaround of min/max conflict in MSVC + +3.0 - placed all names into the "CryptoPP" namespace + - added MD2, RC2, RC6, MARS, RW, DH2, MQV, ECDHC, CBC-CTS + - added abstract base classes PK_SimpleKeyAgreementDomain and + PK_AuthenticatedKeyAgreementDomain + - changed DH and LUCDIF to implement the PK_SimpleKeyAgreementDomain + interface and to perform domain parameter and key validation + - changed interfaces of PK_Signer and PK_Verifier to sign and verify + messages instead of message digests + - changed OAEP to conform to PKCS#1 v2.0 + - changed benchmark code to produce HTML tables as output + - changed PSSR to track IEEE P1363a + - renamed ElGamalSignature to NR and changed it to track IEEE P1363 + - renamed ECKEP to ECMQVC and changed it to track IEEE P1363 + - renamed several other classes for clarity + - removed support for calling RSAREF + - removed option to compile old SHA (SHA-0) + - removed option not to throw exceptions + +3.1 - added ARC4, Rijndael, Twofish, Serpent, CBC-MAC, DMAC + - added interface for querying supported key lengths of symmetric ciphers + and MACs + - added sample code for RSA signature and verification + - changed CBC-CTS to be compatible with RFC 2040 + - updated SEAL to version 3.0 of the cipher specification + - optimized multiprecision squaring and elliptic curves over GF(p) + - fixed bug in MARS key setup + - fixed bug with attaching objects to Deflator + +3.2 - added DES-XEX3, ECDSA, DefaultEncryptorWithMAC + - renamed DES-EDE to DES-EDE2 and TripleDES to DES-EDE3 + - optimized ARC4 + - generalized DSA to allow keys longer than 1024 bits + - fixed bugs in GF2N and ModularArithmetic that can cause calculation errors + - fixed crashing bug in Inflator when given invalid inputs + - fixed endian bug in Serpent + - fixed padding bug in Tiger + +4.0 - added Skipjack, CAST-256, Panama, SHA-2 (SHA-256, SHA-384, and SHA-512), + and XTR-DH + - added a faster variant of Rabin's Information Dispersal Algorithm (IDA) + - added class wrappers for these operating system features: + - high resolution timers on Windows, Unix, and MacOS + - Berkeley and Windows style sockets + - Windows named pipes + - /dev/random and /dev/urandom on Linux and FreeBSD + - Microsoft's CryptGenRandom on Windows + - added support for SEC 1 elliptic curve key format and compressed points + - added support for X.509 public key format (subjectPublicKeyInfo) for + RSA, DSA, and elliptic curve schemes + - added support for DER and OpenPGP signature format for DSA + - added support for ZLIB compressed data format (RFC 1950) + - changed elliptic curve encryption to use ECIES (as defined in SEC 1) + - changed MARS key schedule to reflect the latest specification + - changed BufferedTransformation interface to support multiple channels + and messages + - changed CAST and SHA-1 implementations to use public domain source code + - fixed bug in StringSource + - optmized multi-precision integer code for better performance + +4.1 - added more support for the recommended elliptic curve parameters in SEC 2 + - added Panama MAC, MARC4 + - added IV stealing feature to CTS mode + - added support for PKCS #8 private key format for RSA, DSA, and elliptic + curve schemes + - changed Deflate, MD5, Rijndael, and Twofish to use public domain code + - fixed a bug with flushing compressed streams + - fixed a bug with decompressing stored blocks + - fixed a bug with EC point decompression using non-trinomial basis + - fixed a bug in NetworkSource::GeneralPump() + - fixed a performance issue with EC over GF(p) decryption + - fixed syntax to allow GCC to compile without -fpermissive + - relaxed some restrictions in the license + +4.2 - added support for longer HMAC keys + - added MD4 (which is not secure so use for compatibility purposes only) + - added compatibility fixes/workarounds for STLport 4.5, GCC 3.0.2, + and MSVC 7.0 + - changed MD2 to use public domain code + - fixed a bug with decompressing multiple messages with the same object + - fixed a bug in CBC-MAC with MACing multiple messages with the same object + - fixed a bug in RC5 and RC6 with zero-length keys + - fixed a bug in Adler32 where incorrect checksum may be generated + +5.0 - added ESIGN, DLIES, WAKE-OFB, PBKDF1 and PBKDF2 from PKCS #5 + - added key validation for encryption and signature public/private keys + - renamed StreamCipher interface to SymmetricCipher, which is now implemented + by both stream ciphers and block cipher modes including ECB and CBC + - added keying interfaces to support resetting of keys and IVs without + having to destroy and recreate objects + - changed filter interface to support non-blocking input/output + - changed SocketSource and SocketSink to use overlapped I/O on Microsoft Windows + - grouped related classes inside structs to help templates, for example + AESEncryption and AESDecryption are now AES::Encryption and AES::Decryption + - where possible, typedefs have been added to improve backwards + compatibility when the CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY macro is defined + - changed Serpent, HAVAL and IDEA to use public domain code + - implemented SSE2 optimizations for Integer operations + - fixed a bug in HMAC::TruncatedFinal() + - fixed SKIPJACK byte ordering following NIST clarification dated 5/9/02 + +5.01 (special FIPS 140-2 release, in development) + - added known answer test for X9.17 RNG in FIPS 140 power-up self test + - is being evaluated for FIPS 140-2 compliance + +5.1 - added PSS padding and changed PSSR to track IEEE P1363a draft standard + - added blinding for RSA and Rabin to defend against timing attacks + on decryption operations + - changed signing and decryption APIs to support the above + - changed WaitObjectContainer to allow waiting for more than 64 + objects at a time on Win32 platforms + - fixed a bug in CBC and ECB modes with processing non-aligned data + - fixed standard conformance bugs in DLIES (DHAES mode) and RW/EMSA2 + signature scheme (these fixes are not backwards compatible) + - fixed a number of compiler warnings, minor bugs, and portability problems + - removed Sapphire diff --git a/stepmania/src/crypto51/Release/cryptlib.lib b/stepmania/src/crypto51/Release/cryptlib.lib new file mode 100644 index 0000000000000000000000000000000000000000..d7be5bbb1f84121d1eade06facdffc7b6b6805c2 GIT binary patch literal 4242298 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

    W8-mD4zAlI)*d@r7 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

    UNkN!Gf*B`g#)a_IPLC`t|XJEg>xwY?;hia;W~1 z7YR@xxl;&qjwDdBY$mF{l*brqrA`0-ZNe8=zU0zJ<|o;)z{ z?M79dWBeXhRl!qO*y5_GN_&rARa2E!Glx)9bSJPO4Yk&Npwn$waGue52##&CO!22wqA_@C^ z5>ib@>Zm3=kBpHN;GZo%+*&z!#mzO%OMM76m)#e`U#om_`?Q$9_kuyZnDghHeg5X6 zN&ohn{M&QucOA^%_3QjA{KK0cgP69Ztx?8g9I9=-vSAWwW-r2XoSYOe-kS}00(Q7a zpYT6d-t#2(9>X_#C}2sG)$|H&kWAiKtC+c%hiIISdx*UVh^G2;gp@!;gIBhfD+FT9 zcyG%yG3awTZ;PJg25fQv;FiB+K><$b+X%&9<}W+EZ6{P`@uaO&p{78@8PLV0SK@@& zGJeuf)VfsnZ}3}+{N3Aj-VHu@?>K$i{k@a77sX!Mb$e0lZe}~_j$I2jA3~DFIfru& zGU)|OqwgD3hgw{38s_>6a4=pV{?Vfz32-``&JhV1X&KB=#8+s@wc@&dH@&TFpd z`xOc?1&TN($n0N$)MCi4xbNQ(P>Mn=2Tv^Hwr2e-J+5q%Z77W;wgI4RS{; z?;Y`hX_Kb!x_o=llSox1_dvemd?m?=4=ix1XwhMb@T48TRVY5?(y%>dk9EE+t|H1a6Swj^T z6ipTOK)A5YZeiyR`kPSLJ)m>W-fj15Vb2@5w0!#BfwyICFRDXvNmaYJ*DUJ$mEof- z*-JinupWhiE(Se}Z1J|nd6xnnFVkA{#mG#MwP^+3yAVEAP8f*ErY|RZpG3%H?>f-D z*z3UaR54zsiIF+w~4B`*w6DH9BjPQ zKb7Sne5VRv3YTjT|E@ZuEadH|q_P5iesDVVj9`7tdPI+=*%#{LNi7=Ym zVvk3k>Xjvn$%7s6)PQj>zi}S?r{KDz@v`{>e+JLI&_)4E5Sovh-+j*zf211)EX7`V ziH>!N6{fqx>WU6_^04|c*aO1+>>dz0YZRzt4@e*xET}SsP*O7R8n2w>zIu$IWMHQ( zG)+Q|@~KPOEfzt8gzP>oM(Y#eM!y$-v#>1ja`{VvB$sdbi+)>)PZ|50bhixOcBln8fSghJo8(_a_sy`iO*z7ztd z_*WJ$ZCrd1A9()UVrcR$_hI8jw8**r7G5a!dwBfLVgHewJ<8|@sDJ1iA$A%Vp7VnR z;Q5s2KE)*aK1V(~8iqbH(q98iaM(MZdS!!etgYF>9XO$l z*r&B+*1^_E@7{(_{kbLEcJ?jL+(#naBa2rvEA(PaNp*b0U;!2|bn)6OM3f4X%_&ES zEoH0(lgsZw<_8=be@n^J3!uc7pqfDQ=&Rvsf~{qjlr&C1nDeZEVBk`0T7rI&B}g)< z8B~Y70G+VJZ!TWCxM`?#uo*4zNcS?rog?Yy3(kwx+4{GjvEA7^53zf2=SjcB-$*PM zqASz^=p7Pv3!pCmD)zPl(ms&^K-wqr0YKU(@-0AGkHtgr7fRmqN@FG0&EhonZK1R`{F&{4}ur(GU|w9A8}(Jl`{x}J#D zL)Q}#D)9amg?_t)ZB0T2-Uk8QB4O<4Af(EKL?U-{yo*GcFa=kw|4mY@(_z15Mo5;g zq}?y}=gw&HPfqH0DF4Oki*Ii(**>@E_U5A7=a%?amO=~lUm5G4Tk1E@fL-WsE{24c z^v|6ErC$mYk@JI`KZx3gq!)|g?~hXa4Zv81WC!roD^UA0@aH)1&3NWXn{T|w87TQ4 zMR9_+1JA;c2_SXyaWnQ5Q&k)jV5Wbis);cHC*!lxbAJRTfF)EDKuEbpe0c>XfH9a< zfF6KY(ua)AdVJD{c5dB?&hKfx;sN@7BC1k*E}AM>v+_Lt6} zqd8@9Q_#laJ|UJ9zy_Pvf+qoe3^XYA{t3^ZwQ~xfT<=Ug^Q4V2UiQ(RAWET74%eJ0 ziu7cUZHrUnK+ef>80V>S5a(&)D4rud1ZQ~vjCZEWO2}#6{eaK%eud{bp<}fUA(UKV z?D?iHMW~&K`jk>T^eWCfqAC@kP}o*v^F(@BH+G(aKdD^fxW|if*1;kEP5NnVBc!#B zCE}Ii6^M>t%#cffIbicAHrLf(00T?F^wR#ziw3%4+fS-|^!BU0{-wG7OY{4e7JY)r za;xFT>E8R^tld4?IFI2sed}gD;Xk`6FPX-HAPp`#VgOEv0v$5ojZMR&f|>( z#g$FX$v1AGpE>;}{sHVwtU;)y6PnS$pihXVi~jDTXYTp?4&8yDSx;=bde-B83o)oP z>)yU`g45sLJor*i?b@v11H{2$(zyQlxj?xe&9s&xlwtdVLG(N>7!1;UdhXh+REEg? zb^fN@ZGY^`^I;y4=dBpFawP8R-2NN#_vRMTn~v?{TONFxVpjIl2yo2p9o~_H*S-Z# zL@!xB53zf3=SkhZPoR}}ep9}nt9y??)OhT6%ai)e%=5&R(7_#g1^ONb!@eP3JPzpV z0oS*SEd7GlJOCV$G)z7H5ZM_Cnlvm7iT6#Rzgi7WH{9Y{r!o0n+ zO-nCz@MV2{3Z#Hvj<+3~F&{w_65ZWh-AguaOz_w)+NC!G$1Isa!9tSj>K71Fzko$i zzkrbX1*EL{1%yp=M<-^HzzbPPvsa1iu|1-Ph=o2DwV~i$Y(?r z`KHzFayV9_DQ(cuWa_GI2q}g^+L8etjNz_rzZ38NkMm0MvwA0_I{N&*daeS|{5c-Q zaCUMtfarC^610e6{)mYtB6ohj?3WoOLDxcdjZX>->-Db(ifYJS zjCMzXZAQP}5Xc$@b_sM_dH~sM(Ij9q8KdPV6wPMFWN;4Q3&!Cfw!lM7PNl)X=a#)O z`iE`m9~SmE=k_<}_ct5&@KDk{+yme5;H;m(J^WwGJ=~vk?&juC-($IlSJFK^1o!Zg zrlrX@)`@%g8-M>=FBwGla4F`}oC>yi!EfNo9b!9c*8jpiJT!!R7<_2EhjYa}M5`F? zVRP6$ylib&DnsOcak_hWOD@~j$s=#{sH6a^jNW1T*@WU8P68*Qox_Vztdk`6azOXt z*3CWCIoyc9)#>{HAaxG!1f$f_G+!RLN+X+Z}wAc_+$Kh!}dvND@ocW_+JOfqV zJ0FmyR|QC88v$v`Z%w_o29Uam!#aqkNP&!lI8rBYqI^duaI!$@PGDtOd98c+-pty% z8u#ea9w17+v<$z?jmTLezm6uwwzi#{cw}pEAfuyNgHfj&kyu_^TQ8g_iXoJ!N5-oE zM@aoYmO}kMLhAqVh(`7Q2&uRdPo{xUH^GuIM<}kZHRqr)j<`9OCa`SFoefS5C$0-gwaY9Qo$r{wqP|B;q&^TXr_p$_<< zOAvF$rX^1S=64J9I}AO?cnWY8My0Aa_dW}8!SQcG3`E3&6M!$(kIcZ;?bnwyrVU=T z-Ef^Yr6`_rP||4eEJ5sSiRJVL6_XoMVOs$0#hvGU49`6R-HE4)F*{gxOV}|S8rU_9dV9NVnuv&qW6;2 z7!C8|#Xb~{g+*Pgud^h5b_CR?a+)uYE2Fh#&hDv|Wi^$KZLKV;uBdT)8=gSo=iuh= zNv2X;y$wN4#`%XVp2?X5G?itwWzLulg34vgW@37^XMxCQ6=Fgv#4MT$F(I93%7W`e zQ$jjDo@~JP}?~;&;7E4D3hq8)lVhZCqjXf8AAD_w6 zzJXBBMj*JJ=nhPU;q=+pS_)&+Qn((qBU-mz1U?<>mV)ZG;adv&-ta92eQy*kg*GYf z=$(-3Mb@xFg%c z?g-hcnv9TYGL}I#86kB?-XdXFpj?DhSlxC4V=zSx>L_2Px5rvqEB|==d@)pN*Zcc& z`}^|y`-)`V2*z(?{^MKz{Fl@q&ive2dwWaKtBFp{bJ?jm4GsB*m+o)D*hw(V(&q1x ziJ7?`;)>1iiwXDV7i~Fw&P_OsvS+f1_YVXEK;n--5_THqbBv{J+1}h7&)>tjpW=U0 zXKp~r^1NC=YX!O<&>q}*UT+GzBL)2vpf&Q|zXH;4SK)8;{&ueG?7FGbTi|Hl1Bhdv z_WiieHQM()qkZSBU)6=f0#|RSuTO!C+Be85^D~Ws3XTy)I$lv*TS-%*x39Z%=?ZBV z#t}$7ROu2@J~DS|+bnOQ)HTM0PjB2TC2*&((TU{6$h8J@YYJP`>fE8uxLRXM5_p)* zRuLwo2nU%;&Ui2e0~9!SsYsnMdA^G{d9I<8K!o$xLfA5N(FjK!*Ajs)GgWj6DY`+H zM28n+!bgI9P+oI;tYQD;qI+ebYxP)1ql;C6F2+lH5-X?}BCuxOiZvm{I>@&*=kQn7>i8;38f}@`>UaQm9!|rtTOAs< z1z|_u>iBo$uB*kfkErc&mtb$&9zmBJQ{^>W+v3aeJ=+#vN~LtSK(6Vnsc=nid3B9* zB6MYWRaNa3j&`=&7ClDCl^E?DErZR8#5#k7G&9O;Dy-H_GN@8E)w6ah;E*nx8Rz59 z>I}N{$Y(Xxgw#~C%xbC$X`_P_(MAU$ZFG=J+UOuuAd^j_hQkgDGU{b#Mm^gZ=<&?Gi&iYrrsN(a_QV?d$AWv#K+(BHppOz1!Y@b3OKa;L(n)Fy(XCC)zvvHm1L<`(K7hXFUBbx4$7@(y**G!AhW@9JmaSuCw_uFbUifRvt`Bz%xf0 zs#)Gu60%rAmf)EMd(U^4Nyse@2ipc1lq1BISC*G2P8nlRr*TL%+??WoaK91iyxl1$r)Kct@88pF)oY06pEC(zocrb~11-QY!*j%nu^(S=bw=|_iu}_W@n%!qQLISXv7;R5Wuunl$+Cb!;FyPlQiF9$Hv-aiN}B=cI;B73 z9le5eN*CkL9Pe^GbFm1F&L(@{^Sr;obG+A(NUT`i-m#8V00DYkvOs=6gJ+)SGW4AY zCH46IhmQk8b)mLd*>s0tXwY^%vXxCFjaCCfS`AnjUct&H#)ND3NfcCcj-~71pbGK# zc0-7_jH+g*Z|gT~?S8i*Mj)_6PK!k-x^^?>uc3BN6-JO5Bdgsm%j~+_f1Ft6*57T0 zWk*+kS$JhMq3HU{nDANKGlXp4a_X<$F#5Hb`1|*!{!;CZ^^X1+XYLvDMB!)54CA2s zvusKgLQ0jOWUMH>7=!AMb)xh9nE&0u<+-$3GleQ&cBn${ofm)KXsXD2(y5|Mj<8he z5`0X~IH<38ThFv}mzru7kb(tLQV>#71jUgu;lUV?V$KY+4;)C*Af#~5;-K5li{!LO zVV%Wc?DANV!t^C@qapEdX}X4>2+O4uA*2)uN+m_ZgE4mHI8XeUW}(Q}oXWw`3ts%S zD6-=Os2p5*ndS&ZR1g+Q$w5fT5fn+vg$HB8=bhguB!L>H4zWn`krRO=8H`K> zWmrC?3?ZdVP`ZFJjIk?=8ktWBWxnlDCeXvWpcUO%jWTTPTEC`abI<}}VU=uzlx!?2FLYkgPxTl> zBUO@Sq<%qac&;iA)Ho&WR70i{LKS15;~v>;I!Ua=sx_T#21Oj!z``k62q{^DqOsV# z7$aoy7sqq%4QTUQA|ERu}9fr=nW1|KhiGAy4`hETKwF~+Ve>f@azlyMbH;0W>8qRiMUmI%rW<>N(= zg@seH5K^)PMGItzF=3D9d?8CFAFtHN(AfKU5oC$*@ggX~aw$a!DMbQ5EuaWv!W1bJ zint;ad`r`1QRIXWp$tA=1Z7x0r3|5H$}q+jA@%XzD3r4Z?ljx%#v;NwLc$;84bSqLdvf}#bAhcQAHfAI|C z~Wb*MWvW&ft7g2j0vLt=H2%@lPN)$p$6xYXN%yas zK%St!F(ypf+k~{^GLZHYhO|HZDM|xwU0S;t+Y#N~ugJn#zm`Q~5hWj(315+qg2Zk`{$7~Mq?J;cP&AbpqwVfGYl76{Lgk-0oxed7mA{`g z?WMacb%AMP$8mzx5uYC!mkI4rld0}RIh?*w7GB9lNXZryJ@9WC!}e5uS~K%kLbhKz zWDDA2?9j2u_MKM>*)sH(Mo^D5Q0fs<>ID=CsK*$)(rJI`b3(meIMfST7W}oS_sv%d z^@i$GjUXKfprj)dEw79T&&ZMS80?XfK26!~LHwMN*RQ=&NEaS2jUXC}u0$iGL<+twd@PRM|Ne87Mp=b&+#BRw_S^0{?jVNu_P<%#ag z6P<}}F5!b?6Gxw2lxy=unB*j!lAMr|JRn=3EEz-BW=fiCGe<~%u0!&`uv6h$B>(fP zf#ez7q6o^9eoA>lO8J0#0p%HES9W!a7769gb|`PVMHb}`zZxh%luH#sb`np?PDsff zkS-uQW5RasIwAWR4%q|Gf`hU@H#+9IR|DB2hQT8!PP!?@2}Nsl#)K)pS}5+Sm?0?s zs!%Z*Jdy~?lYUBhLeZ3GjICmHn7vOZKgFr*fnngURo8$2>Zt4PFn$EVNj4=oAtiV~ zv_QEqX82+JcM1chIt;LhVWF_wj5dKlfKFz89 z!Du}rEwcad)lmB#vL~lGL=c^%Q=$`6q6dTvh|U<<=lvi2w&ESxugK^PB7I*_L{f6?no- zw5X}B>`2sg$g!7Iru#i@j}7OL4Q}J6{37J)COv3^G2j>WjMIZe1{z}f8bp%zy=w>J z;<)?Y#f{$f$#mpoB+eJHl^LUUg7d|)Rp)mA<#`t(?3)6;9?;za0T}VM2~|rs_TC~8 z67Y5iM6>r#0&&y9{gN^_47pFjxUbS@1>){Dk4bDC&~pNn04kJN03*J>D&LYU-yJ?I$bo3 zxG0pFF75kBkk>3(8#mchoN%KK+MJL!&H+jr^m7MXp%gH_G*-1BotSek2Y)$;~E^s>&+ zN%eH$z?_BHQ@DF&dk1!!Uf9#Zo$jH3uS#^T>RnCzUxx&eLqx%rSba!Ox5SDAA`V&_ zLRuPPz$?qkp~jSVUL703{TFC3^hR*Mkk~6hk$t%Hyc_V;uq}Z0O4!Hn+#}GPc-|+_ zU3l&mXcwOM3KX^dG?mMdZ9n}h!Hj%ci@Vs1t|9T>)!2`^OC%${qAStUc@d5c?c2DK zr-^nadN$*L?(VM6HE(b4UDMS$>OHD|EJ#pmJe5M{e*`jHxXFI46;)*wZct@ql^ax1 zQGT`4Rd4Sj_j)56)(Mi)C9hxD!X;TI2iZ3ccv$<{2SL@2+)(bRs#!O5^Eg7fc^nI> zo5vB-&ErT0-8_zvZXQR@>gI8T3goQApGX*uBB27=xcsLQ_Rk0-q|z8{9vAFb%@kf8 z()eeT^yQOA8u%lV#+L+dBaNfoknym5PeFPD&u#-O9}R6Vnf@>F5$5Rb{EJjpScdL$PqCog!hBQ9{v@$rP}uHkF0dSY*ox`~NtOLLLKgVPiaRsiENOO>1A8?@PMdJ9}1k zb#D-l2hDYCF1jvlKcYoOaRm(k=BO?+A;mSwPcp@WG2u}Hw%t6h$-y-z`4PuuS`4mM zuR$cP3ws(9-5dIP1$FA!2vnJ&qDn|n4YEt-Dh&zlhCjyE(p=c^I2B<@0+cko%X0+KepuY1$z9H9Er$%Up z4!doF{vWGw=+bFh*txRHVogdA6D!gyll55yO=RF(!h@{>z73q5$$Tt`l7LV&2^jO& zd1Amyl#E9@msL`W95D58*rO0gV6C8pw1Sef>@^6ELSRf-M%f#OeW0B_ z+B^p0qI&sBBwPL}$=}$Rv^?n=S5}pGl+}Jy4q4~z*@pFNfr^787HLr|YIRO%Co zraohm)Yo%pq}P=_{bB0Uh2TZa^V8QfPsPfrikixmZrzXWLMBC(7lf1-0X?Pv7&K)J zc;Wc&99IeR!nOiGdyN<6D^^xjmvzh>LJ~+rr9Po(NnlL4HNx>D&+BpgR-SxDS*c!`mgg^-pdz$ZY2F&JTN#nF|qfw#Tb+A^>x_aGy2 zaC1>><66&uQ2xY5Vnx_UEP3%5vVHinSWYJ0D-g%`c+vrV74~>!hnhPqKI0jCxuJ!t zx<)hzTwiZChkuhP`bk!ASkAh{X3h!&z6e9EM)TM;|!`QC8@ z4f#)JSMJ=7jobF$J~v+|yl*bW+1n=^O8()?DDRfT@%}CB*}f@f;Fg&06YRg|4m|y@ z$#eIvpJ)4z*yoM5r6sfMI{&JY+!g)w(Y-DA#dhP*SlhD7o!41m0dM(B9DWWOM0XdT zi&#AiqY+R7#4N_J8_p*IrF9tRXY%a|g#B2cPXW@==Fb7r(dN4Vb>YtQzL$c&kGD~( z`Oh{ANv_?^m%KxK(3I#=9Aw^qOS0@@TZLruFY^U+ogF@&I<)%cOCm66c>FjjxaXi^F+XO=sM^t=b=S`@xW_o7pvV9 z@?8wjF9k9kUefo5;UufWOM}X*tJ@uA_n-Lw4BR_$F9;+DHU7wyot%nFHSMT2;>*gZ zooIx#6OCoiPBcP#N+2tgo+eI6MVeSL4d5!W#+ac*8fVSmP(am)!OROWsL4OpdIO7! zaQ?2;Ko#Q#^2URNgOWTs7U@Ze zMbNO9>NA#8A!S-W!MbSjeGKU4d2xhs@Js2- z&UTRQD6Z#5$a|jU=<*UBfc6&itWXnCzDk62y`c& z_X%_tp1TFwh3CBjMNMy_dONZa-|2!G1#vBIOmC7MgwuOV>oX4c9{ud5^8^Q~g>zHb z%n-;`3pF!Cu4heUx%*aid7XPwtv&3Us76kDStr#FC1?=OH5*qax--qrsH`os#-3$Z z7(o^ESC=8PWK%qCcE*}b!Q>~_9F;*rDubkh${-Wea z*>$_mK?>RwD+P3I4r}t~oTdQX23R8R4Y>aiD+H3)Hq#U^+V4nC{JZUFJ|~l`6Xk;T zKOI?Z{}WP*u^f7hLpeQL?Xix&WNDS6grw*m%gQUu z8z&}?F(X?>aSkfYNS9G8igsN@6P<9&D2~tW11l>MHD&E}vW%j^%oWeHjDoFA5Y6Y`2{d~1 zxfkE56ZlC{hN-$sJejL zD=Mp2)>JKLW7pZvnAL*nQVlyHHSA=K8g@cz*vU9G?1a>?`w~XOP6+>TxrUuFLl}y` zvaa8+p`_795H56zMOgQu>BKu1Hse$a+*+FhuMAn}IhnXcP2lRZRnNX{foC9==i zW4A7~t1P-R-MXw5Dqnu)8aiz9Ygs$oLaJ31HmXc{JO6Z}|DOvB`@$GKthL!mp0IZVTZ2X49z z6P~H44U?-gHcWVYoHk5Wr5YwYeNY=FJZ*32hRMyTh6&GL(1r=m2?+P{1)c;w2-fPY4tT^uGeRzC=}>yDq<~vc_GPUsYM_wipmp>$VuyBbPIAzZv%r zqP6V_*Mr$Y2&qRyZmCB@NIe?zQau_%1>PI+ zEjeB2%}GK99x4By61Fi3;SXF4XI|h7Bv9Y6yqCD&QW8BV?I#DUD|h-YG$qHZ?IG)Y zGi1GEhZ(dcZaRG307!?gT|Z|LV(8~wjeGfV^m81p9y343NtfJxYuL}B{#Uz6NV&n1 z>!p4UV=QhQ#T0?BIK$(%FF9anJYa^$M=-{p$)Ch#*dv)HkTD5TZd;ggw4q8lLP|N; zLuAazJj7l3|LybAygq`nU9Lw*ry);BWGjZ&#}B&2k7JvYXT_f~uYKi=BG)%UMb`Wc%y^*cQGbdPx{3>F+fCsLqe$Q%^5{j{R)rd?_cX5Y-ubo8(M?@o|Aj2Q!O#7Q{e(p0^?a zon?C--f%l(eff3mqM%d+&@;pGllCZ$D34Vv`Bbg}W zE5i3h01eF&YUK&3l_&0MHy&jArC66tD>C0ivtYDG~?9l**)DN|nmh?|f%u`u+8I)1C$7p6_kz_xBk6 z{*kCs9LLR6FPqzDj%68vj^8>m9e+OPsk9^%t>YPE)sSg^OZ-TDzJZn!)%RQO%lEhM zK%!gz6u+s!|Hd5vD|bHkxwd8g1J{Wb<|MbwJ|Qj5!>Go^p1buwJyv>${Jq`q%i8+i zRI)MTmsPdLELX~pRS$xxl&tZ}b3)2jk1+ZxG0_>($tV%nd59bnSX|c~$u$$DG-A{TD{Dlv;)$O-W<4BkgZW<5NZ} z2lkz{UhO*}weKv0+IK=~-&sPn?}XI8S4kM{J0X>1*S<4mWR`FV-n1>@%?<%wakwHfEXPL zQ9H*D;+$Je>C!}v0(iel0mW;ki6l_Ay;6<;wO z6eC{2HC&yvR%~UelYf{H@P|-zon*{VLmsl`17jXV2f-8!a!_rjZz5m$ly3`#Galtz!^h4n3)hU&mTI)6N|VyGGPR z>KYMJ*NFU3*NBk1M&y>dMugNgS}tL9jR>g@CdoyYdQ++BBxYnbvU3zR@@~V-qqC7G z<{b9nY@{`3J(G=G1D2={LrD4K`fZFkF>U0BP^XTMjr==Fc`a(^2Lz&xe4ju^Vd@v9)zvi_ zZDh6?g>-D>SnEl(kz<`JZR87K8%a&1HjP;A=SaI zjbzNoY-FEfBhSjvj=bO4$mdPFZ?_4_KqNl92MrwUvw+%2vL-%V_UL4T`pvEW_wG$};PK?vj+(B9*TSL|ge~fsSS! z&^IN8(b-C5ESH&X_u4w3fF>jT{jAV^cpLiei0O7?yAH^;p+T!M_#Liw`2{H{E$8P2 zqUHRSK(6Jiof&FM)`oUss;(`sJ*4MvWIn#np z04=Nu<*aSgPijF4sRbop)PfRH3reo31tp{w^fMAh3ra{eGfA(lOx<&dF(b2}?-+#z zef$+w&`YC#DppIi&dm<$&5I8H+UF=|M(h2$W3=1J&J$+w(@ z{%bOWWvD!w)e9mE^ebwKDoyj6Vp zC!r5#6>aMXMHhLooZpuc(>gvX5bN3_0>uISTp-s@)`eS`b!G0n^y<3u(9myPd9`ag z*CUr;5_;LoX*xq{bIeR+;$#OpH@@mI!Us4+!MpQA8*F|8R4nTlDRDkh=mVlrlA z#eBb0%zHBw^LbOuf3%AEGK@J7PfTmfBNH(@Qp6+_O-#lN<-NSTZ#NL-^?3j zyB^I|_(H=1Unck+uEn1#bqWtJM@_Siqqn^$CKw7 zx8<319q3HXGLh-spP{AUM>6L|`^m>LN4hDsVK;>uNZk}d>ZXtn>ZTAk6zkbQU*hAhu8(J^FWJ@hcVA+rW1G8wXW2{GyX5Q;Wrj2Rg* zKjsi~Zw9a6EJMtXTa|vriZ#7!HYJXynp1P!%Mh9{`iddWo4@1+PzD4L**85u#Vp+@W(wVBoq-hUy)LN9CWpfy)? zYz}H2ZhFUVpgDrA>wb`$0!b*Ej*J=a?UU)MX1yOK#wXYPp6pmSENz#IL->0PwVpQe zJm%E0=kksPe`w$=4g?c|SnMCH{n>t1V+d$hBF?qr`&AwXBxGWL<3AZECb^+09s8 zq>5b|l5=M#1Jb#(>~GS!v!8N^eI8;cA?M=0%@F%GQ|VLZ#AY~_IchI+j87l&r>uuJ z0~>27B@P7HRju`qkdluD&`bAwX3WUyp{~O{86WG!baz_5-GB2=LmF#Z{t=gN_zGo} zK2wGIeM%1!imp(MNvlv&liVs~Di8?hwc;VKC22eQpJqvcJ!_epVNolB=At0F(pQ^9 zail^%yDNP)b_Qb1N?#4*WO0SujrrN#%L-57xam|p^cr?!{-`R>YMMYAPBmqpgH}^Q z$`muAq1BWzBdezOJL=LsNZzidZ#M<9PF9RUefSz^6)aN?Y)TcDP;?Ds3>L`j+9$LQ zPLO5YScjN!JzFKAQFUjYqrRXk<-!Ua?`%`}vyJ*noj#7Kp ztO91@-^x@82}SddF?x!`ww;@bQs+n9n~!z1c!&Yov4h|0sS#Y9p;wliYM3p%DU6e0 zyC`!9cKy1N3C7<^<5q9*kqy=Je<2e(cam&@zTD|o;9mF6D#5! ztJ}L_a@yC+O9`_0y+|f0n(4>wPEKy&_dln2UVdBK%C7DW?dt=U6M1DhAtgwF9GypA zi~&J#&Y!A(XE&_Wgz^ zGe=336^UWUl7s4>wUI=kAobzS>I~>XT$LV#lpe&3SGHFqBw>tgVg?#wf!iXdn8xvL z|GVzM)7g?E&5bc8h&0jlKNkYh(?huuNKX&_2ub3-%b`^@!YGnd{njeF8x5^2_dVq| z4t3h@$lqm6i&#WQB$aH0lx##%FEs*;8Sia*Cf2+(xeZ;hpEuaJz(438@RxdnO}YMK z{(R3rFc`z1{(=5^B~u2Q^8H0K0L2CxW^B73z_i|G)WRA5pJx52CwE{TpgR0r+Un;u z;djdPM^H~^I8g-?{jE=Jh2rCcTsEcJbwuZTD|FZD7vewq1RbaFTGz`TL%KZ0gS0 z{=-kppOugL`=0;Z^G{5D^s=pwPTG1u%8w6<^@EA$&nqbnUZ038ODi8uz1&;o=Mm+q zKO()#M`tr}|GUKN`R5w>1N5f>wZ)CCpioos(^s&delNEb3Pqdc4b%bCU~8I3%qVT3%z&ZSp-qy z_aDMD=6w>+Q@!8edAfHdI6Osm#5=>g0`OGtMm(o^ci?%p_Zd9T@jj1d-1`Qe=X*Qx zyukY|o)>yg;(3wxQ#?z(|H1QO?+PYnT@Q5bLzSZ>ZMb1<{+dn=q|ZUVQP(C9r{?+9&!WelU*~iuRx!21_?xdxXkQOAw;|D)@=VBe z)h~opzmQsVWOBR-;%_nrYPr?_lYjY(1J}Gr)$%OrTv4O{pnuw6(=`7yR@2=6%S&OV za+8Lfr7Z-*)oEiBSt6}$BPwGJEtz10%R+(^@c>|C=#Ma*ih{DeEL>v40x%QEV~DI@mNNMbsH`aQXulIa!snrLCRg z(VpdcUvkJ!azs80*E1 z820MguzXEt;%X?N_Em{FohzDGuUXmKlvuT1v;KDgj%Rna|9!v0UtHpEj<@9e2oh8}{b9&dNmHw~#r?_ns|@xi4)1XK zZ>Ik+=cSyz{gbhebqPGqxcZvgem!Zc59iB2d9Y~#+7|gKnv)3lr*053$==E)lmoXR&`p$zsx> zNd87DE&gRCjjfB-;9ONwHvKoCGidxEK1OuU?rp!`R0(3mq!g1I{Y8>MQxUhX1p}6* z7&Wh?4jGk_O?&#Y)SoZ1{Q1j(>&HYY=~pZCbPD1jG!!EvP}2eDikRsB%=z9rgcN!` zc*eZ9<9V|8|KWLx_dYyf`tUr>dkN3ey(vg{ium|vdeZ?<^{&G6Z0{|2o+F2V5!sewCaGUoB2kt@l+&wDVyfs0Om} zTVzE0eJ6rwJD$BI*+=KuPfZ$F8q?VFzLhHz-3wu<+k4k^b@oKN`O_@>d-8Iqnx01M zqd?KHLa3r4q>6?FW)*?96-C3C@!n$XV(=SY99SgnfXDVVl;AB7dSEgo<6ufM4*H9x zL9Nd^0R0g|Bm9xdow~vD1JbdD3LQ&z0ixm;E)}`Jd9qJuqZjNj;-_Ha80?wfInAHk zNJ(m%#+rU@s)YfMtPxpjUl`}UXtyCxf+DW0-t^Y8J@&ih$clhmIdEp2_jRW_y*v5E z7W_^$)#?2wLUjr?L#zrlL^FgWP=*pxhO&qdF5KgVp^U+PiT>m0G|FkExqeogbGg*f zV8A7nJE!4ysZOaCos z5yBhG_u7{2n_G(9J^3r?OXKGv1f2s+ie;DYvjyVeSGqf5mh?wtOMgTz+Vu>bkLP$< zF*d=w9&mw|!1E+w??lm9CwZTD*t-dD`saz4@C z*wusCKV7MgR8mKIOGtUk^6|>{@`bmIN%5AfB}bnXk&-rMaatRbQY&3#uxAJTE8~81 z$*cpA*xyNavi(^%0YDFyt^H4z7ug60+HCshMONe5x5!A$h8<7xaCLI$R(|m^MsW1qy?`WZ=7(R zF^&sfWnA#GXcxQ+E_j)L+YEnEm2ttVEEjyXaEVp&Xk75~46nxC1&^4F<+|Y3h2VUs3(lCN3tj~mylMn4c$vR>#%nJ4Sh(P2As4)CbS}6gKo`6W>hqYn z;5=?c{i{HrUfC}A`9`$I-UW{kZN~+-B>Mz)!C4_x(GXHa>Ya-Jc7M}3vO{WqYF;zC~pZVZ(SFhF)7}T)&-y8 zHi`NICDi z;Eaiwj&bR*(=qbVg^1}G`J_(U z{&bATod&!;9pf`bdwj(-;E(fQ{}Io)j$@PV`g+H^{1+4x8g72|mBP)Cb7%2$ z2y?HIekZ!Y$4iQx>`oF7ep1QSoP`xnKQU3aZn z6ZfdFJ`b$SlF{ZI*>Y)|Ob*YJ^M5CJOA%Y(o#w0pZAB=*W9*MjHF(xYc>2_l<2LnV z$xU5c^4ViAX*JYwI$=!mf}#qdhzJ` z)g=M;s}~>3e)XSTp_CmgYFRmep~aI>QR5ij0sd zGPmEJF`<5YD42Z>qUR#}?Th@|Vn^F=AM5Wd8ePBrGa^2j`|VG6EFC+w`30xW{M1y} z-@O_vU8w13RoEe#jwG>G7(!ZM+;IWMr239AF2FXsth6|~sX16+U{B4FbwJ6fIo#=K zB;x{qk_y7f7e_iZ=Om~4u-`nGn)3@&eGa}Fs!uTPVAYz8;|`?0)*V7xcieFY#-!>F ztIlYq{>0!BAKAD=asRp)#vOusG?H;oXc9uX3u_Wc?J3V z3EYLUwwzD_R-W6bHd(1I?A(OKhb!iEuj=Fa!`VS?NM5h}nWbvvVT+m1igkvofPU!Axo$LtHA6u&I7V@ zhEJp|l?b5%^!M6{#FL0D>grv{mObg4SYc6^c-)&R3!!jXl6YiH<4dVD2o+%S1sjb< zi||7xBQ&*s|-J=g5K9pd++X`tHgYjwLVOo{sXO!uu^^Y|2-7_oRnZR(W4^LMpvG(?V)%XL|oHEu^kurmX6* zQm&};wx+#PTU+OC{{Pwg4#2v~^8I^z*|V}Ymr{m|lF=khsbsWi8|VmaTFSglliM~l zO+u0`1SuN?WGIL%K~z8iSq@NSD6*Xhf`a%*5pjSFK~VTV&-;z@o_zNt=??h&peOf! z=XuBTe(yKVys?^5#g*~~03}sCD%BjrRN(R6S+SZ?cvJo4UNz;Z+E`6RMR|%dYNWZM zvJB7q$7@E)-Js+v)ym?dITqs#>YgBj7)f=BNGKw%nX()(iTo7A_#B0OQo zLd=kqmSU=9(i5@W3ja)TEw?q6;Vi_&rI>t4wr;ah#KfhTph>n4#e~j6Ok9dr5R+`Z zWTnhiM$L;cNRrysE*gl5+hVLU=}FkKhnwP}(eVlMotU^3gPUaQej8R|;!+G#lGJE1P5(h*SV&YPKcR?nd#g_3k#qqkD!x9QHaVdr=$-|#*PZ>U0*ISBV%A^~x zl`}*5ON1#q+P4Q06Su`MC3!f9@9aY%CN9M=C3*M-{@4JD8LM?}(61y9U*N!rLd+1E zK`M*OQhWLtg!}g4+l!=R>CaO3K{GkA0W#^ku%-N4bI-ra&P|OaC6&b`smoC-nAC8o zF{^G=uK3mLqRSOtkUYA%)1NPenZ$KJ!-x7@;CYe@w)x+-~{nB1R^H@e!l0L@Bk}kw@{; zi-C4|y@QE{!AQiIvhj#nj9L*fL8FNMao^XTjx?TcneHr1KSw0~UHms}q-dtpW0+Q( zop!643MR%hQA#moXUL=<#nv(1Ibh0namAThjABYMne>a;;wiDzZ??VQ+(_fAmg#Q7 z^cTQzE%y39u<>PoE=;6k+2f)~4^QV(Gh2=A`P9+pJsWARvr_yM@26SRWc(WGPuKl* zTqJe0l_Dl?YY&m)mbOa2T{%0Fy2wg#Z`{@})I_%a^K{9pk<_=W6fq{k@7Nkt^s>IE z=-C@vT0f?20Twf^RW`|@3Wb=s_2H;VvOXe-79c$JMl!@64GlcVvOtDN=+ub#b|WF6L!rA2rf zHfMWcHo!kTIn9vUVn=MOAz2KDQpLsPl2uGKIW9oWC{?3phkby_q|G{nT3DR-M_OCN z#3QyZYD~l&Hj+BgN)coBUKR5h)v5P`nu)_$Z;Fw+GN}1ZtVZ_>G#LD;w(?(}^XW^S zZJc*tnxGIP5koY}WOg+X(=!_9giQJXZt-u2-#s+JwnZbOI#T9;!Ei=HjhWF*4FpnE z)|SZ)J!-Kn%&3LVr-~l61mj07jthxWYShBS1D`oma@ECReAY9XFpAA+7NbV310flW z&(VxVjWaB-15;VdL@yADe^0)_eJq+O^%$mC$Ue8xOa4 z#k3fbne=zCbxex_rX_+IiY@K1Sd3y?irT16-`KMqost^eD&-lF8~7^4oJ*NcQ>r{= zBUUOA`w#YPf`2`4If#xJ{V@?!T^V&cHw5D&MqP~u0$!tlw(eu zX?ehOlwdSdi&0D~J%&ub_F%)+5z`{ev{IOEXPN%6AXDlwOsx>UvuLJ*i7`!-QcOof zOD3Ji*0pJ6!1Q3jXr>mUn2zxnGQD&81DHyk#yQsMF~XEbK5U11|H4L!Zd2+pOt~6} zie@U97}G>4#q?89hBJ!TI={vQOb-!^W@<5tX_d#2>GaxPcSRa6vrMamX^~~R`#TVk zqM1^UVaho&Dw?TaVoVdI6w_)b%cQ%pbxf-QrZs}mOf5z+t@Ri(ee|3Y?~gP-W|`Is z(@%lvdO$y2kSX;Trkus2qL~WDGo`LXDaCXwaPiryHefnVFq)~wD5iBDL#F5K^{MkC zrm`%>{yJgGH+9mx)8EBLif&WtF-*A{h>B(^m>APUDaCX=lx5OKV>`sEtqYh=5R7JO zF^cI#g8_>zz~iKsvfqp}?z@*!JyDo0AyfRj^*w7ac9c{vdbnx@B=z5x+Up`cM_E0@ z#MiWkiqtMrpGw7#Tu!l4#Kffz6Djh-RNCv<;a66Q7!#RyY)vYawKco@4#xA?v*ECd zA%sx$k-{W=j~^*alsI$EUs72qM+(H)H9ud~h!WM5mXDICG0p~4T2YkZBF@z4j(^7mTdlOUpS2;hGAiVskg6VS0)=vLcGb^%V9o!9+a;?G{Oy zxQhs-R8Kh^-!tjoVY`{#Z9LQ~*lB`c453tt#i*V#9rYQxax?@N_$&5)?f58S57>xJ zXO5-Mf|4enkNLppGTYZJCd$MA#%lDqL0cvoCSFdDi^hhi5R8uo?L|_Yp`)Us(TM6y zdJeWON2Ukk#tgyeXjqJj#!Qc4%uf6LCaeB1j&sl-Mzr5?kS zo<+qmg)sC0zR5!YU4At zWr3NRSCbh_!N^R_E8r}qMz=dzn0DuM}UC22;22=HS*c+i@q5}Y{(~3jj|w>#Z3KAvYJuViZ$ah(_#@|GMBm5z}JJv|X5f0D|n1 zr*Bk?9b^l)56Rle`2!=-<_0FlBV(Of5z+J<(&Bz0dyirZXdro9~C6C?^Wj z5*T93JicimrqpAYo<Dl-c70pyIo+))DN-3tyk@$#oa=`Qy!RUT!F^cJOk0H~? z&bsBis7m{X_o(f!iL|Ps& zWgf-b)M6CV(*={omQ3HO+!f0WP?GX1%k*?%dL*j1L;ddxGNm5F^s`3TZZ%WE_%@}k zL@CAe4B#^9i?MZnogOenm+QsUVieP}JcdmF`S8w9MjAKVA3IUb5~g!uD1&de^VUx( zdX}Lc!xTxOie@Sp&y>0nr4&>4hD>@swvOpp0aIo~yiF}eF+JB~$TU78eabRDSD51d ze_?v;mW7y7k70TdK1D?{6-^1-4DUUyv#F7^YX@Q&col!FZ<3-b5+IlsV$gp&7jw229zD<85j&is>aD6EfZQ z0HgU5VS0sS+VP1(ZAv|c>D5NaZZ%WE#F!>ZDW+UAWYSzW!T~9l1Wdnx`Z!aIQA{uO z7&5*3oxkrGX>7DiFBPUYzz}DK;ae4AN zF#V!nboN?|VtTn?im)Zq566GMB+_`LWqP?Vy$go+AZqJEOsU5({W4YgqL~WDGo`LX zDaG_lz-7{0KRBkB2TZRJjAm*viYdpB==gNu!`HqSX?)Hyy;7Jy07L9E3$`i5lzI%) zuj5lx98@o4|wHU>exn?kI(~X-R`$nX3 zy92QkxAiVVdxV;y;qPa^%$miP?ay5sbD-)>PnPSOuqtL z{2qqu0;bmsMl-b-#q_I!$zn^UPyO+qV@o4|wHU?p29F`r_rG0)g_YCzxMg~SFnt@< z%(yRZUx+F77^e5&Q&e=D3dS>~u0$!t^hV$^>DkyizitSavX{r1T8v_fZfP-O8ea_# z8-blD-w>ulFx7LmKX`{iOsU5({Q*UM(M$#7nNnAxlw$f#;4)Q5(-Xi%}8dh>}VF z9NUfY@1D2DpaZ#x{fi+%`9Tn|dr=!j?9Ipj^Y#yX#7ZkhO2mjU5i6}Im5AvY!z-$( zC^3E6)aZ!)P;BXlSzCx$MM;@NOfV9$ijoT8@eC@ZViCKKHL-{pJvw6d3r6Rd#i)oq zAec^UIci;e@_sn%b`dKnMHR{e5;1=Ij;%@gnrBo^Yq}9B=cI|picviq_#nO~-MjLx z)k6%gZAH29BazxW9cg|*T1PYev0yY)i&0D;5=<6bs7lQ|=!mx?ja!dI70N@xOI!a5 zYBTAdV(WN46j*;)FxtAsDC>_1rh!}hyZ_+5x+9GzSnH1j)*ltA(Te*cf%V4(qpe$v zvi`VW3R|x>$(wpSu>M3~{qey1lYw=MQPvqf^Q2qIeM>XNrG6S%|5;%Dr-AjK2i7e{ zS^tG#IB#>gu>LE-=*U})vi_7{T;#j1pN^rlUM|KhuYGzVU?RnZWvQP@74&VC$?u6Ig#%Fq*r?DC^G& z#&M75{D;>1bAk2WiWKjIb=IE?tp6^sZZXRG^L^p=L7361lFGqtp7f+ZZXRG zi!tjzI^ahbq8y*iE3p&h#lZR>P@74QQruq*tp7j3=*U})vi_1_I#vH`3~U|tFM;*H3PxME7-ju$f^ppA?cQmv|1Gfo zcaho`4m<0A3#|Vmux>HR`fD-Fl_%Zwl}O{8*7|FK_18t}9&DZU*8=PRjA_OfyhCAq zZ1uCZZ^STh>*Efl4DQ4YtiOrc`1#&90_$%HMn~Ra6n9ML(Bm+1>kF;*w*%|{5~+4< z9rw2b>+i%g<4ek7l=XK7ljTm#@DJVjX9Nt*>7VHNCOYDZKGCD!jzYbcS{Cn;Mf!P6 zraPnd&T86W(PvKRk2%U7Ci~pR9c6PS7K}g2rmje8xD$}SdPVea)Wol&y&FXAJ;AuP zpbCpo5qsZY;5^>%mpbC>3uc>$5&dh+^nGFaZ#c_KXxokTOsQx1QbJSz!N2&OSMQ5I zIPM-*JZh922@oTz_ff_6$TzAf!7`WH>5svbU>(kR+tlDgDl>*#Q{s1C{TG#)^jN!Z z+H2neX_rYetrRhG=hdhZSlxhCAq?lm6jbvRQ#>Vt$?jB0n@ zB#Hix?NB_^bJdOY=SA&)k&Re7%?#fbeWnArWfQQGqVKrl4Tt8~ljG2>&Bv9d)BMDC zFDW%ok`iOv6z?$MF`=rl&*w%pr8qjKJ$h)QN=H^ov`me@H$EfQ?ea0T>3<%d8@2mA zmIX1U-Ai$ly_2`D+nqNPX3}g;kWJlv_1AZ?EYQlOBg^DSQ!vu*r6WfH1uUgv{hc0~ z7Az8k+qib$6cvK;?e3TwsZTip`K#M~eesa<;}#ZUJk;&Jfnaohw;0v#ynW6b1u(jg zUUvDdQMf=)CNRzj{ zWzwf$zw5ypN=9j>yp1ZJ;TEHq@&+Uvn~RdIQ!S4^w132Om<{wMX)-+sOdEl_YcfQn zXr|O-m^RtH7Gs%ijjw|7OsOl9Iw>xtnDWMWZY!h(z#7XD>&$ z_}y8X2TZpVjLu$*QA~Le+?++vfNA-X?!BTmy~Q#enkLh!Y*TnK`*4Uz(c=a$F=x^o z<5{kr^o`F)ZIC&{)Djb)Wq7$ZlinP=sq>R3{q3+wY6mMt45ZY%N9ePO>e)uI-Rh_c z#z&QYM^fjRbMI}4@(+bwXH{jbk| z>ZXYM-ImwRX>vak+{XcT!7OZ~=ox<((Zf-X{pYfqHu}uY;tyy1O1rKjM&|BHo}Z^K zTDLVLi&B?C($rA>zkF25QTNkb#g^^Zsdt|odr%aG!>cHpN)aRTJ8YTvff(z0e&0>> z3a86^w3Wi&3q-hhVM+8dvdClZJnOO4Q0{+lcLv&Z3nsK`Ud} zOWk-hM5Jh@)MI@9t=(%ecGlx6PB5M+bwyGy$EDP$HB3Cz`MgJv&wC0+Gqo7Sbhuz% zhn*p~w|eT78%~Xw-fNi-Pm}4jVEPx}zIQA{e0k4e!oEz+hC8LA;#!%xFBs3AxJb(1 zxG$o*mG=^#A49$C%fkciJjWg%$1Fy1-$yXZvE2skyw!*uPd6Ifn=78c5`5stx$<7o zw$?fE_iOD`E$*lGNi&A{Ewxk^>>b~PjW1_cyN|%g$D345Yx;IbIi?1wM-rZC$;kUN zIg&g%V#H1RxRIo?1aC-VA%^P?+-F@ae`JGELS51Lr0CfQdm>xz)BZI^iWpNj!Pcd0>2wG5U#8s(-PEjf^A*2uAlWi%~gtpu(h6*Z=0jyo(oR z#Tw)8f$1!A<7a4Pu8KBlhKLl+lzI%)4!hT4)ZHV3@l2^JQA#l#As%wIYLuchn7SBFXHBt4EypKky(q9=5?HqwWxZ4|4bYQ8 zU*2Z=*~dj1|7ES0reQt(65@O)a4)t%M2e0x^_V!f+r1W};w%^+XX;9nQgI$B9v%g> zV_F(8Efb86v&AT;<$}ptJ@GhiQ;TYp@-&#n;#?t8XJMbSULIH<6th1zpAxAvtrY&G#st>6hK|n{ z7Ne|J38pajv#s^2zqO5r*yl!CqerjV#tTOG3yV?lnIIU(XB+5x?$Wog1RO$> zC~sL_6Vh4s3l*Paa>P3%^hSdY^WyQr34Z%n> z%5cXNi>cAkI8^jpf_*L;MvsohVS>@ouoxAMNeYur#jhajFjkDGCZ!RL^!}LEcwBW| zCq$&^@sN7Vc*xNqDtd+$j2{oFD^W^~hm*y_SwOp1niTYlDT2{VEk-frNtmQJVU}5@ zQ`2NR9!#Huy$iVrkfJkz$8_;??^Asylw$?LUOU zHTsB*r&BWNEES;ae8~Dgj-qh1^_dvc2P^P?Y@TU1wsh7_6FmoDUk3kprrr9Ctg9$8 zcXf)_DkzGalH6WAFE^ z^;yO`rR>;yq)6$pWtPt<-XFz6jATnO-=E1GGc~%Ej}kq4Y_WP8@p?$ySIITIVA#s2 zF|BNB^w`2f)J*y+pxxMF^ys!YMliZ9EJj6x2Y}|zv<*|~)XgXDIz5W-A8j;_O`|Q+ z?dWk&!rlQVLd2KJ+%*djxghMEg-uF19KcdZmLXm@qCkRFq6GHSM9bPO#<#gGSpX1&4V?fCm-eqnhvr5VFdBZh3R zfA|<`rqpAY{s5n%qL~WDGo`LXDaCY-c(@Q~$FwP6%0rd-s>xy$Q!cY3rlVfH?F*5{ zP3w%uEom}62TbvQ>dT*YR5VlSF--4wyG2+t6^v&}U5QePDYa(O3xIY^TLPwY1*6;4 zViePP9>X?`-&H==GM$$u(@Wu62KJ_$%`!bcO{QP5OxHV^UbASX)MJ?b%4 z#dLvqsN3}TfN7gxG*gRFOcx5~MR>J2ViteT_C1#A!ZexQ1E!o6*FVKk(W{Gg(X$Ko zuZMqp1M@=h2dm2BvU2lI6=KX>FcMd9S)!V9{2m9j(;tH=$35h|YVZpkTqhVQJ%e7E`0!i`Gqh{T`p9;`$)7N-(~?oQFp04{<5gUY+9M z6Oec71mmHen@$jnZZC^b?Zu^CG$O^Pn-%V(Wx%kva<2UBBoGvZW`c8Bme`@zyjOt&4@$E%jiBhV)77Np-fOZjE6hv%^V03#~jB2l?g6R}J zo1`{9;NCqWjfYvLOVecfdoXPRE`K^iq-dtpW0($iyA8%N#lc`oFrF!OMN<33r4-X; z*b{%cYH7ffQ*)GcG;A@7DJQjP9^7X8&UXz{mmB+Tup+rp_&v#=w-Nhvnh|>)5#!3~ z^fMee9WnZ2B34I-eQ|x6GJ^3Dqpn0L6){d~ne>G~yWIG65HU^%@rYTBir8laa}o5c z4<7IQ=a!u!jc-_{pGlKx2C+L0xQ))D*DQJs$pP71aps;awt3--NKfko)}>O!a7^$& z{*ziRQk!BQb^iI*ZhJmKeh_bB^(aaa6JL4KXA@Pcm@pI^_C^kY>-dPM@C6BC10XRr-7E*$|PU^M`u+%OAmb zrjm65IV)gFm*PFeViePJJ%-sDy~o3iEe|8~D=_aA{H2(A6HR2!O*3L6 z5HYSgcl|6(OVPPOe@w*wZueS@ns)@_BSu|`QYtrSE|dNx(5@Gp8$|3p9}VZ5#i)p# z?=g(nS@)*qMH<(yH{PC~Cewq#lxvbws+FRdQjcNEl}=P#f2WLKJX7jQlu}GD5Dy;) z+A%#pVEQ@1=w4tkis^+OL#7SK9$6D<{Gw%gVVX=Qf+<(0htNGKnkn@driHI%Q${eJ zDRm`EDW(@eH2z%Dg#pux1*4f-jAD9;$B^mh@)ssWOp6XRj4nx&=?pOC$lkypOVLcJ z$1we!-D@!_dj;c}QdgpsV)}XU@NuABn_dzy{eoxVe6twE^iq!@)A*ZDeqxzknkLgZ zwx8yhDpE94>M=~8w|gx{F%^tw%6^(CrI=nO9_rcZ(tzm~JqzcX#VDqidrZjmh{KGx zm#4|J!!n)El#`;FQjcN!g57H|im6~?OcSLP(=UmKKY=>erk4jyukb9KZx*ANUg00N~T zL#FYu_iXf8mTS^vdM=o9ygY~9Uy5c*J%;IL>|TpeOa*9AhINeC&PDGW}|rOs@x1j+fu&U?@d1r5?j{ zx!r3qs!avsnNnAxlw$fd@$gqbJEmU^n10=}aK2fLVtRwekZH8mqMx(vQtyT|ncimm z=@T5%rD&$qW0;<5_gai%Dj3g{V{f9AVtS)^$RmEo^oD@xO@h&FYB7rGH#{a}`krO_ zjWn6wYni^lsX>ZnNg@eS!1QL%!ue(~is>yLL#DMO zYt$8utEL)nZ%LEsV_?cr8;}7lR&#Ry(M7! zEziRFW-*HCZGy>)Tj|v1`T3YxoW`;SsZQONCevrYbT?G&$VpI&W=cJV>3Mdq#VDqN z@l2^JQA#nrT|9gVXy?~$0n32MaOq=U2y*Xlf$>GM^ z@1)7}pJ2*sj7M-mB1JQ$9>er=cCW=Krh@TIsVh-RG5xN1_zR$2n|>!?`aRFW`DQVS z>D?Yfrty_S(KO@j-DxuY!1mKNE^MS|rqpAYCa)X>cH{H-=?;| zhkES&LBRBfo`v(xVieQ+Jcex=UpXwmILvZinoM^9Q_l8Z;v!RuW=cJV>2kZ*VpR4D z#xtd^L@CAee(_NE)B6IZ4|o>NH;YkBc{ML;)A-6^<3{7{gK09|3rsoN-^RtN6wQ=+ z4AWEXUW-vo1>>1gSE7_+`XljBuN)o>nEqHWdhE3r#q=SMVVlO8UT>K`lqS;>%k;r7 zLqv*ZNg;_eVEV9U;e4|g#q<%6A=CKEp>Brp_K`H1 zR)Hx;k>6eGv}vZ)W0)qd90cQ;QdgpsV*03fs8^wWUp z&piw0o5d)mzwj6`{Z-4w&qhoSKEg2iMVd_Kf+=VFgL$YWMKh%y!!&v2AQ;b-x)P-n z(_e~*dgbtofa$M13+J1~D5g(&44LlTw&?wc>9dyUQ)x2o22;)q4PSHGG*jv^OiLvS zZljOH1>>1gSE7_+`fKrUdu-hr>8XI}(}L02YcY!HGaeH%eG=y%Se{9f>2k~Tn>_55 zqM1^UVLH<8wHP(_3MR%hQA#oWjd-{dwvOpD0n=v%qnTQaV)~rNgiL>Yr1AE-G?`vt znQnX|M5Jh@)YD&^3MR%hQA#oWt$4USwvOp@0n^_JMl-b-#q@cP37LNHD8uOaG?`vu znYQo%Uy5c*J^i(*U}8)Yr4-W_#KWDibxfZRnEqZcnyJMorZ0L-$n;xB8%8gt$@B)x z^g*5|kfNDVPk(JHm>APUDaG^;;^FStI;JlMO#h!?G*gRFOkeVt0!)uFj9yBU>0OrT zUObf{MKh(I{@PS9F{X)9is>K4!(rGurY{9d|0EdA)M6CVmpvwAddIPb(aUKveZVq3 zkEcYWXr|QDUz-Xh#xzk%G5xc6sN3}Afaxoqh4al~6w|+WOaZ3H8Ag9elj%<_(|_FR zv}vZ)(_fnkCdM>TN-=#^Jk)Lamw@SCJqzcX#VDqK^B6LH^Mva0QI>o=XPEv?nEn<_ zxmIoD$sZ}2DfJkp$=6Q>~u0$!t^mXy@J)j-a*8-;h^emij z7NeNH;W1=7^}TBrMjFR7K|RVFX)=A=X78gs5hq16r5?jH`TD6~JX5Zb5~UQ=H^swu zfObsZ2$;Sl7(F6cjAHt>$B=3K`e|y8Vf1#IOo!mk2_8MKcNavYXr|O-m?mF86^v&} zU5QeP>A%Foe**28z8x@q$Fp$0S&U-(uE&H-@3TzbO_S-CmTBd;oi@#sdJNMSBnob$ z*S&&?F-??GO#dw&zM+`D8!&y(vv9syjAHt}$B=3KoWm*2#^3kTWV(xG+QCzoQZ!TQ zF--q%_gaiv_X;M)G*L=1{f~I~0o1uReLrCOU(dq%W-*HC2Obl)>0vF#+Yi!Y`bo?5 z_U}4vnkn@drf(S`yVY$fm>APUDaG_d@lZ4UAYjTM#P4ge7{xU0F=QH_Wwy^7chf`2 zv>Z%1Grak|LQJX0F#Sv-Q^9zq)Ricum<|yS4}wvAkdhvSTN$B=1!mf2#SVY;C(Z2(iw3@?7)Y12%p$1q)PgzQ#luV6e=>PnPSOg9n_ zOBK@%1Ew2$7S1<|QA{`S7&48INSn+z?rtJXj|I~VDvr3TN-^C+Jk;5{dBAi_&%*g;F^cI>k0H~Fclj_4s-z4#-uxXZOqYNuN0G7jJ8haN z^%$n78zH;ZZ7LYgl)4h76w^dz?M2cogJ%;IdcCW>#`BX5TDRm`EDW=Mf)7k=;4U6#dO z(wm+{TkHU9AMiq(6y2NXkLgWEx!ne%Mo7W<-b7uAQmQxYElf`Y8Xu(W6+~15V&n-&ykNLkG(Y(!7Nc5ugkWBTeAvpu@(AC`Wq8_@txSwy^O1D>$ zSl8`kt)q3yDo4t*u7Z*FDyysz|4of zX^V2ajf5qtsTgIRO{PBvQ&DN2O*S>USC)ybD$$TiRlV>z9Hyd5%Kg@7Voa~Bz&p>k z!aie5w{p4Y(XDKKMk`m0GEX!MMq0U|vPdkL8r{nD(6sVNE;NGF>u|xuS~*clwQ_}c z_$z30z0!E7TX~dVbg#4+)ykC~!`UkSo04zYh*e4}?~8`QZEvZuPdh4_DfJkpUvaww zrh@TIsVh-RF&!-)&IcMFq*Mm8%)y?8Gj1`8=@^e8)A;f7C%cX2F~YPAOf#r>tsqnC zF-*VajES&rQ^9zq)Ricun0`t;xv`U!P z+BUu78K+IRDfJkp-*mghE6r3eo+;ZjQA#nb77v#IjSo_)0;V;dg)?q3ifOIKuucE| zNY!gbqg!ho2Yv%zYvGCb1^H$1=iyVSuh@vyO2nqyh|Tzo^GZjI{+Nh;+43@fbi@P` zi&&zRir83TdLPu`gOu7JV&i-?oNpGRB337upF>0Z?K&=ET`Lx`)`gvI`Q8ybpvQPv zClQ+mja*e9_nh-ekJ#hIAFkI}p8nkJZ$=Eu7nxdO;?F^og^4rA@2KcF3&zKp9wbVs zI8P9Nro&ZykWv@Kd7@zSxN0#f&h;KsI5T&|fzhgF<|G@RdWrK=o06gJ22Y0FN7o9fElzI%)FNloW=D^$OLB+|u9Y~61NLepY zj2uPc#8RbPN3_&EnxzKywsfF&^rp$QHrq+^`sx8+pN81o_SJZ^?SE z{4i?E8*Rk$%nh1IEjd~KVB>0@P&KXTH-bzceh+_f-ATQrYFg882U0qJ=8A_qK@ZoO zukQTjE_t6n{MBa87sSXJhSJjVN_=-U`W*E<(UZkKN|<6;rBV;$Yy%51@r;@;Qib#I z3(G|)MNC|(RiqlQdm9767FAM~oofCP6PG$(q_Wr@dU)(vvi=J+D2*=&%(fQmV7;0p{VX+vM&z*vK5&PojzT8n#)rzg&3%>DY#_6=3 zN_EPZc_1`Chi`x9t#nd!_MRaA=yPbDK70A5KBRt%7?Ztac-JdSR8vu8-W5z<22+7E z(zIu4^buK?*cvAq@D|>=-~L|IreCx^6Jy%6ys}cxp&47cO}j;pYg3-twmzdx%W=k) zEg%?a(+ZsHW-&E-^rMGn^t)ORZlgy(!T8b7@hT{#M!z2M@I@%x%qle=>TFpg7@aK^ zqq1eOV2YpvA5!;Cz8>9`pI9EZ5nIewj$I90B2xDQtp<^`_mi@?lvfxmpK}oG+H~RzoSez37jL{6lWH!KiheV0?Rtt|TedUMC7u zUaG_gDa(S0eOfR&Viuz!c9LM&UVM+@`ww4xxY6h$_Kg*aSmF059&ICbl0++|U5QdEVkZmJKLU*pQcemY_8GzGh*^w^*eQa^LId^0 zuXkT(nVu44_;Qib*Sk*%te+ZKw-{ypG{Ia1%i-$c*)vg%a++A@ryI}WmL+RhfBJ0m zoi(lLRiJ$hU{S1{D*dW6NOcK@tkvcTX&udMr{ z<@MPh>&_D?opqlLvhMuAy2U8#7YODeSPrvp`1z$F&`mmL=rzVM!Tpd{irpyt`RORaDMUT!^8?nYxNEL~cV3@0@ zDG`56jn36Ch#sA*Mvuf)~^#xC#)kCQ{Vj0{#cfvO3KOh zl=O9eglznR-R0-ygZwE@&da~m;H7?Z1|6=uxT zHRiqoQ=`Ys>qT?nF>{m4jL*cx$FZ;WA@zGJMNC}kYa%rXO2aYpi7y&k#F)`<>u<1=ep9sh6!3{-nMY zSie26ZZXRG9fFw+`Hk@JYcKqIzlhHV*7_Y{9lKMzUcoI(*0QcvHLd9lH;tqXPR}WK zimjcngIQNL>A;D1_&!)(Va{g~WBOqEC^M&+8r|dW5V`Jyjw7Zv-b(h>+T?b?h&aLSj7h^cL(|N{lL1#DC<8EOcolb zC!W2pS?fOttlukAuUaYmN&O(O{=>k!#VG6d38oYB%&3b`-Vet(^n>NoSDL@~1=jBu zsSy~p9QMAz`U8T|k+&FS{XxOZhMBPMWOz~>-q-S@-@(tmnZ84e^d0GqEk?EAqk_po z4?gtD-alDhj|Tbkm`Gh`rSK>9XpldT2i7e{S%1P?M=GXf9(2UpQAQqMPgXt=SbtKa z=o~&sc_Og>)4;mLDCef6zVoxd`Y!_O7Ne~HQZN_6GLMe` z^vuv_B0ja(2(8pFecyT1)>zyZNQ>J0o#_FLQ_((|1PN zUnny*y6-$Cda^*ftc!g9z4eEfc;ET8NbL(Lw?>MjTCPPk3Ndl1r$wp(`?e7TH>i@5 zX6m63V|rW}evyZnZhclg?itaedz|Ht{#7>8{05(3q{o%vsv?W2(LL@rqGvwZ-ElX1 zbdP&hFuKQCjB5Ai1e1jgeCU;RS6g1s1zGo7kkj&wu|YW2B&^RW>;5i!bk0*MqG4r%36ndp*dyHv;PxqpZIvm`>Q>yc0jW z@|Ly!rq8-lzDaLbvf?eS$lq+fo3ZYRKC|vEu{8_=?(E8&KI=x|87Rhy7?X9Q@XND| ztgbO_VQO?9zAc*f1v;EPueKf%6VIrB^&z$QEl`F+OkC<6kt&>r4_hf>OdgKH=*ROU z)@PN6?}{FMcEv^mc{mEAAEg8%c{s|Bex^p};lD-C>BvLJ-RRMI_?}>N9$Jjbg!cuL zg;jj$m51|gMHR~XK_31`q)x>?O0m2jqpe$vvi^Z!vXG~q_&W2m*7^s5^$$hr zOe=*ysSg6{JXsWfrr2VX^|WBJR!`je?bdoalZ9_O@K`$eXGFw)`9h{0_)oZ)-6U^-?k6y``%@^ZyQ+O zPNekN)NKRn+XvPyMp@q>hKc{a=dITI4uSO@MQU%P(-7leYKOr3PBG1dS&Xv2vtY8= zM?LYZEBZF7P<9Ti?;=uv#y)3#=fL`|fpv>f)^`(35%lm3Rqf7yI5g7uU2A=}!20eY zb+@vtjAD9_V6s+EJkH;<)(;BeTqIJge=mhK;w?EaQ-aXVbRy|>5sW0k3mHhcO8EN)CtC4$EU7H zYO0d)tGMZ`EET4g;*+ym5=3ld5HX8U5i1i6N53@2zoqAGiD}$v+~#|w#fTz{xd}n7>zDsKUuMexqEw>J3GnK zl#6Y|4wi`B3XLOS@4aK4=Q?8a$3$$g6PLd(V#DxFFg{|`6-nI~mr@ZMBTV&5=HMV= zp9&&oF)Ct*2!_3hXB0j&={u97HrR`c1(ZWFS>DA2rtATS&Mw51dJNNck#QTxl*e>} z@l2^JlIn5-@>ln!D)I1FsCRY`37A#~Of5z+t%)&xZ}?+Bj_1ZRE0-Jdwd3El5v!4i zJpql3?3bFH=Q=m&kBQh0?(oKNx4nrG6O4}-bwyIU#HCbj)C$x80PXD71Q8n>M9gAT z#KsAx8hSX=zHxYVk9frP$D#HL%uNM*)9ibo9%Y`^Mi1 z!t_-zEl0&uEzY85N4jf5HPI|m|BctdZ=I; z#KMNDPrN^_C1UzL%k)rT`VN>*0Pgd13o)f0!*mntt@-2HbVGa+C)5!({B^kWk@PyL+uv~B&r~H6cQ>n?BEJn!n&>uF!u0OWA z{kl!5$M$z4WVep#ZlVVm&y>0%spOT_6!Gv#mA#V#rc(o^7NeLp2<9UAF$8PT?|%5< z84=T0Ez<^J`Ux;S8@L~}6=F&~hN&$4EYE12z%`^`JX7k5q-J>ue$Z`txOn(m)H=Hj z0n=##Q;ShdrweAe=-D*&@@{|qTcq)fdr^%tU6^LUlymnP?am_iZSzBJS+drX-C{Mm z-D%52;}|1ix31kc#dpE@XwY6Hb$nb(_2ouk@f+-SzD*CJF(ZhE#i(e^6pU;4Yqp#H zYopPvn#Qc$I3JrC_qFkvDN!wk#?#<;XQ%UAM~wcMh;50Sj*5#I^G7f~V$>B$Z4;ML z5j#SduBUp+%phX3f{0m+irA5YaiiY@J3VzyJYqd77qQqn^I03QBPC+B(8!T*yRJeJ zqdz8M$)l)Xe8i|Ll1d&$j}oSO6g@JC*wI16EJj7_7=wZH97WHr-{62KYdh@2RL2O@ zsbI>HZ{DIpOsU5(-2n`u;&Nj*R0+m2rLIUSc@#ZXJk+D;F#*%#0;U$DnC1lIdefNw zr*=k6H@)9@oD-(UfGJ15@kRPrb~TRhaGXf9yd6fm_I#dMBf zmc!~0JXe3pp>116Ouu$Ns!`?$(^fF$sJ7vWg_u&0VVXQb3dS>~u1G3*glrZM^$0m9 zVA>*>q0s1t4U17s^MY}0`j0<1Zfuyk5%Ns%TZxr$Y=kU(04|{9C1NK+<7xQz=BEoq zjQ*I2C6ADT@e!l0NGf@RoGVQA2$>HeHZO>n#i)qQ7fiJ{KP+|p?sNYhkJ$Aq7qQp~ z`Ld1J{7e?Buk)ahN6+V;B1XYi&nfiBM2xu;6*q1SLzQ5B#HcHhx-k;LC%q3*nK|1`KLMKh%y!!-Fw zTri#~bwyIiN8)Yb;fFvwy9)xQ3k9Qllf@{e?SgSk$L!ItztQM=(_Jf<8?oLr|3@Y= z?Gmw@ppo{LpYA-@5u-mQV#!D1g7Fcfu1G5RNW4Rs?yGX6J&0JRV06SRMn&ud!BoR) z;Un=4aDiea#-CVks>1mYmJ=jm_aI_CdOqaLLJ^}sCSo^>jN7>0#3OOR_=r(gB$a$5 z-X%<@s)(HsM65fAn8m1w_4tT|N8&p^Wc=+BrVoQ@IV!e3yAV_AF-((>#0BG-QdcCE zd?daoVA>NfT^umA7{zpnU}g)Y4O6G@(0)|T=pB4}AR!mO}n4T0cwHU?pWWk^zG16|3I{d09 zUXGal;bG(M$-?v>V9Ish2NxD%Nr%&n7$9DoV$0wq!3f;F-()!kb?0{sVkC7UPGQL9*$B> zmj_Hw3z%ArVtTq@T$_G<8ZDBEoAvNtoJakhO?Y55!(#2!fE)n;0uK!Mt@Ai zlGl)e@e!l0NGf>^d4@1;Q4u>mh}fAy#4JWd>@2}-1glV$`r5cBPmOZp>Bmroau%7! z)?;Uj6c3&q>$8k?rTLsbGKn1%#;B0Il=Jh9;fH90CS;W4pNwX1I$H%t-S)w#e&HxJ;ODo z5j#?s2xcNb#>y5?;C;lCJ6iJHxyF2VPknoLPg8qOYg12aM|*em*sf)rJsk}V)zwGV z%$jvns;VkCp=$Wp*3S9)E((orZEtF8%;OceO+ERXsh`-<){^h4o>?`#wymRifvI$u z>fuE-)iZ0Gy7SfJ>ZU9G>LVn_cCQvpMEsrHn{SwrlqB|r*(0@*C?7ezQys$W8Bn!#<)K9^x0nr z*EkpF(f|Aq$FGa{{cq&o*v4sn&ar*A!~f;q%rzIkwUB>xV{3C$+w(^>EnBzir2+WS z(ACkL@9v(|)ZHVi+3M*%UHPVkja^Oc-E%v-7RowVtq-x}o7I42Uu~UT_N|3*j;$T5 z*1+pFqyzS)V$Cmy`|_o{cDnp9$6@(pt?l#b+k5g|bDNs;)y37-Jjhx1-W5u-wdY(? z&sg_i>%+5k8?qHRXpK*9t8Y=VS|^3_+O^daK7Nr~*JI1aFrxqSoqM$&vHeeV?$sQ* z|Lfc{S9e4|GM$^Jh6n9wtU=kS2YJLkLY;ZANAe@pi3ja9qe0t=2XVwcVx4#}M>44s z=W@BROP7xCYFe0|*wo(AmhVdCa`~mr`OcnPTWfbus%mUg`_#^S7p?>2oC+?z;w)Kp z{6IJHZ2FAay4)0AU0!JgIO}%ANN?Au!S!IA3sWcKrswku8awK7s>htQ8>n|so;yq~ z;uaak)LeadOJS!X`i+CI0Vy4sF9VtGnOPd$ILc3~c8#afch_kn{C ziFELml1xheHx4_$9;b*`wcrh4*}$u$Mf^jDQumG#VT?XD{8m~(u-nT?2H zv2i}!h&tUU84S%hldtBot)Dwi{P?#bGX6rt5hIQIajjj*LAmTOxwRdG;iP=~yq@{h zW-o7Ok=t&f;RI&unW&SSmaYJLTz+oTqPCtDkeHC~nc39V+A=^9VNl<_0wQQY4#HD$ z575G&EFmN`w$3;GtAjFu69>_}eU zzL@N5y5=o19{GE!dX49O0WqQ`?@k(0lO<$KP2L?JR0oKwNXF^mE*V9qqytW@K9twb z;!VP?H`g{mRarOMtg5WJ3FoM%<@u#{(cHQDF5Iz})Q)Tx8J0_MFPpzDtCTmk;T!X( ze&)3N35#00Wag88tL_4eb(^Z1BSzNG%xQSxHE4;<1n2;@%X;$N4f(EU^}%tWp#I6W zTS97Deje6V`L0_0#X=xag7=x#k(|FS=_LCUVm!4WV-i%?b zUHV2JhG*eYCxaJskG^EsJ?!k0t6SCChx3K)Z_J*tHPsDMCrD#`$vBRWmb-!XqbhYXQbuu17Kn_S83N>MWg0>aoT_9Pg zwr;g_f%r`z0}WcQ%Uq#Yub?I4bT;gNlxYHO;(#p?bi==0L2zdwRZYE{5uSR}WXfD=a>~qiac1SBoEy z%n{cLs)>(60~BVPnjtAZF$_%H%@Xm3RTrJ3Y(u11uu<&-MLdxvP0}mNGJETZpu4LJ zLrns^yG`Ow^Y(|rtG*R<8>>lw|BJYttXUkdDqi#VcC5e^PEMPH_LPe~^2Fijpo`g{ zz0NU6V-`Q1wEFJq=rs%DG($87;ec;O+-|RvYz1zWG$$tpSH8tLtiIUwnvp*`u~Wl+ z%xRzdxd~(2I@+7&wBgXzA5g}R+xi1k6abhLfk=+2JipQ7p1fJS$DmmKrDu?e29CY#|7Gl+8CU$hX)88F0UxRVY*3c>@#3l7_<$ zJ+!)>j~4Q*D6d}dL<+8E*)tKmurkmyLGcq4@lzRn%}M&%0 zxR`-(harll!bBQQ%AcMQbBw`2gp=c2Y=|V@NN~i+x~{H{u14HIP+e5aZof)HhZ!&? zL|0IwUWjJ%*J^TgeIwizg|XE*n^KjVvZ$>M7w}i@^6=OiH0!LRsz;8iWtXTZ&F z$(QMLlN9#}v$sJ^NW2Xqrm8QL(KNtIpzhLAaN_{-)ZVU>nAwEb8LYU#;V~Q*SGWrY z-UW`p(FSs#1+NsDag`UO4r{;!MVV;2WAAV8=)o`$-E31;wk+RMHPVm3{T<^E>@J&B zRZZKx4qQl@zmSWCYX41-D?FLKYQ0$H?AVUZ)o>FC2O-y|XSL4>A zc$}1(o^O`*M0Fk40PfDFBak;^+wx8Ai#n^ZlJn=9)JJz_XG)$oWlgC*bi(-Y)%sQvo3{gI9X~)# zJStKRw8G3+!bCsp>$?kI5;O;cYxVj}lpKhQyYWX*Ae8v37M`G^s-j9uH$T@eH2Op--4Q z*mz%~oiNvN(CX!MXuns(aae{ktKIT^ilrboSFZEe;>4!CiL;k~b?q%!Rj=#ldhdE4 z>8wHDdYu$aJgwjFl4(r^Z-5T2qk(#W-mU$Cdf<+&tATpOJzPrz^@=*SHV5hf`Zj0> z>Vf+2hr+cwP_M9eXnOkwTO50=$PFrM^u*D}SgKxi*Mt^m9P>k>C&=_Vqe+`KWmBjt%2as;&O>>}#qcIRBGQLb4rJ_fmX~ zaPjBx`@Y7vx))t*mP>&Vc1_J6Rl^&XbnuSZZvLdgDvY{n^frBZ%A$pH@?8`1?R@18 zUQ&W#dF4muk2U>%M)Z$0_h=^QJ(PajY4Y(68TbGDeYchTeK$Njv&J5o&E+~5b>*A!vN`{pKuvqgtd6e9coA1CUezbJhuN2W zBtKhJE6)rSx!1(lCk~7zbK_^B$F?FVdz=1BKMSny_RisFqQqveTkHn#^MElm_@R!K zRMY=YS*)~T5$x3t?zcPq@;>&nBhkv;Jb+zP=w4mkW@}zl7rY&^Ef->sfR5Yi1VGCwt^H5k}L%oF%4u6yV zxQ6OUwG$^477RR;28wPmF4SI8i$u#~yuWMVq8{}sn_g`klQC;ccMqo=h)tc_(A0%q zoNp701L&~Q1_HJ>*~n+pXV_W&IkFk}HO*W--{l!O(f7e*-=yQmi7o^_E9E%?+?3*; zE8q)5V+XG~yWLKIl)Gk~<@+sl6yje&Wi>qLU?1%$ol-x3GJnVvq2M!fvG*>jL;1lI z4cC&fcRmhkPlNYO4r*^Pg!OuH<)C#}p7D#nGHS5;x`HpPNZR7h!adV1&0c?LWFdwPL zgDZY8$Jj5qVIFc@=>-;s8axW;pOG_{Z{_$x1#fLmVm!ceZ;FgBKi8EP@zv{E^kRh; zziZX6Ldz1fcE%Cb$KW<5_pF?B1m81P@g)?oyk7lE`5TrW{Ts+)$Bq1z;*S|6{$}Mz zpOQKLl^@{zIFRw3Q6B>6Um5*akWBj35WX=Xx}6~LUX!TJeYjR-KZ%*+>L(X`$~%5m1HVNeFA-f`4@<)pdDDSCff0Y)bAS)1^Nm8Q z@-(IREdy&pez;#?0@D>9V~R&uL4r3`*v zy2Vy#YWav!TahVd@Kalfspg|V${%B`>XGk9f@~jCPeq(S-$%iP4jcz4kKS+Jo++2b z@j|b-Df=$>zTc1#4U&DnCIzSIFZs_JEfs@lZKW zcx8IkVzH`EISuNGbydklIkR%dYJ;`WB3^@TVqJYr7Na&8Cf3zQZ4gbYtCQ5ApIBEb z+2o0Jl_$8q{PYtXtVAc~dcS`%K61sU7&_Lm2wRs<^t)(Ur_S{~ZVmY8m(4slFQ@2)w4=pZb+nJs zVjcORBjQGj!QhG=E!L4M@zG+PIWdsYV%<5nnnsKG!HZuJt@63DRlNum^;O+RFlww5 zha+#)G0{5rMMs9C$2ty8%pHs%>)4%W6j|qv^f!{Mdj|*kXwuh78r~Td4`8oTFv({< z)?AME>F`<}O$O*otoyFP(PU-ZS%ag=0Nq*hqsf3BSy!XUz#Z&sG%0vGFP3`~5>M{L zVe9mWR=Z-4Wz0#u{+CcZKr`50164FG4D`25W2=!!?^^XiN5UP$tb%fg@ zoLEQA(chU<(`(jAWD4FeZeNMO3n6R!#6{HKV#xzn;_He2yHgyW+^zdODq8#Q3~)s6 z9UXP@do4Z{sJ)1vfnU2$s1x{pAn!jzqR}8ZJBW!cGsZ6%#V=y{NBuDM_~pQ=JS`KO zNLGtR-CRWldw!Jf%6dOYtuVD7d0LN4Q#yirUzjJQhcrXxO*U^dJ-oDzm zy5{){Tx;+*m-Q5(rdSa4A7~5X1O)hz$@b2TInDw;E;5X z0<-Trj#Yo1AwDigha~-v$q_dB@MV<_MPeuE;|Du^joy)8gPp_LTClB=RF-egjGyHw4xYpYB5N~MlTnKGgU?=A0HoVQ<7wfJyG#(lGYHyN55(UPCD zXx{MYZqMwUQ>mW-xA*R*W(fXNr-s&!nA6?uF#Ma=U+m}QsiONw^yHWJsC^CiJlg8| zto+?Dl^xnJySLpA;O@fyJ+nqw><)!pP7g)?K@^}4$e5U~SIQH*23?ESXvU?yf zpR%|lyG773!D5!k-}MUGodMj1*#Ae19fI!?zXEZ77nqIq1OO$;ZZ-C8Wiiv_?`8$< zHUf7A_W#3T`?5P^ICSD4OOo9z_U&RZW907!1??US+-&T>*JAs!`wL+HU~%5Ai3{DA zG7;OqT8ynqv40#iu5NtIj7g1?>T5?2TiCt0xwEThSTBF-0?BLYKqIBfg(Z}E!Eae{nTdIuD2(*jeG7fxwW~gqq}2nPj=sFpUlcz#ad6qs{yiDW_Px><+~8b z)R3XKZcEEsPpWThoK%;qn=-DxW=d}Av~hLQcC>rbpjkg5wrePM{qqwP+%Pw#qqV)Y zXRp*oL#xVI!?J@rB{+KYR9xrCHRNoVHcw@SE&^bKTuXj&u4hYpt=kpZmK)pA*0wm` zJQNk)8o=AKe9H7D2WX z!(hH8H+NBcb5CnWd!(kLqm5Qx-3C^AmUZSKJGX(3i{?^42g8jQ&gsV6>!D&R)X=p} z+w)6u^PAdR5dR%*-Bvg&zYx#y1LwS@f`cUtW9cF+Fj8c`(UN9yx@R*~R6*nVZOt9+ zi@AFkcjxAIx1I=tSyUVkiaSOvVP8{R(=~6=!hCzrc0gRWeJZtOgqRMF`8`p;59)V` z>KhKrO>dnC5AmZI)0^k#7v_rq+7_Ts_5~U}8m~ld?C6+2zoVu2VsP9cGWEE>5xdY!S57$&@ik}oH0pMK#_K$SL0i#Fb)#!`zjYy%%t=$WodYb3&51A`5*AI_m zjE`-&T%;IHZ*5<22y=|%_WCVLI=Whh<6ARAysHw$_09$H-(+AXJO)l}9ii%$Hs?Fp z3HQRjI_%r6z`oI=CFt~ZAHcTWE|tngu)=Yy1n>X=OZo$j9zCUFEV^BLzHR!V&Q7G` zXozMZTH3#;TwRr1LnBXZZ(Bx+mFS&{V#A_2ZLQ5ncjnW<(5v$4h^E$_ra5hSHu*si zQ%!D-<2Nc6<}nI%ZwtuN$cil@uhxIaBMgZu~uV4!Czq<2Ha9aX6HzW9cFmR8@~pMp26h)5_GBLuIXO35Y5un z+Uzg;GsgGFV=VDQcHn|FejA9Xu@72GrG^*g6vQ!lJ$5GgUIAjtcZ{;`nr(CQqJ@iO z%Av)@@JkH>hQ(ye7hSDQZ5)XY1wf6&aR4JK1B;X3V1S z8||Oc(KEKAa~ZRk3BElTsswj$oUg#H`Dp&4NU*Mb(Za?KcIq*CeAGP})A`h{mVDO% zMTanIT!*Nr@gl42X4YqV zQ^MS>M^mC@_KY&co+4$6nM#+gGC}SJ~;vjaX-$J44P7KJruDlF>-YK?;tn+$W7h;vf zuUoUl=5}^;=XyScujlQUN|kr_w2U5&+a6Ti|>CFG_psq*&bDFwan{ypTN#BB15S))mdDMyujvn2OHB6VxNMo=b-&z!OEY5e$ zZR=Q)%X1mS4)j^<+fMf7a_t@Mxvrj`)*KEUuwLOD`qECALzQh$yl=M;gXk3S9j8Pc z-$m`+STW{XvfW(#g&~XYNARXY*$Ifjq}8F!#f4MuSoFD_M5(Nt$Mmwy@oabWm94DZ zmR#N~SGLD4tlU#Wl{B0E5RRa4qH}C7J6btm`4q|ZG|el;{%UYBv`r$kc9=W~Lm?`& zhtS$@;fS%;)-ey+BMr#0Y9z99XX6HD>*mEhre!1@F|Hjl0hk;tR$CTKJz9*D4Q+q@x)<>)|SRiIZ6TbJo9fn>P`NcqZihX9-W)q)V-h>yYE0O z_Y<*PV{6N@xlPSuA|<^zz(CY};9{!9fmI9ViV-vQva8NuQ1B4kAZT}wlptudh+n{!H@ri1io4R{g`yl)=wa8TQlKtvQ)Y^V! zYvJMe_NK0`rezHNBiL_(@1(H5zN1?JGUp&trsX0)JsOZreldhilSlh-blu*=B)t$j zO_D}CyYu-4Ev;QNd_f_@Q#CLNn&efQTY2;K`pJ?RWc&<(CUSa}bL zv4ylOXV5VmisC+8;Wg*X=(A9(BlW~3p zsRP?yj$^x+ExqF*K6ygR``9t&&=-5IcN6} zMf<-0&)@lccF&xd?>x^u&ph+Y%eyV$xQYzVVWs(?~FcZY)f!I{3t{P-MF)=#hme|rJ(7Y2Zv|MO9&MQf7r5<;V z;EsGrJ~maFL^^QfkqNxeMH}j+$iar_KmX+VPd{&&NTwTX*z>Dk6RPK9iDOQWIQ|bq zrW*fS+8SkMC<8Aq+J(_4`-sHc+O3v9J6*U+D=x-}6%z+@B;bmTlSKorU)4WmvM7HJ>B?f9^k^A;#nk=+{dJqY|)9uVHV9`^(u@2&Hq`m(w0xZ@dvbn8jz&Xa9NmhviV3=b29O_ z%9T;QZLWIRQ7{iMIKE87~0j-&(JKNUF*3io9gT2Bp#mX>(v}@sjKJB6)F^Wpsn6fEVXK6_@j+I2lBn#wHH_BZ77zd zZfEd@3$La0T%+2G*V1^yC9`r$RRu3o^X5vAX!W$p>4Y|C0=l|3+5km9jADJ{cwEPN zTXuPVrd^evZ9h84j_2q0d92T$-`yN;8)*Nz>$QydsYAEVwTnXbn8JPSW7cFxVr~A ztg|F#wABaI_QF&|Sv%&A8|9|wdKX64Hnm{3-Pg*>g-})mr!fBa!~bmjFTjPI%vD%N z4Co&ly2{A1<%SiE=1SZ^GdG{_mGtUh5znbXsUtw1KH7fResAdZp^w_*L-v5e58KCQKtE!bK}kN|qPbyCg7og0H;zuyuWW9fhM= z@UmkMT;*+xIjv59s^*NTnmbfONMT@(YV|uvqEdEXcUJ-N}iFT4}9fEVFbvVx1(!YC&!h1`n>SLXR^c+!Umh}5vYkZO_=m$_! z$u(4AT+^OZAMb`HSU;r+#*`*Vn;~R{GWg3JG%CE?`VS(l{q7*&Ctkw;%*lhhw$Mx| z^4Ww+a3rO1^bqMXu`z)0q9iGB6HWI-x(dcvVnup_McH8+%SGE%gp8yh8B^hSx*OGXzAZ?0SX&f9MdUy7X%D9^BO zzhx~8cW1|i?6g?Y+^ov+T(Sh4D2CV9%^Ezy+7CKmY^d@!UQy-Y5E~*fn46y{Q8>hH zSB|6#Yi_urdkKd~Ej6&iG7yttncJY46Ao1~6PjC4d)OY`NAN#iQfbT)DWQSf4_fk_yI^ zl(f83Cptvs*OW9HDdEr+I6IQ|Op%mZf5OrhPTe)ekd%ER9E#w~j@dSHz;sX2C6dbi zLrG7?KXzrc35{81o05)_l)m2!j-+e_!MKu=mRD++R|GLrQchyRAymtiw0DZ6bf$@t zYK$Q%U2Qm2fHQ6B^tP;>o}?E^Di&!X=^6Mp2#4DC#w=4((ovG0&MY@LlG08E<4Q_e zUa8S;2}VpwIadmYX5;L%=^-hS_7jY0y&7Xk%G_|M1ZNH(17Erk-7F;kEbBV`n=6u* z;~(9;+GxitQ&Q4Vl8$AT8yrd15C)7ZDQS77rnn^-F(t(U0yUh4vmynNJ^g}7*|r#@=B4q z7fea>kQ@#zz}bdz`u!!Tj7icuL|)NpNS0CqPziS~8wSYq zOL2S`m}3et(Z|t?6Ibp?CN6(1Ari>)D&${_gCUGVa4mJ%Eh0&Bnuqi6f$7KIgutnK zNp4BW@U_Hw1oM%;7npvdh*Abtl3P$>njh0I#W5I|n>3Eb9JE9CMPT00II7QYCv*hq z9{_Wd_GC0{za7{YApJC8eq`W+_}&G~LmC&vcM<441UTddCu(o$)=y17Y7`gC;!suw%+(sF>gUh*7GQp> zaY1|wK<{3Sc|(5vcP^7}|6Vbokz$3f9c)6*M`hT> z&d~-T9p4*)`L)Ic@r{7SUBEnt;}slOpZM~99Jsy6|6>Ir2B06-t$c57_9`uzu(9PRys>c@fi2#q;Oex3Ry zK9O-ZaKn(lTVvDm1tv$2<7xS7%t`X=&$okok$fs&PSlUjn^rfmw$+ z%7-`(39!Ebz=fv4KjUCf^k9EU;|CYogMpc-ajJeCKN9VE5O6iX#JfT7Vqm^=0D32Z z-mSnq*$sNTfcbYay(Bqk_kH2qj-!J^px+gLpEUkb-toZ9)3{9h_Zxq+k$x#K8#K<< zix1!HfcbecE=hk8(CgF~L?wtnNTN3kIWGa1!z&XAt{h3@$8E?v6_^(^E(iaE#?{%? znAqZA2(l~cuL+n-aJ1tH@~51KeiiwD#leuyp5Fter=ArD@r{7Sp}>sLIMVZ*M_h^Y z3Sb^Ia6$6!0_Js%3*yV_zYomhnTQ~`<8;zIjCQaTm`06r?I5W=>VUf(m{${U{^R+- zf$6Ph0zvhQfLdA)Wqa0<&1- zg7{K@4Z!?^4TEqvjv)QrbDm{AhJzuU{@wtl|9piD(%*H+J{g!T8kbIg`+@1lRWL%3 z91-Llr7>gW*Wdom2W}$rf2FbM^miXHPikBc-vZFvr7?YZmk2fVv-=y6lZX7<1(Uwr zwga%eIExyI=(+yBoONv`Ss`93CN4c|9&kZ2l-~?rzK;So5&8X=l3IGcgMlg3xFEiZK;sJ@|Rr$;@@nho48U<#L$YYJZ%cRKRU1ZMRCaO_7Lf%(G$ zaO`3a19MtEA_z(H>d_HnIr2(1Mu0f+dQ-wPzn}O?;9~tGaA9}uOSw-1*Nr;32Z86| z>D_Z^kP@awv0*Jbu@SrR@Sa0+qgP4!?1}ltZkdvDZa6RD=bqjDiAci>rX+dflu4iB zBgQLH$zE{$D7q`Ulw%oe$ zi|{;OGak8&o!0C;jyq~Z;mH%mgX~QpJL(gW<#QMJpOE;>uX_DLX=`h&B|d({g!2IT z{4w*v7*W}UxL;mNl0l)_3<*Pn_4Z!EG0r>ni0Pa(4c%sXA zOw72HBB^-NhL4KpDyft=VvpWv^=EcCZtv67p%W8yRQ8Z7LBgIuRuSD%RAjku2*_H^%Eq199ZxiE%v2f+I^_FTnlHdGf660EuBAi#*DkXK@>rqS6O3Y)ior zvL@o3VRcMgp~7y`yj-!U$8EZLObDY0yv+a$(~v(!MA zJhR3P09mLXHr%1jvP8;$l19CJLt+t}e;~1ZoPQ~?AviZl32xxMNMdZhc8TEzpLM&$ z#vt}hiH%3BFODp$1m~M1tsF77Se9%9q1LmkDx9}SZZ%>XByASX%O$oS0TC!Y z@(tAbkvNouY-6^0uM7?DnO`+x%;+=5CMOl0F}5=45$y|5ge}ZHHruHX6(R{2D5JAt zt??<1crh7Xc7z*9O^vNNc#puNs41^zhSu`=Y}Sc(*awfit5|QTBkS2mERV6?R;B!B z8nrx~0t=&v}w>&>P6z?@h{;a<*)84vpbEdUv6S-XSJ;+C>hj7AW?$+bN_^=Et+NLX?xo80H26QBm6$h3{u?(Mi;FM*Z?mKg zgdx1P0jIs`{ZxB1rrMkOQlUqfzs&jHZtt;4y~1qMf5WtOFy6i^z2aiIL6Knnj^wl| zB{^gMk~0S{mna>u%?b^!SZ2={ux(Oi`_Fc~!K9Mxeb4{l+xC$bB4pmKDd{$2k@8uYu zC*$21RW-Bib8_q%nRD!dx%RqjdvAL@zo77q!LJqW4Zm)W=(v6O+M8EAZ7xRzx{kGlqYh7D%><{gE+2MVKuMd8seSUsb;cMZ& z_Bq)=Jl7n_x0mOD#6XbPa%lKPVD(p^}cn?2do;fc|#D12=Tj5|K)q-w!Ie>Rw|S_M%+67`n>)7?d8Kz z$6={D9A?z$cFc#d)Fc*3EZR{GYlNc30^JzjJEw?CpD->}z?X}<__y^Gj5 z;nxdy*(Ku#ztCQuUxF4wMwsV$sN(#NyT^T{Y~2s-7rM3`8vdwo*WecmcZGMt;Bq^z z2oK7>eM(p75%x}d8!TbV;QPTpzi?Zaze751FIaryaqo6*?O|`V-wAIid~@)7h3|yf z*7MQqCAXDyB08*VYp?K|u+{mr15l9!h*vxNq?Lg>0~b zFwgTlt~>sx+kUsFYfBzXbr;n9;$T`>5$eX@2NNGXN^-+R`h$6DpjK{1*#%hF|Eoz3{SEZ`_GioZq#zZ}=TCvE9;qG}m3w;Pwxn z_&Y1mwJp!(TCKSb0M}P{ygbOC>z{j`u>~au`frec-zJJpj|3S$-Kd#SYG%eFyJBA%+zf<@xH26IG^}$MHWm)sUeq+_C9UxLf zp+78SgEZui@3@Iu*ZIg#C`K|q@mT_e09exw(uY)EU3LJkl`0GEj zcXw^+7v6<*_+6yaEswq7n*X3C+YS$Zh;;a3q>n-CZ#n0@82n#nmO+0Y=zr}`IbTht z9|8R@{_~CfLjS#|!n-tm*uv?LEx6)Jp^x+rHGSCKkh3rTag)$T`ZisEXl(dPuMXRn zOn(UI=aq$SO0GZM;f;r8PfxBtY;DNp7uUR(T>oL9KkDt`KPJ`n(R1h49>?}Q*e%08*o0s`Zmskt$T6Kw_e5hMC+e8pJe5s5+_?@aUNnV z#Q7Af0q0Y#jW`dreu?ui>q(qXv;KnfaCv*h>DGx@1{GLSaUNlY#Ci(n zQtN%3Cs_lqbSSq*<6L3Q#JSR1f%BQxo+)`Wj%=VRO>G|S6TnYd75jyZ`wtj^3JZme?=b$c$tC0th%C#hO|KrVE zjW3?a%+=lH=)B|a1jwFMSHBF)xMhe)mdHF=|KqXa zBx!{d@=3XmxAywd|K{3jwX55tMG@cJ1}%$TGx@x#mJvzJ`^ne`ujv^s15 z;l$V#nd7#`hisg@|B46VgD(AGe|+G$U2T>79+YaW z)9s3!_3t0QCUe}D*8X0;y`x5R`C_L1kp0*_$)+(qN2O&jnR@1;pn5Im0rcrWWX)I*2M{1ueA4ba%${3-43EH0LP z$2EAXAr*5hDwK3Vfl?^>8B_8*GB}lI4wuz=T`y&L3iyU(uT7F4UP%IJRLBKr`8(5J z{?x6Ih7Npos}>iRi$`??DhG!ofmkgi5MxRpr&3ZCoR|ZFLi-n0d#-WQ4%Txf`%x_1t&ib1Op1bI->j zcn|K0AONzH~T zOpkGF#bucg@(Q%SJ{&dW4VYXzqq=4WBI8v?$E^Iwa^}t4fU60(D>Hi%W;S)>exbM6!DUpmvaCVGGA)R{&>Uz3*#o7IW8i4cW1UxCaA6ztE z+a{EPNk=4Kk$y-BlJpojX|F0IjW59&pA`IL^dEQW*9d(!iW%6wp2CqOw;rg(EV-4i zU1A;6?%RJNVz_(tq>51W>h=};+DkapO{?c6#sT}E5~D=CbT2~=epPrDKk8z6MuN0X zK5KKN`sc((o18xyKF6(?`F|sZeAC6bTs+&Fz4c`38aQ-CylK#s$ zl#DM*j5Yn2#1ilMjKo*K3loz@j2%06RC3aoF(W4?xg&~sJP!W$l`ez`mO7q0az5i% zTrA>wG;?tSikyp5lSb3y90GF27(s#9$JCu8#?+l7il*)yG1eQaASHMou6slUy|Fs5 zq=)pe*zY=V^tLX>`7b#7z{RRqZ|iEr{witT&@tuJC|xcN$SSSeiI@zmc$0OH8<|eO zosD1K_szolQkj;lE6%?d*x)lfYcX`?_ORmOHOp(o?^Xk7Xd!~Kq^|rfW2%M@ZDdPe zPWSGM(Fo1^V)K()n5GSg+!yEbWiOI?^IJd}{ zBVww1TXtpMm7Vc{nA%Uq+`bRz_F4NL*pR)qSG727+!EYYDKc!UWM{CpRSx8j{qRE7 z=aoBWe?Jy7XJNtZ+!CuqO!a(3+`yZVW-mWGNqJ`hN#*hPYEOB_S2dHBcX46@JA$Dv zXQ9MKQ@UYH>4rR1P`3}6(>)X5HU-lJ<|avDn!q`p6#8R{)z$dOuJdub1GoN}-D~{; zu7r#!36oo&Isfg}r>=NWBXM~}-7|x~XL}klz8h(1=wdg{);09uv@Ut5)@4k|PRc5% z)@4q>#A-&(Y`(ERGS~iK4sImm=?P9{&ibvn?Pun6H05sWTln~fX;%B}%=X#Y?Xz=k zBxT-0ex`jEZXQ`!(`MK^$GzURa@@1_o9@C{uZ``B?4eu6Z3W~_e7&O3o|ZXuYxtS! zj=aK|&f<4L_WJvBhVHU=tgv(v=4`!coK>{*yGGySE1@F+@Tec$PG6eTi?bVrhhkuqm zN`#f=d6!z5Z&xexXhs>FOZcO_zjrK~;eO}|Nxa(FbrazL}>yA14vdG1u?K>JU|NjZ+4 z6%zBtdP|1?QKQaCP8wNQP@dGi+EA8!7vXoR*S(Cd+PYoJ@I^_z%elZe1q8C9(KrTJ zb~w%}*o10c!I+v?u;yxB!I;{S!ilTek;0hjn5-LVgskJFX3XhnVP%7xy>IUbut2)PWw{ggz4O&H_sgCS8WKDY zPCJuxywS!~Z^UL*-iR^fjVOciMvN(M#AUAXMvSS>%37MYbq@Yy+gURh&s(@T2V4ET zz-^hlRg@@HKGNt^2jSS@31z$##!slS+J+@h9gUTI?d4m zYpQg>n9>33$q?3FmpQ%-Io@o@i-6)RG*M==A=^Ef^F7n`lX*_8rGDwU08#motE84B zZzTm|{w>Lz1GeO_o(9aZ<4YV|M??6PcoYEJvC%l>1R<=FkJNnjR94Pb2GxOd~Z_I7(;!aN3f z`m%h&EzdA(G=S@<&DoAg(@)cCeh*3VWCrj%i4`O5Nr~N#GjEe~9H2FYWlLu!ZuG;d zupNLJScY>is|DxY)+U_$;JzMjbaD>U*Sa;y7=DXXwhwbp8-b+?q%Qgv2L2BB)V2P9PhIq9a>I?IlA$T~FDOYi6et(u46T$;X@)VS8AmQhbml-a zT(Mo*IX7O&J(m0?dLU=RQe^dtAbJ zvWgpA*a`IpmpuG+{C2O!AXH|4@RI^4RWhbj$*M7ATG=vFV@^-21h3Ro={y%k%VyzK znllR$Z%UPnnK-c^=3F-{DVb4PQBpc-PC-e@xg$ohlG}0gaqrOd#!SwnT4_*q7yrhM zBO&jX;qVy&MuozNw}KQS#(HDdl*uR(oi(K}-7PBCb&pGevEI1#V3HVwx|SZ0#!i<8 zW4+PbCXH%C-o%APve1FKsgghCvSh5cI9um?h=(HOV84f02O1yadx&`7Y{KUdKeg{6 z@?%c)4_+`o9L& zPD$zKupnj0<>fdPoRqs#Ql2(a>O+SCuF5(k&CgD;?qR`D!pT{`DaT?0F+TT&hrFZ+ zF4zwOqX{ zYSrXUM;s2Zu8!!vQn*v%MD7}6aOXInzIsWS@1A3yn$aXpA8#bAu#p z*4*U_i3xh9KTP}*<-vTlut4gTWsSJ%Dj1DZ*A1F`e`+;U1a$)fVA^wk{8#pD zjJ3q*@2Jui1>=6TkhHu~m=qYnv?xv&6D3XfBB9tbOD9^C#u$30w+M&$p)lSsTRJKi zQyoXro3x}yh@|HL!F{pnLt@06l9G;+bO5v5;7D456v4QXl9pHMe76K6rld#We>k)W zXUC$BNUG{z@r z6E&tWhQW@DYT?0GbhBhQ1n6fub-2%uxzou3N<7$=l4lHG8mDiQSp%-v=YB4ZH ztK4Ois8x+Iv>I_Sw8SGXnf97T@kK3HM6|jQNO}nMsW?OudRzqmm88>{17WwdENaN$q~&Q6;SPLcFP!I+Y2j3Mbs zE{2l+_M@&}cocuCB|S+by%|V0vickzA_3dWU`v;s>RlAa7)ICKrp zj-)50NXoG%(Rww;kn|K6LrHtpKKN6QqBJ4$PZ3FfjTl8&AK*hIK~mCDl5({3f+?wB zTuDhQu#_R`slbKBq8v$2Ns)A@V9Ykv7(-I77{Z~KaK?oUYvGhSPK zN0%Z7rHl`74VO~%c+}4;H}V6Vj;4O4OA(XE>vSnK2xsyt{O#C9Ua41fDPj_N6(A)X za(Mmc&m#?Amzj-B1Y#8bDxJdAMD8Py5)RSM$$kE)mFt``n2+dE#3XVbDW&|muh*rB zNi0<;rDz*r9B<#g9Y*Kq=P6x^7?t+ETjz*QIldP%C2)?7CUHyaWc*aR80MPmL0&pi z8so^AM&oWzd4`@C_6EzUO`t;zwtq^F!syMLVpX)~EUfjoopZF2V$S(T z0TVRmzg6=hCQ)Ofr4%*h=*f#cqDv8@a^Fg*Gm@?9-aMwxC_5!YA!l8&N zZXGkB$9)bb^jy7+B!=r;*+h#=w|t_G+A#aY7^H+l((4f$@cjK}YR%7LsgZJdTQFGF zGKG5J6L=^ku_|}T8lip`FO^iDNK^T`Vw$fTOkXD$*VoYt1eP*<-B{qlq1$lI(NtBP z^=Mwn#9|zYUR`4hUpLOcgshu(?vHsoT&(39XF;w|4@htb(CyVYx#3Dzc9t_`CuJpj zlZ$4=lwB~c?4%x8%8-3LaEV{2AD80izaSV|rlWX`F=Xeh3S~dEy~Gv$D_X7zls#cp zGEquhiL+z#6H>UB2*%{DF$VWi!BCmBqP&``aJANC-7CF%Lsn)_sO51j@bo&_{Nu&IJ+&!nU5 zxzWj%U(=oiZof7Z#-($D7ktk81c`eM$t2?RZcje=VB28I$y(C zjiG$9nX_oqXPzw>)1oxS(6iW5C;}wq{YB2mHyvHz!@pXtYNcnRm1h7O4qc*4;RjnL zlDW?mjLBVN4DL08VJjbw*zwmLd7j68pXOeZ(#kaHaL8=s8n>0PoeH^@MU0v!V9%Ab zg-S8oVm2^|ZK3I)Eyj*6lC}_xw8hxb9Dmj4{Sw=PYxHpFI-H%hP;|_;m@61l8yaJ1 zW1e6lIMdTV8M|zkr;U^QN-~~7kDzzgL1RZDL4CfIIcD!B9o4({0p|s?cMHbt-J}&* z%4qjL zbdg|8Nj1ihv{o=qoBr%iy%&2FyR@XWBB>2Y*$(QXu!tl`N;*o?#3#;7Nd@CdN?L)X z3`tQTNP0caj-<6Ik}eU9DXGR7lGX{vk@T+Dhk%?z@dGVsofSbp{dP#L_McgVA`;9t zB^@Pc#3`;Y`noy_TY_;VJ;h03mX%b>kTizeaHtb!hj3krq)P>3N~$r2q{{^3NLul2 zz9-b7II$lx5tfOhw`fT}s#U3pZAv;y(vzLy0yEoGFbR?dmNFz=4m#n`y*N9Bm!(Kr zFBnr&jWHx$A(&2{afkl7`_IQ@hZLRbB#%PAgT1bPnbz0}(byfJ_*-z`CwslngVmG} z(Gq!|HD!uvKdiITD!r8#9IbNNFBn&=4!bYrt3ix*yz(X+KQwzWuDKZ(Wjjjg94xI+SP2 zY8H+C85*O1SD!#;x@jA%kJ8w^zC7|u@@>5%?OVZMqU0M;HUOlNoO3uVvh-zEn2UitP z6cNi>V%Y9GyBU{xV>QjSOJWC2wz{;Uv{Wjps2()Id5+){qi3S!41Gd~>e6|_Yhtt_ zIIpk-4GJXnJ~4VmB5?Gi5~LO!RKs!?)fCnv8jY5%U0d0Lm)A_j#|;}|El5%u+M*5h zt#R^CBgBZrTKK#Uw`3|li|xHoretmrH}{>*jeLe;@(W5!68=_{mdv5p_*}NLQ?sN5 z>MNm{qe{+0V~M$jat{PJ!v~-=J0elt4pY8OwIneM-9v2B?Mg}cHEhJG=s;{o??qBc z2KE^%jg{0@NO)J#f4LTuDzN?VpuU)nmXA6gHg9TPhx#wB<@e+8=4!mc`eS~6y%bte z_AlRakMg5h2Tw6NUAmMaISsSDRuU~JtSFsKJDHeYT8fVBzIrFAJr1JZ z_;}`oZZr*kncYY|GQqbQCGqB_@sBY|%+~ahUncaaQcZZ5&!_7 z)uFzl2il13__*5ER=l_hhJFxE4wWhuJI0oDShF7R#XB`NH*s!w5X47LndH$+m6lXbtuB|Y8=IJ4HU-C76GzpzP8`+P6i38+=g`Da zcOJazmK1l8GZwhv{t%4H$I}POP$0 zpIKvO2{lx+4kMJw(*6)Ch%CV|w#lf0r;vgSg z6xZ- zpPy87fNqs@Ry7}I{YPF3-%UocYAlcyl3Pc2<=IUd6cWo;wfI!rKQ0Nicvbaq%PJKo zu6Q_A8u^LlYJQ9GglQUjj7UNqR@c^5)wafEvIvVkh$a0LPJG1%#1T$eI;C-SZ9{#X zE2Yc_eWs9}TbwdU&7I|PLr|4IBc&Lt8UN?Sj0GX4-R5d@M2T9A(YSh_UO4iMh!I8< zj42v9YRu@7ql`pEM{qOH=tyMD8AW49O4g#@RiUAw(sehKeCJ8adK8zf8HU%j#FoV2 zTy)^Yr#}sM{^{S|xz0^gxdg@3rz5xlg)2<2oUJePA-l^su{yuapX5- zMRKbbnU_|Xw+Y8!%l3wr7@8+Qvx$i;aZFi&e7ugM9{xbR3IaW8AkTk`AA z_nW}Ihy0EiETt}V1@XNRm|tsLI=**l%tP|)&-Xjv^%(M3@}4k4I(aVv=BpYP#J2=A zt_9{99RGtO1Gm=v^n49)?;!t6x+T-`{SGic)wm$O)bs5cbD#VM^L-Hc3ud7JLOQUB%y;G2pYQL$>qg|yH)TspqnH0Ejf_2=6GUN0bj z1@G-6q?7kzV7{Vp>G*zIV}2~Z{(P?iuUnB{$~*Q5>G;kDCZ=)e_%>fR@qOE&#rsMD{`ofKWF!AB!K82BM}T=zG-~?G4IN+Ki@xs?|+bg=ORQ9((&D~2z?F*Lpr{HUnCIgJ^A(L z`#V5BLjG;F3Y(7aHejCCxO9A9)|j{CH<<5x$p6LS1M}?y<}r;6;(G(gJO|8$xMltn zj$Y89jQgAq=`DcdbS#dSk-rZI1LtdkGq#a3okQtKb$HMk2gBhwN^(m|%q->b3D|+84n~7Hw;HH_Ejw9-U@^;j*{GhlH~c{PzZPhFu&vu2ZU@KLG!Tv!1UuT z2ZSKKyo9`?fcXH&h1l)DM?KVh$a~C!TL{br$@G%igX8K~fcc)rx$Ti; zFO>IgV0LO;kiD>-EbNWQ=Kcr-R}LS(1A!Tqj58j4VfhG-5{==12Ix7ZJ!n^pfcvt> zx^ft|`92`M*^%O9#Xq?is|9a*PVD{tah20c<K6fxuLE3*t+?tOjN)j=$ju2iO6pa<3u3{Csjv&vza$%QY^D@1@9S0p{%%MK2FO zB5zXv?T_?7v|__I4hFZ~lKN#n^7aDLFD@{xmsJ1!HDnJ4=C>M`h5teQ=q+GEZHitx zIr;!&uU0sYGeL4JSc7diI2h8&@fBcxqj5p@cO7VK1!nPDAt&3DgXH)gFt=)4kQ|SK z%pJgNSch$EIQT%dvcJS}f&Jr29w&Q6yCvs&YV>X!>Lmuk!= z`E}|STimuRzs9N0g@}9;`G+!skdE((z>LzkAifdMn5Z#P`Ss^ZbB`ha&l;PK?`y#P zTjPTGQr^sqa6-tFUw^)fkbgAtFVNU@e7^$B_cSgY-ydtt9rEkXm(zlKkbm+Q5kW}D zcN{QNH7*_B*%}j*Uw^(FHdZ2kr^cq^`ww9Lqj5oe3qUXHVoHDy*U7Ix-y4uW9{JB} zY&yPg5_1U-gdn~VG=K*n5`NY#Fz3usxj83_~Z8T#C~)= zalRq@vReCJ(0gnFzNX|2h3iL3!$9&zohG@ zl=oj6bK>Rr6Cm%s$Qg?K*94QE?>=Dqt|zTvc^9EV12kss6+|Ab{b{0}??Fx;COeOF z!h?{3Bgl`x3e3A2mrh>mOG3&jkl!p{zCQ+J7V`h2vFZ5cUS(Mk91KBxBgi{dW6qM_ zurJ>Z;N~NLkH)6s`w=jQY(N2oAigEYJ5poj%5SzW-#-F(74pm55kW}DcOEdyH7l-*2((!!ww^O@(koR;$XIKm^Wn{MOT?H~A}==ip!nqF0W*CxIF8 zRe{MTCxhs12Ie)5bLl0`|Av9g^i3ECaWHUxrPj5H{cQ~t`)y$QaUzJ2jU%YPMS*G3 zxS;lkp!_?%A zbn-q0%x}MiZwGuky}VyQ{y8`pTzP%$aWSJPjHT0rP`vgHaI^^GhgTa*}sof?b?n zgCnSa+z!lr8W$w*B4j+QF~h%4ivHu^-;nbl@^8I?nDqT)^9>j;aWDk&EkNG$HxL0C zZsgg29DEo#1<2ngnDl%P`vH6)4u&AU5#$Zim@4`89|vy(ZXxmyy$KP73>-mvJ`tEv z8W+U31m!1c%q8;cKMwvCxL+dwYd0f;kdE&Uf%%=r1@UbLjZTdzxP=t`$HBiNrvdpj zKO`nS-(|q8(YPSKzXFZRfEn>4ti5rhyI%Y)D6sqT*G+oc~jSr5$IwfO$;gg5)hh#&a5T%+E>FzaQO&oZlnA0Y?;2pP(zqbLouF|wFf-tg9>9@qKKT^#-=^b22mlS6Apb+br03i3 zZoGg22SX6wT;!diF=OS|zrWE$ry~DDjZG(SzdwR64u&AUCCEEPW9sGCzrVc%+_lJG z#}0syj&BDr*K1r5-)7MGk;WX!#eYD5`x|matYEeBW4Q@1mc3`O?klNYg{_M z!-1J@(DUQ_JoqdIX2N~snx5}WU>0j!5MQ=O127jEI6uC$gD(Ly{(f>z&$k+wMH&~x zHv$?ffZ1r!^W#f5|2<%4Y()eiot|UBv}s&AzLx;=eS@AK-)F$6*P2SX6w2=ayjQ>AgF=f}4l>5G8b zW8i}9`6FNsc@PBxk=3fRq zKY2No>-8thQE@P&-ny#$!AYMjeA=|18lkhvC^=lto_C@$*NO>Y2G z{)8`I7k4_c=K*uo0dNJteHWOA4uFdS_aZP8C^$lrJIG{vHO5KfKJ(MdD=JH8 zSIw%LGO754RjsR+G`GZ0h$N&=tC>?ab5>H~*;VD!OQ%)ToDd<$iCF(Kj43Og-x`lK zuc~dVuQg*WOXkZ9UYkaZm_IYt5W`aw^W8UuH!WT<#_FHTCg>p-d@={;AU zTAEs$mc}DPW}Xs}=S%A^z{9?gvZhtd^?Xr;0E2fuEDV-iYduDmX%%gN}2uhrCW~5Eo*m0YJ>EK$ zjCw|=H`U`I^+T+1ZX5n*MeAa#qw#+DTX8I|G)K#t8X8u|mgFL#90|Rmc>Hy3eLNcP zgOmtLWb$)4EIx?E*VH#6&;5&sMw_DXqmlc-K&Ye*Wt;KHL#!^k6rW(@cY8cCO-&8t z@>(9axDT9?(qU4srlm`x@#FA!5~^`zv^5ru4mA-`2>7 zKx1_gJV@3UA6+zI9t!@r2-BjETd=seCAPS}v2OgLcnnWRLJ_Am*Yd3oP|T@?a1+8L|%a2vkpv)}a2i@wS#&&64G@Rj~qq4hP8ic6=(RxOi%8-K?gj zn&nL`@lhy|jS|Dtk#!Z1g6d;+C!yF>bYA1*H#uI-r$|2icoIcGM>#dmc*PhPIq#lx~YR ziH$U%RmOYiQyQDw;xl6_;9(LoCbcbH8f%H+c{O;9rA;lXqr3J2ViIrptxATv*0kM)whE8lI25D=DWvW zrRSAVb!>>Wwi*)E)Hkl2K#wvQKBPz88hpzvAODuX_>MJ-!V9cSl#MQTJ}TAUL%9#w zo`}2(F^Wb| z)c7i;Kab*Kd1g?0AsYGY#)fs1QT8uIcpAfF>-NIrrZ!aS(~+pGvGD4KvZ~t_H`FhI z5wMeuLk*2iHn+AuUc0y+(cvod(ziocV*frSkqMNxgof{httpDPa^BlcRv5#$(@m;*8LygHQDOdoOfV!B0+ za0_A0#t1hPlb)tk)7w@pjG(+Lb*REHpPJgG zv6|)eOEE5wA2ET#odL-W;V@5_29H|1ELOT?N!u!Z$hxV8gjS>C1|cQpG|X^X>T4UQ z^s@jkl%5E1rw&dD&Py)>>myV2H4`6_tZN;J{6)w=+{?#H8OrcRB03WKm?NPA!^b!; znBk;vIV{SU^m*^a8Xs$HTV=Xu=OtOg3MNpkT!E@Ies&}rh|$lWsEWoV{G3Kp z3ujLsK>Wnnlbh`dU)@lP2__zOQM0GhP;B)OJi+407+|V0*`SGi$=Afn>YJCxT1c3a z<-MqhFduAQf zS_oAdF`7;P1ITGKeHn(prg&vTTkCR;#a~1-8Dnux9B->zl{lQUuiXzt7=5j}rG7Q+ z6+@KUUFd$E#{ANBKd@+^>Nx88`U_(~@);Rfd47x2sJu)>yKy+V4wW~ClT;e? zM<2n04S(cSofLivxeN;K$m@zlQ{IivW14b(d{Wzzm9hA#$h!&z274{6oftcoN_09Y zt%(zcqa2se7GI88c|BH85T*=+46D-tPDXX;I}^#!%{&K|hMQp{ENh9$B;Tzz?cgxl zV!VD87JmHOpMRI)EjrQo7x33U3j23k<8{TwcxfIReR12;D6eqPOO0Q$ytZYSZHdS0qqtgw(T5YozaEW=qQTo0JbksNqUdzUTW%C} zB=^z7Na!@g9-n28+lrS`LLMYsYZg%>RDGxbIYWn~M5%0cgkzASJA#peW>9lJw%wF9ZTU+GlTu(GkX zrKNTqCyCpUuaxhULjIJdRsqPU1Wl=y^8kG1C!73g6jn{{<>7*1W1L3%Rb(n7^)g#y zv6Xf8GCS??V|;dVtZ@~z$(q{$q|_WW<3&x@yxosL<*NA7hT3JVtiY8%655p@z3^kIs#wNgLaH1YCrq=^HI9`6Zof_PLH&W+3Q=H;)( zXY5TXO~d-GYi{T(t9U_}RXrVbQdOl9if7>J@~<$LVqxVD^6FoTS09$hYM9KJc^xQ% z8AOlhBwQj<(zCjQq`PH{H-z#s<+KmFFOk60Y)eGQ+S##&aO}e zk{y_NRTwg3AW}20L=APr=D7yD1BNqLs3p!BT+gdL2^W+f!jl{>*n0IExoEAv^~Ej< zt9H65Zut#EN-2^~6uh2hB=>%img50^%1@yx&!G$Wt^7ap&%EB{Jj+o-Z7*f-=DPbafZ&1U12VK24ZNdGOGKDi8*642jM<2Tr~*e z{ng9j%a!F8A?F?##%aPXz%UYpfKJDt)Gm}7A*B-ikk2G|*y^VGIys4lr}}y|$6M;^ zdB2zn#S8ST-h4lOjSPRZvFAX(S8VN)STk4tT$#6_SeCj&%X`SYe$#V}YAarZWiSzV3GrU%6-AQ>mR%ICgmUJnvI%`!i$l zN%gp{j;Yn;`T*6i8cH>cDb=V7>2s}Zr&VLy|sc_DPr}NR1D|% z{p`i6Y6=jGl~ZCdro?iprfX<1hhhy#@IEso`^Kc!a(X$f=C&e-f_331YpqXwH9gr! z{R~w}@=>h6lAJLmxl?5M-CAZC+2)M{%)PHxH(CW zbRyIt{oU`q9(3`4U5_bV(MN$4K`D?irNCsb$edKK_$8!TR!DZtzaqTyoj$@- z1SLFUN_a;ABuHQmg~!Y-!yEptk-W7@E$?`rEaX;rBi+pIw0zQS$kZEZ6OvtGdFr%{ z)lvd6rUY^-B{jy0IjJu32FXqyx*d1IUqhg74c*-l$j{UHh{eh&u^3ZgIaNb~gd1>% zr^Bq=oU{Ex@-9zmC$gLlYcmPl;!}KNV$GCHj47F%dg z{Wz)3oqnAp{N?}MHV<-6J_?{1N&$>11vo;8gg7yWMjx@KiwRf(y$IF+W*yv%CMFkX$)BAIVvNB{^gM zJ)Su|trh#1Q`EW}d9JQ&KasyP=FGL#8u|S59`ReUr3rbyDC4Yy>dYN#gX=l^V=^T z(thzU&0=eGVO_hl(fa#xH)mU$xS~HDHO-O-jz&q0S1nX*5MslTmS>%e*lChG39(Zp zZG{`#h}bET`whfY*`x3ukCEaCS@yIy_wXNn*LP(~^bY=)7-u8XamtemYCo4)9?}Yh z;8BPb2s=bRlQ2m5uoe{(%SP-k5@Q#5N|`4Pf5~4Vnfm ze=FNrg^k@Az*0A8`z~<~@?t43l69eG`chGzm6gkOW`%n##;wnl{9@7JNM%o8YVW%G zW%%SUlX>l%VET+c@)8`zdRy2SC@Sq^9iwBtty2-B!uwdmb*#5_4r25SeXIpKro1P$ zM!Ff+0BHtd0=(z?e-v#j&kxtkp1YwuKlfe~verMazp%6LxfP+eZ+-8vDed#~2iSW$ zs`B$@BO1YxzyEN;uIP-PWW%}IJM72i$h#uC_GG+si~ZpGm&5Pe4A(lKy&-?#!VLq5 zpfJl#R^>KU<>%IHsLC%wauK|5RS0$(@Q=tHh`^m9`$S7D=P-&X?FNi18jvmPPm4 zB(W~U8YT8HVk;%~1Y#Ej*Ps+Nteo9Itb(WNH5d3vI9lH?&+wCkt(eBSo zz>}i;aENk=4Kk*;=0-1d z^l1|7n0DWO8Pq$bJ*gs8y&BniAQBT)U&Lx9)*rD8Bt~VWj%-oMBhL*ILnI+E=X;XF zIxLWwe0O!oDUtft2=-1#jIT9D@Uh0>Zi6|54&)`5y7cQL#+qIzu_XUDc0^IKOB`D; zrXUG5X6)!QCMJ2wXF>9K9Q^GoT?mnc&Fs!D|Keg1&!d@3{|wG!Q<6rFpldq>Yx~Z$;6Rw_;3rD+;c>6=TXHo% z7-62g=JQ)9lV{COs`YW8h71`GzUI|>v^NeWcHZLRMXlJ`Q`-`$!}IKXND&d->u+0v z4c{kIqz#@(hZ$p5&uCP(?m4$*7lNx2lQAVGE5m@d9I#Fnb3{x%FRnz3#0PGiynpf) z55)Ui`oaEq*1iWeWbf_e&cC-+iVWK-*%_>Dm7LvJ_QMNRpI7dj{rzT8&a&tclv*kg zQ#~IMH{2j7ua}>lq`b3$WJURVwWmDep_^poU7VPZq%TJ|^c+ezj49oahYCtJ%;}y9 z{02zV1m-45VVb}>o)r3-0p9jC4EI2-e`fbu|NE|lj426|Tc0`q?bfHR-~f^|MBOuk zzh`?IG9I5WG<2~WXX_gJa9WoRPWG7`6RO>P)U}80+X7(IAo*$WOe=vt@P(8t^ z%vrxRxBbkVj;7p=eG4DoFwJV8o!LG+yM4BL52rmn+kU2fR{lWS8n>l2!`?aW^|qDc zp0(dxouw)4(7zSgL${3E3doyRzPq~6o|ZXuYxtS!j=aK|H5#!Xd;NVmLwDIbR#-X- zbGBYJwnIVxZj(y|_O?A=hiK!TT|I5wGi_7s%FJ<_wOhS(?f!kOXRHXh1uHXMm)l;E zi7K~G%eLp_Kn8UBeO((S?{{eKEn5+C8G`$%_Ug@GEL+^*)0 z(=yu^WN*#H#um&+w~4Z`0?&&sTyUPT*rwlf1Lqjq(Gva>KQ6YnN$zCC)P$}cv8|GJ zK4SMvjCU#Slh_XtQxnA75ZfYYce%JO#FSrp9x*l4`~xvHX?)*JI~?T{E*~*PkBfO# zV!oTpNu*ljV?pmX=}``k2KW%5S+Y1*QypjS$SDZ2d;{I$W+}(9^G_1<#(GPJ|ItMw zlamTZj4Ds+UTrAL&c6u1Q@!qGJW%F#DZ>{f^{zwpSTh9#vZB#A23Thm#3oep3dYpD zf;Ct33dVX{902Z>G6fqD53R6t68q(B+o7O;oj$aO zmO1V<^vgW~{n9CD_RBKqms6!*)};2!Nh?AwLvTMOv0q-8iB(U?sAHZ90aeFbj+pA0&4{Uv`8C8;$GinG)scRKnCh6kt)p`wg)g#u;F8VB>pQMZaS<11CJ}0rn{y4IrpeXqY z%GlAPModrYq7;T*lryp~dtG!$@H8>)M91l@8&f+gn^kpI##Cpe463s-raJ2rlE%); znCh&orP*1T)6<%P>k!#Bv+aib+&Oa#-`!AQc~>La+cMkRvfJBo)Fp{Ht`9u3{=<*l zF|i_Z+}8LI3_h4}4&sD!Ai8Jez6a)DC~`)vsC_@ikaIBQMqZvbntADVMb7&7k6)9C zfw#YxZ|`u%QyHxuy9csZ370x5IAlc^Zp{o^_WgkPzRk=T61lsU%T z*w@|I^@#mVa6dszmF2ZlTsLZ5+1RwE(VCpp-aC-TMaKg;26+p=6TJ3z9}+DtcB6a? z1Ksk`-rDX+?Uq5u%85qvXU6bWoW|L8;+!K$WIfbuh%wcUgad7^-G?aIF%(!RawSVH64bm z3Fk}7|W)3W1R(>`vJYedaJ7cDu z1v9SB!Jlk9YX;+a3peMOQ|L{+r-JKoNdn~~jlvAVvBA^6@vY@{@TE-siD&U4W>RE2%G&w~~S}B}H;yX3haya#(Up@=h4;jwVTE zwxqhsPLy?O`o6BDO52QvY#*x`Sxuz?#{8R+Iii3ZWy*P`Dd*6{Va_vY&qWJ2=Q{Sx z+kUwDm!yDGkVaEJ3CCBwW;L#$`8BI+%Cqng9bVrMt4pg4!)XWH@}Z7s*omgjd7qD| zQxc^k#*~gI2ScVdb>?(WN8=40@ir(v1CvHaS9>}t?2eIiPeF#YaLU0>Pq}l{K&M{s z^08DzL6nLZ^H&jbdRpuMkzM#WF3QZsO{<9gjQxn+8nMgr!w>g=w0&yCez3hJf86#p z$F%gcYa-+R+G@_x9<5dE2o-Vv}&r!mNYZug3Wh>mr={T36wmYu$o#9=62eB`DS}aX!xa9nOQS z%{Y&;w&Q$+^$5;KT94tJZ|%bQB^AL+mx>K!>a6Zk-h2I};9fNa$bu!K) ztZ_IOSu=4SWvxjv^m$0-tcSS|va%`|@2xz@yTZlAYLdzU!MHn2)5g5c=>2_-UJ%AW z$N&GqbshGKFrI02Mm=g***Rm%&M5`{;OHguZ|2CTXJ^q&=R`Ut?;rdi-Q>`&_6)l+ zC){OBWSw^7P7Kv4p#+0y5rKDy!F$Yg0;Bxd^bCqTAmj3(p8(ses z?s_FG4(SLkbY@n;R`Q0v7=CKpi@4O4*ZQ~ULVL@C^SHHX(~Y7G&TvDPnj)Qucn^8D zD+?WvAB*Ecx0f{z=ib)(q%JoBsVvRhM?6(6@Wz&d?s6Q!r{P6!_00`2d5d6cK=->0 z{JnXmGYBQkGbylAEn`Zx6oLWjmmc^3$a@d?D5~#`dp1ii5)~8?WWgwi0tunovVb&2 zM4G5*2oNO@iWC(^i6ST>ioGj}4Hd+W^#?W(L{SkNDk_SIy`b25pXc5)Gk0g_&IX9S z|Ihp0e9r7-?sv|)=k_}@JIfgPqKD4eQxmiM)SAPv)`)#D*mR1aLuISNd5=QwO@IHzM<%Q-JlETeFgni#vrFP0N3 zuvq#Qjp&WHqo@)I6i9vP582z*E_ES38ndVLiwVS38(%b{JKldf$*uLw09`cP(?vr^ z7_#Jxb&RoH0S-Pf*qwc{qwiiW*Z-hZn9mQ^3VVJq8<6q*VEw4)2OFk8Kj>OYdyLTN zggBh8gD2rvP}!~NCkmTm?;XYQ>7cjNUOVi)q4xS>uLb(+y6C{%y&JIinu_HUFR!Y- z`?065b3TLraU}y1c;2wuW=1UGM(r`@O0Wq&Z}`4a$c{qas^AIb4ULgh{a}>dV*}ND zoH^^gZ0volY_K8fWA(i~-cSBb#U`+~2XawAL)b#?;n2SlmMM$Ok#5QZrkmHqs;H}6 zy_9XHdyv{=x?}1LrhB+L#&q)wgjJjbwuNdh2isD$$3o`Hwu*BI_P9FK?VQV`DwylI z`Op!2TozPu4#(bpDg{aGaUNVn^$FvZwVpVpbFR0y$Eu=_VW-?dpFz*{-v8ASdtT*$ zt%P*iSwg%NSOs<3ETP@hxhx^gC9ubfL%L@1s!K&ZhY7{y4*zz}ySEtK1Z8^K=@pd^ zY^N`)J=X0H)L!t8M!SxII~r|r+qDTi0L4Qc{t66Pk3l8XPKP|qTCc;pog1=t;Y%Gm zGGWI#``=aIpc7NEsZY!5V{Ca7R2Rv)!_Gb}%K;icxwaFJeDc)^ z`f+nTxd^Wz3BFz=pezhQ)2%W1lqWU(|D!cFP?hKZt=7m%^3Ju!Mk?K`{<<~p z=#*h^bv~yIdwH7nQ+s{|=5tDIayxa%OFNXCA3W5dQ*Q7sqS=s+@EekG7tzv?aP`IO zCeqqdrw+zrQ@V+D>d=9&RIl6gq zPd6_Xm2O_#tD(MMUtb-&9+}9!8qPh~+eaPaqKkSTP8C`w@mKomdR4qEt7jSoGXxRx$4-}vRA{o6MK2;7~3fK z!doUa{3myo&t#!OSjyHRqc_ z1JgnCuGM4y!uKqHI{2TgNX>g&#>#Z(?`^RR^rDP=x-|svZ80Y5-d1+#y)9m8%XDum z_|AkTID_lJ{UDF~xqRV&p39+kz>EyH-T|Z6IzPFm^OIgNxOc!9llcx9uS)9R-T@1~ zRm8p7#Lp-E+$z^wMbhtpdHwv3{j633Zz?kGlNovBuKVeT&JynFEOC?Wy2zMazfZLnf3zTz3)OFHV~yWG6u?kxK%OJ38F<$X=ie@#b2d{I0b zujv4zUehsyryQ?T$?H7$a3fyRA>Soj-aSFWeNji?JsrjkHte$eufryMaX>x#9@~M~ z({JtQiamWlZM3&H2Yc5lEnI}@>uHx#wR0vUa2GB5tsPHcLRwedeYjC6+_}4GG+o{> zN7>-{vtwMfXK^l7rc^}m!Frm>dDW`zdz71+yRw) zLs%EOF5dH*xqym3Gd2Z1-~R$98Y$L2PrJr?5RxJ;2w@S&9AT&Rf{FaNfhVrLzUw zR?b#zbDb=dYM!$fwry3P+Rm92XfgSSV@lcMcK2IMpNeWR{_}Z8-FK%n{?obTeLjy_ ztA|JK=}Jr&aP=CZpU-2AxrS+2uIKaE=Vn^NObcXQ6Py9#Y7NuF&%6^WD)T~@CPqG5 zmnL*ZXA}2yHZidb?$U%YdTD~k@*292<#CwN!F^0|a=_`@63@?`zSGB5l+(rv!*JDI zVK9B#Gwx~6+!RT|9L88y7+K4{$SUWPcpL(EWQ9={$R~4!akQULCskBFg)bb8EOT4g zt^1baF+6&!^Obu#UxNz=#-uJB8vX~5;eDXWVdoYO=LE`R6iU=xI2_}biSbk9yE4Kb zdT4MxV3fvAt_SG7E*I|Ua-kOt?s|YR6_Sj=0o$+SLb22MYN*AjdB89c55^)q0;`AUXYl;h!#1UG=T;B@_H#va?cWGrE1x-a3|q-mL4d^-jCowp#-|6~CmxmCQwu<*eR1tl5dtV;8RWmAg0GX&YP>y$t_$WmUvp zL$8Xsr&mQR7`-auo?aEP*z~H1dwNyG)~{DZ+|&Il^B%PZ{i|LTF(z$Ql#o?Xf~%sO zjH{ym{O->Vtcw2iyFY4G#7^P=>Z<6bKIgQnNC`d@UsX_^ zWxSZhcqTsG+d~gMKm8ylu^}&M;S1umKit#)xHjEXGN!77cQRGNoxA&D`c7Kf+e>Q# z*Z%Qt`t`_zy3U|LIVTXq*1~Je_58=Xa{Y4l-%gvUz^eNXRz?-rah`+R(+)Bj3^93e z0%OWokuL*jR^&$m4w@DDIlnuY<2z_yuB2DwonEnIe&?%k7dR^SmZH|`>cPG6>du&` z>K^rT6zlywGJc3-C;djf-^nxCIMyL4vchvG5d1cy_MUs;je{}et2;LZ>dvJRb*Hc2 z363aF-N}4wFLRYJE(AtZiObY#GzZOxd*M}rG3CpYI|7*!eCxm2px*W?OS#_qAIOxQ ztQ&lyC{tf#jJHu)x7o`&?uBO^V`NH{zjSt=y0Zt>U-oGnFDdy$e+PV3KfWCGel_Is z4Y7l2sc5i&^b^7d@R|_aTjM+9#{0GA&TWd~(_M5|Z?8A@bO-)$pk@w047=_A5aZnj zv&&O6(|fh_u?abR{*LsEAsX0%jUn7^!JK&L7R)`JkM(Mm8 z8ptQJvfk(qZ+KVTl<||s@x9FHDbHNFj8QwPa`A;H+Ewm_S1!gFm8<^jK@B4+SFPED zvMauF{T;|OvvL`a4ZiDV+KyC>U1;PxR0Vh14lAlL__`I96AN8>+zYR$j45A5)nCK+ zD{Am}qs@xC!S7X#-;Lf$|1#HRW0;Mq&Chug5AKE6X2uw`S$CCL(Oo5?E3~T&{*J9# zn~giq<@z1lz<8D3S48)dnNMfkGe&v0?r~zG>mK*Q>mFl_yw*L3HLrEgQPFw*TSU)c zT!VVEJUvGsvv#t&b8ZmPZB&#ImYXrfaLbKzCtYsb3okdu;QQFeSDW3d68dt!_{XUK zubWeaN`w76*O7Mh& z=h`IqYT(iz9$LktekEtkOR@yp4nK6r#7V{D#}th%DKhsa3?DLF&3fDA4Vi%7ohh1F zJmk#b?Q>g=A2ICbpMGq0T1ja!&gVs=f41YDQ}M3lP*j39K8(bhy;=<)KOQF{B!`b1 zGrm>HhynZO;p>dNztd{OgyP|o&ZKf&-@%bs7w)EnRwIgsO+Gz`%NgZSJoauv-%jNNSa%-b|2j8l zhd~%4$ExtCmt&9ry=1MdWw~qJ>)F?VS1_<&r|BMo@IEd zawK*gXxGy!X`Zs-rg|!j;VB1yNyJPg%UnI4Qirfe0T|53p#Q|i&4 z^75%4OivZ#c}iW@vkXt!5yxXUVe6)=dYY$fhpC2F@4+Ya6@@+qCR46PgDlHu|xm5p`kd*M3Py8chZqSy_4c<=kgP9wO@p6OqtY;ay z!D&l8b~UzcZq!Q44Zh(qH8+GYa-)vNu%9`(dEz5q<7who9hDnBKvLsNs=vXGV|q$G z+EYG;?FZ9S#dw}lm-Q^eQ}$P>p4Lh8l>JPqr@|PXvgP?T{M2fn-|c()jCi_-@|24o zwyT@Dqk`!v^=MCN)eokpit#+9F6&u_r))9t*b~^gWx7Y2r*##>Jdq?rGy4j&pXVhT z-_z7ytF5T6r#vkJ$+NF@JF}EBr5^1mQ||}UQ^k0mQkV5C!_&RM#beK6>v~!*%~L*- zm0G647-h<*!F*3sd#y)Bb$#XOSdi>#t{sGp3TBy7kM`8wYbnO_l)9{E8J@D;$74&e zbv>=0=BfJPf*NJqG8M+~l(!UZy;ge;i3s~DPtV03dy$X$y$2OcPpL?v$rPxnpplsC*$%TyS{Q;wv5nWpwg`kMp%7C-{Ci%USV7x`c?HY%8& zQjhl3-Xkf-^OU-*XBnPyS()nTercX26l1niVGK{3cnn+fqup=lHdl_Jr&0AG{4XsYiQi?~xSac}iW@vkXt0gNw(m$JQ;=W@(-t zq!`mvVGK`Ocnm!~GtY)ZQa0#`BcAtY;aX za;BQP3TTn$=^=_SJr&0Aw57+;({2|Z2Zvlwr;Dd8m8Y+QtO{v$3N|X3o>GtY)ZQa0 z#`BcAtY;aXwgQ*xY0ETETPw!&R2ak4T#uorx4k=NgzxD(@ibR?x(*~$mvt&ODwv*9 zkM`8wBPk}uQ|noVr+LsEk3EX5TLQUhp0-g;HnuScgD{4t`8ev2GO0aMA2ua~eC6rq z*rV&)LOrD(?Ww&-QjF&*by?3cJZ%dub(G0Z^R%5}OizU|JmvW9dz#uKy(XTvSDyX= zk_WaHVxxjtrqrW7-BV(PF;?q}@jRt2>sf}U9l*t7&tdD9Y5O!!J1WNXR2ak4P9DRO zAJypX1AUEsSXmJ|DNp~#UTw&4L$Oi8^ptwEr}iF6F`lQ?Wj)LA^iXiAGyG0zo*t$c z(^Fv#PY?GPdb++}=@GuCuZpLKD^F|0bUXdA2&brEdP+UoQ+to37|&BGx1MEqiUb8b zJv`0RBNbzMDvaT2fnw%iTOGCIz2+~@(4M;2tUANLow#P@U3r6I=O|tvK`2l;)*c#f z$A9k(R|jQtxiAhHb?hnQNJ)&hq}|%=@mXnJHKXhAFpz;~Nf!-0nwXS~uf(+j2td6j)IZhH%#c4GGzdBdM{~f0@ zBp%~}m+LnjTz{5HddTQwRcp8my)gB3K}0-u6t;fP@9L>5XOYpzI;H4QDQwqP{q{r> zjP9IHOkrA`%`|K0yMl?w)Ci8f`s-irA-)fQ@9pyOb#KQ}jFY2|urG3taIe(U%=DP; zg0)V!3$|=OxGP_#UNK&~V2$z5;!45~=5<=;Ogwfl%G9kII?d*l$!>}<+l4SjyXdZ% z4cOu?hVx#%IkR-0y6xgjB(ePMLS5r7Eg9BoBoun#9Lb;V4oW$89@6{);?6Dc0PM{3 z@(>KJuX+{A>4DgIjB8|^=&U_?_WL@8_{Vu#&LV@ej56(sBk@>6bsWDjdB+xHn64|1 zvqsJ$lWMD%I;#n`w3YvOr=k8?m3dJRflR8cqjAKy_1C&KU;Ag}$XR5x{ZcuC0|D#D zC_NZ#l=UI)Mo)3i!R%hnB9m&pw>r!9G}ZciIg3o{S;wlgSU2L3pB`IrkZq zf)qWfb+_03k7jVBQ(oIns#dW+t3IkzUb{Twh}pLsr>wKx_-S_cUKd+rQgf`YI*U2x zvi{!pauyjKySvfg^^x&uN1jVNl5I42eb&J#N6dC{yh=|3TZVm)to)K|+i}X|EHYW_ zv5`L=)wM&NV`fX~2PU=mld>4VvpT5WPciKMkgK^gr+$lpH3zqEy%Z*xW5#_MmWA&9 z4rO!lg4_G?pkln;f(kFah%9GEsE zIzch4t8T^%WBAUCUGZ1~Tk5Gdt;#~*_rY~=2w^aNS9{ash@*~}BhiV7kH;{b5|U?C z#(!p6oTL~tJ;E62;pK~Xj4g=us&4;_u}*S5yiBa0?4{?Sl=R>P=S|~CN$hqw?w-w9 zq{o=048i~LSa=Wcv*;m%GBtAk6m`}JbsQUnlhZuq;x4t;31fI#sF(z{={aAAnS@Z7 zmd`_RG#)F%*7d6}&3chy%zPHcus%#NI-g^Ke9jZ=!)QJB81j(g*2eMJs9@G`>d`fP zti%dqtm72p)o|*vo@M0oaB%S$>r9qbiL-(=ilva6&%zj<7AvLU}cJ9=%E6rz7_-!@mx2oL`Ub3^nD;8|@{ZYT!1!6Ui^^${~S*s;fBw|7F_x_B>6vMs@)|;FyAa0kl$BgF z^mNV7Jv;jvKN3%;C{MFt2wk;PcPch2n4VIP_B6{)kYKm3H6i*wWrnG1o70AIizAd zPpQj#mf`7n;Nmg%?XKdfX`Y_17_;^YV|Y5vV_2rCo+ic9Y0A?U;%PBWt6-KX^=MCP zx(U*ZQKpJX@zi>j;b|H4#AEE+UB%PVJiS0Mrl-Ofo?fV!Tx{v-Bh9~h&ewR3czU7o zv;z!rY;MmCRKfI=dbFo?+yrUH@KiCLr_^OV%kXqMxOi+Hwyxp}(>%RMF{Y=&7@p2h zOafba`qUE_;v`q&6XNL%<>^s4ybq`rEC>}$PpLsf}UGr`4U z97kNmGtxZ0STUxj!Wf=jq8PVKA9$_CFkj=B;^`&I)8k=?<=~WY!(e(!J=)WK+yrUH z@KiCLr_^OV%kXp-xOnVVY+c2dqE+7P(c6MBZ8p8)(SvtJQ0(?@Vd*${^{8Robx9QIkQ|~>JV^^vin+lEm^?|c5VjP2+ zV@!|EvE5aiyK(DA0~}C{mt)lBpVi$xL4BGt^Q&+q9(x{JH^;6_%dx8!W9FDJMvh&h z7+p82INjgbZ;P+-H}Uiu<>@RKY63c!U5yH+r_`f8?Ip3oNPFiftQgNz>hjO(lX{j> zH?BoYJa!+puBX?ed3v2G2XPjFf3L{HqwxQ|j{1!jjhrrl&XK zc8WnC`gF^bvt`A2o>G^87XR~u>FI4a9FHx-)~#!|rg?h1VoXnkF+828n5Ed(f~H&k z9<{fxaiDlQPkH(w3_S*}8;1`sEEmQhqmDL!1|1SkNsM2VbW`XacbqW>qhmicj+Dff zrk!Qp(YOPO{QIYG?SFddJmovDUEs%C)l~>G`f3J#yHy$1N6agecPc&2v1K{v;HGsT zZ-OC^!HV9vo;e>!YXs9I@S*eNoOLlX})Y>a1{E z2Q)w=0vX<|K#q0PcW)(sjQe``f=RtwA^D7JJMB8^d$o#DS9{uZY)8e8K4P}_c{r+D zL2UwFa9aWMd>+LA&Is$7IugTCS@-6l1mmVT@LA zzhV;Davpy3=JPS(Wvblqy&F2;@{jM~cV>^3oWI{m;Cj?IP|wP8BL`d+%p7BSbdK@6 zPkwN7j0Y9t^&8Y>JN+GDY0I5-TlSCO*F=?erbjdQ zF;U})c?ItwWvd&u425TG`q0mXCne2fbi2UsrK-Dl+Ln10bTOFJb|Gm-yXeqC-^Ejm zY8M@FkCj0mF-w_g)}=hzTFQ#?N}2g+J7<3BFcJT;~rk1iWMkzn4 zm<`ybm+}_Lu}4)YHI5V z_=(H3BYCR4^jT(kJ+7=D!Yzc)oQQRlSEmlS>aMF|RC#skkPiyKx&^^CeB&M~t?Tk) zkK+fkRVpT>ysT##<@E%V;hTWiy5*%)XqMNLipj>-H7<-%UP~0S0o(NQ%Gno(5tgX( zI#kN*I!>8XFw5&H97!#&C2o1~*A!KGk&&{%Sis;N;V&Pm(qVcOgCiY`BWA078caM^ zKm`Z|A773u9B$uqqNJIOYL)zXM^(z&mRZWrfJtqYlI8(zaF!me6vI-+k@hs_=p$w+ zGtIh`r@9%fNVAj`lTymovy4)H7JA~bx3P6gS*Oq}<>wS*ma;HLDL=26p(=F^oR;4d zV}WaqR`;PRE&pg0z8ak)Isd$>Eytj?a0S_lQ%V)g9AkQPj_oe7!pMA{9fe}N9HTD( zEHzAfXG(7L=K(l|9NUPkTO*!N8?BZq#>_Ecj2v607~QK>ajLeciAjp9u}VWkA}mv$ z4u+>q@L#Pv)In@aPpL6Eu$JR~PvNTU$ zRE+7VFovfuDJFp}^aWO>?@_DK9UZ9Z8B(^Klv zp4wNVit#+9F8{2Psn82%?OlPR@!03sx@EdN&C^#EV|pr#;ps}njK`KMm1-rE(RH~R zFK(m`+SWTOUpJlzOzMr@GPV(=F2)_)jsOr_|-2#sB{)T2GMk3@>`Jf$xGEc-~bR;7@$ z1vg!9r`7Ox6k~cSjN$1z#pGhkdNgKP3Dmh7&lXSDDNi4Vr%gbuS*T!a%rd1O?Wuhv zQjF&*b@^xYah0l1vrIV)jmOx5xanG#=IMKiF+CN=@brC;fj;Nr#f#9@xf<7sr|&CI zUx25qneQ&bMg`MT>d~H#kyv45c7c-}#dw}lmw%RhB>DhcJa#FzZo1x2^YlZ-n4St_ zc)DIONo?5;>K|~yiN3}r2_AKv^~%#Xkk}*f-=`0$gV>m!Qjhl3J`yR$^OU;$v+N_$ zN8sWyJ&VRJ!um8%KgQA2^`J0@r=KWhJQZLhYW4h#F21MdCDdW(6Xof8c*^mj1T>riY>2; zUb5hvR=%fiCU6+xGv(=@@bn4%_v)kSplrG{asNw5?RwleQWE34Hr-mMNpmFn9Ebdo zh*vm2Q(kZ+!VjdVk%){QiSYXVcic#ZNyY_8BIgUPJwhNYpt}SfYesF6G z^HDKgZDD!%XW7Ru&RFogP0Sy^bPCP!>np{WwM7`Cwrp06JAReU=!EGZQ^nAFfBm^x z)s||N^!Szcls=l;E~rO)Y9GH8<9W*Q%RkFLetiwi@z|%>y6M`S)-G_14vgukFovh! zC?*$M*1pu0)V<>AH_Fp`@U#i2S{yW0Fw2yBw5Po!Rv6>Ho?<*tsmnjhK7M@*E*|5I z)b;e6G*7=%jOnQ`hNs_q4D>liE?Ee5uEv9N5Q*@;^0X;DWzFpLtU8E|=_&PSPsg~? z>eH>gY#WO4Jf$xGtZ}Jl8EeKL5EG9r#@0>O_i3K~s2I~zVGK`yQcM!t^zmz+c>0s_ zv^6~Cm{Y>b6e^gWQjhl3K7J|2^OU;$v+U#7&*0**4cNM#{*>nFFN!fe6~^%NSH+CS zHhm?PbAUSR{Hi=X9G-HN+53O`Xlj{KkM`6)eksQDl)C)0?Bmx~aH&^3eogcAH^rEq z3S)TsyJ8a9GRIQCaWGFj{hgksJf*x%oyFeM&FA0KtpA}H)4DK*^*>XXo2M?g)7SWo zSpQR52k7j1Ah!%m4?|nyNJ)(E$amADqEqh2{e?re?-vXdJ!Dcn{ac+?s*YoW@MoH* z|KMn9e<+OM>2}2=uw@Dt)@t*EpVskWeS2Cyb14*$O_Q_m;cQQ{9#f2&&%zkivlNpM zJ*lO9rC863B?7+3)miK1EPP;HRT*1z)T@+cT^Pf9^;)VGQfLDP}12aP&CxvUBJA8u#FI4`H`h(Dyp(tXB}{THh_r zdUl$1VGQfLD<&a&Qgi+!vA%nn^*z*CvkdFIr&-@K&AKp#^}31~3O)3F@jgH0`~J)j z>vdy6-|MNfmy}mkYk(`AO{B&Nh#qE=3 zT^Pf91H}x*`SktSL9>tc{pooS4k0v%1%2oD+*6>s12&xog2zNrpkV|q$GnLJfY zil^4I3{P`Z3fID(>*@Y!o*t0qX$sSyDLzm!T?{=v&GA$*%@i}xV2(~>nk%NY!SqdI z4pIzr)lKuUX-o^n6dFu#li||Z;rj&Qv7X#b374W|3XUo{y?ElJ{w3!WCkt|dKSGc! zJZ4b(8`_Px{u;XjyL9U{_#~&`IK0VtOi`(NF?PkPJqllw>RgJKZI3A)JE?+F+@p9> zmy$_c$4wqPsb|S9>g?5}Tj4Rt2D}S&a%t(rkrSK(Lw)aY6{J3Mu@&T4U-zCYcbV>d z@&3!^%To>htt1%bX{|05ZQHF@<*H2on(^qq;@{~ic3Nx3Dzf96GnRb$RiZ%IO=K?5 z9aovDlq$M<>`2Fd%%FeSdO1q{-%3F_YDYzz-ho>5Z<#L0-L+{0U&r68R}xL3ps+{e zTw`G8Zhbos7PMP=(E$@CkHznA6pt8GJfY;YDalOd753?ii44+HSU7$%-m;HZdaI=E znwP0*uRvWLc1>6NE=hRTCV66KKWjTgW|2N4w{z*~<0jx2O~x2g1QumsAC+~5UC%zd z`-Gw~#XXD0jwmgjfZWtSa#2`XGI5eqz+b>DPP)H?Y3M*_(zo-Vyf#U8j<#RMV1cCn zkOpk*_)lzjs=|IGBiS)UXE=gXhDD_Q%mmGJm^5X4abd~W)5ax}Iv2GQ)?ca!n2+F) z25W2}AfyxQvE#>0+%@HGdUbKrS~#F&#FSmr*12=H z!P0DXNdN}5?XRO#aMsA8NlE{R`};!4 zB)gU_M;Xp^O%~)K4Sl#!n>1n9-0Ip{=}xvis!RFXPd@tH!RUC^=$B`$ywY0OEJOWD z85c7W9l{9dk231d3p?3MU&fBmtF_&BwF$7&>QS0?ws1`Gm@(t3j2>QE#c*X zU1-6yU{sdD6N<*_{sv{{ACDNK%GV`31>R8F2jgYZ`!97+#7{5nk~e;e3%iaRUjaRa zpZNuagG-B3@s~Ups5B#w2GxxXsvjvZVKg2uc{S0~Y$ z-6W;g!CltvS5mjy?XpUCG6k$m$4)MtRDvN;T~X!CVOR3uSXDHI$EXtSTQs6~(Zoqg z@hNQB+C@RMZ>JF1$ zHgxNrJf>Io-r;5n@(bEc8p$QZxM8D;Q6JDPPZ>KLi-obg)0NSZ9xa$QT-ED?A4%*r zsC*~sxra{SQGJuWyY%c4eqve*BZs+)Zae7ec6d1a7t&DPVe?-wy<@{`MJHfKhvAC0 zpJBKz|4oO$D4aGmDZi%R=vz^$!bYR=r%H8g_NG~WMLXQ$c1U%(8qyAF+=2E{e!aTd zmv8b}eytfRb49nF%$2^PEtaEk{HrFz8&O4@%skTx=@cqH5w@97R5wu3so06`;$KKY zIlGmA!SW7uKNW3%$GWMCwr+H1g_b2_NDcL8*phF1Y zUSJN1O6l7y4p(#@n>O<*M7fcHAq&s)4`yb{LW}=jc!a_zU1UaDAG;$D0s7S_Q+4xh zI9p6sNU5Z@1-FJ*h-$N-!d%#)BG)MkS5qOW4a*3a>t8%vU;RTF;|jfdcl89^+3#9f zTr_s_csv4XoNMfQw_Qy&RxQy=TIaXRO&B3Bw`1Ej?K-w^)6O`E-Mrk~_U+pz67AaN zx5>q4A~Cc^@7PUMI!~FGtbbNz=lDkY0oPU|@Z`oM+z*n#=XG=VH4Zb>$acSnqMq7i z)E>v+S0KQh-Cwi(VoTD=?qYt^m0S+wmjS8zl1^^YeA^H?67>hBaZ6hbn>dm2ZaCK6 zF+R(j+@-C$_8X8hxGNteR-qQQ`#|3TqLa_&!|qb`jb4qYEuYrz3Z}nsS@=JZ-FIlv zkG42|I+&Y<~06sny)R&V7Dun{=!AsJq64dL!Zs=1z;XFI9vI?4CWo-qU?SG=6ge* z&2Id}n3E65 z#(VH!%KE-@(FcQJ>XA_1z4v z$%vTqEQG=HBcN|F8ul7t%0`l{8LE%zdjat$ltk-W3T`x*gGa@j0!S8qbt$ZT@ijB2 z1o72IN9&u5^fd(Y;Mkb67E%ds{j%w+F%I<^!eH|^yAJBJFssjx_P5Tom~$5-N?$Ib zmk9G!nO)xkC~0v)%y}CUrEe%YyiLONxFlNNEX22&6|Ju?jCB|0I`z3)Q_Qy4zyTwYNv>WB<|wPQN)n=G=QX=EqKx(DbpsjJYS~ z>~pWy=jC6>I;AC;BZMOz=0_68dkAx}`m7OZm*eV-h(F}M%yyGt`U+>WI~4j(0`oNF zB}mND|6K>}JH%hKAYeDp-V)$$5N3(`l=)hq{&AtX9`Ski2lR#HUpFuVg|qqb0}7xJ z%yA2`W>^$+n&CH1!s_X5uzSWsF{jSrfZc!}x#0E((;spQB!=(0hUps$?p(xw2w{k- z2j7F)E}YE|_E*&(*1AqqpEW}5vL0NE_UBpzlk>7e5xQuME*sz-)UQYosSI@37QUrmy;wxPAa( z@X{Ajubu?6TsYEU?J^tv!JA+{eLCj+{cOx>Z|Uz>;`|Gqi#f+UpV@99m~q0{>~aA! z1dJThQAPV`n;Ig?l3SDgtOUALf=$jo>iYUL+zdp?jOV#zm(bT z6fm=dv)Ro?#MNNtzZ`RxLE>1^g|)XkV7KKfG3Rv%gIB(R`p16!GcZ@JMBfIfWYKpk zbR4)U=DY}r(zg`)-UW008(7;yDmg7f(?>s6ufaUx&49j;`u8K4*jt+8Hmv^5!||G6 z9)LU!iCO039M6A5{P}NZwtE$rJB72^ErY%X!5p$S<|H9msDWYSaRs;$i2oVF;FU*+ zzg6EsyM-`B*=+*m4#*}*Rn!D!m*pE+?{7nV&2?HIibr$CubR+KHsl~MorLq&$sz0g zA}}+A(|)9{_s@mC8^P3lSKIaGi6Q>>1v6AQo4-uoC@|+hE`sncET4yfyA<(XLKvd* z`42EP-qW1TZUQ>$f@v!p^@Z6zAIE!wdBxyVJq_{q12A6;XS4eQ^!);6%5S9`Xu6Cg)l_rxYrTi z`cpG~;rAE1g6S`u%`V&TDZ-3VpOSyNeR%hK_#VI+h~FTr&X;hzzksRqnNFY0?s(|i z4b1tF*CEv`?TELjHX#0Q2!nS$G0=_xrvzd>oj=H)^h$;==v7 z49qRUMfq_Ln7zKhS`QNC$JvO#7Qzta$8%sd3m4@_)h}_42Eq{KN6seHX9z=-A4h^& z1o;ONsyQ=-^K9O`bsjsrQQ#y z4;_~y{vL?0Fa3T%LqskH^O|sezm}@63AhblV&7-hR})M#;cWVN-}EprKYs`CG(5cr}HnoKdlQUM>w0^zR=eS%=yBxe8cQc z!SP$b)cZBF-Gjh%63%9~3=v(yytq~CtLNGc)T=#l{Mz4Q&V3LDFMWafl7qNczcimv0rSxBT3^&WVhfl*g(DqSZY=l8+mJ7i#t_?ld;quu5I+UN5LIq-z}zaF z&29oZ?gg{l&=*#2W#B#pbMhaV?T!O8O*orf)|Xje-iQ1KvE64n3Eba^KjF{Jc1MFb zS2&wp)|VMzD*vtZ)rEfLZ%BPv4Q7LIQT62?Firn4)0e(}y9##NgIOV5RDG$m9qT*@ z1Gi!IWiF2I2WAnZ8frmx_c~#~58j_X5b+&VO^L4egTS04oUPu^gTBkbw2F~1?pK7Y z%SM4YM>v}wN$9u;%uA3OS-kq^j+d#==X3?v6!FCnhNyZ!1pOMmwV zlP?@;o4-B4oMmt}e`kZaSvZ^BB<$P`<_pNdm81Rbiuf52hA4k;1hYUmn_c?*D3})w zeKvpJ1yi+3X1n`>IaoNG-308m12Yg(2(ewiKLOl%h+hj~i1POEmk$h9s+Q%HKp3Lzo(E=*a5lSaAJ+@BTz!ULuNww#3*wKhp4n~@m@|a4 z*&T|AbHRLABg=``q`%ce{hb86oe;ke!Vu-}GB9rnXR}LxKNO~BEouw*cQ|5NBmOGI zMBBXw%oD=d?9$(*U=q7!IsG7&-Tpo>FPRLx;}QP_gdxh`ZD6X`(VWe05<2z-(;spQ z#8#ir0Cz6pzkx7B*>$qBoNNe#&F);pH2`xzq|)xu<6Be2w}mi7jnnA=TV+3mK=+Li{WULzEx)f>|Y;&5wo9 z@d=pA>Sp$11(^4Qv-y#PzR!edT8}!z$LXPnITZ0XDJHreECTbqa5lR?K;H^5OZLig z8t#obf@?P<|JowHJA@%B|3-khL^xai&4Z3xz#LvbbN-zT<`Us-ek_K*tH5;GCkyXc z$2^5bGK9rw%Z$1PwU6wc;H0=AwI zW}W(!@(A>&9H+lRd_iMvms{I>s6UwD!rAO{{1^k~R>;E;&WOUsY1;h|@of^B?REz< zNVq7wL&402+y$}O<#U^_BR;1|X1g81^c2o!H-U(LU?w!pa`xCC{l2CBc7fd%h%bdO zREMa13As-53Ygc0BdzOw>UA1^kKi+5u&aW)P7|W>O6#@6(pIR zOa`Cd<@)^c1GAjZAPo9?V){6fk9=v<4C|TZn&UdnREw9Za=W znzPx>hQ2+(G&ML|`#1zlTj6v*r`JFJ)>2O}_oQ&))&QD+k|7iS6pEJLVbJZWBv?b;CODUrze9ME?kt|v%p*&l$ zFxXW=_4ffkc)#%(aGQkn{0OvP-WRIe7V}OB1IH6vx#hOYa*_}RTe&3=cQlw$!jZPs zm-E5I+iQK?+U)KPrkQXyyM1wf9+(S+v-MYOAGd>vcPNKlFwKOs*-g+cnBxt7VgB+t zykamL4bJB8?_jER)akR?Eknc}V6N(0!faHZxP}|@ zy%=7%{Q>dCJu~O?6fm=di?VyQF!R-Cc=-;2-35rR+$*!)eZU+fT$J5>FkKBU%-?>n zdn}mSg`;)bxc?}a7Y%)iV|~FnZs54T8qBfBWI2-|m7Lu}^Z6Q_@FC*I_0H_?bTC&7 zXY)6Kh+DxtcWjo^t524*o4f7~)aM4UI}PzSLKwXI9GGu#e!2|Ix5C-#>4V^E9+%}j z31NtOZmDWt^nVZrn;&I}YXasD$d8a}NTDjXfFHb0QT_NVXI}_|H*X4DFJXE*f$1z9 zX*F*OaF5~mKrq$&X?-mfmwsJ^^RQL@Fhm{X{u0h+m;FYSL0QgT5C(E#cKLin0?awWk+#{r z9L#NozOZ&gyY~sRM16+$8<&E69`QX-(CLe^I|NLra8drADa=gu8E%))Azz00eFkT? z+Y-zX!bREbAmatL&ehFr)a8Y)h6SWW7>NDIf+xcFIe?izNyX(Mw zDO{A@AB1sEqPB3mk0YiE;-68B+up+03vYn=L^zw>GDK_!Q!)f?{gf(zX%+JE<^ridpH@MctSW`M`Xb^jFil5h zIU68*diQZsufsKiz8WPc4+w+S7k(Y?FfbQ`S5Gi~h4cIf*kwMC05d7bh3LBk%-kRs zSO@G5eRm0iT@~O*+H<*_Up)@)Q(KDK+CAHRXAadu`unuF;roXw9LU}q?p--V0vqwN&T zvmp#NKN5)R17@snq{HgpbR54BOyzU5KApbsdaw_egM_o$W&O(sGhH~Zd;|4wD7ZVo z#LmrZw;q@SgtOT#gTB^a9)fI#L_I&$Xe!DV!r-MZr2ZWX<_zIE zeNp9h9+)}8+58xfi0i>rotEXi0jcYbmx2C|?PD9_8P1>#RC(M4=6>O9ek7sqF)+VC_LzbDKJI)nkbk4Vvcsp7I=6T_4b~*oB z0p`7#S}9@M)O?GnOZ z^P>!Lt-(A5`4r+mkC{4O%LTU`@vUc@`qJkm4Z(E+Gf+6vsvZQ|FXv4qV5SJidS&CT z2Xk*wU!Z*N#`({H8G4ycUsS!i1zO zg!A$xF#qGYyhs?O5F6x6==|?RaNi5-v3Ha!Vu+0Corc7XY=DB=r{vR;)cwA3;|Or zoXwA1M4Soco*OZDx{2ejJRcUwXZA05A^tH4gV#Pn#_6}fY!%KnPE%j=oAKNxgu(YW zwVyl)alM66AU0v`m)CtJgIgf1ZQQR3f8PYN{uXUFs=pt3E5;%SgEjvUcOjTZAkRXg zuKT=z`1ZG%{)Ug2M}s*@IGf$RP%{F|WAn0{b$4K1gc1p>e=j3_UmqaY04^Ra<;$$a=0%y!|T`k_V-V15r_(CJI>PX{4E1HnA-pys0b(@kK0 z6VB$xJlKjY#C;|RgUt_K2mTXGy+xX1{ZaKfP!D)L=Lj$*!g>8wpgblbK^KGh;~}jt zYCJ!BG1?`B!R80Yg%M!tKCHQ#_&=;&@_yEZU>*{V`4{HL;W)kpOtVL{KGv(S`g|i2 zbRw9a9@Sjbb*WL0;l2=rA*IS$ z!umn9J!@texQ?G5hba&XM&_26P_On)(t4O|yZfU61SVBvIqM*9tL zJbo^i>B3Q~Dvtp77>-{L=9o9NUDjLme0yMAV7b?RJ9ED9Jq~+->nyA;H~10Imj~_` zFjF&d`+=J&40crrD-YJAyUM|_y)FXxRM2jqK377*Uj(y!t@fGe2&>N@qvQGc9ejWA zea#)ExbSgi%6iNvAq=+qoQt@t!Mq4r4T+j>yp8xCA8CEu+Qyla!HgCz%I;(^cS9b6 zMA>~D@dtgJ+3pcwjukG-?g?NnhFl4WvU@$^Ykrd1ZeuX5g|pe^{InC8UXcC}n_WIH zeE?o(1M&;cRxx5OF1#-9O86K8MtU z<*;#!^T*AI{|mwpHIHcUd6sh|ghA&^`aI%B#PtKSMYyPWM6-=qP6r5s&5s1)Itx>z zKEv;0^F2kUBfioXX8OY0WqmNsg^RM=224LgpB_I_pL?AJyQhKq-r#KQGX5p*A3_*x zc3DpwfoW-QVRlQwbpSJ8I9(p${yqt2xuH*`kMl_;L_z|eZwm9H`V9ZxX9>9KoA5m^ z2t$<2{5S%Id z5yIK*CZKODn9B`)VRkPAcPE%u-)6Sk1x!ETY0N1XqS1k>xHt<6oc`e=7e1 z>(!>PJM&k39}&Xftt$faL|$k3Ko|vLqvn5s`5MOtMgtPg}>)xBd{PsJZIornXYt)o=Me4Y~dO8j9??M>3wT%l~!2Bs(l-yH5 z%efv>+kH=OAfI_%;BCZz0bz(5&*Oh#9SUL4=}RBa&qv&0V4e~#YCQiHOy$3|KARtl z5m5)s|Na5Ho%t93{4V?5(TM*V!l2U^KEC|}W;f-jeO%>r(fVL|#^TPMkm`8DcUU{; z{N<3Wxbre3lil~hY!=Su?+;M&Gnmigap&YpaeTil{CPN*+vA8|4q=EYw=cj{uWY6- zz1(KE#-C^bgV>tZZ$J~;pKJ|m;u7s z>@xpO1=FW`+<6vKGa~=?su6dZLm0SKixsu&Ii-Frq&mgf1|;i zE1b;_=HCo3*VaNALn>R|7tZ|4uN`-8gfK+a`-Nbh6V7J03=zx0^r#be#z87s`m6h4 z>tV#7%ooyUusaUSG~sM^H$cZMFeSUkohu8}WVj$ZU56m`TFf?EZj=^TCX* z8+Q(=7x$mn3+X2ZA$}x;fm>UBnF;28;cWF~9nOCq%r$#yeNpvg4VVqW+5AXC-`8MT z>>YQGgz(ODSbsGZ+z`aCgfK+amyf}GC!EdhTfio2UcYhNISj(!&4&W(0M5_GfSD{@l-*fi zZVYmP`4#7r3x%OwhOqe+uTw7v7f<-<3%efH2pQH6Our_Yi@N{zF_`a!vz1!{c7F#` zzp2(of5YlM=i`TfSz>Uu`PFM+)(dB|+ZX!21k-+hZI|0HyIlVc0P~!1x;(QCj zDxA%386viT8GV4Z8+HHuhy&42LKwXC1?nHix3OTZ63(kHfpy~@;O+s_qnXwh)n82q zbG2|bKN5(z70h$ZUjkhA2O_fZ4mf=C}TYn&!K@Z8s=un9#IMLf7;JvbL)`vgUW7F296irD4DrW87^3_b4dx2rY<|1} z9rM9V=%V#S`LPJh^TOHuSPFeBz+BQb?z{x4f+v2$#;wc29exz%i4cY;yH&cyoxLCo zHoIKUB*5f$k2{Y*qQ2j~1o3Mj3{ma!FEGt}XpY;k`g{kDcL%dcxTtp7p(n;S2!qX! z1mcbda|YyG2!DAgEdK_8yBhJEAPl;E!^izU!PM*(Z8r%W^}q~-OoYVU=cEJU^k{Im zBEH(une8?NbBJ&@e`&Wpm@^@lLii1{Fn@=GTZ;JokI8Je1DGDd+3YgIjt6u6u~-xK z!93qGKWGEHcO(8?2t(BKz>SWJJ4Fx%U7yphgKS6Ktzd5HtGTHDulezDrz3>H=Eq{h zbpi7eWK=(1&k6rt8~eWt5q}MYfm>Vu_XwDE!rA(bOL6|!U?%m~`l8zJVlYdEv-y#L zzLj9UhWrAt-Ip8-?hnL|9H8w+)%&SnE)y=w?sZ_EfGmaB?)R|0eT?`v12fz04rY*W zHoKhP4+XOr@*bp;J0A+Px2fQ^B7VZ4%ywsjxlTBnU5=OYz~r6~cgi5P-#cM_xeD=j zK^VBT)t48*d?}o*zAVD|e}K7fu+|q!F&rQV-NyNK_9 zvbM|X?aGh9x|a7Zp9Hi25Y6#>hw3?$05=53^G=C7b07?Sz9x+0{eX$5#+`d141BIp zjUR#e2K60O7{_;ZHOJ@D!p4~-{QU$><08$~Ra|&~zX{B5!rAhV{YGq9+<6#s&~Ww} z;q#_^aIFzP48p*23#$j5|J?@W1K~JN4D;hz9IrJZ?yP_?)PmU7$;o1@FCh#zKe7>b zk}#vxXZZd23E;*f{xe~t`i-q%s+<;WHy8S{!6YF^Lu~!kCE)rZ{yhjol-+N@{3V>t zU)rs5I<5;qk`S9+J_pbp@ozvFqU?SS=4at-b`#L?H<(5v<4!Y(%`V@|)DrRcKp3Lz zJ`HB2a5lRv-?d;iLcW98><$I@3*rZqWVSmJ%-O<4*}YJhtJG(By<)#{1L7-<%51kj znC8Mo*=+-+3#2#1<}b&=eu!TRVTj7-wO}?1XS2HoI=%z*{AkpzQhR^E_4(n59|U2D znm?Zp=6>NwhxG^ie%T5z=Z(?&qUO)5!F(i~&5xzfw+YO>W6@WRi}vFH#1}vqqWm}= z%+q3FxCC)m*zF>*?1KzX8I)ZP>WL_4Gernocy+mp(7P16+GB?+O<+ zKiG2;#%TzH&5s1)S_*Tl`V7y%bHMdS{AyvN^6yhHKMEIR_fIhUPWJr`D>se{t-(BL zaJF%96_^i&v)P>oeP4i?ai+HGJr^FRFQdTy4Ca)x{PfxEo&n|p;cRwU0JFi&K0EHT zn-a&>$?)%qG=<$Bh%bRKc-N5v^Q)1FyBSRU9L=%637cP$t9mZ(Awn2DE-=4R^RTJt z46# z{0;OQe4qL2h@W|}w(Hf?K)HUBUZE&?+94xse?)-kO<{E;vl}GmV=qn%$)_g%+3tI9~haxRVEA@alb_{mw*OH!!P&i<)m#y#@DYAPhD?5{PI5rt__F z=VnOMeTX{{|0skZ%8xg}{3@KykK3T5`fV8BAPiA{d=BPk;cR{kg^s_$oN{~InGcC7 zj|GT-2Eq{K$NOOZ7S86!#n7?)yts1%gdxh0wO}?17v;xyVEWvFYo3rOKW;+&gAj%& zKURYIPB@z%GoT~uPTV(zFhu$BBAB;@i}K?mFh|UfJJTUie#}Dr%@BqtKb`{fk#IIY zE`W|7!A!U-vmcAVJTF|7A1lB#zZ>%dNR%Iw5I+-=$&b6htPsxT$4n?$4`$dsnf3e5D22E~aIn{p2Ayeh8Ss!jTS}7e9sLXM$;czt+cjg>9Uf2IdOkYK*E^YiZz6sRgdr;b z_FRbT2M`8s!}5>U1x^8zwMcVO`PUE3FyU-|B%rSp%w>>y5L^DSA9@7w9Ujtlqw3!= zU``g!X15Fx#bCZzjB(*%`*V!P!R~6rH+)3f_0}JOahmJ0K42~sj`Al4`Av(p*dSW#P5SO z2lKLUQR71FNvxwG3^qTwZrm5l1CULSDwgMHIWInF3FZe7hNyb*4475I+3Yew?|^yd zskn2()4b0f{#+IF?`p)~4PoHcmVYmT*(97T|L(;3e}cL78LclW|K10)SvZ>?T<84^ zX85zXb^)AA+@1!r zQaGDkt}oYu*|-#KWEr0$3m-qa!q)GIKkNlw0^4bV|-RowXs!od5hs(b_M zyt8q9)N5GpLl~m$ZUs|iwdQPgsURCn_8Z{VupQOXb_4UU=CIWh@#7&3QRCp9VAcs| z8wZ;pLH~eh{Fc@iH4aV(bG2|bKjtCgRxn4b#T?-sJfG%1e-QA4^VoriUkG8KU7gRV z&#kjR*nOR5$T8qLQri0?c-`U@aIXsM-DeNX4~Bqy_uaUY|DM)qyD!f7#LNNn`TLry zuk41;v)}#z9E8D^FPtBI3+C?+G1ja{IfGRG2J)plbj(NmW(Y%6KiTOcT>pbG*!s!M zh+75bv5z$u)lUxi1mAgrFj)OS+*o1GSD)e6&3M1|BE9{}^NaHPY=89ra~E13D8X?;=i?4QBJKaci<{aS4>M?iW& zZ2j75aK|FP!A7kwD*sx6IZ`-V{w1KVCzz3jzOa7n3UE`w)chi|-Ns;A3um*-akUee zS0NukvfTMWpg+A5T~9U!OY!+XMP|xEOsvdSN|(~p9I1X zWp^Q%=Y+G_rN7I;oUj>lHVEIa7naYwzIHR>JAIwm?y+D_5zc0JDfFEVrrDOba~!0S z`#tMGJ~Msu5ug7}X1hJWoFJUdZZ`B433G<}4DSz?fjbNF9lyOv}!bRCVO_(#) zXSm%3usap;2Yi>=ZYMCkgtOVrg}(k^rb8Zpc=yi(_dnQAJdF6KAPl-*rQauc3~{T$ zT=2c-TH^n(`;yex^~bn#41~ec7bxF*5myMN%1hAq?Dx_0M16crloxf7M(q#fAI( z0+_div-z9A`Rl>_1!=IA>nOKgrOr$E{9gj`Qy>glALb>2`3CP(O$T$ka9+6uxVqpT z1+!c@Z@w1b*xtSevpuLUP!E0rx94w|KmV@N7qzbF4CZ*@Z23aFCkr!LeY*LQ`aS@T zmuDcp@iuKYsz1#K(^WW|-30U<3uX*tHpDNFRJ$v|U5WUU|H$m`^(pN4O}vgTb5)xej8p`!oE#1@Tw>o!RaxFdqtMv&-`RLYQCG zXL$ME2<}hBU-M7q^1Tnt65(ui*`K}u<|jy%?Hn(|?Y;-D7UDNT7^3Rc?_l_QUko<8 zoR9O_-lnli&ICv`%XO~jq2n}Cs-P@my;&xG9r5r2!YQFa%DSt?wV z-Ic<8pgzOx@_O+G#Gh9+b3R`Q<__Va>^>mOGwL(k?nSV>4DsEnWwv`Fm=fWl>`oMB zy7~;ado%3LLVQm3%yv71=_#DeZUXxHftdiA3bC!|?vG$%wW94NpsyyF zgCXr8wtVI~>M+E=4`GP1`z@Hig^TjHYHh7+Z}l1O?_Ahwg!qNRM%i5k=1t*jb~z4y zC``@WXg}QU{}8h~;@2o9+TV>}ei6=QHwk_J2y*T?6MuT5auNH8E$tTxS@=1 zsP#qJtqUecxF~;H3DZY?hTEM0y8{saim*|3KLGQ!a5lU2_ZMMu8qt?TvW zMAzpJ!E6yO%I>ei9I&6=?o!x281Y*a6K!`pm^zJhc|_UWN0?sfGu&T}N5>(4w?yXh zZ3?E1a5lRM=sO(D5JO*Bzrp+G z2aR*e*9UrU0h8f(2@jmpc(fO|V-dd}j!&X|4+E3+rNn&RO?tq*1y^vQD|%ipZk>?p zRnrh}edIb}+&b4E0hkHgn3Iy1?_^+RX`B;ZJfJsMW9sE!d%6ELaOWX@%#8yc6W zz6UhsU-GYgzBeP^lv7;d7C1hM@_hi9Uu&FGzSQH}fcccTd}q0T7`P0?{~V4_qI`D& z^P0vvTfpy=SBRTaC{Qw`zSC^X`EBOY~SaB`4ilJIH!Djfcq!n zn@>%iZ!a(#HO?vDO`!L6U`{yAC4z8??)&v3{yI25rv8gt_x2<1hrsOAIK`L2_e9uk ze*|XWbVV=Gy7x|CUe!3KdiX%^FTkV~y2MC0C;oBXorCxv!0}1cZjS-8L*tzCy$Uq; z0#i5DCGLhx#J?XS{+Dok67g>zFo!kHiGTNihG!b&9*$2U{(T5cYLUV@)q`@71fr;ub-;WZ?oK!-d8QoPgZT5$vhvyfd_)&8S7@A5zJ;LoRbU>2 z+Y0BD@9V(rK>UyAC(rlSz&xvQPWk#k?`2>^1ddOl{`)jAztcFU ze5p7749t5LoL#;@2JSOp?m9bpzW)Qv(;DZLZ!PG(0L%&JD0-&+#m#?j1nx{=_Gnz9 z`u+`=Pc+Uc->VRD1ehxqs(ihmFY6n3PBjPNXDxzU!SON67q@=O_03Cwxk}^A{$XR^ z-w4cO@wmA9J_~x!0&~k^m2aYc^b#KO@^jJQ-_Wd@(Cjs-A1?RNh z^eixc(6~hTz6DIilEnFP{yQF+M=Us}e4hs9cN&){-#-I$#6r)mzT7v>sdI@3;rJwy ztF6H7)wo3Y{sEZ77J7F1@?Msw9^*7zvV30y=IJrDm@gdGGU(Orzfcc5WCF1iIVD?z($?~yZG6Vhi@b~w?{L4bm zF5kO=%WlLz7#yEO`91~AOB&}`Uqt)~n13$A+~QpHC)8Nx8>csT9_}i{-v-BrZ&kk7 z^K~;3{*=ZL$H(cM;9=mVoTunf583UzP;XQNbIkb)muTN*6)+)Zo^ezMDHn@A> zQXI|~-vrz)#5Y}_@=e6&9$@-3&M9AxzXQNL0k<8_={v5QfcrDzgUgfW+Xu|IG|nks zAL!k#F;B?9_Um{%9`FerzYn)TQY~Ry>SpgSm8{BUH0F6Rmj_XjkMD2DSFzp)WR1Y5r^Z@g%5Y9~XxWq(phV6Jc z3;CYZi**nPOwcT%~bN`BD#E56t+lqK)Aa z>7h#ye?1(ZMDqM&V4l@DCq488XuJ;0?fr^gB6)rln0GYJsUCNN-bcWE>w1^?3tXap znG$h{95_CS>M<3Vr5fi{kH3RPJ23S(B(KNUfw@EDoa#{ydiMhJ4%|m@PI`^@WcmQ? zaX3DSe4=qq`4)o45nxXL8up6eobr7hxN{Ic?(50(Jr$TUHO?vDJ3;R(VBUs1 zV-wp=%YB^PejIQM5Z?yJhi}<`ZRY!51LoTrXSSOS?ml3C8jp+9YX!(>8!#Vg9OcDM zA3Tn5&o{6?2*)RpeLwD-E^#s(A1A(09~5cKT>01D-n|331&H6Tv5Dm1Ffdu)N}TUi zAaE=&-@eHuHhmlIjQ?n@?9SNv5%U>!v!VsBe888@@&AwhY{YngJ6~f}eQ{4I?z{!R zm)L4cFZQ0z>%awpTYQVkJ5haGfa%dVCqA>jmjm>=P-?vsXq^8;68hl}IiZNM!9?jwyI zjo)_tGJ=M>{SM5}?^1PP`#6o$<#)S8EgT;wdGR6cd|)osIPyu!ORSu7KKM0YPW-;2 zr`p4Q-Ma*svo+2s-&)XX0Oki8XO3HO>yxw(wgOZ7gXH#nlCadOJ=$L?{7XW;ml<%?@KKjPj2X5^2o0z`Uq&iR^>yAEV#G@o}oh zZp57o%x7?8@5O$Y!+op20e2qa%kHz5&%WL2fLWz+PWiIkIyC0j@~@uf#kCvD_Y&fN zaDVcA9|LBG#yRENjflO#RQ?2Q49A67zg2o8{b2TYqv*0WFO-Df0dlx?ZEu;3D`NmNlfob#25ZHF}?0| zoF50~(WhMEd)r)MsyNlQednXy9@vid*rDiA58JKV@;+k6PKCK_7ys)2pBz`;ZHRdp z@wYvbynGJ>iVJ;L8kPzWWD-Q|IsP^}+f-;v5+qA0)Ho^KR7R8^AQbjx%C! zxbQt>`~Tz4dQ5*4>$Y%w64m3oz`UYyiRv-@FD}vb*W~p$`){z<;P^PzqZ@Ipz`O+K ze=D)wJ_GUfaD4cdddS8u`7$tl8V5G1_J|ulXpi3v%##|I$R2+Km|Ndg`6jZ*{|?OO z8s}JF6v(yTCBlEl8SMj@FPnC8?6^-o{wd>AljMBf3(T7u=albel$M&G$=L7TH zX9_n;;_T(>yw9=z2gk>$zT|TcFn>9WG3npdd0wnMF93lH{sX(@h@z+JVW00~!0gaC zr+nW>nf3y+73-#}Qqmz8_VRoVaACy%7LJd(US}iE<5JVbL^wW9d~QJ8bYS{5PU(Ze zcIO)?_^ZJD(xvDnTG#7JPZw9f@o}mz`TSL24h>5ehu!IpdLs-1mkv)C|ID=3!=BHn zBk*7C;S%NR1HC+8O0&|%=Wsa=d|m+}StHZMS~xzOhdb%#eZah~aZY@0Mf#6{Id_zz zmx~o8zXs-gkHRGySDzi7F8%<=ClR0D0;bWMF3um5n9utVUo%$GQ}wXt^Gaa4 zHO?vDO(@f)z+~nkUpRjE!ESy;ISL{ES~xz5=0|q}vrXenKF8T%dqCqgVD2BM=qbHn zUyrweIjC_?^`L%E8Lw!KmVb?PkXU_iEpTHI|6Pqu#J`7t`K`t|<@+!qb^@~@FI}8^ z9OT-V2gJ=UPer~hh~EUq#~k0{?1N&&Jxk2-3P-JFCx33_I|Z1+6BJI#sXhO01m*`C z=Tr~swFiOuo)3K(&W)Pb&A09X?)-`A;$Lul67es4Qo1++j*nBmn-O<1Fz>*Po}3Qp zv$xxs??s5u@+Z&N2TY;HIpymEy%LQ%U;ee1m-B#IiTKAgHc@?_1Llt!=ag?Z=)Dch zvM;H6nB#9;|5yp!?ZEt7;}YdN`b3N$aD1HdtwmfuFkgn-2auK;t_{cKQAik!Jw&fd%KZj+uU1x)=k;CsDp9 z05eD9SP#2=4wO`a4C>zJ3b!+0$UOP(wWKg-4DzmjZ2hoYMG)nP5!kXk2ayc zGZDW-V-xAgKLGQt#wE)4Q;j)s4)eFq_XfliApS9lNvxlr1?CSL=aerM#aqC)=tj{BD)e)`n)AMYt$hxn2U6+M$LapfbuMZo-LMY_1LDKWi| z5&xr=iRrCGzQ59#3C+X~vn}7Z5Hk<)`y?iDyS)p{VU2TYw_4E4ScUmM+*jc!F;f4< z%^N2G_cg@d3&$tXyn8z^2Q*IcZ}9pM@8=x>=86_YFVVdFm%!}OIH!7eK<_1u`K$bE zuh#;={T=a(TUEYh``WCtwgA(kaZdT}2EEIHSs1{Y7+i(}|G3`%b;SP)jt}S4lFxDT zZsPs|Om>^XIjzfo6Sz}>`K`t!T9?mWjrlJeAE$b(MBK^1^uyf_m+CMMt^)2}#E)2$ zoPQ?(bGpVk<=YK340%nEAIpw?IYPUy#*`jey^(aJ{p3#_p$-nmY3;Wx!j&$)A zI6jHw{#Ib_(>OEVxN-VS(0CM>5A5mH%S`YpgG=vB7jxnG#N}(^E<@ZhU|vjus|4uvyKI(Dhcj1;LZi+D@kw{ z0Cy`epCrMp0&aM3y0{3Ak5hkZLEM$VyqN^I4Y*H%`Sm(mdfX0@&wRXhYm5#O<-${W zdeyw@ilsFTH47?BCUy3#Yv~S!C;4JR7uGkO2d7V6UKi*HH1`CSw|9jDs{^6af~(ff6geJhGOXL; z?V8MY!{mtz+gn1xo?u(pH>K`m-{S6YduRKl?Om&VbAz4T?Hz#-zR@X$dDil9o_t)F z20}qkOi)^|D-ahFULQO~xII3d2m&})maVq7q-1qdPfuW4RUjN_3AYEks*w6iG1y#t zY@pR20~;F;o7dI6sw2?K@_%! ztD1Y-Tbg>pA@HWWYUvz*%bMm;Q#jPz9_}fxD(?xmmX|lq@i%vL1Y4TJ!4Sfxm8;-s z3o7$Os^`Hmq?}W;prN5=UemlqRSPN>H7%~InpZbY$EHA77Mv9mbuxGs$AS_2c}h_}!X@z1_)7)S64G*C*gDevh;R7O*4 zU|mx<8$aiP&+ewV!H$k~ftFDSz)2|ZvZ-_Gw3+SLT=rA}FuV!kdP#e@DU9P2Qp{Yd zHiRX)i6plkU9Kri>K{X&W~kKsDPzI@U{iQJevtrh~nmT^>#J{8<1~l0A61-rV=f(IMf;l6-+HFKkeXuvw z5@-l?c0>LGrIrY(FzX?cfwE(f?yj*o4QP!S)oeimwvpTeO8cf?caE z3d2T;QE2WvYN08bCWYpnqZS$@9Foxd@Ti5xLYb;+$(LeORehkNts&48u7)mydgajc zs286Zk1}y_eG{}nFhq&FA8lZfxJqiVi+clIEdkvKl%HoX%3I`TUT+I@A$nLYC@u7hw{1`stkwk}?^76zSyukZa2POjhG|Z^+QNnt<2GckY3YShTy8w`%K{GZ)Ar-yhpwze> z&~cVJE$Hg*4c7%&?%0UR-nObFZs%j1Mx<%>)0sq#of*5S*qTYsqY}#B2&~@ zQKsCDzGGpEZQqftR|86SL$>EdGjawel^~j4cY&HklP0HjITD=$J-sek1goBQ)X_t< zPGc-u8@~3uC=nd31w}*PB0dNR_d?!Fji3HO$ zTG-wLv$$mqW%s+-@vt`MTjh6X=Ant^I;sFC_^45ae|9o>P@ zM!*W8ZLf&JDmqpNL$GN&YYltDN<48ar<$=9wKS}us%?TeBjK8Mdh7aN2x|&yo)(Pp zmabfhIs8SjLQj!if!=8m>7`v4bp_XVEna|WVVdVk=oU+NfZc*2MlN}TIKNm9_FLu` z^Db!#V5ue8Mb6DboP~2{TuF%>$k-}0C@w?}7K1_=EEXNcaiA7OwCG1iv)pQ)D&zb= zNZo+8IrzWRHi=s; z7<@{UMUJXdiGNu+lH7yo@T{RHfh`%;$AMN_IQvj8i-l7Q!+n2>U+DpkxvPd`jE6Jc~aSHr1gy9WN}x=hABvUIToKM zM$@8Gb+-nCp=!O_0aX?V^#m>g^3G!104OE2pf%G_x zZQqZQZm4cjKk7GN)wVOPPAG15`z3)^H7zkUhNVJCAD1S+_L_&5G(%v5ugr_GW?)mus{ zXN7{j-3{|V=SNULWl=iyffgxLrL+Ys^>ZGyeX@CG!Ai6=Pi^liWQD06`_gO(v!yRB z!}=}z5{059Rwz0HTrOzp4u>qmT>_!_I94dA#iVLo2GUocM71^*Ggr5UQo|TR`?Ek$|rUCpfXgZ4lTsyUBMp4r_Rn^lhO#mq^!xa?C(=3Vz7W<@_ zaFE;#Nwf@-3xln_9nGN%X<`Jz?JZREr=u|}=9K21X@77upA0o`8O`g}DwbU2;zWDl zl$h0-p_zJPknm+#a-*WnMV-NU>M+o z0oLyH%7dCugg6yC2#j?qbWW36sSJcDt{u=}3B@&TJ;Js_n&K)azrHe>sW-yZv6`vD z@B%KoaLpvpO2*FvgDi~4j9tytVF`^z^l-F`C(0;g->^RAus$vIfvOLL)EImXVmCw2 zeL0%UYQIytPKz4xUwD-{O5MhYXREvsYra`+5~(IG1ZE@n-Wa81>OYf}gNv7#^%@Ul zaXQFf4`neWO5Rq%v9mSREjp`=8xb5IT(esH7Nim3ojW>36X1EGlVXbI(Oe)o>xfu<RB)XzQ?mL*>IZh=( zI(=n70qJ~nwtJ$akH);zhH=npN)7IH|669ZQuv!=6~0vFkd3-P4@^K#j8DSQXR+1H zW}*x}9xH=#6AFt=SiaRG84bEHcx^H04E;s(wioFw<}GIGl*K7f#1>hs3$$X@z6Co} z)Og&Rba7dLqt)@~T$a(QzPT+>zoxwnLkkwzD7j}qtSyoYt)!JvMN3O>CoB(8<)}7h zT+FDp3|lS1_4Qn44pAJ>gO;+0U^M99iun}eHZN}uq zE-3LT!qmd4ZN)`r%(@b-QHs{MB+3VCYs8rqUyT1z(l$25OcY=iM0siyHMh4X9PCs} zyjU3OZeA_-ovpSrSL>)t^P#ydy0kXb-WjOqYBlvO#eW@isYU!%J`1r_9cpjx;NWvM z0G7cg7QkUlZYvupT9M*;6!^kuffKiW!WMMsBxOHFE_0wG?~3L!6oZ6J!%luoqByg~ zSuxtqz?0f1++My63M6KGS#nICRq3GyTn)`&8HEQc1rqrXZD}D=Rf83S)_KaRrfs|u znOJONY)8)xc5mRUm$RV@k=imFieFuziX96bZBemvAeMcMV^<4Yw`3fEKY93 zajvxn)>L6MhoPvh!ZKF-3d|)f)vhfz7xLC1wg&}oj*=Zb4#pSUwvqLa>bTZKyZL%( z35(qfJvx2rG&b&a=nR&|1v|_IAZ2GT^*e)77tJhY4_*w*#L|PM(#NJfW>P9K7yTbX z+gcX=lQMih(yRnyDx!=@nx>?L%4tC>7fajP1EHE=@S@)CRiM-gN*Dasl}UHAKIgkVq9+Eme;Mg4<*nG>2yt&&JQ!VE7eBD`l+n z#vPfk*c*nO#bbZmU2)e0*Vo{fUQ zNZRbOkVVrj#LtgW$mEMCag#57YS;OAm7IWaSgAv)EyK#<-Y~X1uc zej*mE*AaOdj7rbn&Zz-Gih_h?;pQ?<**;b#(;hBvA6OXRL-B zTtN2wSO%1F(fDZyignT0ZWbm<1G@+fG(E~K+a)mcgTd1{X;Qd7F%2g7kDGeCF#J>1 z-i8LVjOT+(OJ$M)Rclcu$*27s$2(C&%Q&9Y5~ar2=8Mr7^6XPsEvCvz=MreciBV3V z(w3blbBv%;{WmNyt5P-Fm6d)7jc%#5xz}R0IknS%SfCc|RM{S`>}|Oy5N7LL2LhJX z(=!m-m#T2a^nv5ld}uk#IHgu=;tnLJQLU^2@Cnca3!_yui)1@bO*q>y^cc5*-I!fi zwtx*KD0i`JR38=XztI*kigs@O%xL%EQHv*V%*}GtBDOVD6_i$<0`T(yJ2stZLy~L_ z1jjugk@$^<0ea<5hveICc_Uj*~?#&3gC*WLl$u ziw%t>N*)y|L)<(R^$eNN)UNVZNZtx*YHn%4IiVPFFIa`kS5g?c4*EXQ=gJg8Y3#>9 zmjG}HN_Mscps|`(2ed@1EKL<>CQB@5zA{dJ9zdQxNubF_WMs8{W!xJ45=3vb1o9pX zdXp4NYM%*+(b~rn1F=+_FO=uYz%?b$tD0MzDAMh%oS6I*xsOq~V=QeCmzwxMpXaV&io#7~gKSGB9H7ue6u9VUCI#<+Xafx?YcI25j>xhKrft*Dg>??2!Ozp`uVqexiT{s5u4i8%V4KFB*qA zY*(0F|LcfUT|XMx69`;{nla-6yNr2tsS|C&l1Bg-RC1JzN5V;<-;O|aXSj{m!dQTf zHU(%?w<9PY6Tn3!9}r$#8f=2puMW_FxE;fl)qv1eNMh-ngM?2Yq1AvGQbJ>(X2 zrD6qv-Up;9||VOS{bKuus6hbCTS&ffA}vkyUybn<>C`F}bXt@zJw zFDqGr;J=^`l*p3C>dC=YMzmUfrVQM?Mc!69|(#b7A?h;%8M6MX~7QD zDufo^E)>gZ;X!lq%mwj-M|(*nzQJXnuZ$vdE{G|SfsQb5Zhrw{9LGa}wjgLejs{;N z8D!}BSeC2e*je*-I2P8S={U&lLxwK2$R3$t2yKUhvZj($288YnQaekSjli;Z`EXgw zXj3(|N%YYq2Mcf&1Y7T_l3yq(WSXVnDl1jMa5XeS1#l33)*M9tR~X2xjCZGDE5lmT z=%jIhx-%ayK!X5a9fyD#^dmI{VA0V!=b;T>fJkM-hkCIIg2|sWjcI!jx=KdSJ@a*)ET&O$iaFu(y77Ph-{Zf=6;WG)ys_VrnwkAaIazm z)%+WfA*JRG2~e_Q)2n4qlYN;D@(VPPvTE#x`J>6jok~;a9XfI{K$i~H`e$K9zBUH_<d*-9lg9@MDDX-5px zeU=M)kAV-9CG}X-)f^;sS$MfN1Fdwr#137dR3qJYF|C+$l<7)Jwr#yyCAE=)H(3EE3{wSzJxo>K`=V$7eMN0Ie5~`L795 zF|)mYgTAWT+d*}jOi?DjuWTk#{Rye2$}+@`@HVRz1?z(Ct@2ei8!79NvRI~!l`pW| zR=kWrX~I#=hU0cjYdgP0L&3|0BFk*TDrUX3+^M~Oj~s@Z%bI2vRo{N$=z)ol7`9&Z zgc117uhY1y7u3w-bb?=^NpGrMSiOkQZhUxf*t+JX4hY;=kj#hQBgFOEmnpsj-wYXc zyY^*@`{ApRVGn6vrg#EANDI<#(Y{Ra4t&^qKp6i!Hhr0bpUWC0!@Sy;DQ3VoQPShr z>gmfA{J%D5$gqXlmnoLRw@`+y)V@p+gzwwntMu23)VF<0f|=g*W60;hef{Eg6*83Kd4 z_%@^<1OHMD*ZHK+2j64T=ZEiU>0_<-N?!qdZ%bbxd?b(|E*2w5+0FF~h{; z{CNahoVo}s!5MHF@*iZ)kUo|OYwB_3prG>M-`H|Yn`M-PDOEY>QzbCcAwWKi879`y zzn`!3AeEaou^i{XWk^m`!RH-R0!kI1!6hh~YLtLHR3)HKmB2{Hw0szoj1x7$WDF{S zQ5TyM6dEO9EmR5Uv*!V0?4{v+#3*TKm%jK`Fj|#=V_TtUrcnaw0969|R0<;<0_4LO zdmd2fDQQ?PeJs(@NJG(dqZ~}B%0Zth0Xb)V7-KID-H7>u(r|`R0`gFmfId}%cxhlv zGEQ79%M#xfMqT(ft}SL5C15R73Fx!u0b_=V*1PaWtUVH`@w;X3sBP_+{j~30ul#+4 zLyy?FIXrsWW`Mk{{Zw_L?n zbuw%+-q%VWd%B7}8@?SN;1w(3>vYlgW%&Bwyy6Ad2bc&ikb!KVhj6p;^KD*kOM z%oS0JcbcGqf`1>e@b!1#5s&dDeIP7uh4aeKdENkDhBPwzWf)%aIc-iw;{vrrRc?$9 z<>fN!3cNGK5j_0qOaIn5Dki&!SzQg6A^&6Ifb@+P!%<234D;6%&6srtzKt0dR8(|! z+`x4k66C?LQumXO>amN6c!F4f^BFeOE$`Nw#rY}?4XRO%>IdIdLDXQ^ilZ+5-O8S&2v+Ob_ktb`;m|>#6 zG4jE(qRo*N?nq-+fpu-?a3`8pT=3-J5Qy4%qTsyv#=j7E z!exj8yp@nlH^bl=^sq##UUo*w{W7*9t_99SXgXXeTmh{U^;iyoYaYTx&_0?1;{lB` z1t@%~yVIw5MC$5EPvc+43=@%*BP-qPSNdVeuy7PtGM0)D|1N|9q#w&^ndogl+>@JE zhqGna`(o*80N14(siou|^w-o?vf+K8#4J@|=~IO@GBm`VF~h|5Rel%R^v5Zx;ljfk zjdqJ{Td|e@?9^x`7z4>6=p32%s2Wt!0gOG>O&S=oaXUChHr z8Dg-Ae`D2tv1x|T_*VJS7t2}%$cHh*#CC(6#V7TxmJ4>P=it;($o`cfzcKu*^s$74 z2WP5fK2QqrB{aljV$yQZEjq)ac6&(KP&qy zHzGE&G%M2UiOh3HKF|LTg5CX>`Ew(O@^?q(dGr4>f6xB%fkiHa<@GoCy@>Z5a7Ez5 zc;znowCG60n;NM&oVGjXAV#IEqRnZqvT&1p?_H6tO)DaQyU@bIS7lv><2^+O-)uCBGU69`AlmO@Fq(wl=`Gk#-(UzfE2Wx`zD&nP z`Zi)C3yntlET)lmL>sA5H4>}}-AM4UAtIr}XeC!l(a!vB6JC&w^lAR~3D2V~+y`In z&j2PDfMQS4=KK#LnG?3-UE|N2uw6D&@o4<;9Nfo-+Ui~a(yE~l*n4|yGyN6i#1IB| ztZbw)vXOFSBaM@dG+r)7Oc3m@dE%#d`$T12^Ux9?KN)Lj9?PLe736xoWg zS?F$B(O;2^{MpPDn%(_N^7H`m9=nfJN-k*?r%OA1IIJ}G=Bx0|62HTHq!!{ zY2~lo#;+DbHL+?+HPIJUO+M%)@Mc*gV@d6jT507)E_X+Ep>g~GivD4dY8T`fV=a|Z z8dN#_-kjZ$EocqdGawrtaFGA%K{_&{V^|5=octeicvb@I?U%d%oe4rM3Npgauc6*ri^&*5X;xQL1Y7uKf_ z@8M!S-XjF3dZWYxcxQ|F2?56sjw6hHIoeE?34vuCxwsb>L#HKcBsRnAMl;Ap*>C)6 zVH|%=Ms_I|^VcEcSGUn%tc+?f`l1b1=-gmZ`$rorS2tKL7@x-m1Aj4mgYAAaoi9f< z6|Jyc5jAA6nPl^_3D`{494(N>N(qu7GXh19P*{M#pzlv3^{rTEsKL+!dI&FoKMSd+ zAcq=%u9*&{VJa&gC=bFo{`eqoMLVOyNE+z&5Tz}o4TKURgym35)sVL%vQ-M1rS$Gd zb=Kh0$Cny33v9|>tjk_#mc0P2AdsKz6*<;AKsQ0L>|h<#IOkQ$I}aU#_0I(j41P!} zX~?vQ(KRZt=T=+}ewhPwxTLu(i*>_*B%20|^U0oRG&C|IgHZ)E3*KJEI#$zUm~JXi z@aY2hS!J`js)?=D)J@B3f;tFm@F=j$#eS$j;bpK%6pmiO@xXE!UtdIjAWw z!eflxBuPwj#m3mRFSWg~YghJIV>d}b%(7dJ-Jzw4F?MZ|kUvban2+`x`s<%(Zb2isV*B!vP(Nw~o;4$aBZV8~P!ycb}fvf`7aG3OwP zUq`{?;z$OvDLmNB+>&Ht^0-t@TW0pxdLz|pmTE7J#k${vqnLAMym4?^ng;`I%owoBerd$ngnfBi{@v^R2$Wp`o2a}Rtp3*@%o;8 z$UWFh?J=}8(KaH#hnB|F9&%Pav^2%aAl2PrXlY6#739H8)viNJQx&P;if_5pY)O(t zKF5eKpR5H_YuL867&7w|%k39Dsx=hu&?gRP&Y(sXytm)u^VLKcsGJ_Q3|# z2W$IlF+W3FQPc-5?8t>2qpK*JO?5@v7PHuJgN!b+01G}tZzTx2QbtFiz)B<4Y@V4z z8Y?vSAm}Vq`O&mejcTR&2b=Bs4u|CB| zqxiu$C8W3%h4nPXfdXQuKSVGN`tTvoP6F;~x5i&W0vE7tXL2?~BzFEcGj2~ zPXR?2u+4pj%3v5@IQ=3561#2`-EE-onCnL7N)ZdC#D%`7xO692DGJLD&qD!WaQZSo zq`=%3rO?D|ivp}$GmI!M%osuw22a!)Q8@7$kzIa+*N7B3nk&o*nc!`TubicZ5vSIO zEJcC%h0QqwOCPgFlq89%+ili}>`QIGMr2p^*fpXg1wqeHWjAL3oW~9=jXB?87q>}5 z1`TD6$iBXYrci@>o|G31b#gGUt99%ekxg;r8c}?U8MUVAJG3-rt&c)7Fx{ZVqSlC# zWMfK(%^HzCr;@J`+3~Aetr3NlDbis|ct^Cep#eK$B)miIIj>R1TdSF-H6~4~PE+M? zRnsiieWh9>T5hIU9+PHyOg_sMzs_}<&ajVKS7<504RVdBR#|X^XR9hnbdt}}LC#ZQ zl(9_4Dv>$RROx}HN)9yTfWzGNstK(!T&TyC;llh$&<*~eXxIk=S0jhuDdn)GDV0h} z+%Z+gKMmkPl%)0{Ef~5K$^sbiW|@GNfr)I$!zieSKreR%ItunkrhKHG^Nsp>4`p-7@@AVP7lQ7CS zZ{w@s^#vesfeOe`q7ZM7xDf9GQH_(Trw$rk8xhLkm9aw|UT1#s;q?~7;*$2)CgYdf zmbnwZSETgGfjT!2 z;63Ted9S=boO!6fBlB?Yn|-@^K=;C}ZhcopGjr3XX`rf}G@PNNIm`O9C@O`i?esU5ytKLT!9Y|;tI_~yeG)(G{=b(;XfYN zFnE@NyQLH5G4RR!-|;|9$NNNiedT0P0{w`D@%Oq@{VnZILj=8t}!@5{k?KiWfX zWXaztmHd^3Up(!XvdGxzCwo=%(U&Q2#T3i1#lX>*DOSKYU52gFzM(bq1li0JhSbb+ zKwmvWY332KnX_awkCM%tEt`3?Z02KRGmnwYe5`EdT-nUyWHV2Y&73Ej`FPpPC&*@= zD4ThbY-Yb~=96SIPm#@hvTWv4WHaZ>W-h?t^w{Gz6}kreYiVZ7(fYy7Y@7@Hf1|C* zW7XF5Wr|vqvqFY7XkVsifv-}At=2wmF~8sUZg*s!2S;#gaqYt;&+23cVTNXR;b-)*6b^{WM8q9ki!1?ZX%{2 z-Wn;>W4S$xku&2WWy;$A`5s2jkBdag2LHJ%&l;Jh*GhJ0|NLAOszZidu{CW^_IfV; z^6V}Z#4^;`D{Amox;tIUP_C4ZapH7@=0Pv>sBR73$BR0=CyF+_Cy92vC(E;=C(6_4 zC&|kdQ^XAj&zHx13&i)~KUGev3gxBMsbVuiriq<+PZuxaJwyB+?=x`uAy%sXjL_k5 zjQw&{d00NDZ226%`TzI^o#RS+8kjdWsO(+Pb}s(!ctb^yDN1bUGsFSS-Ig89Y|DOc zGyc8`=V{CCesd>0@51xOzP9X-|E7MdeZ4Jv)&92Zm+Zllr%GvcqlJGXFz> zBO>^3{6<+;@i)kJ?+n4i62Hk5AH%b^MbTQzD(nIrIR*Cs^(Xju=u+&)??1pH{>t`3 zyv{4fYe6jp3O5wY(Tg667N&u4GjN)omy1T?ogs(xVN%RSNF|jeuO5w(swZ2N19Ob1 z!h5V>SIiYOj>n6u@SY$~kmreSz<<2pp=+PK=P^-UvY0G>fshl$cDzp#&)_{({1NYI z;_rADi4XCfE;3Q78R9s+&%ocdVTbXb9lX(hrzU_LX?xnd>?7- zj?$Q^Y3$H6khbea*|02lH)D035X`pDwlWDho-1?QL-c&+Q0pgi_C?7d;wqWRjs8nw z$-Ns(ZYL|SJW6g8$<3caa$hwQJ}L88gPLrlJBg|-V6|?6w+Z9W3Zuw+ zA0d3wSB!VIyoWbhEQ5cESc`X^;JLA-;_G-f%IlNM1O@MWd35yx@eusW#sA>FQoMwB zv*6&hO0FQb$iBH+@a%HC$ijQA@Zo)tptk7{C*$2MOB)hx@b`#zyu+dc?_LqYdxIdi zzAWy;`!ewpye}6&!~1ISSG@bgKk>d+e1P{xaS-o*;Y-DJ6p@ej4PqYN17bejUlWaZ ze^UhUzEOnmzDeAO_qWB(c;763i1)4H$9Uf+p2qujd71Qk;(7S*5^v!B(?NsuQmFUQ zs4HWSVvvqsA0N^nUH+dVN7Ca5X*Qu!t@K4zD?5apYHfsW)v8tM%)x3k8^+!LuSHEQ z8hO;OR3mjERtqlEmaOW3G%jzD>NM?TAalX>v^@x+gr~jIl=gD=`m{YO41*I!L9}ZY zKx|Ye<>XQMI+09u$l<~V-w44DJQ6pMxJs}T?^CfuBM{2aLvgVvQF?_=c@cC7r!#yB~V&65+A z&`uW@Ahu901x$r@r?{=cd%6hVJwr}`&XA+SOnfQ@A7Yc%YKgr3aHhP$T_&$U zR7fGM6yC= z?6g7HX$JPcS#+U9D2b&{-*=Z`XQTd?$*}X_yHbW-sC}8D3%)PQu#ontdqG#oFq)k7 zWy;QfsSNub!syGCBlP7mj7A@QL+dH|vZv(R^%O**r|78vjh@nvQmN` zT;X4bo?=}~jQ)4L=)KebFLxJ;h3YQ!sWnQDIU}U9qED?+(nKF2)e?P~@*eLEGHg8< zM_;C7-`8bWKf>tC6nDTEkzwE0zD)55d|#7cG-v6{6ie!tLf!itq5FNyW`B~s@h^nq zk|+j(DR;szX8)^q&9$4u^W~3gH}{T~w$}bLmgcS%jmv76 zC}Zp?Z_|nkFF5Z>Ol=u26cw3GzA7$mclZkq3IDRljUWoz5s%XA~_& zeY6xhavjSjD;e1q`2<5MZ?R0lrcOa*{{c5D&(*#ueg8@A?TXBG6&;zqy*Ch<5P33x zI|f?}y7R;1mewyZKH}i%zwAL*zw1Gj@$C23jgD-~e?IcNNM1^RZr^6t*}b1gM5#vf zJ)JuHz3i`?oGN*p8+op1^GElq#75n!4L*#KwPI=Pcz%L`KUVS;cap)2CG~a7WU2$a zbCbsqr1#hBraxM|B>G8zPkiU%{?+S ztqL7*%|MCM_6@i`K?wwQyY>T8z(UR5mwnBpSm#4Bew`;bvVZm`tVnj>_gPqoGLX6X z`vyvX0l1QDtE_1rBg(F@lZ?uZixz7j>x9N7b+ww!V;v$;u~HN}ZHF#1%YSJ0a}YIu z_BHFQ1%597`6XzFy2u{M0eqtBOC zz0xomE5m3Osn~h&sT7OgQ?UW~F2KH#7ZXh(+NAGW@TnBH!Kdi4sa1*}nXx~CPtp6i z8T&kZ^CXo6@YPCRIZE`XEY&yhRw=#96CfDWW^b?~XQ`~ab%+zOwf%uf-jSgZi+6!;K?j{OFFit>-(QrD7<ckoCwR1b$E}HqsKJy4fszKhwwg0OhNtgeWtk!`K!U$ z?UQ?d75pR*t%zQ@)I}AH^unt)1{ujYhl-T@gpB0Rly+n3mRwh3FnyVb!)HlQR{Q{8 zM>2t63_dl4?I3h3h9 zuPcr8x+9lo;VUV;FPn7+Zh~Tmt#++YR)D-P?Ur9X!Hx93ZLawkd3fM3t9NhgcW20g z!*E`yMAUXss$`E#&ivBFe8gtRS)Cixc_PZsDlqPchQ11VlkC%EZSMJXWgzM|)O`F@?-Mp&3 zqdmNVLU33YIAxX5FPOP1EPYA{NL-dlY8Rykqe9@p`H0KCeMeGz^SGZn-xc8(jW9mS z!L08o{lS6ALJz);fRmeh-dnb$u@1+Gd=fCQ_z2b;HtyWcd#_^Mh=D86y*|1hBe@5k zm$-fmD>C5v%|O=Ul$2}tLblxDS`~in-rnOR5s5~`-9&?>S=u@^VBr%?-uRcqRgSqGN(9dRLWsk^q$FetMQl#`ntbRK-s!QkS7e59n(LE&qcXfO(n zuEr2zO|rSbxtBFYo|lQ2DH?aGy11|1oPF)j;FrH)(`)+&{FZfywd=F5{c02%zLGV_ zMPb2WcjMp|cC#{Lm^thtqu}bIH)}LGl7fcfM-YbL3|#g@8TfET+V1R!rlx(^zuu*A ztRbnRPPDN!5g6{=*;d(0HrVChLfPiI!4bF7uuhAPS?ODiFg5O937@hB$S`Gt+ytMp6gVSOvG>5IQao(NZinwWX*c}=zVA!l-%Q-U z;ZteZLlos~_!MP+VNu2U;8T=OF=NZ%<02wH+J!gI3wy;Hybnv?Rd}~xUCt|Rg6}e! z?+@Wq7Rm$gy#nVIkKnB+Z-GzcwhKO0mKWhuWqH+%{WE+j#k*##E7d5=MEF!$+Tc?q z=!5ShV7=l_GxiDiR7qcjuS=Gce5Zz@M&byXise2oEb>G{hFth_%Ng@<@j5~>#cjZk z5clGpB_76mq!1NRc*7s$AerlgqZQL4)zBNXHF$?hQO=aza=J z;|Bb5%DKVL?vA9!i!oABHdS5dQzI4g;R6hKuH+XM9L8A;Qn)}6$&75t-#&Xwf9m@5 zCTYcm{T^k-y}$05NY*tQcMfbg(qDQ_?;GW_w}t-M6l=<9Wk3$7hh?F0#HKLrrEs*& zlxMXv^jD*2BV@Q-rq0AHE%slZ-IL@H(R(Oy$NDqCgyrOEw)bZPcx zU~iRm3F19MuF7X&qbHWBmm&_@Ovdgp#Vy5h#Ha#SHQHN}^t!p(`cqMpK5ASSPqHR7!p$=3*?YEDs5N) zVm%~M1u7xIcmLrVA=Pb`+$R||=x}Wz5LCUVzzy|q?KIoNwMlodj0&=Vs)F=oD$9b$ zX3^tlZQO#Q+zE$u!UQXOy&4kkfKu{f-6ps1KWFWU@gqBLJmwf2w}0Q77KlX`u8D)-ICWx82pBbqzJud;A)(VXIJH)aXm=S&i3R zJ5u8{g;R~!9641iM^BZ4GfNeF9(>An=z%W}M7=n0V2sH3z^6v;r{Ghz!?W-yDlfyQ zDE}EgmG58SQ>!ErNeM(8QgnaN{A(&h+W*9btX?XkVmo`cP zdwoHtx4gQ7-0!tN$0*2oV}(6I0^kgGx| zwT8rckfRK#)gj2b2B=ajXD*?Hz98ijn%yUfr2QFLqX6MDO*274cIzUUr>nR}icODE|x;c+0r<#KA40oNn7&@QTqW0^l9Rm8)!OLPP( ziOmD6CcxS-J_(FFCs;6`Uh_9D8Sq{ssUUsf!F}L<0cfk4CVu!a?_6NaJB>-|a=$7l z2>IhDsd)xiN&vMJ7TzsQAvKv1f<2=e7V^c&Glop?>n*$->f5;aiX5(8|17$8op$Je z_wr*7?yDVe{jAYYtXcVoHXgZREP1nZ2`S0iaGAUBDfg3?XS2zc)(wgW#4X_-6WQz;&TPvt=yN9FMZ zd@7G8&DfprsT6z7*tg)jSkA8w!Kbt(=XDA<9KBspJ_bHTc>;Wj@z^0>o{<@`^jc+ia937_K7oA4?*iaX#RCw_$Yc<~tC6U49a&Xb4dP7r(H_ldvZeX4i|?}_37-jl?CWJp!qxRZ+F z-ju>eQJSr^5dE9HUAH=BA=c^D7J<3{(TIqJf(0-14KP_zJ+R zs-GT?yxd>)KZpD0iR>G<uWxzj1$lvixcmz^&X}L69KKn!btywqoF#__pAp5FF)lDL@`^7g$@Q$Fo9M@li zkQ#s0i~I4OUpf0_rUA4x^dd@Fbq6+g@7VbJ{$cBmM||!;*4I&ha+YT{HUVUbLjPdO zqP??s$!x2k33>IhX5;2{CDyE6H^=3ib+aX7BU`4Py*sogf~+@g?p@JWdPmCoa{-)* zE$D5m!*l&Bpjm1dT9r-&L*q?O= z$sKWBec(wn6hAAE@`Im;A`Sm@nA0>5bsXAabK2H{`u~6>T>HG{X@tpgY~?Mus|Qg0 zSHSG5d|Yh7$Ld*m0B1^aV6@+Z;&VIKyKyg;enmg8Vq<n@%0h!^%wkfQRL8ux7C=X{>h6To;s0cGJ1kn9!ol1`fh|~ zQ96qImZdUmrRlpAzWFkYYhzqXU_W9XbIaA05pth*q&(6#Ox|-EDKAlslK%(BBhNzS z$WxGBdH!*X-0vGJmLk`2q8sn=^1Mi%xE=oE#Qk_5FOM8g62E}|B=IY}r-Q4%u^I0o@d4h&I4Bpp>&M-}Y?PX@2cjCza?zryeO-HN zB71rXbraQ3bl=akr{%sM6%8$Dz3-O`uT*N4)LVv9OI=jSf9_)Z9Nx30y)9hX9_}HC z{}W)?R8VNB9fP0z7$*s4O3<=ks8yo)<%JAnom$yoOmx{eN(IuVR3NMDM(SZATdF|D z43i6Mo{gU_3r~W$@mNAu{%5ezA~nMfM`{oE?RPDjy=(o5(CCey_8yQ6QN~JBQ{Rpw zSZbrt7|UxMG*jgYh)XUgrJz}uMaTWf+}WEwd;9tkz15Kntkulk5;`+7iUru5&kr(>ny|I#$iaR1)H6S@ENNZt z$=@!=9}6k$W>lh#SqJWeN*es>ZMH)hIOCP~RMoNTX5^4d=4J(Ge4OrX7W3*I^M%G9yqH}L1m+j!&T8R_xzx{+8ljdPI)F0k5sVmE+8m9FKvVy=B7YgZp4_;LO#8y$4?dsocq!wB1;Ku=U27 z2*r21@#Z*G8rg=}f`e~RHNfX*W(fE7S9}bEX-XuuXy?Jz91!_6okDzifd9M&AC{JX z@gaEN{b^gJsL3B${jO;U%LOVAquO2$+uMphjWk?4lhQijeaId^7{sx^IOoH(9XTIL z61x-${wS2+18~d#ALHrU>gk_}$GxtgPSlB2cYD9eJciR0Y>S0g{4UwrT__@|(# zp2#j#zxHE%D11uJ2mQ4l%a#kHNi!5<$#SX)AOHIbc~^=P@*n1K3QK;!pTjRJ@k{IE zO_mJzrM)k0BKgDJUz`doR}b-#iH)1HZ`_*pGP10?5msRSjtNW#10!u$&if$ug5gh(4@v|6cseZK7ffFFZOTFgCCRAD9Q=Wd;BipMU zkzGSI<-nrUCES@dEX9THzS2hoR#K6)&RlqfQ8|^n(DS^F7G%WxNdE4A?<2_QELTN; zwk$c!__Qtf=>365EzA6;qf_z>gjeu>kurzc;p5=o6<3;JG=|!R50_hdI3EuD1Th)uM~W}uoh|=2tVf&;e~vg0?_|6@y*45sR^`%m-Gh1?SZcFyq<7-XLC3ZrvT0WGZDXK zr++Uo4v=tUH4c=}n4$jXff7UMkr_(q(Z@sXl->fa0&;exzOgmn`sqN{IyAdyAn(Hg z*Y&dx!tcjIoNqf64%r#m7M=jfnm0lHLEwXZ+~jvJ8qnB{RdLx;N%Oq zTapKX%Y~b=E(8CB?(>iC-<}GFa}rjyaql`FI4H+Fw!tnFA3?bvZftyS}Xp7-6iv(HJw#df}# z-|Sz`&a>D3@~(Hi>-H{m#XqqUAu(*1rQN7dee$U$Y-nRa(3%V;!S5f!jtnNcmbiuD8%(>eh+Yp5a1!g82Wy|_7NmR5C zGWyHi?}v~-&W0GId>ls&9bt|VEO<_iuX?KUY+RzSuQy>?mvrwBOM<6X{kY=~$W67R z=#jB|vF10qn^$OH*9lV8jk6x7;b067$#g%IMb5!=GQHg&Ft%|LTM`#UA|8otoWxdA z^^EmU$Jq$AVC*x!u`gMZx?c_VOul(`)!xoGo%rmm;6RUTaVfO2yANQ}j72_j>lKgXUp_zAul7ED+!t9@PzY{|2gGyc@HD2ku0)YugJRpm^E_i zG^7&an75MUy$k!dJ$u7NKZv7{#{S+4f5CdxdY)Ob4nB7z?^n2B5LD8W{{`!*=U%!D zBbr}ees8pRy%O~W?KT+2Ucpgf#t?pEhfts)9GWURb0%Z_`csC(u($OmIiFY1-IoQT zoZNH6P2jV4zk`A*LUzVj)4%l&{)2+dg;+y}6b-$iPYFxNT=OM8!-Te;e1B6gu z?X!M~RYfp4QaGs|xER`3K=Kd+VNi@N90+a1nOkIDP`w2;weF-fNOS8|@1r-P6{Nxg z;hR{ub~+DN!|E*r6@vX-6no!>N}x&v!ZGb!P`Z!Krx(fQauTNPU^ZexTM+>k{#@%f z(HfQEm4U@56PyX8^H$u0sAilS(;2L6k*UKnvck{;rnzz`DNl|g<;%g{ zd#0(td$y^=`!dsj_vL0C-s4OM-WSTHJ|*TWz*m?%@V?mW!MnuVFDAjO94@ayyp zq!8^Hh;-b=av6?TBKB~UHn>uh(;VzC^0&RXcmvl*V{%C0IUg4%jbiKh`i1N{-im~} z#`Ip^kJkU#4YgMIv(`J${9E3;J(EAX_oXp&tfx1m3tUqpg&6@kw_uhUUej&R6!mCUM7Il5;YOY+aK#GQt#%ki!hE=C#5>pAhW(nMdx&C@Bz6VWpf0JCFuo9D<;URqOjJ+rIFt8k&$!R-Jv3&D^>oz_JC3kpSX}RJ zAB5sol=j6?%|zH5ektM=|S!vo(k%nY%}^~Po*`^IK5 zgCuTl6f-U!vS9VbW+EjdCPFIOoFO$#8{9%G*sER`+EvFw=MnVOR>Bs-CxYJ`=1Cvl z7{h;=?`H2KaCfiM5ik}dc_K}z6NeKxZ8$Ia2ccldHPKMoMZ~*y38BDCOqTDu1uYDu z{%n{s!z`_4_J;ag?2VAziWur1V&5ImgWW@XgPT7h%^y?2CnN$67F8vG12*Z!92#p= zguM$(vI%(oUpNpgPAq5{l2+6lWN zA0w=jAXs{1E3lA!YyWZ|7kS99j)^RU%aWN{NF27i@r%d_`tlss>!tYSrc~WWr^^(* z_*MpU2hhJDyqMuAURll0ft1yJ8#Xx7gI~xzgZI#^=KGR1kJUh`>1P=6A?}9%XYt1> zxL;5j%a}MJ&8V!RIzXvhb{~Zw(>m6p)T3t^jyNzHo zN8njp%0P&eY?&m65i+A-2GuKgpI}dfc_`4Ik`TK2;dZ}tgn;CUS?c-uJt1BukNyaK z(^TPL1CbOvCz91uNLgmG%G5K>fDa{?jX+8+k4g?F<2z*L;hiOiak6CulVh%iNyIG2 zJ1Vl=a9PpH9kTa&TGDmwB=w~DBS}3YC`dmQiScPhC1pX9x(WWtvDe^t!SRq3#d((h zDfs1VXlU)iC`!qS1+HX8q-4cJD_IdKS+Q7^tcaAXZbE2ER@yJo<^;$JM-ah$9NDr=S6A! z9m$53txXHs=eD=4p&)e%e4PT-kj*Wfjv&PZsvt$Ag~EvR;Y^A#w85EzDfw1y!M0~D zlgxVi`F*=M+o6xD`pB{OH3hX_a?XMe$#RO9Y~R*&H`#Wg2Td@e)dUl1f}JQN9=vFC zRJ;J^H8HM?^~{WljL1eVJRpvSE~*x=9%~)k52g@Oejv^U-~w#>r{FbI+rJ3zRQ9L= z(zd^lej&idM1AXL@r7Xr1C({{;4lZn9c;!KaKyvnxa3p@#*q%^qat!RK*v6gK*GTJ zP%v?;QjOd<37MzAbqrJ>h*fyHpde4EOq8b?m6oO(jjs+!E$a{@IR^)G=XxY^^is>2 zb{F&Y(?DlUZL8WFn;LDZ;-(0)kuLm(uiTVun%3UcmL#hoFF75tg`_bstE@fcBt*(d zm}%uCM7eUxfJKsrO(I%2xsq;-7RmSrF-Fs-PfUPAsVi z8dX*%(v8wY@>K|u{F1qh9}it}PZ${!`DNBhcbLc8P&y-0I%6i3&WM!Gm_?;CBBe8y zzS0?y(%C9R!DvFZbVZvJqBBvmgjFVX$%TUxn|BQXA~g%}I(j-Ibt#>(hh9INbjFo< zrL*}A(C(KP039ctEtVu5KmV&2|D>}zL8OBvf`Sw@u`Eq|pEy3PtDZPMQ61oa%?Ofo z#$1j$9y+7QP6C(qx1ONU4umQ|cp9>SM;0`iPYJ zSSLz-L`r>3JtNPusgE`TP+#|JiF%y{w+GIo0l{zuWWS{tD=w+QNO1|5 zJD1eSr!6Ng^%Esd0&e>~60l=>(TatOw}U@Eh%eLq7+yx%zs`R1PI^#xKt*T_bF=glQN`+E zRtdA3Y|Qy3IOB?_E7jgQiD6+KKW3c_X9=7nv@N(^TeS~9;&cJ;vqM)WNAH;3KYP*> z$-FIp>`z8Mcx-$0$Z&U-5B^89j7=?k6%icb3uS`+Udyg>R{^RYD)bGKQ3>X&cx7&l z=fZY3ei2y&Qz>~RzO^-S3gSU&jhlhEa2gS{{I?0(h$$aBvSXSg9cv(Q5Z z9Y;WX7<7jl^jm2`*EO^?wy&GtwQglo$Ncu>Of=HQYFnJHKCaj{y0QI05MC({Q}ju( zi2`*AVnMVEvgY+2rgQvvhCRLW9_~M%X1()%q~Jb&i8BVqx&N3fm+L@?Wq7j$b`H=@ zf<6MoWp`CB)`Kq&m%L|-*fF#p3-W9f(dM7UhDqI==4MU6zcb8@x3$Mx+LBFcnmXd0 z4at_y)h$h(@nmyTd=2y>w8gO{xdCdTnmRg-LljQbpeuQhJ9#*EV=^*5H1Bbfw_Ol3 z_!&W?fwl=M2Krk;sr^QxWPC+HNKTZLl&5zk6=_4fiHUSqiHhn#??M$^oU3MQIs2%3 z7cYSYSVm(4ebSO+G=Vc6zGaqRAH;7`8E3e&*R`}c(@Of?u<>Nrb1JM5_K}XZ1)J7G ztE?VsrIVbdYr9%D&=Zrap4uCoK8&1A`!FKy!&uDPhY@KX#!ApWj3`$wrC}B2VM!nS zTFfYWumba>|0T+mRc7*=JmFD9x#nwdw?oXnX`@_O2(`rQewYzypU5(2<|1a45IaNg z=DP-4BO|5z*T}93)aKa;6@kkdS%^iW&kToOOq%4-|D;U(WzwXfR?gmmBw|lq4YqQ| zJ(W5?M5MW9+W0stXS9)A+pADBW7q~FeI1UGX6)+@%#`9fFjI1NU?!W7u?{X%-opii zUAuB%q7{h&v zsarE-L;!ONF|`s7T^ZlG7gyArH0e4dojj%n4g)I*3|)B)k*3fITSCN(Hb>Xp9EMAO zce6N5E1}IUX6^dQ!|6d7ht@8U=AALB*@b9HooIFBkGkFpOTF}#b{P(8?OxYHh_1xS04Yk{-}VF#)`$k&0C<9`Q8`TX}? zcYA?U==nL2@|o9wv|HKUFjbyozW;gtiakEO2dH9$w%Z@e#=JobL$kK&L0#s`7| z{l@r`2@?ZGB^8O%plX9IB$SPR1^!>|H7}oP1Gh;{n&iSj>vB4VIS3%oF|Z1?V<6Iw zfhpIHfk-=sx5SK1kw_aR)8_9OXfr^=?0&5fGhfM~1di2ULZ_g2W*ib;{@z15wzluJ zp+zv~@tDLRM8Z=o2|C0itbW6i`^#|ZcRHs zZX6mAQD+2_nVC>a5!b)NHij+r7_M4P(mSrNgwpk1s)Vej9$eS@dLlMr67A*yNFu#2@ME6hQ$Z8b5w~U{stK zUs5q4*d2ck{<+bU1!lW(?>H7&gOfO|kce zwm#Z*&W>lkON-p6x67QSP(w3K1c4@`3R1RCQ0t^Q2O(iQKTuo{#WFSHxa)eMfOCK@ z6kE>YOvf)KE3)e2Y}n|dXUDVbQ{%xy6=k+7QrksdY5NXUxTXDxrjB-}H)QbI8xm=8 zI6>JV8rlq#O@&Hi93t-8g_db&DgvZL_p!i%JPl97eN;x85@xt)Mk3*)fLYfR5UCHx zpOXUGI2CdqBSxJR?RaKwR_@a^QZYwWEv%3VgcOmbfC++lDqGFY1=429vB@;C9S1ZW zznJK7P#+1{=o69+ELpOEl8qBIsnX~~+f^n0`zqvgPp)$-R&Nxu$?9bA8apsSjx&=jA@SHfy^G$!oKuMvkJ1us-G?q=;;& zQ*?77i2m4N)IZXzG*( zL)X$E($a83vZFP$$y^_r!sDusN+$)(xu$?9bA8YTx_dSigrG5PN^$CgY*DTq(6%uxxg>EX9lH;~pGIQT{t)Hni(R^j1#;ai=hop)$o3seCvg(UyR(^3oEFkd`g+E?Dw9$jn3`;-Vd^?viEyG z7$?^K-Vat2JNvyKB;(Ni-oLY^MXk&8dppCTky}sNVDD7V=CFlXlZE-#G@J#A;l$@j z(B78Fk|VKma3pp{!SbGI1yF?_j^6g-d>(hhN0Z$6I%4w*j4f772Hq6g^2l zBxLXOW!j%4KtFw0in7AFJ8a~cy@Xa7Q`w}_Xt9zp32!Tn` zN+HrpVPt$lCQC#@+SuB7t!ty!LlCQ=x-x<-g(wH>+I;Kr?q83w!Z$B_?hw@BJ7se{ zeCZRCLkU?Z0A`cjpejVkNgKtF6&F0O2rle(WSPVU=*5R#m;k9cdF+D!kbB;aDbYL< zX&xC9pOB%(40OkmM_k#5wZ}s1nXP?`FklOh+=>#&|# zYx_c!qb-id#{Lk)QMm7&{5|WLvOapaTa;)O(9hrZT+KbfMOIzDwHH;1Y%agLH++*E zl6dZAD|*$kyvKVm@Z|M^a9C({L@~l66?7KD6TJ9czy0iaaJ@{OtGwX6S?bz6mH=t< zAn|VmQN%X!mB2xNd+{{Fl$(J@no76UxmDYx`*@pK1I{Udp zP8+&~LC7<38>$X)>;c+PrfrC9L)c4rRE>y9(M%F$ZbY=98o8Lxv=?Efy?169gRVH# zis)G#yW!|r9c?&zR!19-@@{Q74)0EBG_#_;?NH!0vioin3p6mJ(XherU}XUs%}5y>Ur!WC=`tV1yZz6uvJr0toD6~I<2C@{{C#6Gb;TKs*YWKt>X)zFKF)(62S!S4wN@+9L z+{faww`$otp#LZkNr{si_!uW2GTVU?t2x2h4u>r{?3_vKL&`GGeQ+qH^Bf7FTQNY0 zndz?Ca-eSfVrDhoHwoH+x6XZhAE8p=6)Bbs%^7H|1s;0tW1pmH1l%6m+{c6BkG=WB zf`W4&iHg8cqr~_`S!qyYX09Oa$xY?;9?=XYt6dl%n*nD-IMwFNe?&T(I=fokH5gWe zPJ$5WBnUI4lORMo3Bsb)Nf06>Hzt{rAR%)W>(tQZn8=N!hF|XvdQ9_AA5NYr@w0s8t*7xi;EU6Sdakh)#abwfQ|Y`PTXZ z9M|c&wg7jQ7r4W&e?=(zgybZH!ySV2VpVqRmH1!hwZu&GVx8ADtY=we=*DKiXQ;s$ zk~41Q))XhA=H?oQ?QZ-cGG(Un3yE3fmz#lfpCl&}^(6Bi zAl)(f0+2RgP6`=wCw?LGJ-o9-WzNuN3g4A<9ed+_OZ>6%{z*`<@lFVy3`&eIpHN;M z5XpZ7|D*6bh~HTr9cB_E?0LZeDLRKw&qV+__FzZgh!T<3rnWW7W>P2;DRrRjm9?Sm zmHE*2N~GFg?mll<%sB)YOF)5-6DRBg($jp>@9&C5xrpnnA>CBi? zI+5;EWVUsmB9ZP>WTEIjMWS4}orpD=Cl|O9X^UXuwFmnvDP!9F_iPd8Bjv~2BAz{_ z7I8LW`m?l%V#&gZw}>JMhb`hfL2MD{3W@_=ASl=(Dkh}SdPPZEi>N5c;A+qoasG+4 zh>AdqU>$3VAkr4WjA@G?(iXvNYl|S#7QsT%7D1#ff;Fivf+%x~pbccYDUjguu>%z+ zGH!aWd!p%z&h9=O#v;U!hb#0%)wc*a%mu@Y$w|%W zf~L|?y3G(`W!AXbl5Nh%J0eHob3{yyq)qGV&{i+~8Y0V_XBjNZOoV2cNVCk~^~qw# zET{Q{Sw1tE<@tMG$;pQ18aLC-otI^m*J@~(A8aW|7vYBEKMCPvc!Ty z4=l&QB$+KH2!^M!8gaWA-Z0VQ&~%{nf@TA? z3z`emCa4BzouCCkt%8;ST_b2I(7Tep6+mmntP!Y1P%}`opjMzYg4P3V5g$pQUO^jy zZWD9^&}wnF1*l2TR-i^f+kr+(&UXT>60==ED+S#G)F9|qptHr@?LaHUY&Xz1B#t|Q z_6oWSXpf+KfDQ_}7ihWo*aO7Y>M09^LCPZ?3QU~;VcXWf?;Q;*<3qPMOX&GP+XTgc zwh9^z)Geq8=q5qqfNm6&0NNs`8t7I*K~Zhu#K5`W#Q4f|QLQq4JX4uIo~bNJ+wWEx zJn@d;OG|=@s4Pj_6~~23Zfzm=@@Znow7iYmW1;?IfN20KV#sMB6G=IWEGD*&S{AIT z1>xMm9@NSY#=ui2_Gid`BUS-fz6y&(DlD>SRahiaVUY!|!Xl9hi>wwE7Kw7@ZW~sb z9`ho~6(umN(mWYT6XhCC@w3A7%=I?PmC-H9Ax}n#M0)g#Y(LN34|hb`!LtZ476J3u z(*m@?Zlvi&`3tx9S%;G?yssY0?=cZwP<3!|GEr~6Ky~QaSw4~4S#EplsttLLs@3q3 zEI52x*8dOoER0$2TF><0igyI$UjtmeZ2JszHTq3-q;ju&4|X>%jM|3w%18-PsNLBm z%q7}LOu9yV;BlnHb-+>42t8ajfab_{$%srhM9s~x9S-FPsrzx*xgg78JC}oMeJ=1e zfx3N>F8+KRO1}OoHS`lXJ^ZrHj>mVc(l(wP(KxEfg}}fY)CdZ3ahwA74B@g zzKJA8YKr3*ZER{YwAhmL!ZUF2SFUgS-cHy9*H!MObH+7EFNtz2C9u&b8tb< z9~P73>XhaVrpRY{AGb{=!s!qSmn%}M`6Do8Oy}db$gAcmFQ)@m^X36;0u}GnASE5G zK_bl^W7mh5NkNyR@4yn9{nYy`v@Byw0WZ&dHwb{I1s4`8a_rs~|NEEghZXJj(%! z=#oj3HvbtyWywG2(VA28``nTz(voMc^~uTRf7)c$Q~NY*&}sXgC&h%NuM$`AT6?EA zrmydLCF;A@KBe_+_I)u2zSiR8fbCUjhe&ha#Ns53Hkosv^&UJD<@jeRLtskw<2w?S zUbCpSbVH`O9}FmPz>BiGrkN;nnrSmwnqP)J_12`eS%1nO7S1PW_p#Z3o{)kE=}T0Ul)dOFDJc{sB{3=~ ziQ`wKXR2_7=_9h|2TDp7JwT8C{vHGKLf&VwZ2Rb949)3pw))$F(S7}Ps2_oG0weah zA=s7J=d^@!VNqaZ;RbYo$!dY=fH;Q+rVeuqH5i>2^WzX-%dfsl`vtcAQ$hckhvP-C zJwW-ri435APN`GTGUQnestAl^eo z9nhdLXWjbNrggYEr>XJy^k=+_P<4P;De(!1^P-XIr1!;56sBF0PD&oCKVvXu8BFfY z;(i2>9?B(&pDytf0;Lbiv&4?%8*&;iuux3;%66<-i<>4f@=WW2>I zk@%*j_yqHB71!DH;opX#T$*WF6a6azJ0wdY#kb+2u6wI0qDTs7P!HnyW zf=IO=k?2(W5mBz$jPRo3?j{@Mn$H6b7qc(gNErolSAZY#Dm;rJ9G%R`D)!5qL4N3$ zIsZB{KTK&FL-WJ!9*ZB0ABH5GZ0$sv&7jyx8_DJY0L%~mB~(BJyS>YpLj3su^Iie@ zyS+dGZBAt-Bqd*&IKl-hM!P*C%|GMNN6+fg=IFXT6_>njZ_yy#-f3PlDe<~JubB*W z5PP`SE(WXMCxqTv!9<$DxRX75TRLq9=bHOa`fC?vOu^%+Mg_j&K79!IfvTnMnl`o%nu%01Pw0E5&z}ZBUr|{5*uD%7lRTQ`vkvdj;kTN z-x+fqw#j#%>e*XQIXVP*A|zEGpYCp-!DIT%m+cQ@Kh+}|1q4#^%z4OJ1XmM-%L`fx zq~w@%(Je0e3eX&J_e~)6I}6{C>DsPoYrn3|%nsD|Q?NS;zsK-9$K$@|diCuN%Q27T zjQcqdVNH+n_^q>X7U85GBX)WfrbBxbBCSWpPMU^tbD=fb=qAMj49Ar9ad#1yEHD`p zNI6>wAIgZ|@lx*VH*}q+sc}I^LtE$S_72=R2@QG>wmO<{`(#a5vVMKTD#^!Jy?i*+ za&0JmnT2!G&s1poi8TFA8k}}Xn_;FjRh#>+)fv<8$l#pk`KMz`e?uEC-fCIBNmjF1 z4|}}yJIQ6Fnp`4Ht`jATjSp>5+zZeccwu5e|B4vMj%z^a#Z4mN!~gdmQ*u$zlH3-G zx}{96uedqKN$wTLE85bgGanhY*zwwN)-zPFS@d|ebqIX zgmj948POsj(jsuO!8rNQCcVbCND%}DQm6P>W54u@z&Ai2h~jWWVSdxbdrZB3!wPlOMC{RV-hs+M4EUf0d_iM@ogAdcIvTxF2rHAA&_`~iTe^?;c=&CN;=h2S_#}*JKlAPBv|XsCVCmL^yQKCDZg|bC!Y+|3^QhWM?2} zMy|;w(qubPOZ<4zW`J=5v;zN6nizWlIn6AG7oi-U7u(c{F*WOk?TJr}ah)71_k-wd zC8NnS74>sTnKuJlkP5*A=q$SzX(2BKMmeS|o#h#U;xWcmdF;bH2DdcrJc_u;`3y~(@ ziQJJTX@eP-+WfMe9ehI-fITtASr%~kulqFW!^6t?!s76hJVo>71cVkaL7(+w0) zP?ZNN;ISh)WqlYHq8_l(_Dt*adIVOtz>0980Rdlukhk?;_c+d9jP9M49Xxbh>eE*6 z5udh#Q9f-2BOGl7k3zB0bHA}>M6G%GyL zMshFdy{@0y0kHQFCrwZ8ubWL}8V9kMf{X1%yg#Vtnyo^NH+jze<-DKG?VD08U<4{jqZ_Vz!>%`)Zb)lJ1Rt9{M|eoo$Vx&sXw(S&j43P-^gU zR@FltKh|{CIQw=niskqfn;Soa>LATT44a;AUi~4ED&$xXGXE)lF}b!#H?)RDLq(3L zS{i0J($zbQ^W@lWuGs{W5$3me7ns)s{~O+?nD_BM)qD)0oo-6-E;N(zKGUqhdzASk z-lNm>U3?m*C&M3Y&t>1Bk8g6`-3*&?Lr~xbjHB2M#3RV>VKOIz4%?`q&ZQVcKbv>A{|n3) zTbm2I`$NeyduR0H+7Ek#1R6O3J~3I0mpE(^~I}_ zp&82&dL`#y+#R%&Qw|=f=G*g8Qkg{*E~-w2gb*`JfT%7ZCiFz5V==P}W;}Tt6IC$Z z#vn0fegHFyE-~{k-dqTYnP1?&8^4Ho6>qiu1CZM0qS$rY>=>kjRL6Rpj5oL3vp(nG z9X2cQ&XIGn5ux2-rXME5UBz;}^PW5mgNzF1*h}1opDvsfOMcn)_lTJ@SBMXJhFS$H z68{YIJVC673j}$xfr=j$iQqQ7vI*%z%7jFDuxp~~-%$vbSsd>*G+)=`Hne#yZ8P-l zt$Mph_31KldQ@($%jI^erp7i5r`e8BafUUoLI;rw9n6yo9YiX0Fvlu%5UJ3?+ESr| zNZTNj&DkB?Ix20DHUqXnY%NJjdaG0nC_G?q-kjKS;U+ zZ7f_{gG=IIIF5!+Q!4asiHz%BaR@KjaBw+Nl9|TOh3#dqRh5Tx#NA~un<=Of=%2-Q zJ&@9AIlgsMS4h+*WtnDtb9;BDGjl7&_i(tFFClWpSLqJGeg3CxrM^`1$O_|F-1V@#H<)-@NLxBi@Qp= z`-~uRk`H?u^&|;-1wvjcxg?cL6f;u7v2UZkRs3#&->(VU3gm60t`xJKFk2AepdjC?Oazs=mQ|FO1(*7-hkx#kWtk;N0QzK-CX~Zby7e(PXPJbvppo{j zB=#4l+&id7*kJ5Tg9f-DC#|WR;x_Czz@&BCH4a-Ovrx83q->E{R<=l_i!5XWy2wJL zERdOs;+Ji-1Zi`0EBneQC|+q78Qf{+U)jGENwy!~PBYm-TaSzky{O-V0FGiW=_QiG zB1A=`ISel9(`K+CO;ANPoXZ2+Gk@dd!>1zKmygXZX65@*?TCUbH5CPkG=)wKc0`6Y zoQ6!5eaKMIR04B*XgTs^;r)m=^NZz=P3x2GH8qna4KzLA3~y8Bt1;WoglC$&M+9k; z?@W{ChDdYcq{wNIv>9en^RjCf*j(i(V8PAM*zCzH@}yaCO%avJX?O z`6bf)I%y`$=R+G-6n02DGtKzVE(^niKz<#nWko&d<=1yQR`bi<`MAts4K7TU3_mew zh8?AL%y7=irZwJ0LKNe&o7x(gadu3>j8oKzBbH#>fUSc>6eoEyuVcQ5KZ z+fD>PTWCc0;2WcwkRA7ovn8^j6>$9_g>NODlR`2shDo3VlGqh1X6KD*U#w# zkt7gTN<2P7BPpo_PHFmn)JepU1*lm9$Q!Hb2(=YvPs3fzd=5yv)h_|vgkQ{j4e#Cf zMMO1=j&9$;x4O$lMQX?+fYir1u30sZ`tWq;bDY4r7LI?)@E$JX;#~6&zaCed!1w6ux#XH+f#5-(w>D@_kP1gvFEOcy}d4!=OTh_cHiVzP< z=?px^^-FpVKZduIht2-`5)Q-uo**_OMRA}$F$+k4iITKaX=M{jgK7p~R1y>jsX_l7 z1lxfBrN*DP|HvNDkU%dSja_}xXh`FEHoj0t^H<6r9L zezHTx7sv0rBu0Hs^~4xQ{qfiV_nEZ7C@a0{6pka`Yy$0XMbMe8yia&OBuM0|Rg~96p6N!>Ud9a(l4*ogI*M#2$ zW}0I;di4>Y$29 zDT=8i?S({_t}(P3kfN5z!7mU@k&uLFNf<|dhZ77Xq9uWcB9fq+am*~~hyQuNLOh_W zj)N#Sf|in4L_k1=)Nf#`NLWymkN&f|?mJn{^i_jEH;T7z)savPx9e>k33_YoirPAa zu>ua0;t=7EMsFJzg0Nmdbkp&x#z{3>MMB`zr!1Egf%cKo_2kL@&_4&I3;v$6k%~h} z;aSmvD4eZQ)gnv}In^{$$Z9 z8w%bAKE_QFRYpLhjDUrtjDScxR2HFjs6={R#yYDbQAnn}M ze?EcqZeqkBwB9K8>Rux#I5ATsFbwxIEQfql?C5jg!*2hdo0#(j!Lj?C7VwY4iZ_ai zig;5;M|;OHZ%i8JMmAOu>tw2+AU{t`2<}2kl$Hml!xN?HqS!1@9OqWA$1l$C^~ofP zxpnVFE<2B~1Il+?!7-Z1IXj=C*bD;OePBRejiXyeAvppYTdeYFBIVP}yz*%x<26`Aw zF=E<)^n$}(KzhO9-vKF?z8C1r;*LB+-8}%L7Z-BcM9&nFnJBOSPuJ`e(2Ba_)QpB# z3Zy=+bZwh~w8yAJ9#AerU61<-$tov6d+>|7{9>q;u|?vKeDNwlUISG*t};#EVj@vd z9=ztT1IZnQFgOP^k5exC9NRUAocdv5^^P?emBLHhw+d7f9b!J7| zI*|^}Sb91*BhvQD#4;Y};FYA(=IBi}D6PY>lM^R57_GwR*pNBr}sqTh8 z?WyjL;k4%slHFtH&Kt!ax$~z41-Ns0X=QLzd7^US_?keY^Pl!y={35K4btcaZ*$Jd z-UJ`uV0~OEaL1@Dfmslk#E)i+o z8IL|HF41NH{@eYUyABri*1<3vI2kj43yPwgI!u{c!))DAE`enl$lZ;U49tIY9gM34 zy86Y{EM5KLET^tqH3KOh_&UOJrpI*kYbL(4p>B-iJ=E&gw@MfRs<)<%PS{T1a-l5z&~fgSKwFaO}Y4V!KAN#P3gR1RkA6mXRgU9d^-{YGb>~q zES)a=>`PAuS{-AJC?g?KM#4NQBOy{o!qQeoLZo!YTyRbflh`C{Lz@BVOeV3pLbg^2 zEq;hTIEh{M;-r0816!J$g=y|)&RSPJ+EqoR;-mcwuR5`vapKyyb7RRvQL}KdH%q-^ zK~bydkif$3VR()$+`a&M%9i5jP*As75oWGqn7Q8j08^%_&3KUJ%{!5%7-p^uw~xL6 zK}^QXbYn=TeGq&BQ%YUt%~@zDyh76;iW;@QgF&Gk;l9M$dalMTai@!7%d7UmLnU2c ziEf2G)jjEnWF8e-L_TD2aGpep!{nd^YGU2O%@3GIIb(jNIC*X$6GPPjyoRqf5WpF|~wIM5emO66i8 z6|b)V>V~hF;hlv#-ObKXdwmMuI^F$!q{C^?I^E6o9G2DW9Go?04jB$t@B(wbz4Lx_ zG?Txa+*6%rX8|2Rd=V1|O634BkOv8qhchoM<4g~`(Y+E5+d-co_NfoLVLvJ;z$GS( z_v;Fi37QEdCBe0~atr|i9?L5$(s;=_B$T~f8-AA#&P&|>B!!oFamd6i5*M7yh0zdm zxdU*VOw+rhRpmHD%5hj;%5jKvdY7fC)4N2v49Bw8WjG?edV_SMS8ovI%GJ-{0x1Xm87;8kdn+Tnp2(wpBq^Q+r#i1lWP^VMgIujspm#k;(O?G zBR`ik9D5)6y!c}u`3pfFfhnn%rOic7C@q-~yvZ*K|6C$vS|@pQo#`gOE7mu))y%5N zxJ$$lqT{F(d$WFU$#}s1_^bpaRU#!-W==_!NIORsuy&3_+Bq`$_yB2fh=bG6_`r?r zTsAnwZ|qMju-@Q~qeb@RtT(>W-;ZscrhES|>xX-PpS`GF94=qh-IwKD>Bqh6H94$a zmdFu=88a6HslddF=h`5}Or|1B4z*xoA8^kH3HevWFv>GA$~Y5^0%8 zzlGRBCR;cvZ3b*^|I@b9pa(C)2~O|<*-Uc?1=c{>dktOsuXf4S{6ZzGWfNQ-}C z&D*H8|H_Ru*-|zaAq|;3Zl;b;mi|jwLSfs;^pIosBVT%4>;pmM=I;v{4fLKMvhY6% zDgg>hN`mYy;qO0fj+dr10++-E2MV|(F1TDfp)Bq01-PmVwq))m$*{3z5LWr2Z>}N1 zDyt+?R>^`=R!OA2I*UD+l<-*{>;K2QLldJYG z>o^w!lW}X!`DD-56Wx8o_8!WvSuB2+U)B9^9Ghhz+Usdjf@X$VEB5YIlwG^HV?2(s ziJ4j;mBiV%m5A9jKx2R+a?gQE#B6xVqO(jDP}nTSTV-KSBITwJy93l(#Y9rIJ$yXA z{TVSy2YZC81$lA72oD>}8DbL!(j6I;e|1L&K*~eci^MhEj1m+iU=CDaA^G!dK^T&N zy{4z4Yx#KJMRSf(+2Gp{9AyCKApYn|`zkG`7h@G@FGiGW=EBigV#eVVQLb4IG+NA7 z*+|KdnPLIqwp%GdhA?1nSBRl7lyXBnIE>v^h299Z>@7zxH%6e=3!tyj^|(R02)|@(Dsvit_|~o z;cN5nfSIuh&}s_n7TF_OG=0tC8ARU5!A4rFw`+;<6R};eE_85 zaS6V;f#|n7hP39r6dX*l*T|%+XsU$7hQgGH^pF4gl!+aSRd*8EP4vWe164|(Y)2Jt z)YAlcEkS#nigMo|PL0wpA)Qb@e&SVuNlNZhiz9+p@yqq3!g6nt(w&+La-B(&f+lQv zIS9m_&}OS*iLk!4vmnyWf*I1zf=D|HW>-54BHiJ`+R`09MB37rW_;j@OC`|e=w`IZ znEW%^YXYUgfi(h`od6@e(wK5or7_g>wy$Ico8B%(8kGkTX^xpLKF*#1+We)bw}T27 zFO&4>^tO+3dwB-hO3eaYNmfQVWzKBQI=58If z-iCBO6LL%}dD0>gv@u0)JrA{DFGA2MhXF`{r|n%;5aM7x5XE#%<6u)5EF}za8D6t z15%!u(m7Dno6RWgcfnoEaOLD`NEI=&6G%mq+kjLcSr0dkKB8ivEF9|QIA8(ZVbO?` zV>n)j$SrZhAi5knjL*QMqIWf3v1(aG5JoRxG{Br=k z3%@ZQS!UW^jPuxy?dxo9LcWc|oUo(ZFc)*R*&S_boYUBpuyfiVvv<sp8aH4K z>ko_VDZOodo3Dpp-z?%htQjTd~4b5L^2f@+e7WkV8T1buRL1JV|)+j!68(tAn<)&sA zz)Tf*O#u3`*w(m+4dzQ?wjM|&eKwdcirE)|ZV~jiKowDj{0$%-JnsSe7HnhYQ6QZ& z{V5P@F=jX-(0Kn1=)F9e<)MVNDROu3O)!s{IFP3FX86--g^(E!lqHI6!iM9G9P=#R z!wtKhJh^%IB=aWl2$^36a350fXh|tvX+!7UdH3qj!(Gtoo!57mp6}yJP^Pg6moUga zVj`!01u69}Y|*R#VH&uDQs=sMh-*hOi$kkdd|g*(GQP42SNFu%i1PIgXj^S)i_dG= z=uW0N0rCV9@ldN|pOa`fa`~(vwy0h=p4?Y|r|E*IKs}-2+=#jH^={>(K*Si|%3+ zcnbKw@AKX3=h0A7q!sYGwH%wjbEE`|wCq^PZw1JdxsA{n8c(D9;=TmX+wXeT+5j>F_v9Da-B zaCQ-rNq+@S9LU!#_};P4-H&qP!?(iVp+Z+ul+!G~0cB+t6~`f{m&LXe=sz)s9mA@f zF~1VCD}m0&>5Q163V@%B*{6W!h#7mS7sTwVKwVi1!wH^uCAAocM_ zAdMrE<=7SjsqG{n?Pni^Kb>z0nQ<`9GQGX6AN2Phrg3lYP7m^Iy>0raXPWd(eQ={= zYV|gIZhhXKbWBqmxKX5-`qHq=@s^Uv^^U2Kv80hZhqXvf0n!5Fl8qK|G0>S(*kwRt z1ziI4GJ5-%=pj{GlBJq0chOoP4Ta*c+HP@?<)SaS=nf!F%RR2yzX0(%&zKxzeFc@E zcOUk^JZ5ksh?#M1R|}4o;!Np+cB7KI>Zj)E9z)pxvO}7DfLfOaH7O6rN_?FEh*BQs zzvC`yn>+uVa3HCrJUrUT2lXp*2nXMMD36@1FzrnN=sC$D`XckJAT$T_j3ACxo)%OD z^g}^xm#q1{qO$T~H&|IL$1+k_c6SNfQQ9+GB2L!bO?H7~;dPL9-Ko1Mr z3baqqE}-8D@?;SegepqPf<_b4PJ32NC=XuBUNIrw2}zF>5p$Z@>=+1>qe5eQqcgl^SE3>!k&1|<92F6X zR750Qsfb9VA|k0yMMNT9btO&eswA^8HMb+Z zYzuj2w~bUI6DGvH4G(Fub?2G$ZIo*gKy3SYrqV{ahDU(O8S>2KHbQ=Z*eM~u zHUfLbLt0sl|IiW(q;9yuM=$?g6tk8UT8~?Q!f3fZgW9wMGs$~Q+AZMdqwPWHIY2kz z7Zcq+yMZF2YhAnIN_;E&ZeYox8aCvnm*Q8*k*Ypl@Rlsxi@}clLU4PWc!C#zJE3ss zG#p9vEf2+!TJ}vUo)c+lS8Fct&XKNzHUo&~wNeKV5c91?CDyWp^*AQ>SPziv*oaJ8 zeLP6h-uW@iVDxM*wx)!w+GtIkhlb^hv+!Gq--RB{{pZor+=oDszWbUS@*47%`ae&! zr0UVBRL!~~T_~?6QeMr{S6)q|Q<0Pnbt;lbsh{P`Fi^@u{j?c?`nzA_rHU^sT8!z# zg5FLNeViUSSe};LI_-B~;g2+ft5fp4O6VvCTD$^F@D=Nzq=LZ@Q1@yD= zyB5DoK|l7>|KT*EKM$>sYijFSmuZ_$aDXs$j}c5@<;teY(v=CBUmK6&@O2Wb5E7O) zCn9Z5tQu`jL@N5Q;#Bk@(mezmF6kZuBK+ZD>9gBJ9Z>d?A=Q9QEWh4vVfj}56038m zbTJ=j7Za!Nvpw)?x782q;3SNj)k_rXTj)X_QF<2UoWT3dN}?4pL&uBMuXmX6L0y=*3P^7cHz4J?YHtT|3?|hx+goGN?PT3JpQ+R{FLskKGJTi3j{NXaBb~kQsSTY-8#-%R8#<9Le{oh-m%oVchle$iBS;%H zZ3bx6H@=ocuOnMfUN}TA-LJ*0Cwm%;inTdfdvw7Et3t4BrVHG+B`(YQu?$qwbHA*y zh>3MNR_04;#Fe~cVTOwZq5it?*1oP5aS=;#AvPno9z@7&^H@D%Sl*RiT!l(tF=H2k zvDb#S7QI2&JB$8<$>Hh_0o-t*LKm2DJgo%gJ7KOPUR((F*&pEx`xXioBgi7`Hz?A* z2EwFd3xjN6a5pa$yPFo`2%9TOVJddqDQhm0VI=lZgeiHg!@|ka_~0X!JVmQ9EjZek zFmgfg3=$gU?flrXlNw7*wZWJqx^y$X5&?F4&AOyiUwCdtt;bP=xEAoTDSb=()VDVxaZ&72C z$8brM5JxhFIN*);xi*n-k4G~Xc;Nj>co%PWiLEUmA%tNGPb7pqu|-+E2bX*R>6Z^G zj;8P+6k?~&USLxn$Z3h)CG8Z)+@-QqW3+u^*NT<}WZYI<8u-(wMNlOTEDzbAWSpnn=)f65HhqEG=&fE1S=!+vUbFGA9aMJ04GqGv;8-MdSrEF;^W(u17~+e}wp!Q@C~W&J3q!m0z- zp{`-pJrWKKV%>+#$gSL{HGAZ?#~~zTAb4jsf~ur(+`g=@8h34?++riQeGUl#wUNva z^=|yribO3=CwEv{gJxA(+q<>s9@?>Vb|Wo?QmVMJVk>S;yclF}d#<&&V6iPOMi@(Z z{JydVG0?lqHDgZx=>2ur*xn^ncyoATO)V5^sUaAqLtk$B$bAcvHiO#`Hm6J6wBRfYPw>=FDR@UL0ut*8wzYD3fc1od02f@-257sThkKklG zj2^%bg^pPHg#~^3LjF-VBK zbM5f#oe#W1azW8#A=$~WUSV6?$wS;o0+N0!{?))f0k*~V!lghqVwy`%?hV1!R@h+c zroD;tsv93>Jv4P4+gcxWy|9r0N)o!fAtZk)ayNP@pKF>=>og zD5aEM6eyn(WN?Y(2J!B6a#q@R_#EUmwW{1&N~s=%;qV1}TL-9014K{dfReN*4nF`o zf#)%4z5N2|gUL7Q5EDy&wEEU=p&1r-!w_TE@@zrd`h=RgMloM#D9lc6ozuP!Kf*=~ z)(BHLSi+`MiNNh93nQA0qX|Yv_8ts71|?^d5ao-STG-wTcPEQ&_rpafr(%4guIXLM ziNG!=n?LU?noKvh6jkG&R5Jl6o?dOIr%H%OTa;C8q{aP(?B{ePi>IV}owSc!(lcF%?;83q~NhRbqMEm9ufnrt1f zAp>?N+6%HrUdRYfL$NELRHlj9D_W6!PM5%H973>m7S+HM#kTi-PPPc+oN!{v}CLyIh z^}>?L#5N=Y+dVe}RO$(`3JZOt1r0Gs5meQrb4~0~LK2XAa>v>L*Q`7I$h-ah=qbh= zx8OhQSOkB213l+c?tp-tc~atB*q#lcA|~5zzYXRPGt*(F8>Qv~{S=F)F@)a9OgrAXd5YX*x5V*zpsxtJ7fA1GdIV^l#Bmr%Cpq2)(k;TLp+;5H4R1@*P0GB# zT2TT>Hz`xoO0@4zSqI43H%QJw~T^vZah;cKPy1SgV*jN)Y z%YnWq>1zbiEoV0aC1SMw3XtB|@lBw=7I)tQ`kbI20qq3Bp-Uju?e#v8CALvi`gTD@ zK)hE4>hN7O(?yG2^c|oWw*SOLH{do2`Dd;f>v5}?6#}W&FzR9H7BlAhd`v3EOdZfo zVs<6aHl!zJJ_WQuLcSG9^L7u=jc^w+zX#I$MzSzfpjyaI2ih#5aAWzW#N9%m>jm+i z5-r_-0J=`xJqDx{_KItkgZV_AMjHim^Kho62xx=&NB})5>01Q!Phz$XNbeQf3Z!-P zRUnPyAAvNyAGqil7iFQ0m9kF*+70T)egYuP+bY-gCKuh|q9+;l+V8 zypIEEc-&yFw!JR84M@}Xbr(GYq&{8-dSevJ;D~GcA1>J27TY)3yZ}A>xUdKDn@L+GgS&#Q{ z^E13hm|3`gs$HD}{pXMT-$wRsiq%gwWBMW2xSv*w$B z1ZCHoQ$SNoOfB9Qnijk-GMn+f*mUDP-V~$6O3iG%%S z8}CZfkM}9qC;OhW1+}+#w+EL%VmpkIg#+$fwGW%5VBenDJ)Xzy9(==tzx80H7jmly z-R-f~wx7eTN_jh@tY@U+bd3UPMdAsZoirf%-y$m`!;(ERC zefhkPg&^Kh6Lu5f#$0VIoTOKD0g#^jFLzP3YkRqi76B>qY5kfz|fE_&ESPrB%NAWh#(uGt|M@eGoN@_~!k zq}1$W7g2qqhH@^@ozlQR3e*E%*nZrWY+BRQF)7}nSIflxJAvakvUhQNM;tqZY5!?;nIjw1LLGZYBwx*+HT~mEiYtyPEu1Rs8i)yAWO0gMQqlx1+_c3r#xX z4e@0t_K57|zg*m*2F+!H3W2J{b~Ml&F#~WPasX9put|_>@!t&08nk?7h;0G#v>F^t zZylTNmQSacv3#b9SsbViMTotTK)g6Q0v?LqT1sdfP*P9{P^X{-(DmZ366iC6CIh`B z;Z*~@E@(Os<+q5L4K!8IT%aj}YJjQ*EdU~ij)1EgbB&;-K$9fo6+mmntPyCUm^A}6 ziy0g48bRxUwn*NRK)r%C0^KI)2B1qNwk<%H2-*tND1NsCRZ7S^fmVsxE})fyZUJf# zbSqGWxVs%_g_!LI`i8`DC(vF&cLD7YbPv!$LH7bJ7a#RaP0WfuR0%Y#y{$9JE1BgY zb9blb;Oz$<7bk*^b#P@uE_Ybh(uuq5*YK2}*Sx2;Bbrt+xd^GkO$3Ho_za1L=bsK*#8}O1@`yJ0rOMsZ|DDMfp5pZ z^B*U6VxR-na#b^Rk*_oyBOgIIM#1C4JnIog3aQ#4r)4>m8#t(IGZ=?cK%Hmgo$Aml46EIW?@^YxyJwd{OfO=`zNQFZb>UUt{#jtA{ zSC`hc;U1qz!B&_hk)Gkus-T>k`aLO-Kaaq(R$j}aD3tKO8%J6?o35oNiuu&MFno1O zTSF_mBBqF9Iim~X)bn^=|Kx-nYGL{)mrMFqV_#X)Inly-K;890q`N-I*L2qhk?#5+ zFVS5eM7ryPoJMzj5b5?V@*&;cMWiQM$hq`H3z42^Az#xIEkt^vgq~qJ_LpPqYx}i57A~J<&p>CtApN^+XGio@gOg))Os6 zdZL9qTTiqQ>4}yVV#cKiB0bSUey=B5h;q#*V9VYh&n&Z1u4qDLUy*07g&9$<*#g9# zB+qc3k|@`F0f;?Lp7|Ra<(jVpu|LW)e{Z8)!?{cLTY2UOHp(?m0Za`Y)F_|Yk5v2y_pHL1tOQ|^|%A7;m4AXfJM|lzcvzEJI6O+*v=de;w_c&5F z|KIP4vFCX`D#sbMT}@q0lO{p@uWL$nv@~sKSlNm>zfi$<;KjFjKaNmdLTs8=BK+ZT zVv!HLXfsUL=iYk$tiEd9hyCVW62cx%V_tb}b>Z3jN`Id}QtdKQ7Y8|e6q%+Gp zRQ1cQYpPzg-q;Y)op#m}_Wxkhm$w9y|tmtst=FdpZ#i0Z}_4b`$}f(nkckU zjQzd!#9HIs(mdR~9nJ~Kz1r#vNLSUX8|GCV?wVuG3|BqWm2(F(yJchl2b~qTM#G7E zW_VklZPzm`jKua_9<>(bBLh$h`oZ4qv-_Pek4#+~awEjns|&0R;cahqMJ&##8S9f_ z-ny|c<;D#s5?%>SN5;aAM{3@3b%+)~>#mQ62{D;#!ZK4c97tCwIHFTTex@pf<^X*- zSB2`#_6rD4@2fftq%-CJ>6%fwg1X}=R8?VG3Zy>f1L-BCOI&wcGt@Nq3%Lz>^XPj2$GaetgIwc!ZVlq0pHv{y6xJ3i3o>Ipr`hQ5F>5Czd2igV)kgVBmn4TaH#i zXtkf?zm|@&B9oVTRVZs#B|{>W44DCy42kso9Lr44&k;!hicG^0L-tjnv>Cl%_R?QN4L)pRAv55EdeHb129VWx}M*+*O2^ll$#0MG>s`}Q8XLnmtD_(fN?wy(Md zGc6REX~1MEgCf!lJBehI;6t0E(}=3G(`+_6C%qz&{j*_%ik9P^{}Kn#XOfrw=`-r; zG3ID$Th*jDGT@f8p;V#%-?&>QgQ-HDiQH*ci8QNB5FbYsDs3|Nak_T9IFKQy-{Jo~ zafT$%_`x%@IX#!GTVFn$>S2Lunu#>cPMl6;w4vk?!bX|wwIPt9=!3q}J=Z0ij&syn z_*sU1M7AhWOTXBGvsJ7jR^mF0@9f8SOz-mPGfS7(&7U>N9RjllX9iZoy-l2KhU6r1 z_z$ggvcp7Zc8D}PPJ|jQ7O5mVR&CgtQc!RGZ10i6?S=eTuzg90|D)TNWNoj>wyuPO zd^W#nJ%DoxYOr%9zqU@7iMk&yxC;C8JRV<#baa8g#AG^NGZn(}9fj~BytB4C=Rx{IV{PP!=YNDj{pX1iF1)BB?BVOV6Y|91{s9R z@P|Xp@Bx{&we~MdA!{1yeKzE9S0St7j2;Gk7K=-A&$rN=B8K%a3tn{|_5UaDTi~mz zuDo}Wo12^DLZTcr)u>mEEiDlfl8`{64GsA(Q>f+zo1)G-e zZ*Re-Mf|&Ucs#Q3S^d#I@;2s(^q~VLA{{U>Z#rNiQdK&0uBvn*wUEF%RSOA3$|;z9 zmQSWRp8cYskKZ0L8bzUJ6M2zMQzQ!mu!`J}89ohFZ_Z@Oq9>in-Z~ooDI-S1u_o<5 z=BH#U#4Gpb{ghcH?uAk14d5$<&fc3g`<=b;GWMfr8*}X470>*XKi__%Uf2b81xClX z(qq8h%l%N;>r}!cI_nY5I(ZpC*jm?UYrTa+e zi!X3z(<1I{x(4w(;;*ec0_nA1VrVNF-*B9v!ANxHFx#Z^kzAmE1Wg4EYeU^u0jcfgOMy;BV9Wdi zkaD;00qH_pPA}`??;SulNi0+xDSFaF&jNi}d^ypqzOQ=70)>ACBP-ZZ2I>T5SYjqj z(IU8=B)&8WraY2Mxz+bEAmx^v+}MaXEwc}38&FUtGSv42&-ZBLMtw_w)R$8ln)9tl zCAlTr+ax@LSa?Vgayp)B6?D8Tff-}w!KFYJQWlDd_>egtE_t#b{#e=KTx7Px6r5;yNY+WF2+vatk3u-roPpcTm zh2etnN^t1AgfGY3)q973Dl}>;{z+{Hoy#rB~<O!OLQrx3rp)1+}T~LE?yON zI}#DH<7$s?4_aBSWlom>jnGDK<#_|SJ|zh z)o^~2T6WmPig&ukg$_f53B$9Go>)tSlCqOvHZ_)G5h& zQHph>U;4JP8udyTmU-(gTrp?jL=MXm4tj8hWlWt8%ZQXZ7(cRuD4)(yI^d#_yJ&W$b4wx}{8GYKwxS6obf*uZj1rGqD1)!k4!ejG zWe{+S_r`aCly>e1(tQ#S1Klqj;WI!=JM1vEyZUdSjkqmQX=%rGAHJz}PBKgcC`&9+ zW{Y{FpqSYjE3Ci3d>g*`=7)HO#gb>i2;#nW6uAhuUGl?DQ9BASufv+?ctGBxIJd(o z5w0STE2m^`<)R|z_PCn+v~$k?e@P4 zf$jSi-p6d+`g!)*;Z|oD+ZM)q6r}C5L$T7${6f|*v!1kjLKF8!$4uN~2l9q8VAyNk zz@O~(A^Yl(jmb)|&xvm@j0Jwu*0g_~-5YLdRSItRB5O>Fte24$*gFtiICCg8xLu+{ zT!?WdMdhN2A2!Fr_jsrDNL$^(%{{B`(O88 zH26WF|LB7rG;a5c6958YJondH`xMLTq%x%psZ=Yaj4<6Px*M zY|aZ~=LR%)NT%H%vY(vzbIf<*g;?G96Ila~4jPi=3SV%zLdVkGGf9Ky!o|?+e-eQ6 zfEETtF1pS`Y;D?7DWa*kTMG0e(5+=?d0+Yclc;<4m~3aK;~5Yeu|ez&A+E+VC?aEy zSX2y2Yt56LHeultW5nL~So1tW9%Wv_bDXU4vCM7w#xdr*cpeKiLNc$v8?MX=eg8Wy z*Nl&kWSe^XS4CH?@1EY(h0g%;6n&kH*Z zYH=7iW<7{t98g+Wzs`Dm;@i=JiO<^~+JSs&ObgJM$n9r^7iK-|m?%LicF&4`k?mp$ zg0zO)Ku%8FNcOpio7_|5{v+c45OL#hEIaT?iF>{i_e{neKL-d@=%pNT1t~}c1u{29 zH9$0`VPO*!CSnoXGAlep)}U@2eruQUlIKQkj=KGtQA-VFV1&YYIu*|V#uOw=j%q?e zoO##)#oAqp=c#g@YJs^JxKL~oo@)Am$H^qicwzjr}#8Br};)Kc++7<>(bf7RG;fPZs6 z1~eD7k3vlm25+ko4i~m*QlYR(iQR52gg{(+KR;DFY@b~iJ+ZxZxGlm#UmK1g9 z1j;kJJkTn@ytvW)GauX?`s0I9;@2_ThW z$Z0p?w#;wwR2k+Eh{4^VI3Fm}EWtBimf@K#23mtclsV=~xa5k_Ks6W`Hk8H3n7_lb zz{flL;`b=f!3CW8=-jli{1z4D?gBIU2#7i7j{e+7HmO!yO$ZSX(vF*VEdSJd|C| z{=glGvOjQ#n5<|OiHKArVzyKyB2tlvm7^jNkv115oC2bIm$*)DO5H&^wznC9owM0rg{8~2rGR!z( zwe1&1?JRbnN<07_Gv%!w$+ky$JS?4YRcbA;U-;*u8_>Pa6FFNjvstXYGI- zYwdU~d+?nQI%%C<#CmuIj2TmgG z%KYK8FGD>txGPZm-1=#v_iIVi`#o_ey&q)S2}4T*NGh!>T2w#S>%y@>LG5np709$j zuUu^BViCb7X4mfMvk>Q=nDr(5xWPXLhKfH2xBj;_Kej#(^JgDIr^rPEh_2$m=2z|6 z;aJ^|qq7)wY!-{4;+a@+X!8r}C*Q}sO?-rs31;`8`LF|DwkhXNfULy*6HXL59fRK)V6zkj zj>9uc&i2hVWcOgJ=t^_US$H12dWPT?c!ta+c;>=tQ?eF;3x~;3=sPFg&7YWt8M+$d zy1J3bZvYWx^l&#CERh{NAGDC$zjD<@QS3nO9}m|M{OOt}uI;^jUHuIFx*Pa1xXkPw z=rZt%sEcI?kaO_gALU;8Yp z44rxr#ZAzMCG=4w^l?V*R_Er0dXI~UzILChd z@;@-T!7B?h28x`yjD!gXo!scK9}!_QzQ8_CAr$+RRvre@IR$oQsu!*qfkH|UBHKjq z44Msi=9qi%44EBx=9;JQ%yR@sKZX2SLKyKqObR*ctV2_XOAB!dafjl}f>t__Ryq?w zNixG|rPIeZ@qpqkY)Y7XXxDD#osjUJha!0UvN3i*xD|*Xynh-wRvvWzVP#siyDtlZ zgM{~=TssT|MehD%9ftK2(3~!Kc=op-9BN!E-RKc%SRX zTy5Gh=LUk0T^OLHJxQ$n^bq!WJOxJgXN-m3x^wWuz|gEhu>9hfeyBg+DYTt|{rRg4 z-5*$|fYOK{eRVA4g?JR%GpHx7Yg$MEWn0Ta6l4QR$(cOiSKfdERs{Z{F&`r24L*h^=`*9#m-?Km}Z@=WZ z%|d!9JClkp$1_vLYXQ;X<(M9X3rUQ*P*CWZ9{2HueSDDi&yuu|Sxg2x;KBuy&vr2A>qOfjk+wtTP1_-nwnLV(wnHMN zJf@!94r?8S^62C1^W*(}y_^bhMafG0DVM<3*n8ar0-oFa!oYgiRPE#{#3MUQ0X^S& z3s(p6o>H#ZzAxDYW9FI8i3_krz7oka&FBGZ2=KQPoJsBSwmAtJeCOam71&2-yOStq zK1)+eyVHU=L_q&n@2w}8J8VB;KZ2<;%${XEpS5@Jy%0rQ3I|`~$M#Phe9sdOP9J;^ z1Fwf7bU%6UJq)}aswW;FYdNSh0ZD=a(n&#KcF1lD$JPa~wnh)jfS`a?7b+;UK~R8H z(z&~y)M)HSCJqm7&%_XrDG<5G8TzSsqC-DTfe!sN1@6!<>HBL+y7>KhSXds84WxV@ z%RNwFg_KuTo44+StP*Qj8lX|#VhC^%DKCoiD6cgwDD)*H6MG@0vo+0aE@bDeeH$uh`IpvlC=9j77%Dua}HXbzBWNSzNv zGmm=Eq#}}znr^%TNKH4!yf?l?UwPx}K>r}fHH+a4rp{wtUo^L*~uA1vwpp$W1=6pPrcXk48#5XL{ z1EgQO0_o*yNA_=@z%vtu5-H0}!!uh3AUWni;9T<&4DK5$W1 zx<<+x0*kp%5NRv%Vwgek2>}hjTQ@!R3X09!=@@qO7SZ1)l0aOf%f@SJ@Q)(lKD=hh zqFWX7j)U9RB>IzphH%SZ7k~BIB7RK7FXe--yZe_u|14qfFrO3T&KpI#P)hyS4jWm1 zdE_%FDX#$Bx7`A9|5C7IjOi}A-{5^ICWvWO#LB;3+$I41lOTU*Ho4rdwnhJzVBLp{ z`K!vy{3f30RN+_dvYY2OyYTl<6##lAD0kge5lSlYw9qt4HTRZmxUA9n<^^6477bf7o73J0?%t)&pTmV7fV*WQaV6}eWVScc|uQA)8Hi`-t5 zTt$0LBJDLW(~E z;yE217p+-#alb3=eqM500v{sH?TJnz+>Olik=*L`IJ?o>yggbB;|jAkJr>Qs=G}wQ z;D?WG3GL6--W#39?nWu5-8yHsyOG3b?4K`HcA$DcHvJo=*`5Y8h+9{aZxpvhKDqxK z_=D*g{(U`OPLtwt{|M!DRbsJmYA&H*+(KX_smM>Hg}@K#mBH@{9~nX9r)3TF(UErh z-8KmKmb1~UF+8}daOmtXjB8vsw&IyB`JQ2oTNoiUz4kt?1-8wR+15Chwl(%O#jHuq z|KHix0Bx8DP)F&9IP6{@5%M`3NG)qnwAd+b>wty@{XNjbf^G*=OBmk=Qu`NFh-kR& zKq_ufjMyP>><3ao=55c7+ch*CH!x^?l|cGN6OhJyfftS&8dN+uq)m;7B)bLpn0A1P z-4S9*dy!4wFYl4>ZWk11^4gV5@tYZ}Dz7N3Z1J_betd%bfCjo=i?_Se583WUX?E`Z z^;Z#Ju%jcoa+$ZfpLMHDpGcWLGonnNNQX)kM|7w}q%D?7WyUicl?8o994bxV;=I|d zP!l$=?KV)K(bUr3>a4duyAZpbc#PWSyAh+i+Fl0+JiO?uaaYWfm)K7z>*LW$Rui>= za}hwbfY69w2|dP24c@LycNx;iyE4m=9NBj1?s{T9a@P~0t|tYgi0kCKNQngdEY#{b zZlW<}<9Ny&OI3P%H-!(QXLBeq7wAcpS)wS99@((7vtZ1?RoGB~??gdc=0YH@`L)a{ zpr^&{N+7iyPXS&m47aa)F^xlz!gcy7ZTG{3=9eSZg}zOMmo!yPp5{Ve11u;vKk@e?^Pef&g4R2%R_elktzR52&hGpXT*_UHi6uw{ajGgoL zTSLe0v+1SmNwpGx>4Y>`;_8f+)STd`G-jiNcDC$h<^&nT%<-6sPuq2wl9M^e2^gTG z+8Nw{ol={bB`1AkpKQj+mY%}J{9*M`#5q^1tqB~p*kz%vNNFh#t@n87A-1I;(o)bs z8Q7w#I1nM|MtEq-Hh2cYWESi`jKn3k`u4NDjJOi{Bqa~!bsTQhz}GVMK&l351p=GI z8=LS{l>&L9&S&#f9}RahkcOKNq~ZF2G~5q?l<)2WQoj33AU!!~ACU6hcY!o57TA(< z*5iRT;)~cu3bYLftMNVG*`6;|8OmdSBc;U=cm~d!pxUAuPgiX*7dXe!*_s)gojc;dVqJdZJ)AUf78z?VMesg4hy8~-QL^_Og~|E;`_ zhj~d5x#b@O`ML2_|NhIW@|rTA9Wpvq_{|h9L)NIUU>3XL+&IBZVaiygsrRz(z6BRe zb{7kBG@a4MUm-*!zb;KbsOF$91KK9tYEQaU-b=7TzM~% z@?K^|dGATWd+9U6C}{AN(iU&xqr{u|fJDSuka}Ub=|>e4P{KNKQstoqKjb+M4ge=*U7WfFQ z?=C6mjl{Q}D5vNGS65U<-0j7lii#4@ix8x_3puXMa@!H9LE90Lwj-8=wj&~KM=U38M?~6= zSeM$4h_oFsvtx0)(>V0`A8tq9pyY4cjtamo{`cAu?ce@2+tJaIn~&a(cw&{R#K#C? zJL1_@lpPXxepXE`uktH5wRGw z5fN!4Vj*cGBGN|0iqu9#l)e$s$3GB24^!-|e`?sg9d@DyK8s1um8)gL5l<;r_1r@w zlr%@kJK8(+QelXU=P^{u%xB@@&wR!<9NhfQz{O6F7A;wWE@-y>bIQ08ubb;?!lz{7 zPJ2nNnS+@Z9Mp-mlY4Jejp=7(Z8PxYv``PEAc% zJB4*r3Dct=CQOeuIzt-&^kfU?CufDYh44a*X`D45zI9X(wl{Dna9}7WdVa+VNXZ)e zjQK5?bgXzR|4BRW{fcMuA4b}v%?rJJucY@-;QOewb@mxpX0@)WO75&yCh)w8P54o<(+B|0G|$9nX*)iI*$Oxlfk4)G_8* zd;vQl@GLN#KP@yj;(3hW`mm$T19)QRjkv!m?zBCFOc$mYb?-OK&${yo%8-)Ryb z>d%x2qG+s$6CFH}P*0gE73Amill`ZMfcaPZSF*q$+3@&rar+{^PLwCMhdv>0cfgHEdlVKQD=%P9 zmf;O!7*Q-M!tkczz(Vk3E51Vj+Ex50UFg`)fCi}2Gnf(|zZ~&?(Hf zR6XbbgadR{JA zN}|k+k|>eRLa_LB7J^7gipgc6xspD8MkT3HmI`8!T)(gxqi4sG89fDFwFO|DiR7~*?QU3w&lk}L@^W&uVR~@3B zg19r5lZ(2e(WD_NI~fLvb76Og%IZ=gB~l_~wv|YUlt@_tN~A(-o3oLBa>aIR87W01kQm>MRbFSey+8P0 zfr?il0X~AH)U@P34kJi=`QZfvzlDrhXfG&SI{0qJ;(-vvyTHV~_9Gn^4q}r&4q;#o zU4@)j(j}^-MeeBbRXvbOOKX8t3L>E?f{krlBtGoE#WPcso*~$kV@cKGsXb6wrkcje zR8yhYq&P~f+#M~uM90Z4(ebiN^jP7uMdk{;dxC7eFEW&$PB1^f^F-OXd@@WDC9iMh zu!J@9W8915B$uv3*U?;@vbFcFOg!<;b*l97Lw7|8DJ!vmj^H;-LKj02L~l8Wjh21+p-Ii`UBZwd-I; zA~vsZ_pERb?_eNTma*lip-TfpmxhKe4d23uY^ouPn%kP3g&drYAk)Hx(XP?gy#gE4!DxVMa;9tSg!ACX`HiW=o3IaRo;cx|m>v=QaeShlkt+q)Qy`2l^r+4H`~n z>6)6Cfd+Bw=1U!Ge2Cx5l-Wwy@BdC^YkS^{3gT=y8~!R(llkhJ9JY(kOS(yzOi5f8 zzz?|&H5oc6?~|)-^kUi~C{D;K9Zd0?vaOm7`M@8lvb@Z{WPzJkBKW``aVIPl`iqt< zxJ;MTrc9SenJzP;OqWQ7S7uX%S0Ytuu+UYdL8J|aX=QUqibVjWPkdn+OtX%GK?WJ{ zV(i*j=oqXgo9e{Fl9_S#sbpI$RCh0=pRKSL!>44YWa;Q^Wq$X?IEj!9BaJ;g&crKo zAksWAZoM-22}u(TuA>_f#*OLMLi=^skj1WnV`)ZcLAWh$GZ7PS;NQn@?-+bBbLnj2 zty|eTm0gqU6rBd7#(-|e*C{_RS6D@Y5@0F1^mmD+O$6(Kr&}ho|+a528 zQ_`rN-9?f!d)MOlLn)F3BO~rqjjU>nl0YJek_poSBGLllCwXO**d+4iua2Z>m^dvO zA}tzziWkf>3GL8l#13O+tG%zS;(#sN^+H&k6U`L@<4I0RY4?^~gUGxA*e=lvt@N01 z6s6ZfD;Aape{x7)kYDwC_EIZXssauS6Ytt2v1QzkD5*T0z@eX7nulO+A#7K(W3dh% z5zb+EVoGaM$yX3QQ{u#yKX}!x&cOH(9$Vm%B_3SAUkaB^aPcg;H9!wGyP00IlLDhx zIS)PE5}n9Kw^oORKq(7=5NaJlMZFns1Z+Y;M0E|ml9BQP0^(B^f^{)xrIIk%qr9Gn zt=M--YMD{b*eL8w;{%o6mVtCrY!QSgfpw*w0mLho=fzZW$Kq7W^ODj>oXS}WA&%7} z#LZUnC@3L)2g%uJ<$e^-beaE5ARUdc)6`CG1(1$fE(KEK%~u2IeEAoEw&4!S9GxoJ zzKh>Hdr!9#Je@=I?{MQ7&N8n9X*jM#Qf1tyfCk}inR1|wf);yj%RRTtfJobx`Fo;F zBHFCecd4M$cc1gz{=;*74M=nJ5MrR{$o5i!XQqgu1!Ar&Tg*}8>`1uhi^1fu8N{1o z&qXh9Ux2evQ5fwV6&sF{i(^XO*9oxjEriH77)x6UMEV4khR#wekjPgbCIf zfxtK3-o>g)5cOC`!Vl88C#lo7vg#PKC3(=!m_mh$64aurTLHq*ejM{l**Q~W=M33< zo@xBYz0Z&kx-&hY?$aIj?rc$CwF2icuJ4}Hv%b5pzk38qNU>q)mLF56UFHg~^R(C`wesg~wd{s6lDgFLccO!OdBiPJ`g8aBg|)&ciXH znV|lVSj zzRuT$MTM~ zyCVL+FsBO7q|b=dHMa#_cZi&n2{i2hqT#?_ri!M5i$GgZS!}?46SSM%r44vJPp>I! zTTS)cN*zhTp#i@-b@=2)0)kw}B>_+|tX$a4eeGO0yoQ`YVnUQ*Q2AVhYigpzz=ako zA=f*c0=+vVhB_4%;MKsCjWD>HfRLq-1-!szPT+LIpd}2LBs84owg47g6G|>U^^*@R z5ML6;TtV}Jlp`$%QbV)rfOK%P0cehd`wGyR=z1*kBOo21JPEW7chLMAPi;dl0cjih zGtf5NK{1=JzGJ~a)b~W78^pI9@w*!?t^mrE#l4g}+%s2n@Zc`vb=~b*cVNdp&p03v z*z;7cG3Nzqc0ZU2vC8b z5+LjxMz{$;&p;U#lzFy42of3vNd#pgBMW5~gh>^ceU$j>fPN*Y9;i@!*#uq{x7k3a ziQ8Nt5?0W#9M6@nEdu(1p!0w}FDYFD)FtnB0$m}f3us8tN}w+Z0{9=jrpZ@W(iCU( zL{3F4X+38azf2Y4B7*?)n-y$VE|wSEl|+d1gB<)CKe6aD^#Ocd@o-NbZ=EMnO#f zEI~|lgCM4Lrl3-w>4GYO>IJc$J}roKvPh7>lb<}ruP&&-j(LBm^2z=sJr(8U{w1Ce z7}7YUL|>LNTU}9B?ca$2rwYFr?N6eFIiJL>7zvU_f*I{)9o-w&{UvfnH>D1ejLI22 zE|5n(ZJ&f{UF!|i*x{+zL8M{_%UQ(^B2_`K7E}d6q$&v3k*XkwR0YABRuu%1svuaa zs)8WOGhB_pI?oqTktk0%KPe*L#NbPmXKn@}z2r+*NR(%ufEzo#e6b2hq#_Utl&gUQ z<`eA4CCmsS(89L%)wA6xkk=s(K$;G1J^(3$WND%o>~18@I)@Pttq%?E4#(z)+acu? zIeQ`+t=RlXlZZjZjucTf62F!Y0 zb?oO4WAn3g_xL-wBOHejf%h@AATk1#PS77Y-8?&c?dDJO(5HZUC1Ym*4dFht0+LKc zDgvSX7u_$B_{daN3u5i95=5r5QV`kRIzfImP%$~BflsdSYYnjwDy20~uBq_HHMyqT zKbv(cK8&tGj9GkR5`bO_vstoAU|HYvzE#ncYrCVXR!o~Vb4_oL3^#AV8wqDYGq)rQ zZKy=rP?<+v zMBesf!lg)oRbW1?3(1)mU;OqYfqW#KHJzpq=Je0&?TKF8ySBUU^5*V!eck=ATY~X; zFIF>T6#7agg6Q~d9d8q9s@*U1bG+ySeFcUbVbHTGlbSdNB7@X1#~`ifL!p##p!~<+ zr{mlqypM+F%O5#-F78ute`gXNdVM^uKTDIpnY~miMCbUkb9iIPWv-TiDbidMX|9CPX%>jD$iV>^b^!eKOq0;K+^=a{YNz!Z+X||al%{FK4RhGpxE^iXQV9Y3 zsHUca&0*2ha=3(!$d^WOgnK^jJ0~%OTnYO!)3l?8-ht(7{M<6RtljkTtD0USO|Sb+ zp%{FQKIuzWkGXqXUO3;EayQq$(ybV^bbVUJ(aW0O)wC0(FKhaYAnXjjLWALTEij*s z#!xT%#1dyiH-s8!7mKi&16*Mdi(I$@=Ej?1BF^|Xb;l0`PMNbt(I-?q{PQ&U|gd9W-CZQ+>Y)q`v}LkUi1IYt-@*OeNqFcrIx}$XwjLo{W0qKb&O{K93N6f>3N1t` zv@q)`v=Hg4ELMZA$|6$2XZmH5z?_!Fq|;|)!gnSqh4LGm<*`EYVI}$5jKU%L@c$0U z%eo3?0HlPz251nsB}-eCl&{C{ZMcInv8TTLt-kjF-5|cy zCVdn_KOkxS=!E{JyiY=ZLl6o5Z9#rQuS(g7fK#9S+nRY0w7*Ar5K(d->^9tYPQpX4 z(R-Bm3}-^0m)fI{uvuM7*hEU$%#0E?krFnus)S9Xgw0}C!X{F}W_n538P2RHeYE$) z;l_|yF%v{Bd0~8Mp1ZHbnOnaunKzGf$Ql#mGBeI|q0%@d$Pt9&k%9&c1ZZpJkprH zL31Wy0KQtb+KkVKo0f7Xke2c~pc`;Q`HaxD%JIDnzskz4SMRRRodCVV%eHyeUYy2HBf5wTnx}3?So1E-o8&T$6rQ7hhhG* z4s@(JB}&ezYyOfxT+fV3gB9ksI(uoo{kZ)erU_H#zIQiLm5lR@C)i76uJCcZ!H{p= z={st2cVk3DTK3W+Ht-Qc!gF^cdoh!wFa*C%(v46ZrsaDwkT&fJK-+K!O#`0l%Q-Ri z04vr^R!d&zs@34`i31*>#)OD~&G_gFJ zw30Nj+>l5HEQ)rNMEWk_lkio2ZaL6g&~?zv08-uUIY4dlF1uEBTLIJ}ZlniAHjpZA zIIK~+`7V&s%`TvAxPxLBN_~Ir`Th~;2Jxi;plv=w*4T2<#`b-5^Z!lmh)Cx;E8K$^ zEd0ZgEJ0MGT_9;CN72C%z~AgTN4`ytcL^jMopszGh^=?CAky2n1To$5`Q3jPH!74L z5EKErNl*#U9zkr)qtEYt8p5*9?}h|%Hfy|~dZ4+2$O%3rXg1I?L34rP^SdL@Ixayt zTi)mdS}%wspMh>Eh`)ck>uj&A*(3hHIK#`b*1UCkC|=g?OsfAcg)s7fbXNe5O;T>8 z#|45&h4TePfEEk#3uaSOry8rLq{wR3DJBdms;evNeEr0q@D=tT|Bm}24#@O6Cf-kY zTT9Mf(RG+gTaKNWCDD9}u9I0M8&uJaNJTehRYf-<9XqigbnHZ=GZ`!+7`2jw_v?b4Uyx1!Jb zDs44<*txI5{Q!Foy;|dyHfvzT8XP&Wtf!%uX5klHR2TPiD)g*r)2=$4U=#uV1s_S6 zmx|zfWbrBj5NYW%U3#eqK%a!tXTgqC`lAR{=}MDhscpD}vfxNdsRq9leco4I_3&YN zeH!;K;^nn0UMAC*Ls-RG?!E#^UuuURm}U2~)Usnosbxo`Wydt?rDaE-5yYo!U%3Y% zA^+Z6@-qNz>#KMHn|s28SHrUBrUf8;75lNwD>fa!S`rL>UIe));U}%otTxVJFfatV z>2x@VWCa7Q@)xH7>cMEv*W3lZ`>GK$Ruqt*3!9A-EN>-_jHy_AA<&c5f>AH#o65!@C4Bl6oVCB~W9p zqfT#=Y&;;7kv9>pj3NiL-kVCc10cZb_(K{{ec=6P0S@jgW3j=LY36tB2c$&ZybnH+ z;dt`R1H+M@;*W`b%D%qjW`@48WE=hrzWg6B40XL=#HU-?u#xRX_#GH7bYfuQq9;N| z?ZgnXt7-7%*QnU(ioXyoIq$%5$O+BdA~dWs;f)Q0FTX8mPExZs%2qNK4TB9J(cMxE3XDN56z@V3gq~$Iip6afS zP8s*Xmq+!;kndL&+d(?Thz1Ay=nhZtrTs9Dd40)UaBNq@2beKt+atxc;ds@XrCjuL zH4J2flJAhO}#l&bVj{xaB<1c|8m2fO*HEl~f zQ#u^1=6%IR*m^d zpjIpbw9I}WUH)=3nI3*w=Hoz}g6e?ujdq|xq{T8zfi?=_NjaLnD?Q)815&m7oj_VH z&j4vke-ESsC;F%kOiif-4SVyDSewX`!Fs;TJdF|aykpHbke*y~Kb}XKU*dVRc@58T z<`~3inNQ(4UUvEi%yYoUm{@Ej+T1>V#NONhh)vmC!J7|(Orq2PbBW6`x1v^vDxl7W3fdZocE$6@jj+g5L@+4xGh;Hq3BG{ zt=&VHdWZvA4fkcBn=zcR%r`u@?|A5LpzEYnu$c|vj;|_0dJe)tx*+~V(aMFQl#6_r z7dbjFH#}3zivoMD!jvc9y-L0t2Kt;J3hbK&k#B4gR01?8s1#_Uph}=?1=RsvBd7uB zYC%mvwjiIdUs+l1-{n}DYKg3}d}?Z_6l=+qBwHr-ZBXV(o>P?VYucdKOxk?TT74mwDf{|$L7V-bImHf0;8*llJb zl3(B~YMYsiRR<(QIv`>7>VSku2PCW_9gq;|fP@vO0}>)#TE*(srBy__29lMpYaoeq z4J1iJ*FX~K8b}h3u7M=dHIO7LT?0v!XYNK`Np$&Qu!bm4#%*Lk`R2FqB~o#c1%C!y zGMyPy`al$?IiYY{d#n8??XMoKIJo(-`@x7!v=l~sqGk53if7(_qu}mg`^~I(HXn!{ zGx%Xf^i+EXTn`l7z1w~~>$%O34g3NI8!NWcE(Df34qr%sBlvdnSPQ`T>=K&^P0m>6 z%lN)F#tbk#A~u|CnL5Z(gG#bqK3`HjMs`yd$jbPmWP8^*GZ*2h{$g&D2WX}26a}}+TJc#2g)3&5Kp9~&hPQcFd=47 zay^0&Kln-~Pbt#F?UNMASa}+|iuRYDg50)2>Ith(vC4FVu0qu{8XI)|DMXEH@S)XZ z6tk8%rUkO}Tqt=J0?i@>pzM4e|6X@}$u;05xXU0(FG36@v;clZwtlps zglk(j1XYxRBs8QSgXsh~=V%}bSbGK5J~B`axrVVrXq#Y9rw#v7?DBy~1yOCE1hPX| z4_o`Bv+;3%X2tet!}xAx!HpWXd{9Ex+$>Q=FMtrmI2W$OgJvI!)d~<&%%jpPCB-Ti z%J`y)ImmOuAPe#uw;7S|8mEMUnwVpeHt2?*I@nCh3yajT$FdtI*z-$cSC!!Gh=d~} z>TuA)LL3+&!LV9}udp25GGy9yAuuw&j>~`(PI*}qZy0ErW;tgC>uG${tXCT_DlG#^L}JhcJ!NI6jNKa6le(+M<$Ti6Qz>h+my z`Y|P!3v%86Z~Xgh$tUx2K=OhDFlS>>uGYHG7gPwhiv+P8oFWeqEpA;vs|2kCS}AA^(8Yq*0bL_+M1f+0HUQlu=n9~3 zNvT}}^i4sVfV$+}EkFg5^Xq|Dh}%}6<$`VmS|;c#KqpGLn}IsTZ5zmKTP$|$q3#tUVM^GKm-GUl`z9(od(02tb@=zzxPI2=K>r+zp z2vk<3Y%YM4e;FSZ_WAYqa7qnTog%DPR{Gcf;k^`L9is?;QY$M{ibO@y#`J;}Yxjo8uuZE{{?Sdk(a9 zX9VoOzxz`Dz5~Ap_`7$Nh-D1Uj#Y(vA{FXcfhyD!sZh`ARiU0pg?d)L3iU)P)RQz+ zs3%gPo`j=9J&_9aBr6r_iBza3(Wy{Rq(VJOQiXaV73xW_D%2C@N%u^0&KLWEM0w^7 z13p z=)1k^ricei`NUel8D*V29IKzGlIZZCs}TJf?i;^o#g?>T^o{Rh6@;boObv&sbVa#y_2C;cLI zm6zIm83Id|i+{fvQH*E#=oz{Swdl(w+hjsM-0ES0YV{Cln%!@@U!#vykKO3(#lQ%n zV*5~IV5l)P)EHLNiRAKHDN}uUAlG&)<>H7Ns~H#1!-6>tn8U)8sq91$-xL)kEKMbm zrjoJhmBGkG3L9~RX3^SFsNz5qcM9%haDWmRNhn>N5x2lmtXg3Xb_RD^w!1KJ>EOi7(q--|@;l>H72hwtB0#aF+5<8@TdA}1;^*;U(M7GBqTCyoA6YmGj zSh%UY==R5lS`PT3qz^BfEQuk`w8i{qWlecXe^gyr<2NmIKHkSb*{}zFpaKuQ5=;wC zZ<${{ZQ8m%*wg5^XjS(bZ&H~d!yO$Z&E3&~zMj@DG2zI(vE-Dc6Ddn)YL%rE>6$;5 zkFNP6()wn4NMjjB?JCh{O|V3Bf!u@?lc%h~)GjNujzfOPkV?6X4?ckFlv z>enkVa*c&IGn7;P9hkHTfW&Lx!(@kLzaF*Poz-`{;T#&=1)qUeIHv+4D#Be1yONb4 zuu6<03!7GFa9bLM5oam{26C^1$Cj}mEF9=33CP8SM^R!5EJ=Y*RUm42CZqOoG_&Y2 zG{|gE#TkG*0yxmH_VI!LVq6Qg{Rutecbe6#!=%?Dp@Li>r9QGxMGJs*Kk6!=Gr=`2 zQE*=@T8b;=2)8Tt4UPgX*Xga8r z?;JTDl*xPiM3o>v9Zat93%^z6Q&J8@8-bT4SesW~wyH}R*`mwWb&p68uF{!Brxi}5 z70%>pg%fFovw*b1iPAGO`h0{6UwP&yFb}TG2@K#+{TFGg5nmd)!rS1hw)M30nu#|C zaa(d|o;G|E#i1*Fj(q3HD}0u`$4{Ii$Y0?&NZao;xuT}tCvq&o`|P~V#+}f4C0L8o z3SZXKzp7)y)Q%~W4_VzTIIV6Xt!^e(tD8uxo5iEmO{CS$$alWKhaeMlOX=JZzEK9!rC{defRfv z4D=tes#$1S)kIp=OsG~hkybT}Myr}AeO1%vBUJV3%)_r|4EWfx*WpVeSM@dUJrpY^ zIUKsG`{g@FUe&$w9zPKkzhdH zo2k|MCer$5`DlF;rRU`I!H)gwFx-$G`>O*G2HEz_7M-f#>`NnN_M^ewGAhEL3L>3K za@@`@BMr!3j$p=m!xDTSf2)HV)oasmC-Aof!Nw!_QF9-``}~3qu81^Oj2|)yZrzYi zpAo6J60&RqH*x6PRb($-~Cf`M1}XlxC@)`C_328Wk-&^Z~%OZt0|n-Ot1>>Eyfw#S)ZU7VJrCx za+1E4On~oREFQ2-8IX;F&;{RH1kHvUha8qnVSE{}SXgi8_KsVD{vhw(0`#APz6W#z z?x6WQgjQoB8L}HMQ?`ZR@C>*H%#C>RxSpqF2X(s;W+DtX0)ze)Ag41T`SH4v*$(M z+vDYxaK1*0Mt0gXue@fh>0S$~558jKc!lE=YG1Q@2cle0f#f*GEL=Sh)22*-NOSI{ zMzW1J=rbY{fI;bYaDWUnOtl@2RvQ`IgKGanR%{rn!USOGkFJW z&R)K-U#GAk-TtN42^PyteUnb&gsXbo7A02~?Mr_gbIN%pL zv?Vx2?^PTZ6^6>Jw$U1xgac;mw$diMu?VUz#}EnBrLo2cmPw$U)_bTfoH?i>d9sSpJ0JFj60}_h9|B{Wi|cNOQ0UgbTz-Zp)R_@{)57$KcB! zjQ-LDeJNvc^fcxfpK4I^wduAZ;yVa5w}S^)C6$iM)sP1Nh?+>xk;sQSQ5K0q@a1sR z1;J4uJwxN~fpppKy`J0SK)OBsH6Z0p2Y@!>whZ;=+kk?m1W0{35v9Id60W}Op6^o6 z_fjC`YcC?@+Wa$Q#aEVT#P5Kt@(RiM89B1P1Zz2F-J4*t*5!o5;w;!c<#Jb&o^n?r<*v+~a#teduFSh~S0bHfWy$C~E0ONzB0=bG zE+S<-%mG#=K!`eCS{r@*=Zkx1i(3$>M4Y$+Hqqa(p^l$#)jmIP!PMEIfmXXd%!3i< zm$s#b}F`*9;>N+gf=%k=5=l zj|<0^;;7jtz#7VsW>400j{|*8msAlMWn7l5O4q}>df@hHal6_J7iR=_z)hR~6F}O) zp8?Va{#&4JxPy{G-F?6r=@UWdmZ8dD8#v7;yQ7y%pn&PbGbkcZ$ZP;U%3OzM*gTKt z7@6N5Yu*)iw~@zNE$Qzj+|CpiviFguxTI{Duq=te*RH0NrD_RrI!&XmUGZS7lMn~f znqc}NGHSb;-X+VL69y*9&C2bKlebK=GPRKrX(Rhk+}N;*RK>u;Ruu!0HXbIEtTEG^ zB#nnYoR7s+CT5Dl?bwB5ziThBYIh9GYq2i~)jq#?puuiNBMEziFUn%-)b2Ptp>(~$)=wdYN}lYolswM^Qu4eQ z=>2?FdmoSz+f_hHY_zxSDjZlL0do$Xx`nb($n7Xu`I|2icv!5?juA30lx-PDrI7#yO)eO%1Drm0H6Qe1&;Xd5cJEj;Y|4Y4W6hq0f=B zy%}VCXQr~f=>HOXvl|=8;oivr0|X($X6Qh^@H=lBA{}dUh(!J*v$>N|CVn=jG{e=C zN>QX9Wk#O?(oxw~AZ2bp08-{g!Csjg8QwPBL19WtdHe8NW1*$@M3$CiX5)9jT!3e` z(A!v{(_HgYxa1i!&3yA4JjZ$?xRF>|iR5Q2!m{?`LdT(I?IZFYOY}6SM7YpLuAGv& zRa44q{2G@jWi{1)`*3gJ1-2ljHG!p#ZXd2?V7cs>9aUUNrFyb*)}Hb;BIRq$i3$%y z%GX%p%GZdrbug`oe2qRM@U<$Jua&0owdmwS^RKH4GeD$qE|$o-K7~{$z10ILy>VV# zIa4Q)QV&WW7g#ZFmT;DASPsbgh%rJxdUSC}rpj{V=;AyvrZmQ^MEJ2OMl&ygD@%gD z2|Q|a%R|lGT>~rpsxh|*8jU|O{mP$+v<8?0UM_#44{CtJzAz*&ci zIl)P;9y}QbbDSVTmyFugCmbJ?rZb33(Gf(-WNPseY4P%-yl{Gyuz&iDFx=ZpjtTw0p;5aSaJe;^kn8|(Ek_}cQjaE=b`r$t}9q3TM9_Vp| zvtXqgOU(sc>7m0_r-N;eHLI9pg(t+A+QXv<){5yMUzBmjb5x@~BO9tMS|} z0@9tb*Lmn`KsO;4%Y4&AcYBCOp&ci_uK>~L4Z1-f?R!}>{h2r;O;EuAIurq|44( zr@HK%NSB?n#&y{_kuEzYJ?OG?qCA;1V^hgD-$t5=v{PXLlV-EciOh`njL@kJzEZ?# zS@7b@_KJgcqs2qJcD$G^+7729-bDp#DF>4^@f8PRX@RpeuCav_b9{(%0=c!jMpkT; zmOSj4-X~M*L7LMuwMzJIgs&wFbaZQeH{6uy zi(`S3+w7ra@3rzCDWy-4zZq3cPH7F5)l>bmcl_qbxYyzSAWr&8s{ZunBH-YN#4`o{ z8!tO6pbwAkMd?qb!Xj7VB~s#L=9GAeR2*kVI7 zB`G2$DJEA*N+;UrqsLhkL33p}M_OQc2aUrNH8peLwB$SXDp7PKNpB(d?_`^Uw{$|IC>dZtrW+bA5_0{xVY>98jnY&8|6jPNBh?EZaeZ7Lx z&C_QD)#0_TT!WAtI<7VtIyxMeqsEOOA&?HZbg8zeO)?T9*Op;p8AeRo^efJY=`Jyk zgh9+5aJFw2-&QftRLL_yYcO`APsYKf^IR_PO|&`_rU>#C#+h=$1jugltLsJImav1@l; zk6>5@!VWMKP=<{{dBBY3#4PkB|z-SEyLEq6Rj-seE@AIKL*maLps+{ z<9`CFVwKw_G+ZH&hC3B#8$tw4x@qAke08jNtrw0KqttDrQ6qlumTmXIt%yvAp&Cl?}ah?dBZHn*=n$z*jF+adFB=)It&C9@f3FFE5$T8-@ z`w&lj1J=lc#*+~2K`C=~Nkh2f>RtRux(+p`{9}m+0*bj$5b5?uf+9da737x@rcRyg zcdD6Ok?NEtRQX~be|sP0ass}@^7$9AB zZE44AYy>Kw5UG5^f>im0NXKg|W*x5)>3EHmpyM?noxUc?>GU;`GGi9jsYp@4oFM## zJ|l|8m981l!$7%YPUcbbbx98SA76q_Gul@kb?R4=FIU}mfGO%15V`-jGJ_k;?|7d4F+v-Bs%pJCAcF{T{UYnbp zU{eO2#HL#i?RASv@DcDVYYXHuHMv4Pk{NvLV8!;;8E<~??LBkseGJg5zOV<$QKDr( zY3~rOxMN@DTesVfwhq3O_10|+=ooGRA7o;K-p@k*%pv3F_PjC_EzEoKTd_qYk(C5o z65JGo=LG)JQfw5>b6XeI9W8>rKy}2a(=bAlFbKUcaltRk>m}4w`k}%p@a=>`S@%Ea zpn=t+hUd-)QkyItKx&hPG^xIS2c-MvZU_1ixUyw_0`#JMjRmJ{_yr)frt%`tZ^W0A z%{L)wK@srO?PL_fSH+FR@fATdjs8V&c^IJsx>3*ypz09aRsyLdmMejNhTAeRJe6&d z^PZ``H|V8nHG{|@e$9fwN<#^&vG&8YlBK{E4H zR$hSEbyUvZidf#NXQTE)-D-f&k~)|Uq&8D1;%$@?SOD}pDYHdDL%1z7l4Lb468DMp zB^^45pO+4-0vn1f>xuMsbw$?pg0T(sBfh`w^`zv5!*m`5rRegts&ge$ohxZVb*@Be>Vp)crap+&)CcKFO??pQ8OG$XdWJDko*9RteO}yX zN|h+jd>rW4;`S*AsXW2zpp=92YdEDTqWTE(#KM-g)hq2c_A;3L97pa;aMtk)=p0GZ zreG6$o82>|rRuQY=jtXM zyRnlF*_1M7cJ?0~OWdVSNrQ67>OxoY2-)X$w(oc;)7~>Qv&&xJWxu0B!Q=L@NCh35 zz@=P(=RZ_=DTZd=nmj#JnQ1zR(o5felbp2=J`+gotjz>cJ8SJg+NZAu(q8*AAnnty z1kyg8{iTMx6G-E`A4vQ3-vMc#{ss`k!bTVBPSKx`HdM;tp1GWKBC~d^@xGHBZVJ#pDG(z8FTi6fv>5-;49bPbQ9n(sRFrvz`-_g)T!Q*(yULQijF?QHDmO z42{L542?(`8Vgey8j&(I7PT@oB4uc-2xVwQ%FtL%%Fu{(5{YE0lSo9$fS7Ns`XXuh z^vN;zWOxcW(YCV#N0;p@GkF2-B&GM`Wp>u#l-cMcr}e*bj3mmPxjF?oNzd&*1>aoMm}RB| z>5N%3kSc0=fd+BIej}b61$_a}ZMcKxW<1sRRv`8L0g!SrN`moe4|n-}oHLP3l+UpB zD+0Bc(DK?(|VA$EEBh zzJ>e4IHe|7gBnS;fz$(~#j15{R;|Fnk5l$hDf7a5)8}iAX7&2_J(S$tPJD`pEfqg-}9SCdk#BGh50Wh_vY3OtD&c(MOC|N&6n{ zFg?}#k+cVKTUbt(yoBsTxPooU{97;_YP%YEMZc>Ei!5w{1(Q3hSX_>i8RAZ z7BAPr7=19urZYy+&=h029_Ng36hn_i#khTTSQPq^Sa?6qXDhLrLRekg+_bPog-j^q z?WZ_j4&Z+eDD<bn$3-&pDSQV?JKF_OS0po;|k3y_ipl@Gcw zIB2%eRhGhp%!9zWW+$GMiIUsq<8Up&O<&oC#=kg??Qq&={LtW0i6WH@m{27HA|(SR zB!D}^6bKp6hpiFQw-~a8m?)uwwk~@qTVog%T0|1q5Z?UQ`tkO|6aU<5m*xyjz^d9g z1Al^V@r8DMC>A~*jW8!xw^1r>KAT_*gqK+O*XRd|<1KJ-SA?_bMeec-Y~)DO99JM2 zTG-?=I{u+%MypCKy2BO~eh0;7dyZIZ4~fBpTyquN^PvApt^&#xtZ4cstbR!{Fgl_r zt*c)a49Mp7glag<O4IJZRe>~SilFsWk3!6^O*wv{tf z=+#S+S1qB~6`PIJOXDIek8WZAT(mH@=r;y4r^-{oFmZNG3tCsJ?xW$pv?p+E(T@7f0wV=6C!^iwm z!$$cc05|@w!ZRdmv2sl(aGvabC=ff{N13f~8E3wXr)B;T&!fy8;&QjR_|KfBWXUhk zH=!veojE%a9r%Q<_-VokB$3LlQ(GqUsWnfeHP3Xh<}(}yO&>j=duV#dV{jX#gl_cF zw#K0O`VKjqUOjR4GJPQ0+p_B79#}~2xi~?Bn$xpxAllr$x_bqW(oOJ~F>ujE-F@9% zi~3-L>Z0DhwU9G=d(MjBFt?WOXgs>6zTS1qE*4L!(!PPOJ4?fkLEl7H6UCjsE*{M7 zrI-~h1R~9Xn-LZSFZ!SmriYRSeqTsi2>ceWEZpDyA1{QnM=6B6;)UR5mPyvk5@|Nw z1WT&%pbtbr%!8>qEonK5^8*%ml8R#MR_dJ30YO{RV!n+yg0c_cn}Uvm@2!Gv#xwc) zf5oQz*Cl@}&A-H+`;R4-2x2*Md+wh>`KvLW&kL$UEPri#?$adZPQ)Cy=RQ^3R>JMb z?YV33c@5rGvs^`>)}*4p_wl(?;6v7MGVY(moA{bIpF2{1Hf`FGzCkW` zZ)yW)^U?-Rqz#6bKPc`VD8z=IJWh=4H&BtVyC*)kww`3gQ{og^GaSn`EzIg-Xe z!abN+ZibL7$!2rxl7F(fNH*lygd{9jwy_NagCSWUWP?M<#$IugU~}sKeeZQo_wJ)pTdsoZ7e9<1%mLY9+^;phSaLI;(BFt#>y}9}x zO};j6z$7;(x-p7AKLcT<8fJ+)fPg$Jv%Zm2;nOw1odVx*QG`dG6!C*1LoB)YLhbX} z{%)1ZGzREa{Jd*`BDmioq2~kXMDxW7zZj5CFaHaWPEG$S(3cQtmf@h!7X|eL<)Y=w zGCP5C1U(LWhn#9Ri#y* z^i`kVBl3^o$NyWThyielid%h#$nUgyJzd;(-0oUgcN3*kX;Zu>e%W4AOIca|8DBcM zEp}FVa*YmC5$P}$iJ`+(L^@1GQt2=ik!?pu{K!cx{cQ73K=+B?*KL$7r{ZlAzq{Z^ zr1g~a(CIGSz|I(`8yAA{mAT_}5t$yg5A_sA58DY4y=w&ycIbZJtSM$E(`cTIbm^X(@Pe)MXvZS7IB2uKS82iCLXu<%uT-Fh3Mr zvsZWY^t3JSn6;*T0=&s3h4_Uo>+D*3If~7Z?^xX0{1fR)tv`$3T0BmaZLR})PW)mv zQuZT-NcW)7Nl%*@ZOS(#k5W-8!8tI#DlJ1T@Q3b;Y8?#<%MLe-^+dX zx%6o|9Q0YBtkKxfy|SYR4B~GRt4lp=CX^$qOQ-laGA%(J+A&W`JEClJJ!q9FemB`D z+x!DiK>YsEM#)^2VRIE@c&{|(DL>HF4?yEhE{*5B7aGr8(Y9tyM`yZLg5F&(rflzFDZoFbd*D>A1hu*g!H z78Xa6CyTAn>*>@PW?l<}NL$@P@nfq?lx@BMbfWlu$wtYA5wHt`F{HM{XTTSGTz%yA zwrO8tv!hpqOJ42ZJJD)*TH(f(Yc9u_N=lo1E26NaCay$w+T1ZK+Pd4NVNPmv{oN6h zs6-&r%y|>Yv@rx@D~p3I)~8@Ihg)*qwfD4--NOg4fM&@hTRf0r4;hDq49funHwrpO z2(raTkP?Kkx^dgnw_SpK-6cq4$I|oIk4}%m%=z*)9qolnmaJUUTT$+rE}79OAu~Gh zAP+)Fc~*v`u032)kte_AlHOq|=1}QLr1WI|^a`=}m4%|%31z_&Fo(FqHGgcywhLMY z4o9=0hvi|Y8&jZA^9pW))i@F{_HM8ltCoWQ&i9>FO0qs$d_3!;tvxlbK?p7A7Hh*6 z4J(DYlBwT%)q1DFUfT@2Uw;b3-U`0mii=n|QGy zovpBUgFO@DIg%h}xi9i(Pc~ZK)P({b3n>NcK|65ZAth& znDBcBNZ;KDr0*^gUdzBe4Bo=UZcxEr6HKi!!~9V2U4r)teqJ!O@JyKeOBNBhV2Xpy z3=JL+pjWlarw8Z3Y16tp+LT4b_6eu;?b_>%2cLv0oUxYu5-UX%ztLTt?Tt9FihgX) z#BWW<74&26W;axbUuZ2B2X}O@>u|V{G*E6NQf_1}cm>Tk_EUx-sNMbBYuR*|?Q~3E zZSp|sZEO>CY1&vIU7B{OPmCWg(07t>{SwM6C5>``{a%q0vx2ArcHCU z?!vHVQjr}X7fg%hf=F}Wq{PVuLq?nUj9}6TH&6cv)ve%tMm_%>f%VxoDm+jtu@_x4qjT9+hM z9%;d?OltcFQ!?{6_92L1Z9^Dh7Ib~EVFrw@g%kU{SXEl(bud@wbd52ECJASrS&B$1El zPCkAu`B-&;g8Gx2kGl6;R{(H}OlJUhf`9F|xGp1GZPo(*0N_l09r6ZVi zPvjrP0otk%|^i0c;METY^<@?>&cgUD3-rMea_M!(^Ui z$}~?z$>r(rEJJ7ogqqPjXve)+1(m_Igkfii6q}{_JPc=Zj%<5pzQ>5z9rabzB2;ir zgGKOr&aJ46-g8B5T-t`s&vs`jO9nl8AHlLDDjq_jguuy+D2a%aM9c=s6Of|{ktKvE ziSkJz5~l!k%2PTOfKH4T*5=?(V$}<=)SjHfB)8o*QAl>Rk7VU|kt8Fv{^F9Xq({qB=D>lsZ}H^cf$Wyw&NyT{<yJBW%N86g{T6fTj58I2V z{9|8-5)UQj74BFAjTn$X97zcFU>L!nD08b6B~pqque>tEmO7?^m7r(We4nIZHi~$}7k~$P* z?v#Q=Nt@ z0GWx_>=J2qy-8+*86sO3hI#IGyAXovCsrTB%`{)~5rslKn?sHkuXc&Dwx_p!+O&08 zY~daM?d)2!yhK9mkvD&!jtn2lYphmFT>3dYzzir+h?FQyvR=Bzhap3*@rksq3a_fg zssc5=0T4u2S<3hEUz#?lWN6mvuq3_~-6zhYSp{P}@DQ^;`Sm=iYCegiPr@oKo~*Q< z-~wO!cxIkU!SkrRemLGGwl!k!U|oWhy-5QVER;T^JpJablMuQAp?W^!XXUvX_}wIa z9Y8TbR}tX{Qx6IBRiIn(%Q8_sqodS`$!Ekh4_8`G2tGNjFNIEQcEeF@JGE?zFd|A^7Tw6oUfQWo3S|1Mn*Muh9P% zqC|Sl=ka@^0*+pu75epM6;%~W&aazY?imwnoI3;UUma%Q*L9rVag{R&S%@;r!g+F7 z-%N2hgvg@!<*1jQ=fxReW=Up*S8^#d7cH|m`RG{j(I=@L@-)9JlugD8HVBAbs*EmJ zV&%~VOC*mjSR&E|OC+8ySR&E|ORNsMuZ~C?6H)&e#Ic~B|` zTPtnT69#x9D zVx7QN0biyf@MAZ`zF~u#DUS)$beWpj*11%U&8U;aA3S?WD+PoLNCTD(`NCc%Z}4VX?|0b90WNZNv&?kz~xek|tp<=I=1eQusTrs31&xdruMndpUSN|OAZm0Xhi zw&sE;eMvIppe0%2FG;p!nBDZ{%3G4U+>}pwcSH@Hs{}BN~vN+for_v18S6+hoQCmu8vu$uJYx1an zN7rCNyrcbq#E?c%3!1CioJKHPy*SaB+60o-ohH!7>dcAKh)8L~eDDg|tj>_((P+Ad zM(oB?*Hn0E^m&&?o;4NeXr!z^JOX*RC8?KC0u9wm9Dqd3h?0mXJ&711t-&5<`apYr zU71Jas>MDg;tV)tK?=+PbWQeE>@pF0$7$0Jw!QanXC)eYN3)M2D*yK0s}p%6(!4PR zyqxX548bZ0+Z^md9IcVhbqY^eZ*q~soz_DQt}baU#QA4A66{enA95dvZ4Ie0IIJs3 zl2<8_Dn(`{(0rgrQKPW^B_p}2H6esmtr5SYTq?cbQfXdqM>i`I*@=34V=s0zElqTe zuKq4chx^{FHPO{gT}@Z5?U>#HSm=iE(9lKQ?H%1EW#^PsReA;pR9?CEgZ?CYz0t_L zZ-$Wawel;GmMQ6_*QfyhGvvcAQ~wF$Oruk#Z-ag9%X7lGaQ?M$nR5?^JN-86mgbx& zea;zz#tgcdH4mzn)K@TN@;tljI?h7#6c*XqV4Zm~{~;2&sJrC3{CBgtWr6BIlH1+i=hz36y2UcUk92e&wUR_ z-=)@wHfZjQGs>{}G?_ylMhMp+J%HblE{F7em>e>rb9q-c+QQWf+g8iu$`Nks;Y=_f zxyd%#oyx_`DzgwNvoMonlni@`5<^CtyKCX)Y22x((j-bUfj~>SSmkxVL~d_LPoTrv zUZ;u}P&Z}WBIPI6o|9d|IQeHTH2*}JeL$El7kssBma?PS;p3yCL z#aCj9)V*$QhO_pDsnVPhX-=Iq$p8(~#gNfD=<2DtY^+ZJ+lS4Sk~9CxS*N1#|0XwQ zo|Uu1%b9m=lqYjeTgs1X28c8R&ZqHZxfn9!u)BR=v#9JPt@YT%iZLi#mdk-XwL%Q3 zmoOUfqh5~O?}K2PC*ijezkZh~JUaXEn8IFY=HZ8fF+1}>YU_wBk&ehR zUpgX7q^H4OovOcJ$+A^z&0RP&{*`L3S8`4v2G%%#4@@CbV1VtH(K z>ESW*HcWaXtv^dcmIE#2VbZh;5ovavggI>hLx!$GjV;)IfNdfi_A1q;@Nm|gpfgxT z%Krc|!5_T!r_!{OeNuwzw?fIUs0wEaF+bmxe#wg;1<0q_I{MBCROQ zjaC#Qtth0QRum%T9Hy5Q1qaQtxC}#v<{W6xV&oEx^MNXj?A40=sxUKIW@$|v#%zw)lM_y;1mG@X@{wl~{XHtzb zPc5A~#Xk`2mXpZUSTOfV`_a}5Em&>5a6_aBOSetbyYT75y4EmthQ~ZUNxLk z`y45rjH8u+Nb|z4QX<6x)FPNNB)u9^DV=^u^cMf76h{}}e~%jC*_1N8`klNp8Nv?ICNb5W^r*)o4>paP+b)HBWi`}|c zGhxWkjP*fw7H1(P=^2Tg#Vg}R(pj92xDL)pyT{3hLZvnNvw=Rq>RJNDB}<*cIAa(L`QK3s79%A? z*MeLj?Qlh=`H1V_wV+A9IPzLhFYmDyGz&_p1u3@0rj}1G^DkZ=LS*tRUOuEA*R`j5 zK>lE*AjP#(5NV}g-n3E>X{8`FwNenJuM`X!nvXurZh9F~mY%QJO>ahahTl!MA+Ce- z)k^u|$oZ;6-XmYF66EKrij;Fwrk1CQ;zOvfBW`HwR<6T%`T-l7^qn*bu53l5Y{jf8 zTM;Q+k(kO>M9NnFPMRVAJK5?pNZHVArH6M6cT{8@;yO56T`ON4Ia_^N-XmLGCn$xj zs#B!Dipt9OYe;%QmuNjhHcshziquw~B2u1WzLckkl&45ZiRtQ~kQ%?aybp%HHsrZ&tG&m>@{36d0n$ z$=FD@Lmj#M6z|xft76PMma^QnJ1QenuR;KkQp8C+I{{t{0Yzj66D!H=b!P|LxWrg= z%=l|Up@)1FIt}5FU1cBGb1sGc)um8k2J?Wniw?9E%(itj68lBNi;ku62PE1zk*k7eT3F2ju64&${WeT4<@p@CD4 zSX7!{BF(RpUKTnphDgCD&h=ftskZ>ju;yYN)>y8?%6j*K4WWTCi9MFvXUpQR?XzXH zX!~q7CdS%%iJrQu)1Xu=ZpRcsmdpq$qs)e%8r;3kN5hXJgaqgR6C^qSEDC-vH1v?L z1AEB4B<+yK{1|-5S5auuROv;e^kSOy(rsQ08KQHSqiuR4g*flN1&5{B=L}o3b7I@_ z`sU=syYe=UuXt?30@K$V>}wA7HRpVTF>^8OQ+?b=ZLn%B(|WSz#b{T}@2!^;OXKX- zZ`Q0(@s^rxc;w~vudl1H76gm81)i#phbtPKAL>P!FPM6coxyk4zAy1hxN@0BH4Wl zxQrM10K2@~k9B%ZoC7mgWh6d|6r66Y3$A}Xnq^Iv49gPxVe*@2QsFU*{Z(EEk^<^rh+Y0gS-6~9jbZ4vYjK$``9 z8%Rx3{}f11JiZTT0|sBR%>6*yG!fbb zbSvJ}dW3T%gL4MgP z^)&aXlPk*o?fg~91RKwG{6F5UwC|~%_f^`YTefkYI_vCBIu4)CTC${fMVstRA~nbu zDt8g7+{HYr+(o2v7tJE8+(o3-ow;HhurVjZX2|gR#bfc7w_o&|`SA9OPn?N|^%{v0 zjDxM__ZU$-P&YUg;R=iFyDRh@DC6W(%{Y-}yik*a0w0B8D8eu4SF*lKS1VB za$ASxZst9eJK1jF&^z5-xshG^!RX>?EDppJ_em=dLD3VXrwc=dN0--qbcr2+E-$&Q zz{M_I4$;`p!Km>xK4yzM2ckw5>b-IaQF>}HB)y2NZGqpeiz9MUL>@pg?5pKH=lR;? zi92aOn%GZxGV92~EEvrgk!H+En3E!g46m5i`0BoY)wZ|pKk3$e&#G;wn0;+P+6ABo zE8E`;uLYQ$XaR`Qmn}nv5N~78=c7NsNhK|<)?OS|l1~B2KCI+*=dhAaET4P|<_!uO zvBM*RUlD#Ky7>Zv;Hg+&S&)7Q25j8IVs2r@>#_&qVZ3IaNrLlA^5fU!VdqH8hFt3r zoLEwsVejVPc!$B)@^M;8%VO&h+Z$1BpT!`9EhPukWgue~EwP`q?)M6t5m))s<(x-A zmmON%%#+Xtd{V`}r9kROxlKV zcH|M2Jc(5DWS&*>BvP{gq==dYAX2jcJW)i=0uX8KWVXg2OURr^qYRNzKxks?auOOj z)}~f?4vpZuYU^kcp4ThGo<=?bx1-Q=Q_4ka2kc*yc#OUvp|`nqdpv6r6DGNbHgq&? zn%5}ut%%0%dpO=l`8tYU#u~?zInPi@7>UX)nE%hp*dSh)A_|uJdu&CgAxi+X z$ynpC`p2SyicMQ^fL`(D{{5a^MjW51lU#TB zL=$dP;Dxd<-R#NrI`=);;Grcd_Q#(>biT0`ra^NdbCSn>n$20v(6C$OF zlRk&z8Ny>Cu+0+vaA%~@dV>e^T603yqMYI#{cmK}Je(Wjsw%4$T+ln#+EM%p=ix+Y#b9V|6%yd51M82xYHkOYf2EALtEQ zd3{IVn9*22e4;O|f5GZsmk;BA5$kstGYnbh^i`vK=Ru?&kG_bLn&Xu}WSlk6#KYrz zkHrbH+lu=GTac!p73#}oM4N*(+wmy(g0=+hZ#N-62p9NlJmqz$0zH=nm{lVC_V9k!`|B#l%qCxCqVp%)oZfARe_kM`zT zYu}FT3C8wf_^q!j`bs?KbooRsnze{k-dBn*^D`M;o-gQ7tGJ&8owW}9Cy=&n%cV9@ zvB{7VRA~U8ZQD(7gXaIi9c3PdJ6etf3z-4nG3IY@vrPc}6Bg5iV@wWkwkZ^!Q{av@ zli}u=i{Xwl*T5ZbJ`Xq7d}3n%!_GnEi0WDN|CTz}S?-2NAmQ zL;$^JyoXk24!3xEZ{BM_d!&*%q17_mWQ{p z0nS{q&IFF)2@^vQc5{#Bei%j1e9`2KqsF|GR_%yg4LXmu5m>JAvc~{0LW%s+5Z%v8}SR9 z^&ZM;Cr`=+WJGF|oMxia6rT<$c{0!8x=eF{k4eaEycqhHtE-l$s^>!w(78*X zJ+|l_S?+wH+2|x_63l(?;>SGYk_)T`BFTmJh%!-dGOOfs=s{`G3avZOgSMZ zfDuzR$ngccslAxH=?FqgWxj$R8e+J2%9ly0KJgpwX#aQQJ@P$IC-!gd!(ow=efvw` zRaWgkJmRx>pL6F->zgiJv{>j*!Q@)~o(mOsJN2cis3s~Jg~{?btEK-*53M6F^(nr&B(94)nsAt~90 zp}Cz>pTy#RQnv3;$+o{886w*wYDe6iHY3b3lc!lGN}pwh4B4vWON&x5$R-5>wc6=K zyD=R-Qni(}DuajN<~N{;LFn|s`ckk;B{vkKg>jmod>P$x_71;xXJgN32^tvXJW(W5 zCyp`BOCZEXeCF?NV=MCnQkuS%DMIL{(Pf5B6OgtyT|nC2tOL^a=4K#mZyrNjT6Z%{ z2~eh)3paoR6Nl64{9aNr@>b_RU1^Rv7NU_P7{k*Miju3Xp!1wq}p?} z(*#)CmRthwsr01u!-$I^NO+eu>qmdIS~FOPoJvUaonbTPsTQ7BK|yUe`E81 z@B!HJ^L@&l_OucKy@V7STh4*L(GR#8``< z{p%ta8!kd}N*A|k=8#ipfU)i2xp<~1`W%FU+IaY@@!)N^ufuOHd{*F%&U)6|&TTgd zH3Ir}6HM&hBsAk$*6m1!iGMuYH$M{5@LM#Qcr1SP56$BKzh=gBj+USp37u}%nt`5re3^=Q z5qvo~P=JgH1u)i+%q6~9Xnzso3V5S{@dWk+o(McrGr%=2h_A4FE8@w+*hK_S6#cRY zUk398_6Bz0=`i>uQq#{w;rSwKZ};`_t5=(vw|Z7e@`Crpo6a!t;0==T?Zunp;p^kU z&-dA>fjtMOXgrB3vJ+)!mq~GLJ8K-lj~w^{}$f{Y8tS z&miw%df&)9g*aTsd4@xSpj@={v-AaW9}805FvIAE<%aQ)N0M|?LU zI_~u?8PU+LJ-Y_x%^CQs-3IWPn;t{CZ9oJ#$sWDy<9}um2cC=vzZwtUz^rO=?QEHW z#TbP;#d^caVi;MjKA$>(mhPhHUme1`pZ^%+wI+IF4ob{gE`{p{dyli8u_nf0TU%?W z8{zqgkXd@#Ch*6FnteZccW}`9fwU%?3@urFs0rnH0c?lt!+DHv(!h5$Ygmi_Y(*Rt zS%)X*a%AlpJT)H=8J486Uc*SxM6A);Ie27jTexOl^p!>}iTRN$DLUM5x5gJ=xa1OT zkzMtdUB%1jDbfoLB?zq_MZw{m1iBnZMF>|txd(nKV7vgNV@hL?jn6^63!6DW>+y}S zxe(|MJdtIV1F2|yV*>p!fp#X)+X*xUbxGg&UILwiAz(@}+2X0(})o^L8@Htp`+;s0^m`yp{r*H~2=mh_GW``fRKX)d#4L*V?2UWi z&Xw`AQRe%=S>~s3N1OAJvoYp!xH#???pPCtn`3?qcbxe-++6b*+&oHONXM~ok1~tl zPBfo^d$jo++8T=KF9@Fr$$76U}(ICz+Gso@~y7 zJIR~__f+#qxJ9NL?&;>Ma7)ZL;GSuI1oten32vFe;D9MNTj5ri`{7oaZEz=>9dN76 zAK_M;H{nh-nV?XO3Bo4jToZh`Ew?n=E1Zu{Z-Zq@&L_>7+C9Mnb8?$U>cTaEA%GDkG3ZLzTZ^laA zec669;|j{*KeO+$Ae_T|FTGfF9G%Qs+jT`pcNq;K--D-~$H-Z>cs22p)B)~-H=oSG ziL2}CyLwjkVs`_h_zeO$_+U%-{OoP^vl%P-rgN9mgM$pA0?b$ji?Yr*1)F140*F)z zAh)OzK&11*L6{;#cw`-_0~O+O?+g2WCG-*uSI@rJA+xVKLyl;EBbS& z4MAA=f+XA0z`nlJ>0l{|70Fo}CF+GoG!OBdcNh;|EPf;&-pTJ$%8{q+Z*Zkc@eTwc zprq!l+?!XT{YD}S@hgC+6Sih?<#l~{@ zTva#;sTj0&+M%QR?uoF}@bAm`x8ZA%JMa&I{}2B%@c*0mZ;z7iKjMnfBIpmC7u%l? zjC7fSs@VS7z-$QzPCuJe!X4YZfr7J-!xOk;%Q!IpmtVnuN5RW-5`+}ymZB%^_69^Z{onoDf8$=bhhcI8c*`mQbQ zoovl6vUX~j;^kAUg+=nlmh3?Gw%JoM27(AMR=LD-Y)ChJc5U*mgTtQ2{{lvft z`rykwN6FM}FdqJSJ@gps5ltQ`!zl4mIJUVu)}J?*QBi#Yjl#L>fA9{ZP_3C2Pg}P{ z*mZ)}!c=xIlDKWMkFI$OvgHJmd-E<7EaEJxcpcm-i><(zSkpCr3XUaTe*`juuVQq4 zd`Zotx$C*z0bj3%U!m2M8H9i7u08SK_3?rm@y=uraH4gM!RIbm44Sm&)pNyvYvI6n z5DVh;1#;g|$S($7Nh;zdDdOH>#o)jY#oTn5i}_b9rN^I*&km#fS<=N%^tGfZX7VIx zlOQZwp$Xu;93@h3uzb@%=3N;iNo-qnY;zu(qzNb&5Ga!WaiJwYh)K#{!R9^T&gMz7Vhb{PWgBHUl9_eKYr_t&Ao8o3S@Da&P|D@V*j1 z@7>t`jH~P7)30Ye#h{2azbq(u%nb(~fkuUFk`$;TR$Vzm0^92w>4(Re$Jk3UT$3N& z#uW3-8DZx&ruQ1jto1NnYR!krjH#P?>mlK0zAlwv8)|~ofL$OUSidQ9Dg4`|`Du3^ z^|a+sur5XZ*a~_2nMB*pZi`(OhL`Y@er3D%Dd^@0HNIOSq>yJX$_-oZfCqP6dM~!7 zV<{`h;GL=xN5D_fCxKL*`V`Q!BFFv<(C-9&4=9FT*!&mVm&A|SxxSGP9yu8uIwW79 ziGnx@uWu{{dRyMO14xw~Dqw0lhpexDF9WFx*npOx7}8PLtOgn*@!bHVGWEs;`Wnz= zbO2$);SW{7ev?2?0#!>auL4~@j?aw&5%jrYAT^J;3}~sO@2Uja0Q76|`&`2ByFfd{ zZvaTsd>uL^O~D;N8uL#R=sqA#!Baq*f|nDaMFUX;Fguxp z!#&;n4(?RUK;CX^V>jvlcrU7e?d2$H&XHZt{dXmty^lL-sY)6+!zLG`PjihBj#G%r zWTz$&r`10$p;Hom(}BiIRhj|RhhM5%$NGr?s?>6UrgDK|ayj?Tf2w;SJIw!&?_|sO znCdZt!U=@>VM5{;0U9l+1Sm^TCD15AOm$GuT%cS*KAo;?@|1GFSLqbrAz4*rrB(h_ zuVrPG{uvW^`L#&A=rh&IxKdukT+1@wR7)dRdJXm^QSgBfl3^Lvh zXXqm+82c(qWsrvC{XDKAYuEPCLx{k)J~DZg2-BnUxkQ>1Ck1F)&<;UX!b*_<7{Bc%M!D8vJ&i2}iGy@Q7={Wk?=j zwPizoz$GFq0trG9;sobm2hL`?+x7Jft)| z|MNHMJZ4|pFUg*2Iux{T=E z#9%KR7_zaNWzX@i#PLvE!|q|n_ixnz%TKwMNV%32QLZIYu4UOM*Agk$GS6f1b5;#7 zgh#bg_kvz8c0xHnozKJBp&83~7GF11+r>?#kI7AU%Nc zx6hQ9!NL&^#`Vn%VPGpiW8=gPjX5w}(Ki#j2ts|0VQY3C77)xVST|OOLZIRgV5HhQ zzo2hsp|vh-?YA7`6V?_rKY=w7OY}pRc&Dqsm}%*8+G0MIb_G{9*fh8X zPdf)*&chP!QR~_|qaBV|&l1*Fmq=S(W>8yQA{FbIeHH78blVc#Y8J}X! z4B}g1>k;cSAuRK8s=HS9^Miet!`94cp2O*^qZs|G|7K-cjiG(J<`r+YUa8rZ_{!_K zH?w!em#l{ZFY0G%?(cDquA7PR+1^w2=(<9hOge7;3(=}~A86*$br0#|7(Kiz<3cR< zM9@S$KD#+3Wa{NPJ!2BtK+3JgptUpbX7YJ;&6){+v{p1^ZP}Q&@xf^mqXjVC6y8{$ zft!|$=y)uyifzlh>4E5OZv8rLQ|!q>%*e0*4s!GjW*d|$z|2NIQdKO4^Go__vf+1h zd{$0FvfyKy6*~xe*@QwWPPZZDnsyZCx$)cGcG6F?(ZCS2z61Yt>s~xfX7gkw%Cu zT@Ox%PnMCQ_-qId@$);_UFdbW+e#)(6S`f6$F@Rh8|pcyb!OL^o?af~I-|S0?W)B4 zIQ-Aw%x=f04_h6c+!tI7Sh;2IoY?X5A9`1N<8?LzmkuGw=mkvoR17j_V@X28|f=AY^-9@?U)8 zw?z1z`o)+}`5Qon1jV-ITYD^YtoXnq2;nC(2OqDG-!2oy%{r$q5!B-&8xV}AUdF$G zBcm|_PH^+pAYZ*D@?F4Yow%1*5!-L!Ro`HLTbI@2+x4q5Fp0y-=jRZvlh4p?BDgUK zx+Ss$0HM3_Z=7b={!)$v^F!(_5nX9NIyT{Vi)6$0&h~iU?M6JtRTfg($MfugBv>S)z!Q7`uV(*s+cQ1y~6&`GN+J z;!-=QxrvY0p$(mjN9GG98?a`8q{2*EFW$Kl32EAcdvo!HV36McEV;y9YIwueM{(=5 zhH)F2Qsr6dn|}jOQcrjMN`Y>|FUu^3+bvDoWk9dVb3H&W1L0^npqIptaXl}7{{%E3 zem_h2u{Zi3@p~lU_fi6p2mdOe)Xy{)HgpXke&aNtDL`4K7DyZG)&$~;J@w5DHPOk0Q-kT&HNd1jXZ({Dd?x@de*}wG*}}{U3chf)UGjy?y1MZUiQ@ed*i9}lkz6Pgx%h2fju?*lyQGVhwIp^C?3nJ})FNh-?PYH?uJt>Ig^n{>Fp#Ky! z9q4z0>Jn&vBD4ue-?#`!V`&G{m^*>=YrR0fl~}F@dR)*3p#6e;%4m6IxnJ`vFR%8G zXP1{%`lrsy%c@eJs!EBgtjfQ>6EFIw^vcU7`=|8amHNdLy%|qcHTuLK>@qSW^Tqi8 zD9b>vGhFe<$86J@R&;k=F>jf-v2m%CM@u`Pk|(o{*W?uSk%}VOi|S*RGB+1ik|*eu zZF4{Bf}>uugHZLFNY!f=nX1=Bs$R1|RlO$CSu?VV&YBVFtQi?eXU&Lo){IP}vt~p( zYex3bSu-M?H6tVGtQk?Z`5KZDa-wYdRbz~`4;?01GNEtG&;h7)PMvaYR48O4H^6|$B z@WrQO2>f-48#ho)hUSlyuIS+Q^#%~JE&MtIiJUqey=2L<&bH+}&gjAYl5=t^k>;G~ zjS&CcrP;Y7qS>`6bmVA^hf)qzSb{3-6Dd`g0=<+f z3>k8Ww3*}ihr`tH^7r4=@ZOt|EtnXd1rx(FQcMh=H6jzk17{z)X<=*&f*2mLtrT;% zx4y8iwa}`K^v!X6w|ka(#b8xGaXzUt%)l;qq6i1e@pmrU6_tuP|(%qnt)W~T?M3K>lHwnzJnSZK1Q;Zi%+O*HHfdYn^{1((22!Gg`-VFhejT+KkP9c`dEY)>C^B zXsp1B>-q1Y!TS2x9*ifd{%cLJdUD{|K+pP?mQ|`(W6r{wS=hh#c(7tT+;7bcS?A~U zHQlh^YD55U`kxKp{%vb!jx_;mB?lXt7*#$|LI0l2-jl8WEPfp`9>IyQwq)(-e<0Mq zDOAyqZGD5LqJL4}d2dJm%;&lG^kLsX=>*1-FT-phXPAxsd=YXM#_}`lH4-!p=$Zoh zO~O5AHAn^WLIAswNEJ%wSy)m+iY$ja#&pBYHs69f)^NaWoOGY@xZy#uh&jf0~- zi@Mu8x=YH=@w~t&o4VW9^gud?f`&aI7zAqSj;>kC56)h>rmd5_Rg84`hJgyf3BeV3 z-PuUat}#e^Xig76QfUuBq%6eD^2)S_dlcm-I20Y#%h~rHFAB23C3|QJqse zOzGD#=RZn}R60~%8E;wjgc`Wq(UP!Xp(AR6G`Vc>?$5=2dJ8ygFeA zdcbht<-3`2+{_A9Jl40ClO;LpU(daLbKr@J!HUbCgu~BsKn>avQqJi{Z!1IsE<=+UHq(LT z3;HD78Pbr<5*}p_8xSQtC=JP2tZF6Ka)Ch>HXO2S=fNFq8sLUZ81HABnQ-ARxJ~d3 zA7^vRDti}(zEc4pSH^KJXE$^#jdu5}T-V_o{5al>6Se0g@YzI@(ZGAQh4y_D@7dy! z1ra`j_xyx?e;)54|H|@3gfBc2_sFTa0-v8~Mzu#*ufED*T4r9EmMHrp*8C7yliOjG zH96K8He}5PVa@svj5P;8T-Llk4Qn#<%9=zjYgVJaqsa_PlbKh~s_zW!Cz^#2n$_6; z%xGSsHH9%lwh7iXIo8X&UR(vU4xepVT;G7v=u#DyX63P6YsLg`Ja|_NnzjfwNqw%~ z>W6JeofwF1EsDJxLSqcWan`K7hWb`{6SI+fIlC2mmksrNgf-){ZrH~V#^k(oA4PND5_lEQJ4Is`eWK03O$-WaTVIV7k@Bcoa4!Tmh0QeybUTpt4tD|R8^1-F zY45NXh%=Sg6p%pqkUGC3evC_pK7*L8WPfp@+(+Q*NYiL+Unia={vX4e+3-o8Vw?nD z>U9jws05HJGY{wC7{BE0-$9YNyDpc8uZhR=dClS?$vGcFdAiJ0iE*m9|*X zd~`dl(POC~EXYf%BcSU!U~nevZsFBv80(#^jD4p_XOR1&EF6{qUGG-C|C(Ksv-ck7$kFlfB)!C=&K|Lq5PoAVYO|BUMjAAGmrFI&>Kj1adSK>Nx}G z*+B9f5i45i7q{x-1S}&^(xN9^9MAblJopQzGsKe!g&)i#?80=p+B0J;&3Skl9UdQc zL=RNV2qW9oqT+@}?s_Y)xP>7GQ0_H?fSeM&0n81zHh=W!W_ z`oSQk?ZgIS`6A`o2%e6#!N z^|!u|)tb}Cb+DpDvs268^`dk~Vf0<-sA$4b&5ux8Y>5YJ7q=prg{sXVoZVVoMi672 zxu3ldTsjz8PX^^6qViU=hU|*6h2s)feeBt z;pz0NIRj^)jG}oM6v(ly0--?B4KFC5)=A%Zcte9TUV!d7r^TanZUKfuYU#^j{#g&H1($M+7F4br#@*iL~wgEFxg?CZa>Pb*5lKJ;k`1yYk!vqSbrETlE{=&A6gf+br12(eLQ3Wb&L>eOq~v^{f(e?CLdSvQ zGzu-h)`q0i3{iLkAZ)?<2iA>76~caiJ6Whmwqao|fGCFg4|e)I3zq3-6^o8@PdCqD zT7tawECwM>Pjg>=D3km{{;$x_QAsl~# zWw@|RYdul#t$m@uj`gqe-F0Fh1vLvTQrO}FDt$+g64($VHYcM49He2*Ye_J(Eme|+ z2fLi%mqI+K^5qKf;aRBeVZ)W)igh~0% zl#+J==}6RXfmCLHBY|i(QA6v1;zIGcKz)Md1KlEsmRi)WDS<9Xpo@SkdG6ALUpvr7 z@%t=X6*B_%2v`L7S#l1@Y%>FRuFUF7 zSMvIXii*;5-}(l6`BwbFtHQV94_=j1MyM;z=ksAC#5>o-kwdTU#JMH!$YLSxy(5d9 zGJO=iYA^gpEp6-WzKUlp`~f~E!6$QRIk(g9wr?}UtU03~XQ>QFlx-HmkFCa7nSmqH zZE@sl-4;ibZ94HB`FgBbYa_K@NFG+}g+$rr3kW3-k2PPikw;EMPXP@)y@;3hKFzA; zd}y<(OPoQAD3*eq;J^}Y6u_tnhxg7XZS#WWh z*#LaH`7zvLS<`ri*eg2AaK5?}GpfnjKhGZ=j}V4F?oLJ>@79$1u5Pj0Ic=Jw{+Ii> zc_!~UQ|jeb)+C2pxk6$O80}>E1!t6+n7((_8mnJ>fR@1+=- zuXFg6uV=J7Q>dho@+pyrhcI&Yk**;VMIY%JA|igIYj{h zbPcTB0c#xe^6DBoNH&zN@qM(*s%voOLUj#A)HQUd?O7m=C0WT|?iX zuAy&G*U&eTbq#%kx`w_%T|?1Ox`qxiQrA$FtZRHvC{A7DUjj{tw9Ymh3&cy*1@hfUY0PSql&`s{5~RKW0` zUr8w|o9vU$4z`Z%kaZ330PrE|8ssdM;fPe%V5_0J29fF-wKaR zw^!Qc-LW$nL}&*QUXn9XUc0k7<&3oHc%qg@+MS1Bm-hn1(QBIhC#k6MURtX!)#(Ck zaHa+Nf(Cw54US{9Za!kHPY_BY7-eA$$ z_=p;TYX(v~gd6~f;TJal0JmS>{R+?~LC*o*fnS!X0PAoZCoIREEQdy?iz3yAF0Dss zEIicfM!ca10juBl6Mnx=#6oKqYMu8*AbpNDF7#cFEq!?$W0?Y^DQy7K=RN^+qkMzC zyzXqd66il9%~u26C+K>hdj;JDbdR8)!R1I6*9&uV!X%jmA1`aqjxhfWpRoCVaF3GB z3Hjy+z{g-)0!O@l4)=I-H{6ezO>j>#yWpN|eg}7wROHjlYrvMF#dEG{eLa-@w>kg#P9x65Wjo3 zpdz4cf|C2As>-Tr-=JAlWo5OmBde;MT%O`pS?%lF_+q(#3E$5_&O&^g+hoUA0_f#g z!q+G!N}9TC8>PN6KHqI}>e0bg`?dnp%d>};8=vS^>DZ{E(c2^&RpT*|5kjJ9n<)Tu zDeNeDs>w<48`a&`zVb?rZhXxi3&~i?olAGvcUhesYnJz}-~-=+*D4GEW~}4z2aAPG zfbL@=(tS)U4Bf{>qzfTgRJ!GsNVnXwAa%ohe)^5vU=)PTB2;JK&+@^%~N=TC|jx%EA&|NJp72*!5PC+W%bQ8 zh2%EFuMe?JQaWyQ+V@1R$AcBGx1w*h&7D|#wDTyyQEzt7{o+V^?srgAq#M|~AE;uJ z^x4a-x~_N8fgfVu{Z8h(BbLR^Esc&{7P~If?Yv*q&YL6i(s?hlf{T`&U23}XmYqG- zT#-GAMgwAdN(ai9ojpT*XS=>r1`3v)-DYxc%*5-<&R%A6Kf52qu-|Ewts?(7d-P89 z=J!NyLS`WY|b+^hZJD+B@*ek_j&D(%Zos+NJjZX_tO0kjC;wpd0Z< z*xZxwqfHd``omCad0`F8w*7!Qt!DpOX04r9UZ%jqDSGNa6n!R0Q-F zLCKwBRb};5Uk`|0eyVRCtg3QKMT%F|RG(7I7c2c;`c4p%$sj><4}X_lUY63OmzVi6 zR8av_AqVZ!ryTAsosEHZ=|tM4voN$vC(T{=ja+ZS0jhW3?e$48$yCnF|55`T9F@!TEE`9U4L5;XOTxqO#XU3wIW60o?7O& zds8{JtkiGNbt$4G4LCcQ=hoQ6Xwa2*;FAryvJ|zh5NTau2DPpbXA+0*<-(|EO~U->K&j8}C`_jwKC`KDO>p4F*gNm6doT7< z=OhxGunOu+_Yn3{)m-XKwfS1aQ=HTe>qrfzMwfhpMUO%qp|R8x{KitT_%U{Wjw(m2>BfZLkAT#U z$Yvn5TKX7}S}lD8NUfGq+|l^BPeJ3WOdwh})mSJnYAhRpG?uRdX)Lb*J&ZWBOeWf) zJ5Zf)wi3{1#cv#tT0A`-NS`}15y~}1w22fp=K-lu%4Ux3DSw4dihwM$6z6;0b0v+@sARxD(BC!8iEU zN34Qx2&rJ`QDp#nUFfclcn@Ys-E&j?W=ALBQ$BkWhi=`O6xC67B5m)OFJ6w>QHBiF zA6IPRzFgUm+Nxb_{8}0z2xCY*q^5SZ^Y~^|of)B6f6n6gBKFPsnSFD#Z%&xw;n8uC zzJ-y7_`)JSkr=KlW(+Os_~{VVX`AM3L+iL6p2F z38Df}D##}&Os<&fKeTvqMWtWbpIkB7FHXSAe*iLGtiH}yD$29KRFo%DQJ(CnqCAmSYtoKv5|H6$EF43~VH9H`ABiysHT(WPh%u27 z*?k|j7*pi4`JP^k!FjqLi7_J=W7trCcw)>?d~K>%j5*zHQ*Rk=n|c_89FNhhq2-<; zr0uZDJuCv1dx+A@Jq#H_?uk7gYOL7QOxcHqG$O6mUa$0126<{U^0m8wR92dYd#*~Rtn?MQURmjRM^=#eyP0 z^@2))E)wLIr>duMmb%@GGQ+!^vO4?=-hL z*!W>L2gx#-r!g40Om+&gl{{p`3ZgO@k;-H&8kNb2R3>A=sZ2(sG8v0iWild_$yn$r zlM$(rVzPu9DJIedNUR#V0EtMOp9zXnnCS6YSe`&bsi>O#xW+*vLL*3yfb_DOIbXJYNWW3>` zfRsV}y&l=JT*Tu*7=B73v_I zxq@B%@*r1|Y@a1j$7gW}EN{EqY_Fv}V626C@fMgc2sOm#QtT@Vip<9amHM2uuqfVA z(zgHuU<)Yv6^&A%P@}YF*Y?ei~SlkOV-^}15RSomKObTHA9f;umoKlKJK2kb^C?vepxzfoeRsCk1R zrs8@*%*l0vC~96Ss08R5L6tyP3#tX$D99&%R#l{|$Ezx@_6wF(*z20|VriPE{8RjR z(LaY+RX)`}4u~&S@AtKeWb_m8BWu*St>R<E|ChmWHA+XiB#An1FEn~q$hHaJ@rHmB0Z6V%&RAI5a~Jg ztowS7J(0HBEbuJ+0_Fs%WehotLh<~MgyIiFD4stup?J7+u=PHnIQ`&d{YQhBLkq>9 zmHOri#qJy|JG1vwJm$i=q32*HWhC!W_YPhzbUT8<527RZu!ZL|qo(c4+NV@ZUM5G@ z&p(`!G)rA2X(DZt{qw{O8B&tYOGwgTNYbUrl5`Oy>3kJyRgx}9CrQ&X4rZ3OlmARY ztPaOv6D%QCm#EYXvD$u)0=BiVB;Hc0Lh@Y5*K>Y8QnKig=<^(#?B|m-qn4JRy4#Hb@GYCO0&YWvUfp3_NJKkb5QENN#08l zi^|}ufK&#*0Z1ik3rJ<~ZzudX9;-6=79f?uf1e254Wu$S*MMj&0ZbkLyQGvBVpJ~w zChi@%{2ibJ$>q;Ea=G*0mCv7ZVPcqf*t6sm0Q{ml1zh#xh_4Fm(|}ZHrw*k;dp*!G zBEB~R{ZexGNuX5m{o4{o0ehRE;fn8kgO?-DgLFw3#rZKwKJE?Q{fT^y;{1;VF}HUK zqB#E}LCo#H38FavLqQbhe;{Z&(4B(nfW9w?`Tmt4zob63B1HzTPC2ayTXp=qaH>)V zo#B<{DgOX=RqD_*ynM@StMJ8?7pF{}>Tmy#1$n6mkQWzx)c#joR@IKutKzZ+Py2s3 zv<9|Wsx=U))$C zf#LzVC~ZD1@8tpQ7UYu-r&Lt?rNb!|6;u5u5;GUa;m5Rkt^=G%%tg&@ozafgmAxzK zI+nFXJA27h+ac}Rvp86=Qban zgLqeWa4Kxc+TQNz?uf*Rwp9Ohm#gNNroXq zRHxYUbD=fE=n3{tzalm~oI10jVsJ4mU{qpxQ@i+8JjSK;26k@iq^<$XcR*7kYFs^h zE?O0?-*8c+7jT8fbmrZec+1+kp)PVMRR2!SmJK$C5Orz&Vr%DMbMU53(W_`y1eQ%! zPy_mP5uAz_213;AF~^;6O{|aCl@wY#>jxVyMIs9dHEP6!4J=nnoSoJd>jdog&9i=o zV>nmD=LZY8``6lu@2x;;@&_BmXmWi6zS)Rx_I^XM6A#`OpMR6=Ba=v1;M=AVZOi;s z;Rb6D^0HPxHXlbqU5(?QJXT#&T9G0=QNor)9zuRf8C&elAWXodJbV!!yg$+8&_GDj z=EUinI&GJYnwGw~DMG~B$WR4TG#}_I_+=R?yxc3CCB`7fAeOLfy3nl^C!rh_oeHFH zOaltZbIm~7Xk7%vIuSNB`f-QEd}AV%W^pz2pMbPU%V5iZeYb4VxNbXWej@l+aI?gO z#%M8x6*Lp^PPU1|g>auReDND;_@oS0WvmLvXYE$YY+KT`g{*2!JggGiC`yB@UXZ^vt(=nDnx<@z#qL=D zL>auMEb%oiv?9zekz9|ujmuQG9hq?%j7qdE?VS}}+PSj5qis!H*Xp*FYdkHDXR+nd zb~YwE-NuBbC74gnA7!-hF67)n0LaSw0lFCWTbV1%c}qg*Z5f}v8=-v_coUmrbc-U{ zRvTd=ZG=fLZG?$beWRsK4d7H{r3G9LVQyl5Pwf5Cwx<2mB9D$lXH9kTY+yoN@p zusaC1z+&5x-~XpftKWLndZ(d(Z{}A0lvL3SDgw3K{X)B~+U(E0N zZV^e?dZ=QP^(J0wNMqv&>FdFfYmyizDcBlz;g)#VPM~9I9|!7Ph)u0$A|LBf(RGUY z7lLkppH|@8fV7JKIN`^dq<-9mrSJY3NZ&mHRAlAlFBfhmc0^$}Cl;=-GE-K`lKq{d z4OfYV#LDa#sr-57bK>)laL1Uh!_5;LJLAlKz~jvm;`5~77X+W@tvIacaDZ4D#eaX2sJrfA{m4FxXp33}`0(~

    !~xS+I{lip+-_5>k&bp8?J@SHm4A%)#@Y>GLDF;|-ZR z534MaCwzVmUlt%kj~*dISV;`A_V6(Tv#$(6qzu7?@)~7wgdrFL!Lcq9#0K0D)^3Na zBl>)M&~Ll#Y&=CH63LlnU&f21eVWwNE4Qb&ecH4oGrQKHp^q+w1g%XrSv_+}J#X1& z4`Sdrb4iQCz5IkGmPixpe1Ij$iy`3N7VDK(uun^YbxEQ1p!F7{mPUUIwSBf^&$&-HPb?Y3j_W#uvEQ5&QppgZu(f+2S&bV0(e1xTM; zlJGmGnR!?Q>XWX8Rm+ zIW{bNt0O3NGCY+=Er?$SzcXN;gmv!QzMRj5FOzZ}e*eKGOnO}}Y_qOoDR#J}3Iiqo zpS?E$)1tWAhP!zN7=}?0MkRteC@Ko#F#Cwhu#3vRj0=J+qfTTKW>8#FL>V4&U!%r7 z?h$v5Mgc`oF6v^l^&g*-9&Z`A43yHKAdP9-62n9QkDNkLPFOaksfFY1p@)DS+F9hTc`?E^<1 zal{cDK3e%*CcA3o-?qnxH&&SuOd8iTan;Nw?(rR|5O!C^?iu|~>sNm4-gd9I-$Z4E~|8pB>;d@GlEqXlHxNc9>WD))f z0(LIV%@I!?g5RNZs8&JKD>C!3k1cpEF&J=N+GxFM^KmzHv(ZgyfK4&~wZXzftNyRe z#r2y$t#WGR5tY-}8oo)l2KrN519RFM=s_Kbb7g4d9uCHKAlck4WG#B466461*`Ybn z%oQK58k&R0s~d+Rr19v{3065I703g$8qJgNTc2VM1D+AJ3Vzq5k5od+j>omA!ErP% zY~Dk5Zy!r;; z+X?I2MRTL<6O&fuVBrsk)!;E4O7!GXU3g6shw)-$h(CJv51booIw9uvUo73qk$%8} z`r7_;=T2ELYRcRxGi&Q>=VClQeBQJvGp5WfoL)Plw!UuGk;v$rVD{Wy=$A)P73UXD zcgaMiyOSp$F=NV+^ZaqGp^NtwbLuNHVhV$h!~*WwG+*h(cg`);SLgi;U;UylZA&`( zXYo~hZu{?i(+)*%f^Rlp8ldfnx#oStJ)7p6@7g8X(W-ypn?A8`uGm!H{1>gvd#;)L zi~fB>>$YjmEW}(-oylDD&g7m=bEe+gu?1R>HnhAZcZu0fSsgp`y`RUK|1+-sDGyQn zyB6Me(}Hq96cpx~4+{5eT2S;hn>Z*3@#+Nw_Q>|H;x+aEQ}O!0(gDlMic6>C0SO*m$8TD^ZiwQ=T=Vhbo=uCF z-sHALH0T}vFODFsx70%`wtL2d-iU@7Ge%$vAs5R=O{tqZ@86H_8!;u_goEYWXd=N} z^HjNqXF2)V(Rj{kLiU(kIhE`6a?OU1anYm)uiV6Eb^ZR_VG-Zzls!0S@$2Y3Anb{gcAOzCT3yg@eZ$`tZ_Iu@zXz^_ z_28A}F*;cU3fFpa0o)I^dNjNTLE*CeN3-jf9k`6|ZtJ(Ye*0ehyZVmf z{gj&?9NDlQt)OG}*j!lefEU2Y+9)%5WOU)MK;se27qol1CeO9pO zbFA6w_hoT*^%()nN_%1F)~Hd>nkH4j-muQpB3jRq%;|8JE}>qB+&Nf_D+r#9a=gb@ zWqTl}vzON*SqGd3>R!GZUN6t_o%brcJd*LH*t+*2o_F9|Zk(?347`=B#%JWM^*M6a zTWh)4hA*_Bl(zC-|Jlp9_zgq-nVB0CU5!=qeYHSNqm&aceDNd8{?`t?Uc4=7i=axTV zbzsju>tr8%mly?-E4ieB=A0yrOs@yyM8k!At%RH_^N4EB%(d!8)rq zm{V`Cu1xS4np6;QPuqZw$j3m}Z7h#i^i9XHX4veAVRO=wgO_j*+>JIH>_C<->L%lt8J35&i9J1qJJPF(zH{dU<`1=Z^>DNOdY zV_VD3M|edq=dN4!dM4pwo!~CZ*+yos-DLJ!u$lqt_58|rGrF9gog}l?w=fawnEhLQ z!C0NUE_$p|=B<_e-fH-Sv!PLLPCFu3<>N=!_!}c9oRJSkT_{50l< zg}t5|PZvMPF)8+Cuctb&R<6apV>FU*D{9wCCaTwZby-A zL~bj|<)XTa@T(x$6*;z|g5a0PDUP>96$$Qok^8I2{uu3Thu?fb2*>6( zA#D{bXwsX$hqNvB^V><&;}K-+&)S>f*_2sc_XBJRN;R{oJWNd7^ojE&9dGd#T|MZN zkaj-iwDXYyk8iDlwsO$to+bxoz`@~?G7mq|6F^T z6}#)_9dPYLphbs8Mp8uh}OU9p`aAKg1n$45bbb5^Q$aFKSgp__O!{40PZ$ED{n>>En z>^X9nYQ}4&(##^S>CXe%2zeZLjnFqU5>h8Jr%ogVrcBUAj^o_(Z)a1L&CRCNY3#|~ zX-#{jolQ;spL3U=_B7)zbx7o{Cet3*Nxi#BMcu`mx~u85hkM!vockL(;!E(O zYW#f@`RfMY4mk+NL+Gz+jB46u4z;j_xDOH^e3M>AwsE9@Gci^|uGjw=7rXcjwIzQa6f-6`;c)L?u^)Ld63 zvcn5dA*q9}lU5*AN}H$xsZ!R#?etPJ)qY+gVm<`jCE>1*mUI8$$S+Z~4wQ(|HMUxv zQ{>kjK&Nz0F<)203UyBTaa~t6q4BF3lc-G#!CME%c3J%7{I=PX@=I2Hbt{94Y6l1= zeTBjc(C9{+NyG@P)ZhYyJf1D&uPfI|A=ZOCj&YL;HmB{>1jsnw8h<`p(P+~K7-$yS>`uOKA0>BKyg8c#m(Tj=WZPw*@AU%uSY`HwUeB|K zAir1k`D|r&Oip%9uT?0kI=iaZ8vHwm4X0|qoUSW2ywdMG2zqpVal>oC7w!nn3#&Iw zzpxV0BHSXoMQdELpMm#SRy)$gC;Zm>qX|Wyy+OPj#hgDNH=q zc@-c9B^xtOb*8L$=DA132!C|UJcp18qFdwsxs3zz*KG?lea_LM8#-bBvizl^s zx2S(ko|Jw6u*X=zf0ud!um=XYf}mfNn}FPY7){&A<1)Nsz92XrGR-YRZmP(xMeab! z-H+U*m{%3Z-SYjRTM+y;(%=%J>hk`1&FzYuS{a0#TA7TTS~)$!T@vMPK~6PRBc~c~ zBc~diplP{Xk<&8xsRqsUM^1J5X-?HW207I|8#&dz8adT?89CMX3^~={VOceHMou;M zLr!tE$SLmESWVHr%aJ<{b;NTFQSPHCw-Gts5MB`Ew+@1#;_;5i4U}8~aziB7C6aZE za)nW@2Xcc2*E5p!MsASESPw3g@-A1-KwAg65`^2I4#74rn2BwB`3_lr@Cx#q1s`I& zxqR-sL-2Rxw+PyzhMnY#Vx0qiOk+!Vu43z83G!Wn%d!1M&=x-G8suZUZLmGI+Xcng zZXaBPZDDXdw%vo78 zjz*5HtvwdOHJ2ytf-S4P+`-CRUT_}vvSqaoE^@iN|DAKWDbN4Tx&C*~^}lnj|DAJT zVEmV{{eL$6tYbyI5x%@+LiypXIwnkY*f5j!!?VXq@+6+3=)_QTy`2AtxsXW zsUz10@|SbrssL9(WZj923Ww7gOSCHxST1SR(3h)C;f5U=+hQ+I!Ly@tI^5AQTa9gq z)A4+q?-yivCY_&ozOg1}-Il;fxj3thO2FxEF4wy5%D#XT-U2BXI9HqQINj~&usr`o zjj}JeWo13>W%at7g_D+0ts3^^B4JH7*wCFd?uZ(9%Z@@_x5y5|me1jK%dE<*Z5+uv zp$gndw-y5XTvEYmpI>hQqz9G`n^eZHW$%O$LC+KUpn{$!4nt1IUY?EV8RI#F!*>tMF z&c;qtAorlfooyDPuANOM4eV@+qg9n9JDbYb*)+$_rdHV5RL0-`w>q0SNdMpLZ1#BS zI~(1iosGFXc>sCB;uSUZC0JVRvhwp*_50y~(UEti_4+cKv(=(iIoY)uqaF|GjG#R}nL7Iy{?kz0EMpI!tdg1Y>>2>vWvu912!H1y6)XuM+JFk|j zHJE?~zugk$%$|#9csF-sE(+kA!Nb@43u3wE#VA~vycs47u*Qf__KI;H zAsX>l5bzQgGV+B1^rL1IJ$r%Z(PfuPF1empUR9KOtw~i;d0Eqk*at$N*PI#J-Q)PS z^bot=FBd(;uD4}QV3b%T`bpm=!koTMgw@oyi7=`bm82rhoPzLQ)6+!hU@KPhKCvA~M+I;u*Wyb7xMO!FNiqfhUB%*|9in zcFbu-ePPn(pvXNfG&_Ef4)+6e!`qZ_dpuem*F1v`r!T^m?{UI4m8ET$Wbm9Q-agPJ zJ2Ls)wBB5lUA1_H-dD76<-4u)YDXi!2R=JDdkXI>%C7Ind#Zca_r$hf@i%zwabZ}G zJ2UmB8{Suq8`XcHI3TX!mBx9v=bR4~quJ-1kJBZ5jg!n^C73ne?CY>sZ^F3{Iqd)s zBc~mJH#YhX@JZYOaQ*P#_lRwvNskr;J0kbE)SxGF$-V)BB)$&F$HB||zl`(>(Pw{u zRB~KnUM;z%y`^telXI-{s=mcdmb%fWDpMWkahT+7zxUv8kAL5R^v=hq1KlgPIz}Cc z9@h@UoOU4ATsshR`Z^x+(%11Ymlqt2!s+$)GEOt6ZIzY7DLOjUFQn;l5APS4;qOuT zx_6snbyKzMCY)w()grcQGOP35OT{^OC$%wM0 zHRVetlrJ4xv1CXEA9(({;gQLQPC5*&2m`vi3%W;?dl@DBo2K??<`~2KSa^&nj$PPJ zZkN*ADfD2{4=IYBP$vnko$Zd<0+td=zCl6)CU80jdFh#|8&OhFgO(3RzYPGFC7Iby>ul0N@Fi| z5-;%{oyk+DOgs8mymTjd6IgV+NfUSJ&*&~&RzTgwoVtreGWol6xTl4oZZ!SZ1p`dZ z;%_j}$%Ur+VQgB3zFjRFT7Z_tH@9~Q|3VM60xX2!AVM=6*$uK#Bv)OVuK5$Ye3;|Rr9!?eNmy>@-`W~XZ2M;S z?6;vI53i`lWVqj2Jd}a`lP5LiHjc`9tRuS=uCdZiNt1rVDH@yO9{78!J2sj&lYTR^ zZr;o(_0x{>@3rK<{K=DhjH#_}m^*9ybeW~*LMXFTy<?t-uuXTsvX`%WHHwCUBXuH1LuqD`bUy8qzn z{sSfy^)0ThKBT0W3{Qya!(3iaov2TVsZZ^3(`x7NOr*M6$~3>dU0CfaR%b_6najhg zG%U;ATp&iyshu@y=%_)p(`HYv9Xxk#3qjZ(qk{&4xjYQr)>tnegiW-zO=OL^JUlUG zt<@UBn_y5Ju?aZuAmjM0qk1rxhmK|Iv9oj0pt|{ZL(_l-ht$rU-GX~AMvqbVFqemO z4Qpr@@19MtbVg)}xxC<)2}_3=*Zdn};+B7dX~rdsqVk!`!;@W>Nikefihdza?($2D z!`!P~$3&ponXX6>wc<29*9%e$jeqcNl#N>&#$mlupp6gtEd zIyf3b;&E1rYi>unpoVBzVJ;6h^H_G>U7u;W>h#csQNLp@4+k!5V+T}LhV*}JWNBoC zxjfukWQ`QMis0ZfZ04L9we)Z8bmL*xqXTA}>NMukTwFc=r47zl)dq8UnBv=Nj53aI z(TsS%#l7he{D2c4Et0vspjV>E?OY!nFnCNns>h)w?^0~k0CRak?}UNv>3{aee_>&# z$O3bm{8-ip8rCfs5zZ~_OEcafDvr6l;P6CoW0mpvVYB8m)Q_qCCEhTHQ19Er{Kl(^ zswWI+IO2%fxwX^B&7Cr9o~(_?p)~eQljiXu7O&Jz%;n))iX}PDx#?#w_T8vh=JJBa z6UE*i`}Suo*^M|qp9eLH%bC4pN7b;n*^-GS|L+MW~V)z{9MIb~Me z6q}nnZQ``K3+B|%F6%pSE?zZ-hkqx|pH^PfXU_DgUw!#SADlwhLZ1`hAF;G}WM<$d z7^=gFaAfV=KGWvRfgV%!wAnM~^r@RZZpXe@q~uv)pXqbanuPFo=f2QZsReWuq= zZ8);WSPID~6Lva4pJPq7n4euI|zT2y0YqPkK?%-6Q3f>ggix{ z?{2@~B;2dY9FwQmHYjwm-|7x*z2w1^50vBC$_%yzRuai zz&|F+INm_(41;Ye%p7J2cA#~8UOr|HW4O1EFf4Ou=UawqE1TS7a0&g))E-RP4&yc^ zaS3_0?85ox56Rl zY4auyubVb^_Pp6g)E7>uo7XU9M&a1{hUs;)Cr%hxRXK6kh=B)=A2fJk-E2IUUOQzb z%(w(z#cVB1o0C^qi5$IfY>lrc_Z?||D95Fc&?C~GgFaJ_AWRZj)C%65W7Wa(R{O8F>S-rLtc$z+gW_DaY^ui`Jrv~PmnOK>9)$Uw5`f&4t{B}ZB;Odw%VeWX{%h2 zPI_aTls7mMCS&0+#v81c_Xb))qODeFW$`coypb4@_*iSQ^lek6a{)0~y2F^#3nNUr zWtL+fQ=yd3+}rT8Psx_q9pYqt3RCsjK`^#$IE<;!j)J)w+x9q?6?XjnE6EY^M(p`- z<{MBC{^?lk2wttib0E0_f8QT!$OU_A!y=r0kTvXaoc!V}0`m=S@ptRMTkhRanD#iZ zq`ZpjoJhp9ksRNUqlse+)8v$7MkLYx9?w8_0zMNmj;z~&4>#gK>%nKa3^A<&DZK)# zDfktaezOOYY0&35PHvRO&cNx6h>(9=Gwd73VjNgh6pJ0f1U*EeZ9yeakOxorFB2@A zqXQ$TJ&rvjPQJ&{FM^4B9K9cF6~-#a+3{x={LX}TVM`lKT4y^4=m}}E%{z=~W4j8b z8e7hxE<5Vow_~q9)hcQfdk1%XOLtnV>60NJBZ#;qho8Ft`d|*c1)ILXP zopd|QvDlp+3vY*zqwpt_*kYM%+hBdPZSd?rPQGnWM=(*_psg0Q%xK&PxJ+1wt@rNk zDUb17CD}F{#(0cJ<4jnHE$!T%U%WoHc$Q;YByGdCOdfkO;i*mw|KPn`thsHOoJ%E3 zcNkMTM~@iuyANK+a7Ulu$XM#uIyv^1q)O*;HMWc&I5&_Qn$p?Fl{?;m z6U_g^UT$veTg%08$)>lK^tm2c(7#OOWD!1#9OpDUOd(63?tq`kiS<*LuXUa$B01Wy z&f21O;La%77A2UdMX|gVwM>iRu{Y_}@|0IOS4w)-VT@Nf`_6sb!e%i9MO{B5Zx% zsYz!ByIok*K!tYFCH13yTvA1BBOKWN$oU!9(qhc0^Iu?5ii!Xq@9k_*jJ)R`Xf_9Vz zZyk=4XTdqEU?LW@6>BX^YMEH<1I=VC_D-?bS1>EE#fwye1p_ub6tm!ipG^A-iyx5V z@p50jnnu#($@t#G%!V2I3#~3OKGU-D;+p{DEd z*uE)V{RP7hE#{z&?Y?U*hCFZZF2}2XfI5eK`_2;J{xr+)x6$bjJ6a#!9vvsof^AGN z5ewRiwSJ$}GAsr_Gs&WVip4;|bmXZl=CBj*7`!@W@rGkDFd&Q0D5o`W&z$TFv@B>x zS*-B8X)-#?W*ZYs#DcbBtuEfts%2OVf+X3-2BugH7EFCSpNbvDWTMEyH36G&AAN*m}s|6bl@{fH_>| z8tsF%C!C0>mapYrj>XV`Eci&*1mK49X>3WB1??z{B43zd+}KMNf{9p&tw`&zq?Tc^ zA23N4LsKk<2?j$I(sseilV)Rx^|hSsSPT;uf%PfpE_3q!=oAPh%16SAo)ck zu}q0krVEmFc1(HRDVT^U%Zs)67SK4^@p*rUGvSTcY8|M>%G-640|eulZZTz_*JGwD z9Mb~=#%mx5vgDJp$VBNI$CP%ol-Br%OjTl;Qld=xKz*Ei%Oq35B$&opuOzihOb>)+ zCcF(>&-8#4)8T@78`}_T$;-pCXJV#XIkn-!bOZ>#MfBO8sbxVs%A$V;*(iAyTR|e2 zhy`uMTE``|42u!KWx{3HdZNQqEJg}OM~SY%J_jEEM9gA{V=)peG9edmcEsO7(SgOX zpdDq=Hd!Cn>bhdTU?LW@6>II2)G{pCmNMaVY(0ySDHfvzb2x0|U{<`>*$@0NW--UH z7!4M!!s#e=JaFG#h>Rr5f_9VzZz_qCj|FGSj-0I3jAd+#YU24K|9K#$Q`X5#>IlYNiY!$+KROnC$&s0 z#z8X^UVyES#n=>!@q#%QTZ|0B4txFM$e6{;j>Y(Zu~>*w7Xx+BuRIItv}zm3>lSE7 z;T<747QbT2c92X>NOp&0a6&Q=5}udGS_ebYBa&E;5u+aSvo8pceB60%DwxP)taq&S zREr*)09+>g4%^M~$230Wu^LD-q4(Hx1zX^d;yv<9)S0P9Ja(S**lAb#{oHpsFeeMf zd+cUN=rLMWAKniMJr+xzfP@~4C2v4NkHwNNA)&`qVm(HQdhEF*ch|<~F~KA}7He(M z8h|L-o^lYRnQ$Yv-eWZ>j~y%+o(1d?bPq0=wmBxT-Xob@HG8mlj4hkE8*lLYEeqOF z7G0f|>iW2M$4|jTENCm%8lKcLJ>?K+>Jh~El!KLpVurAsLj}_jTVFSaG3TBW1yhYJ z&pkhR<8loA9$n%}pBNOPteYXO0_w~g{eH`oc9bcP;&Jj!^B@vT#FVyTE%y94*?1iW zadO>eVv6Y`!C0maW0+1B%;DIEI464lm#a^TnNDy_Ckxa2K#=}@oX=27vP@}5nI7%- zI*eEu+)oFbS)Y}xZ>4|{yun8j(1#S~$& z5|!Tus0SE0NtOleD2umzVTy4q*sBE-v7oJ3>*J)BVKEiBOvtgzL#CwSHBB%!UJhg8 zHC-_4VPqHZc)n|ciPvu&)9C@n`Da62gMI0@$VjqGX-Aokb6O7Ln39)ZBBor=jkTsF zwG7i*XlBA+W9yktPsQs9!4zQ|Vqe!KtFMjY^}4fs1XyIkS5f)hfjew@b1Y~_S+Hht z^8Jg$onRssv=wU|6{{d;``3~9jWZx@J&Pk!@uGHe70Y2vyy^rq3R{jO8(x`yPRvy9 zV~4y>n0^3)1MutMJDX!lJIa)!d7L~`jwFJKn9^3PH6>O-&NBTaekVtgx)f9P=_FH! zF-*BMk_i`L%hi>B?^L2WdnP-!gBWQ>PzcOd5Fd|UEAI09ZOfz`WqK@CqU4!!BoR!+ zl(u56MUe(Gmg!9V&V;|h*2i>4s%6d+3|l7GQ77I~UJ#?lI2NII3)H3~RHgK8n6l^_(-=}Vag+0CVUE8AFp{SrVWCzOdZBBoi7+J?6<*n?Uh&Dh+)h#`M@!qFHC!&ps(?F zFAsK6YR@4;61GyG!RV0oz`Qm8dtj0GThmNGvPXHJ@@%3?#Btn za(5WReSu)AvE|y}C2v2|Gv>aVXuX?utS6EP(& z)*2eCAZN!GjzO7_M-9((L5k@Kg0V~;#xOlmF{pe74k?vEtfs%zn$uwO6{cUq6N-cD+nC}Ro&?$==Jxu2-q4KJQ4WkSy5 zbHHoZ2^a4c^E%Ph`Q)GwnEheoR^Wd3l;>q5NIS~n$7FpB3&BJzXe-v@Qyg)!5#)%P z39rP~vp6}$VxeGG2#ei=%YXmbxiO37j>ST-Xcdl!5#kM#`ZXeF-*@8%tCDW zp!xGbht4t6b{r6p&Jd=v!E_;hRr9tfNtP+?DAN~{b#_eKV837@rVG79%)OG-GEC0| zE+hBb_?VuNV!A{ymZ`%Srj3GGh;3VpE>qj?GB{>h<(M`K(<}<&5&FZIJX8D##ydLd5|RFxO&y*gXu(UwLMUaGi~d!^8{miio+O>oiCU|Y-wl9Q`+1fTYTLyJzsi(J%U^y zT0GYH($7zoexYD&=?-H`zeq6av2BljdUSoC8?~SMc)frowdwIn-%kR=!S{~EMG~*y zqrx9RI))$ClVtDQyBLyW&%G$>x#cAlf+t3Uxoy4(uqlKe*t^TC%H_T|#n`*)E&(dp z2c2d1xGL>~g3&%$rDdtawkUc`TNFR29Vb7pV;>Yu)S}2X*7`cBWm?pwz-2=AR^L>$ zhPFjrCKwx2hcPkbS*NZxx5a7y+tUg@iO1eP&SSrlSiFc>oCfr%Z!{N+%f$}oYUIRG z^jA?VDvERzC8mvdz5;hYahjwO>-j5aA?$%I+bZv4bavqR3fyf(Ey0NAE96-UFR`8{ zFZKLCl0I~!ABBR6JWp=1R)!ORDB0e`nV25mz2~)t*7Ls>jP<<37|&lNn1$H3#WAFJ zr|WTJjQ8vT&huA^=Rbri<^i|%O~2pvf~&D7*$b|UJzrXhy@AYwoaZa>+;Jqap1%gt zr01O-dcFdWK4ZUN)bkZp`0XXu^W>$TZ=3X?^E{82f{8p&Zn0KgQp>dYYk|vzw_xi% zuQjxuzfLgL^A2M?f4yL;vE_@d#%CXRJ@$OP^ZfPV`M<;SJiea)cI0_;XDsa~)6J4~ zc1$T0OvIG7Vy!MoEyMH%;4~Liv2Y=hFAN=$!QE#er zvoB(_H&qt*MIPscu>^0{=p0FG|GEv*OxT-S{B?O_^-yOS{i_o1Y9T+tNdKxVEyr&! zvHgooH5NURUUjjcb-_fjAlq1L=cJa21tt@y;WOB>uQO>4ZL9k&q{&w2FeVmv2&Va1 z6l_MjL2!q}f}c2G?T&cAxmYa6o=j+CaYr1BGMzsY<6==(j69A#v81A0VxbZni#vfy z#===QgRpmlCjVl+F0Bz zn2y+b?>UT##XW+VgDv~Tg?H_`e~cdFVsVeeVjyBM4Y(ga^w#WA=3cR5V{uO$i%Pt# z0sDz@v8XIT-b(PMIf;d0Y%J~rE*T4F8L`02=p+_`kyzmET4GrxHWp;6vFMZZs)>bQ zqF9h^tW}iMGX3IysUeU1zF%k!Z7gu`1`8VthcU5uP%u6ge=lic#;6lrEFP3t9E?~T z1@sXgHy4ZFi5(k@2cuY2^(~WH5~H!G>RXCD)~#YmNu|U>B{mih0h5e{v&>jvMooT# z(OAfHt6pMbL8cmulB8EnECdt9f^1{0vZR)Y#luoVwtOE8t)Y#@?*(IH;V>o^j|gTV z+`A=4`Zi~bLW$nj_qbR*BC)t0v6zot^FQCo(}vHnp`ix_B`wSpCpWTNMD-@j(vpjhi$yP!=VXT$+-+pORGabkil(8k>?_pODxd_Y^cUp&q9& z)4AuE-F$6u-s!Z6;aUN`T7nNV`B>OK__WyB3)|NC8~@GxTV348QL8v8gj6sXGbt&< zZ!ckP4+dRQA$@4hFBm}`MJw|hME>!s2b`e_CK^RKPQ_aNl3HdI{R1>JAwMqRo1xa( zj-t;9hWi1Nt{)(+}65}o2>Pr8UmTpFgmqd%ZS?6c^^tt&@(I`<|u5E)D9VPzi>_Fgb4=i9_ zla@9nCAmH&c{m|qdoIU_)DC8}EZd%6hBUbj;A)80TVAFsW`dFSTwYcsl~IX}@}I@d zo!BZD9Mw{Oenl|W&kke!i~}L+qnI$b?v;(T>I=W>*c#nn(^nmvUnPFS`R7%}EBrG; z!zsY_|3Gjh*~+Cdk2#F- z*c*Z=bas-xa-(DVhPF&o`d>tAq0_=Y_~b#;e(@%xJ{Cko7*qONkY>VB++yTN_R8*C zQiu1y)6eVR=l$_(!*|X3nRe9Av#1g!Kl)KeFp-~Wt3@rt^ljiW;UU<1Kfje?`i@|% zpB=_9eOE9X0qE4%F8VvhTW@h+$MoF*OcU3e{wi8_1bA0UXRq|@nZ(G^yl+u?mGo1U z*naw+*y({S%j8O_voo#~TDo2*81~b?MHNLr1%XOzKYbt4On5%FzMrZcJ05-@80!s( zG2Zx4Fy~_14tzfAy%f!vG4lQNdNig@@2AaQ9hm04`XRjN z+w(rjHMU%l zK5_PC*Tl#EM(6oY#PfVTe+h7Tt$cgOkKi_7cy>-E^f`K?(^84`2Fp@!3{LWL-ar9? zU?Oj@yjW|$q?Ylxf!O-GeIhlo-uO%~)*B9EyzzO2p`E+-zr4G8gHJt|Lc;Vp zypeo%dp)Gdr;I;OmHvfbZ0QbTO8-(Y)z~r?Cs*x*1%?p6m^y5w|9&a4sD!JkAhs09*BFo;p4r5CHRxs7rG8Xx(4@A@O==0!J zrf(${BM^%+{OZ-(m&kp01H<+l$KpLmSg&*}SeC|ObkeIP7J`Xl!SZ6QaY-!`i+=!@ zjK#MpZ+s^h8w-aq-uOPkq+?NueN5k{V)0K%ll|iRROvqm#+L3drt}{LQ;03^&_4V0 zQD}xf7M-_-80kle#ZVZALIQrVeA6<_M+;nmmHddh&Y=-VjNu zaZGbUGCdJYdqKWNKjwm*WlB5B^vGnL9aA111rsr)typVDQp+%HEj649v}c-=V%kP9 zmZ`%SrfmgtIJSHu{-#5U-iw(Y@0hj?$+Qtn#}M7#muQ*NjxwE{tg~avGdsaVOld3D zIzFjonDR;dOjvK2woNf@Cm74rVGPqe!T6Yle;EtsLnP_fj%i*lDeWlJ zlah5dF%?Y2lrfF9PD^STrtPJM(}4En=B1eC3&t{a7{hck!7!$+@!!3(KEXi`KP0Vm zOg9V3^g1x*OR2_e?n|^Wr5$CuI9X@Mls!u@5mVZVwHlLJhUwOvIG7 zVy*L&T88NsQp00__T_d=G3_K6%hX{E)6Rl97j}3q^T}76Zyz&l*9Bsv&LNqu2Gd3O zm9vE}(Vl}8h@DQ@pTQsBE!J7;gLA#UrSAQd#OOIlX@%YuqY`@#vZdJR0UIoZ=X%Z# z&Ou6XX2*3_!N@sCDb^~PRAN0(Uh4Ual0Gz^7fj@Na*MStOKKUKRKpIBPS=m$vv=(I8t3_KLwf#0c)lM{J8T(w z-mF^FjxxP2S!c%-%7I`arnD7n{U)hpm~JOEJRE3W?zXAky?u(Q!x*N8f>{qcd0<*| z({%^OOiy%73qvyfCo20_;JWE|N076o0#&!@p zwv9PEXk+EBWeP^x81EcrQi*M2>_3HjGryHP0m%_Tv?1xRgs)i z3r3^k?ig2zjSjhMbiPdb*+qv(2*E_rA^%v5tBY}Ro*zp|PpKhS+C4;TXrr^MU~F_8 z#zbc~!89M8-?`}Q7BV`!x#+Cw=6j-zPA{=zqqAESor)rj4lx>?iXx4Um1uN~q+Fw; z5*wY~QkIR5D+|%7DA(u+Mxs+uu6;)(Hag_4(fQUpk*!QQszVoV!&K@D7Q-SDk?dRp~qUf0MnRb-v z56L>4b|{#LDQ(4C8TJ0e zr?{62#zxs;4EHj@cKpbQcNpSOdZBBtrQH8J{>W#?$Wg@rUCdNX}V)t8ItK`V9NPH zryYHX1YMShG9}NYBnNIoITKp~)0&i|hQq!jkNHbVGKF0rf%z;YS+H$W%q=O&J1I%K z?V4)so06QIlH8t>yqS`8#5s#5&#O8mIVL5!B_(+`B`GXyYI$5ra%D=g(n#vU`G~2F zW+3T(gVDX^-E~hK!G@IN3L~itPe@s|$EK=~=O6=MlxrkskKOFz%IMfsiDMIc9x-}s zs>EEPXA?=^pfD-H9f=&2j27;7WG^=ooEPvM%}8)(Ba=$(oilq%4T+BZ<8zO77o~t0 zmA&UA>K}W5OFyxbuL{AXGbW*u-p`DVN!`5 z{W!Mh=vR;&$IMJvFwyA8@g>&UI;mwwKi)HgyN0mkyq`&HXpiRAg0bVg!anQ1E5><@y+tsQ$7n0o>M3Zyv9r?w!t`?N^5ynV9WMq7#(KBErqJ0* z-qrA&V>&1VQ@{Q!bK}9Hb($%CP^$DHsnQ+Bls;52MX-ZR(0cCsI2rJKzH+4xO_jc% zXw5gJ4^5RmELFP0n9}zbOf~Fq9{TY1FTEOHewG4@{Nr zFsAh32~7N)CQDu9N*^wzQ*xb?#3T0OMp73(ogSaf_%lMvYJU8A-`OE18Re0pH3_AA zro&TAM9^!_463fnt^@3^wFu($0jTT3OjH_;%%AZ45qo~ zVL!sj_oj~t&EM&?OAnSE1mi-m2;V~$I1{{f4_|XTCa^v_Cj5aaQS!58?1mj+qA`KC zTGTS5=y+i|9cW+fxRl2x2*!>H4rAg~BbY*GC;4{w{T0uW{?ls^R75n}6NX>QpOt>@lBNI$4J9e{*1q^O2D*g0#}m4_c9e#Yu|acOad%)p3|xmIzBdrl#il;ZeKuhGwnDXpqB z5<731EM+x6Zk+7uOia=nhl>`y5wq~QtDF`w9Btxz^{0qdA+(sf?$i45SbwF{B1UFA z#if|-aIT=dYy_u@9W1j-Ecis2^UpZ=2eTd4OE8@6KvIFG^yd;FzM%!T0=YAnJyUHPaVee6qb_-3t@-eO&+@gHhiSouu%LQf2HdP z(OQgsJ|?xPetKl8bcZpeA0?Pku){W=yd!ZJSNc(@((6QPx+(prRO!D=mF_U6^rHn+ z=i&kf7 z&||zyc~;bO%g{2Jh|yk&N9Lq2tHieOIbw%{5hKX!R?ZIEb5*52sU#R_;Z>EDG#seJ z&LNKxJ6B*|8$n<+NqJ+gU~D^d7~_q3f_WY`+6G~8+lkv^j_BLgh0YuELbSth1PXcv zxR>_w`&sZ04#T|4NAAMBrsOD5FJ*B=Vj9(d**BTlkLlb ziTW~Y*`k)|%MDT=I~Sdo@*$reNM50H7~{iZBMgsMqy9b~Ct==4r#fE8hK2Cqq3~e` z)b5h#<4cw)?I_cSy}Hn~Oa&7$rL7jV4AbMJh9?5;4Ii6gx*%eKj3kFKOplK+WV+wv zmAzt%k2t2shh%ybn6jtT?Bh$cOle1%KH_&viI%BgBBr#}qLyKLg4FP6puOSaQ%p~c zSRf!J?VgfvBeFJ=}94(Hh}47u+oOF`I2Or(vC8H&hJ)?JBwru1QRi( ztroQm)03r!j{@xtpOj*HO2mTYFgc82x-i0|V_M!*wHAhCdYX%AyJ}yeWlB5BbPR(P zB^y)0L`(^5QOhtrRcdJOVOW@AdRoK+8A%Rfm@bMiWLmoX>6>ETH8`e=LNYxEOk2as zBh50U9c4PUMW%v@n9^2@T88QAQbSC3qnIvAFc94-y0)JRCc(5tEyHw~)Nmfmd8TKjn4TT6Kt__o z7^de$7&1Nl`eF~v18BmT%E_2LaRj1^#sG2FeF-{N^F!_XN~gtEk;=|QItKeX0=R| zFP0j!L`Msf0YcVrw){B9SnGGO3Uc@_q4r4rad4%Bz@WDY{|EV4$e5zx5c}S-J1XEs`xNg7Zn9`0i{XJEq zYR*PDuZCoKWoCvfp_wp3eD-O0>qn zqA&f|snV}bSZ3)CV@kh9FblEG!Pla1KXb@Z`a5o!bw8&m5i=34< z9N=qi`!egJ@!E!gh?0-j7LW)giWhCgTIESC6R&H5OFm(JP0C}}3C8wihcOI| zRfjQcb-7>)VS!#suJ`WfJhnWf$L#U+PSINEwD1qUqsDVdTl!t8(jCT>es=pB|XtYi?T$>!YpZZNHlpkM3;5?m#e6YoV1@1=%zPWy0*=_3&fmc!&QhUudbhD_TIS#iJm&i8`5eo`-J{w!ekJ+$;k zLwf92u*enSjt6^}SdXzj>amwq$!)F21QU6Twp!FO9$O(yd3^WfKAQ5_%E%kYNOBnC zu~iX<9xHzLmV(&gosQ|MkW6m`Q})r|5MQEYN;}H*6)DMYEK|WmOlhk{EyMINso}jq z`*K&Mm_8n{Kt__o7^bTQvk=>kh*;b2k2{l$<9YZWep1_Leje^#cM+@(>9Lit*nlG1 zMIUapvx_IBK7Mxk!I3MzSS`GGG_S%NJ~@LRMrWs0?irs*Qd)%P3wS(KiJhIU5zD+@ z#$)n>SN^7(vplY}w5YgD?i&;gkNB{oGZ~fGn9^e!(*u&nZg<3ITNO+cQ?iY<4o+&B zn68x?z6O0iJJlN6WA2lJu}6G|F)@8gFh#Hv;=j$VdIc?(t;F~Dzx+orJqi}$w3z0R zo(dV$7h!P+{5oZ_Z;jSttdDx^YUJW%dx2mgkI`0(TE=5f3)6a_eYsDidchwAV?E|D z#$(S2W+CkG8N+bN%43tgU<3lP>GOo;FW6y;2*k|w<3JJm~zUHD+a#bDb3qr&p;dmpHAhv8t6^Vo|ae-t~#&_Y;)$Hpx< z>%}-;Wo1Djq{PUmg;#g=mC?pZ^qksA@Z2az0V8p5_lhOOIH&FzVQd8dB=s4Dee_S! zn-x7=eGtK7ygQUyf{_RoyLX4G#72<*(FjgU#=@N42quakeH3dQk<>B~d`W7E)8^<~ zqFO^6!IuSNBj_+Df`1mwC~P~!_wQeH9)?f+kaVky;GaWAa3I_{6uaI&%14l(b%}mK zNoR&p65l*o04(*m*=Z4z)Otg-FzJzF<-zMd9TAt+ zLl2ArG3uGYP7;qczciA%aOboS89}!m^%p6Nk9qL8JZC{e<)5RzQ;aqb<$xINJH>AF zizTIazZT=lmY|qYyr(Oc*!6@rr7T*EW9oC~xH=P)^u}AF#dheiaqhQHix_B`wTrj^ zMOn`}En=W$qWq3%ZGp0wrcHh4?zpV=PKy|=$=00CNGf!ay;G7I2?#J`jwI8>Quy`0XWj++Zwp+^9>A0B+piC@Gj|-0<;I ztrJ z=?-H`|5PxeV2ANa-p4q|mHuhiwDiwJ>j+c&r>W9EPnGU4ru6lKVe8!zwvu-e9_313 zuccGVjkI5gmThC}qc&EFXReuukv3LVj5o=%jj6=8u`k7rZDY>PxKe287kLE3HU^1S zNF_EFUx}SxqYU2?)Q*kC-vwh^g2NbZd@UI5%XkLp=rit)qkF#d#@C_5!g%8w(X!t7 z+Iyp{821S?5u)|SgEFt4M36l49fK`dMUILq)x1-^{HR`G;Vve;mg6=R3g^!cMxUY@vk*--Y5I(@(z_EewlMPx&s@R{xnQ z-C<1WKM1Dzo`M6Bq#shH|0r6AW3TV0Kcq_Em@3_2OzBkDFAnn^CLfQ#?`)kv`EkBC zLb&PUeDh~^HI7Bl3O)>%bDT%LH=f{YZpZmh>eC7PId1UGE@;K`ARL#=DlwB`B1ZdQ zrF)-@N^BeB%N~<&!gO}f#ws!YVH*>Sw6RLO&4x)OcATewbex}?Jm#8nG{MB@5_X95bFZW@G~E7xk@9*YTV#F-&#EX zBuLK$?zvN-BFTE5ubxwn(cg^)ola=&JztKO!pn?^80UG6hxDP5xG#@HlJdTI3V`LY zhN1;YRZ3DW-;!4?8$rGxE)#N!zWW3elN&7Erv>zra4RyU}Q_&8&Av1 zeMypq88-wIai{fI>#U@f;oec|{7ayHO*%-FEqA`)E6Lqq4EIio0bRb+p!$Y0aH#j( zZ*;sm3HR1G25{ZtxHEl;w$<^KR+*6VWWTo4DQb0mPO1=lh;gkBE7Dz(lD<`P-efR% zlAU9Vk>JfjOtFMd81;-Kw)GZBeFkA4+XmNmTz$}b`IHv51S74NPiZl!#I|1gM9Lz{^P8~q0?ff+ zRMH<^1hMmlZ2y$xQe*Y^c#%*hBbx%MHTDV!I;meL%`tHeK zr$tOsYa7wx5iNti6-Rtx_F_nfWx_&X^Kbo^0r8M1knDfte(tZZPVjGmV-`On3r}+sV zQhKA2)P=>+vUt>xEZo@^UxTCVhsXERzn)dOT{Lc#<0=)D17dvK)wD|NI#Qw7;dl|3 z<#VsN`VfOCn{}k_qO~Qom@c^W#6_`wW>1w8qwTPwtU~UUb)}nLu!GpKD?*M1MjM_1 zF_MCj(WU}lvS3n)ZFP*Pwx5Rt;Wxh3v1bYhEGxX^rCas|zZF&gC zwmOF~t!^j56ha@FChG}(oX2)zYe}pp>?~U6IxYMY?38NryQE5Y7*l#r!Hj}F$BpEA z!em!^&s6DreMBZa1{%mn>X|Biw^Zp4V@mHOn1%2-TTF62;Vf5rFD>1)@ZO?j&!Brn zExZ!fiI|9y7G6<|`v%$ORbofB-Ng<%xv=1qiO$Zr(h6SVU|a>mHU>L-E~63`<*|SS zeZ&r1f**g>j%^8h2*$PqhcVtL63lYg$;E#UEF3*ej~xD-@fOhdZ_gQ5IIkAbtKkW- zcoWKd^ zdfr*4pYirQY6(U??^Z=rVtY3|roH>hUiPOiarJQ-l^?fL8dA{rb&_=Mr6<$I2uYS0NU=12^keP?2OkRvwj=!M^12 zeUh_73`PmlQz}G@e&*5j(p{!6D~lpnf^$#CmKg0RCHRgQDq$r>JWsR|zE_sDBrnw} z#dkDr1x6*d&XrO+{ez54K6jd{GchW=A!= zDwwDpdLOFRy-6+84*N+B+r#62POCMv?U0WrC+D;dW7;7fztwl|H-B%&L#X0UA6t$B zuQ+9$=l7QOyc`yHz|M!SMA4G0$56^ zV5=sQGI>JAYUwzp5<8L%5U;ZLGfld7darmS>A1H_iAm0K`S4vP+)Q@|PhN2TNwL<> zPK%hN)*#W^!f8!7a42rsf=JR3r$tOsYp`hf8n%0J*_v4EXs1O?Qfo*;>xl9;FU4A? zIxS*!gsec^A3{Bxf6P3b?J*Nxk9|B=eEaIBU%OU^5t8q5T>`0KWQ446#|xF%{$33` z+TR~Yj&*K?@}KK~nZA8&D; zD}A_@PAzw?H$t@h42^G}9v+Pe73IZJA7XS&;P=EiBT|Vy4vrK%J+O~uawhETAj*}v z^MP7|ktp*y1tyg^Kg&#*qh%(XfML?ln$(Vs#c09USU8OF#u&j|jWXzsaa%9Oz{Q#| z&Dcl(9h36LSkc-ByV+aHpSa+aF_AYaai&QY#5iwY)MAPyRha*gMU~TCbeVzGeI!cKMrI3QzMw=&}X-J{nO>=#{TKO zFYV$z6e<54BwD*;AER^H>K#w1@&3UD`BItf5F`G9M0r_>u2DyliYi=nWr`$~eeqoF zj*-Or@L(yO2R!yKek0YDKCTp6x}GT*`VbO5zfg(w;UQw@GWakbc9_(T_2Hp{u|9Md z?S$QAv19q7w z>~O(Yk2#F-*c8Fc!C~)Gy!-#AceCr`bD5I%3=5GA|{$ zF(p}RBz56|sj}?cZz`&h340-e+oJFH1}8L;6a{mVlFBN)uh6n6EiMiYNl1$E9;%T|B;^4^ zX1swrRk#ppC4J?IK`SYi`Kpx^$$ZsF@GTOK<5r?a*ho@Ugt-=b6#Jk=8Imd^v2)sK z(pq$64uap$-H71@B1s>)R!5A?{a~ju7>&cMS|(__!HVTJIjfv5mV3F~N1xE?_}KEP zPKy{V?cT^vp_6==kk~rcish}H@v6LzC<2QNSI4@|_o zR*lmlMrFr4iH<*Zt@}u^QwSUWxa@T>);TR=)Xv=rJ5UP#oRVxzNd^xklBtj^%pIG& zF}S5~vM+L4#3Z%qMC%^d;}Knx)(=l4IxS*U_Fl4dvts{CvD4aF7_j9NI7E9pnf+8u zOw#j5i`E|4P0t^H>0E5R);3Oyn55PW(c(HPwT?O_{4~}Y>a>XQEfa6#08m?|Z7nm! z&UUcDH1E`Vj*RWhcXo*JcFN^_a%nrW#14jDNe92$^TXKAZO#rcNfxt3i#?VsKK$)G zH+Jv4@8mH>`&CQVCB~QDH|P$a_GNo~pCfj1u#Ze0eSGaLZdAwdy$WO9-yjtXkMHQG zdVE)jJ+~q+J-2$5m5P#IOX&xRV4`y?Ka!}{x}=slw>m~@_+}=Mk&lM8hIZyKS1@+w z;4o(9Fi$W=&~JYA=?!@Bzg>M=>*6)9RUwXb_ru~2DDRm!P_!iLG1f=9^XdIKd5=*j zn8;(a)uNX1SUoH!SD)s|k=lB!K`_>14r4qvUodHpv96yvrt^jA2F$ODwqV*7PSo1W2J`mDAAWYKgIMo!C0maW0)=wO!G_&hAE>3!t@2l^t?BHiIyqt zC{w;kAx<`?f=MuKQOhtrUTSEWE=VywK`@r7!x*L~8cZ1c?t|BFRNwg(#qWPoFF2;5 zwjuRWoM2Dqu@l8(@4_NS_OWlFXi3&%tdDw(XA*I;9urLDG1_WT%XsW0VLAzDU+#%1 zkDV+S>oJEh9y`Tg!r;K;s&9)e);gxA2-Edo%3*9{#FTu_bC@6~&g zS?+>~xYK%zT88^Vsk7yNN{aibhL@J@FoyeSf?0^Ryd_4>qnC~TEZJK2K!rAa%xwNi zf%}|)P7@!tgT-S|-e2EE(UR;r$Reqaz3O_J@WPe8s-jYzZ4#riQ@n*s)^1c{k9wzz zogT2yQn=RS?BE#3?;++wDi}HH;XPPV6P4Hq(mxu(lLg^7HiCkQB1mp6YMBTwmKt6L zgKeBqt)U&m&k&4ly$)j{c&1)mF5HGQUdek*wX7Z6N&4=R!@Q`%9c zclq6lacifr9SA03N?R>z8Kz65hF1dZ4WF56tBr!OOdZBBT`HJDXD9hg#Bj%SDVZkL zPP3xbXi8t2D*dcf=?-H`UzWhc<0=dX$GOs%rAj|rv}Tynm!(QSCt;cP9LAJ>u3!qe z6YGx0toaeAs1QZhiK=kcw(0$}`8&O@axBi3)>4Mn!hZP02P}ulwieb$Tgwx`#mV=J z9Eb!HwHDfnwVq09nbvZiFs%dHmwRr?W9JLTwibsm9=kv=qhN>MkiF!GXVKNX#WjxU z1;UhXRN{%$cOUxwmMQHh(`S-(cKw1!E5SreX)D%xA*p4UUMMwO2(&Nvf)vw>1Y?;x zjA44QU<#d`WWV^kV|sC_WnLm$rPsV(qPA{WmN<A7X726R(ZbGMYn!@-W)##6OCH*QLJ@fQp=25 zH%kq$Gg#J%}VsuTW!ae7rmTi=OD|T2eTOF^txH==s6<8DInUY{6%6zhwNhLPQ^r1$1 zWHMgv*whVLf{CI`KgL>%l3FIpcSsF)K%2;uvZ+P?+9)p$1P z06qtFPt=~P-0B=L+McT_^=i9HY#X~z?DT*Qmclb2X9sPps#5QM6pXYn|3wUySkIG} zdj3~QA3D#oeF!G=kJ#q^1RBQ0cj0w8+$-7wv9QA@%)2=S&mZM;yJg4 zzdRKU6+a|h=RE(Qc>Xzf{toPFy%8#sEK}N1rne>Q?3l9O3npSpTd~$-NiDBEBIeV*-tt%JWDd;{iMp6Q<)(}#uW8(_-2|E>+$ikK`@+EJ!Y zBY}{ z-mHDmjxx<`rdqo7GZ6MB!9+}HE7saNsb$*OYN_E7&__nn=r`9CNI&Tfr6{>Hz1G@Rr;e}?n?AH?&8@I2ean*7M~rj5~# zGVPnJvt!Db2qt1mTd~&Qq?Td&jMUJ!u|K5R*t0374r7=;CzypOH3zM1LUrd;W2Uz| zrq2n}-NBS=hqF60$CP%I>3+#NJErK0fnXx0v=wWOPHGvZ&r1z&fj%;lo=Y)(K`=I^ z4r7?UD44flflMEG;<6Pn)8`%27lrAbVEP(x=WWp(Q`%9cI*eiZl3>=uzkDlK_4*MH#Z13)OkWbFoR#yPEWNjkn9`0r zHoYu%{J6mmDq9P&tk`p8_v$SGHB^&BN&bwkmy>s zO6<5nUh4U&Ngq1Tw?*lKi9AnkvDVQ^E#vuDq=qj;-;WzwLpyG~Dj4f|hcTXiO)%B4 z(+VTU>4UcZHun6kqaa3lO*}slp5GV0_Srh}ycsuWN14t_*4Z)TnT}v0rnD7n%}Z(- zrmss4X910jq}Nhy>c;dE;Ja6uJ`Ro7T?LFYEs;=+xHw?vsqGCa@j5_uW4_Y;tqwa)Okof)Hx79nV4Zm26 zzx~`;5R;A1JJMo&A~yZ)AEreNcZt(?622>~c;|MPC)PPV)mm#@=$sht_TaPbm}z-O zEb#I<{fF$}fhR@mqI)M@Y7xWOsj03)777JnGv-gt_~Y)!9zcG-WP^3WIeMP#*Lj1gsH$W{IcYputn?xj-AYv z%ZJiB%e3%M;e*_q`BAQS!?@l*7G^B;ISR6$GCsn3|2WtCC(>$%27XcdIM@3>bG;kJ z_5P_aTH7V-5D+j3BWr>nieJvU3g4aTX1Bd?ox_7+(p7anblfmv zdryv&G>50or1v*XJ~CHKdK zNk%2vrdp3>wcM!W_F#G0%g|@`*n)>X7henGb72^li*JOPi=P89I}iHZ7LTO4_`-7W zjdJl0a?uLhZ+9$~i*IGe=i-|r7fq;DdPz*kMH8OcW=kc_h#@@<5}%9z%CgUeSw=3n z!$~b+lnZQM(y&QaVa=BoUl$R|=uQ3Tl?JFDSru*LUZBq1P%S9jM zVr}?B@6N1;ikhFJR+1f`i#};C@VN6wWEyhuW;UuW7s6z6k!ro0)pEI5MIQbYy~bPw4}C6H6~^bnFfJF| z-YG8|i_y3NcD4`s?Eglmxj55u(O0?P?$lu5UfvlhYCadM$DMT z&-7J5OBiLarl}f#M+tv>)VLRb#Hz_%!?O2~)AzI4v7B-bUzjAPkwws2EiU!gO=dmD z4XE-m|2BZ&v(M=o!uXsT#^sdTJMkK}tT5ocsEOs_?-5a9lzEx zJIHA*KL5^K>&ruI`Xm_)9{LP!AdDY_hH)7jD9mEnS-Wuj9~T^)&Z}!r zfEaC{BHw|?KZd`a910aRt|jnQF_O|wh$_A$qp%&02Z@gcB_SFEvb-!BYnxVE5)Jm3 zYBguITr@Tmi*taE^*m5{_tDr$7#|J8xM*;rCVltX2ght-dor<}d0oBY^_-oNnk=dt zE2^i%BA-OKYj91QA_F>=Lemeh_T3HuYfI;G~fv(&Syd5E4)IM z{VHzbU>Oz8@4;l8gi(d#)rvH15}#8>EaY?-A>t1|M+uYUlx$0Cxtwk)53hkijyAU7 zq0i}N!uXsT#^rQ#VJe_shA7^A@#wv>bJPd_Q%z;} ze?r7|&DOJx0%ls6Bx1CcY7NS2xrkMYDP8HIUa7@Zj*r+D!uW_8#zkyPVOpSBj{6s% z&*D90o@>}nGNxOK=}kDY8>C&MprYoP(oSGHBg^vLusW4eu)-UFr_183|36*bS4b^_BqvpySB zt|5gBzG2K=kP6IkJ-6qF$J7GLi!#Jkf3qvCtV!vgxs>_~Dnf}q3ZZD=U zfGOX8-aZB@YJNuAL3Vf@!R-D0+_!JuKFk|97c}BCycLiV6J{jt!0=f$F9~ytmxQZP zFR6o$*J{EQ{nm-Z&tu$(C@&j^W1RWlU3=Uk<`3qvChRR!OBl^#&9>(dBtC9ly%0PBPexJ!&>$LI&gWV?p90Un@J6K(jLW{FvE6 z#24N~-ho2iA{{Co~BGE=VxE1qx%SBx~rJ3315Z)_lJF> zPGEXW)@R35n1m^9rCP^jwH(v$$-`rTj!bvWG2KlV&(tuE=^$Yi!OlupU+nSpm%~%0 zHyYDHV!9=KIR&_d`$I*|&tomJF_hE;LTABS8@(Ph(n2n)D9)}CUB#|e#RO_UymW%uld3Za}aUKgE z`gv@qFh25zagiS;44)2N3sttu>m#P6k^hrLewZS^FMQbsxW7+?ikgr7aM?K!a-J1W z|M;#ihNY3mcWv-Go0#D3>ifw6epFcH9O5MHWew;nR#ZgdS$2mBN8fdl_A*`z=CvyK zj}~HIW1OVDj4SS}7Or7yag(($0*b-sAgR*RAx?sdYRq7&@I50HOGv_#`KeYFb{Low zFA2K`UQ!E0#Q1yJyDQGKaEw;~p+)cK8!uw8@8>@8G(uXF0ADXEC7iD?En>1-yi^I_ z$AMFiwb<9MO^X=a%dV}#cc1Y=roh6Frcp`nT=VYs^Zq@oHZXQ-@M)A5NQKd8s|EuPEEV!~=L)vB#&F5o7J z+3|Vj#X@=6t~kbXDc`GRy(913DXoB1809_gc?OBkJEI!%z7aIi7W0m@AsWCWdA}}7 zct~%i;=iF;PRH}Fz2)H}_zgGC)PjdT?_-7Wc{hy9`#uSVv**akk7Khdj+8wtU;8Lu z$0J_=7Y=LVPd3k#b^_C_!a@7#nF^CIrInIeuEM$OFE8r^I{LMbD#0`5!ZN$=HH>4* zrBwR1-Wj(Xie*l;c!n{ZAf{)6DOv0>gFdo(rnD27ZW|8TPtR1Cgeh&6)N)L@1S&5( z4e03CgdEfTgz-5wjAP0LM#}V`?^JD>T72G^?k}d7fa#{_ujNpvsClNe6PWH`M-Agv z=E5XQX{)4`V|su*JRRuBbpIUF1BLNS4da;dgkD}&0Xw{wdG^@hkEa$_H)z%;Cf43b>6aWD##Fr}@MT8`;K@(`10!gOMe=_Fx1Q^Po>2Rn>^ z&j~#pW=szj)4RZwv(|@2nbJ;RT2Ixa`RWxWVM<#iwH(t!2N!07{^qYgeh}c zQp+)&E)VAb9hpwcG3DtXvIzYe#xdnY8lFAi>SEp@y`N4kmQ4&=GsN`oVES_i8fHO7 z&94eLO_i7VXAfq`AFgt1?OV2q39Euyyj7bmmEfCiwSo;2f5zuv$v%5vmT|_fs|#;! z6-Hi=P8hQp@FnMP6QZFVNhJVhbMn^B~J3n+wCZ zTpTXUV(2p$Z@k+ZOXQf{!Iq1|m5VQsi${Umqys8yJ{L?-HW!B{xxja0%1dHGF6!)? zF;fY4G?j}W@wu2S%l>YTSw=3fFDor!lnY$($hRQzxggV!i_zx4v2f!;m?RfuTT;vA zVvan#0qB^E;Gxe2gO<&OVO%ce3NsgWdLkFsKHm!`|Co#8Ef;f@i(XiNw*q&-5l~U{ zOlc=D9b-og!#L5*Owx@>?PDx~^il)I3w#2~4>^m^RN;n1m^9mDF-f z7s$h-fsTI7&(+w`!g!{JaZHa9ro!xG-_bGHm>xr>@gAbCq>hyq242$pF}dE4%k^#; z*Zc9pTn#(C?tFWdbMbfNbGY?>e6IHsq;;6<{rFt(3v<02#`S)pFc?~R=BvDL=-Hdp zhTX7u{r=JlUB4H9W72uX;zY72n*@uW!|!^gFKG`Mrchv<)wp@1R#CwFpP?0_66JUw zk;86Hmb9*Ly`P!u{p?)thH<^0BMei#Emk(GT)OXuVdTPa z;b+$SIqbdcER2GG0zHReSM#HQ^G$i#1CVq6nSIzlK0POng1TzluRIr0Vl)aMY1DU9 zdP#kOgV#%H3xk)CRBLC%VX!BBV-|yVo?pI%q`tr`IW4^P<;W!@4FwJ;kEzq0Aup-X z9dIwH5?d#+H9#t=y4fJKVfbR1*#Uh>Ch=UT)j)YsKvwIC@2ViQ3aW!^< zFmr`jvoN8e5uefP+HKGo_ut^p>p8#&k_;5|c2Mtwf7g>}m63 z`9fgI%Q(}@*_L}=xo66B-9tj(7mMjrV7fAJzhJ2( z?Eu51=dbs2l4B=FIA}FUF@`&@}^oR10Ro55)-L}PR<1S9dX+3tf$3aR= z7^n5v*&daV)Zx2hI4V;NuWDJFPJ&M^@T$m3a1G17ZZE0PYR^lmwTtd0;auq?wP6&b zk_LFlI5P6V=LS6U&+ifm5_DR4*~KS&uDnFi;H;lUEdI9o6zXDR0+ZFcR9c+tb`*j? zqSkIxf`}NMVe1<3{vTdq1fTs3aGC6M;}~->_Fw;c+j4>N-he0J4}eq{%>WI^4qK4; zaY3eGTs)bra2ppZLra)sT*Qb4E$;86&5w)A<>9%ACQb`#!9za-Tp^4f7lv`;;>rZW z@$l@+pJ4I8h{g5czfiNw{|rNG*PQIF9eLIUXe+P76CT>}oz@^e1q? z*p3>;U9k$2M2uESYPmV{DgevNjt4qc#Fe?3}p{u%ue=d;{GWRqg_p= znKj8Z((*goSLb@aHrKmhT<_OqFxmI7{(Xu%FI<=F{d#H5!r{pMx?Jx!WGvH?VO;Mw z3R8h&D7?ZUm+Xa`uhHVltq`HznCtx}X^p|Lh`lk_`^~xD4dZ&hMVKkD(+B8~ zY1t$^F=6&=vfYCq@w3fsvQr5>+3*=NvxC_NU(TepuP~Zzn(WOLLE^^_;}gctI_f+A zi0gUgOqgWskXuPDH+Ft34}So3Z!;P^^s~)Rgz;m?FfN0)3sV6{Rz?ONuKn?_YzDVp zp$rzEZAM!LZ&wC4f<^XsIj0CUpTRrikI&%kNd}wnpsO1Hw#!9cJ(+$2314#vlZRODysaDDtCWh}T{h z^5muFBmbc6_{cwyM4sR1%|=X!JU_+H$Onm!{6n(iBX4#Pc|77KEnyUSev>j=kod@x zSBQLnA>t1od0~>slUqqG7x{4AG-{eCq zWDj%nEsOjUiu^nn;)tBX<&c_>{Lf{_NB)U4^7e^lVnXEW>O=JgiI4n~vg0Ffb`beG zd*8A!ihNyt$Z3%H$dgxyJQmfi`N#{CM4sGAYPrZiB@cf9bc}rP&`17hVSMBb<0Aiz zFfFjdCowiye8gpG_~+ zBv~f^RO^+jmdo-B^6){R$(t>B=(GGQVaTvdhy>%Z{Gu=wINk$XuUhcP;1vCUMeIdo z=T;cP$&)opX*KwF21aYJqe2sLGTM+Zm9Ws{*C;J z^~`tRyqwf?1HNCFc_k*)a|6B=oh_9#;#+sgI7oc;z9P%Mdd)Jbx6!_tR~S`qBUXcK zLE>}Dh=rUcTZ2Nz>Sa|4ljM|aOKQ2C{#G8|0CcS0;Gxgy?}YI=HH^#Y?}e#=oow~S zoVH=3cKLH!e2&_C8qA~pUOD|O9Af2O&5IN@A2Iq9BKGHOJ-bmLOcF8LO0{0gYPpF0 zK}@-3i=*K8xl!<{Fg{|2aS{8YFbk17zUA`9t;)u7p#P!Fx} zj(TAjc}N;$IY@lu$ty(u{cH>^@{F1=N#w~b)%qr@3M{F;b7cT3;CA1Z2|DeVNNNTF+SrsbVZVG^da zm1?b-)pAVVl!tzo_>J7W@s=>2sbL(`w}s(Cg5QI1_F504Z1IQMVaD`rG2IeOKZSh% zhoGY7YwR7_@iq2#tg(hFjAb@rLXB19%{i>GAn`T!uI%_4GdrlLYJ1740+hioQcxGVZ zB_#E_H=1hI+CIORgwd2ra1&8?W`o3!)6eALp6G+;$<1pvUc)@ZIIY7c%c>w1M&q>3 zo@5RZpHoIG4_7FI@oHiw?4|87%i!0_ z;90PE5)RIK7G10P41Objd@b5EahyAZ2^qvr zDO-^E3^G0;gJa_fNJyVSVUi4zTS+aK!T-v`8-R`(3?BLnav7g}&fG9AgJr^0!47xl zPWkD})3Rgmjupya@iF+iWw5L#=jSV7aVPZGkDE4XK4SDIM2xkZHXkuzl8Dh(Ni7$# z9%A|w&^^p-S_Hq*5N!D=gd!5C|_~JW#2dvU#{3k`Fac%zh?Dv zTS?82xRvA&oX}P6-a}hH>LXs*Eo^AQ&Pjh9AtsDC-cjY)@seuUOeM{DQ!&r5LE=Z{ z%IYg#pI-3NN2gm~7?sU-An`TE7={|#D|?Q!Gh<(936sZVP}2B^}W;QZ=0@m9<&|6$1 zBR7bW_NieC1=b;3<)QH)pSAuav|=3wxzFip>iqy5Ad81@+U}OVF{h1Hcq8<1NQqHS z8>{d(B<{3(Nu$Kh>zQS%^rG z`1jbaE?!(&v7P$j_a8~4u&>33nCuf}{iHPu8Uv-rA2D{PnHDkHA#be4v!G*u2tNDj zT|;&z;n>Rf@9eTZf3>Jiz+QZHQ=tV?VOYJ5d{+Zokof8)uTZ@QXY0_aw->a8NvfCi zk!nrNYPsrNQy%iU1CAuN;GwVHwS@82YZzC({R0Me*1$RC`a4d&C`2sIQM=;={ax2} zcU$E9YZUZ^#lGn8%0I_Z;Olv9`LjFtaPArO!CU41lX|YkH=Z-n#8~}cov=+-g1a7^ zkvyhZwdy5JdfwPeYM|q_YOwa>NC_BU8|%o!xaMDc+f%d5LsUWyW>HqXFsh9jtUTF* z#McHRA8O-BA>t2z_7o9+9$lS994}EQ{CycKR!?@ZQkYG5Yee%q} z7t+!6AIs?g<#bKtl-WF<+f!ytY*qQVE|2U`~R>SKUUkygiO7Hn?YJmQi)Jc$M?WwaM@wp(=kc)-T zNSn`vFi9@RwxpKJ#m4gRcA&|UEqLgwZWCdA)fvX+qC%J|=yR1@Gx+f{(p;Qtxu{Ss z>X3`gfg8ciOf}Dxb^_D0?5JUE?qxLylQ5;Nl3I@Grt%PjA*s5GT-9xsV`>=3baP=U z%ue>%)DMj5=46^#omNWgT-W>Nx!$+P^==r~`AGPRI4MaK|U0`}QaC>uGTg@}29h+^kJ{!~3p&?Adl(tf>tFu~;X_Y(-xd{F4 zlw(?*V`>=3v?jrj;ZslCa!-g|TXK-%A2!3dh}9<;M(l!H z&$G2L(Tj~~y_lW{rT`a?Hz zpcU-}CI9){X7$dwAjQPr2J&JKjhO7U-pV}z-Io$R=Ppzwq-9V4baF+!M!GkGge zjWb&l<}pfXCsa!l-Zq~~d^Cs&(XdNBv*YtFOcIS~r>K^T#@=G_JnY51kI6-2tT29- zFpP`FKEhPMPCgoybA!A4C>s4O8XxgyrJACF-3Xp9%eN5e2K8WV)6fLHlwJZjOHplEDn(YTm52h~C}!n{E{ zF&fQ^Mv(YuP!ghHr(Cn+qajQt8YQ({H1-vXPhl@cV?r((`w8QtVHg*U{S!=nPMCZ| zaCd)2V<$wT7X+X4)~%XnN;`q+_w1-)+?*gx!j!g3YB{C{$iqv4j&s8PIi?3DEaIGC z7{_#?FjcZsR`}pY1J@50?j2}&gaS@v$Ooi-}6@K~pmN#c3R)yut^4D1FtV7$TcD80qtgu;U zpfN=en~I3x|Akk0t6j}UjQ)g(RohX+xEd2Ci5P8_)N&DP71L9IjuD%Zi`Z0Qe8ddn zA~sE!3faL5_VCTlPAwj2Os9!y2V7eRxX1axfSPAYJArA99W{(&DonzZwn}O_rqku& zB|t}}({fDPgz-!b#Z{lKOIzvp41=C*W@5-J~QS(e`CorwGqlR%z zg-MvwR!J?#^iX+t63~(9j2zRM35z(>8pbhgPcURUaop$crxyQUOxwlubT9?DFs&DV zvU#So6POMS2koandkT{~4 ziRr~)%CkU4Z~DmQnbJ;Rx^XyYKRr`n5~j3OQp+)&Ef0BTGUjwvj_I6)Ma-#T9Mg^j zL#D6(pir4wTx3i;#Pm8a+c z35&?oFpg=_ycX!lbbgNM(Zcwg8pbg_Cc%*F%dZ@dEy-wc z!+F8mW5o3LmeZ+xfJ)6XrJcZ(yE$p|<5ZZ0DaUC^Eywg&d3YYs(XV52Opi-g#GD$& zF+D!Pkm>VB-iQsPXmO!2Jzh-TFs6;GLPgCprJcZZk{vaS%c(FKrX{r;(-Y+3)i4+R zIzGpAVZtIZHH>3=qA(S(!|L69=Uq-qExu(;PZZNnta|JFLPgCprJcYuc>!3!IHtlR zOj*4pwH(uv8iM9*c!N1SBHw4&nfK$rfqiAFpjA(2~*lCspXiSCJ!G2Ix;;q$Mkezd`=DH zn4Td_i`>G>;n>}`NiA-Cl*ENI#B>0da`nDjKd7jArnD27&a|V3aZH6tn9^2BEywgs zdH4p>Sf`6Be<04da+D5{A{w8R@HMuHGkDjC(0#z;F4lbGwS} zrS!Fj%oZtP4Y0T!`g>?ibgkwiMt?%YSg&dGXDeZnh|yL_Ef=x##PkiIW5gEaB6hwo zzBUZwB6fi=F=CItFyq41;y7b^ftU^jQ|?ss?GF_-&y;oo)6%;}!X!*-tE84=dZ9dg z1?b51f*jL}gz-!bz;} ze?r7c?@S7lM2xmdYPpF0P)u(FI!5f`T*NL(q7g@vVO+#66{Z4q%5aUCzTYoK?1&h# zom$AiS&1>cG{&$TG3@GY zn>)L8PJ65Wt#jHW-7fE_ubwn_-qgd}7A&#xR#=}K2546(V&}l(_4sT1_0VSulQcFG3mTFpm{{)C8q8z-`WajP$3l8Dh( zNi7$#>%{a3pkq+4&CLMU3*#eZ7#Fb{gsGBOWre%8e&^BD;#$W_T)06@e+;IT5KJ5h z6*bS4b^_CW(V>8GOod69(pE_=$Mi;6E-$+p=xF$c9MhYG@k|ZlnBFW*1?;dk9=z|Q zlT(XhjOoo{`k>`>%!W`=^Gsw+j=QKK$X<@H4u4pE12%On(EWxP&Tfu`yKCJX6{UOe>;#z&NJD zBur_mq?TiPhdf*ibToW>j_IAkc&3JNOn)j&WIFtkO8gxyer-&DDyDxkrlU3iM9nj$ zoxpUfs2(tmsW2I)CAA#WyX2w2^8IO!>D|J3riO7$?-8Z~UeUqq=K^*+PR$9QTKEy+4xc-7v2AM}?_?9bTUve&yD~1D|;I+;4@> zp6%UjoikgzmiYeMcZ|iOWKq@!7E!K+HCWC`JM8%QD=?WmKJ+kD@4gYDf8z>-Cs|>V z>ZSFPTCRG3Chji-9W(f7E{2Z@N0=l&^q{1ci_a7C=Py7< zHj8ud`MEGYK8A7ec{0JU%GNt!FZa}9yYYHb@u@_7$bbA+P*L;q80`e6rSFIdlQ5;N zl3I@GQ}XZ;pd-^Kb4;I3Sj1(WVI0$E5)7H%z568?pwZ(08PjLPv>HtNpuh23Lq*Lq zrJcZZO*?8BH)9KvFr}@MT8`h)fORn7$-T73}a_knX(2bHSnDxBOR9#rG=zZz0U1y`+dug2gTQ=XU5?&DRF~ z2@xy3gC|T9G1@ArQS!%%lBA5t|K*+$&gpdvvYlBSwEh#ICcWhH;}wm?UDfRZ`1E>=iLR3+NcJ-{d0p zTVZ^}4C5m9JBL~FyMvE1roR)@qrtQn`g^A+Q`!kkZwwUeryotiBur_mq?Tj)dwJLe zbY%Lw9MeBI7NKLqIHs=(vj~Uz{;2x(FWe}#__Q&7RZPzX)02Sf*bypfen0AuvcuVt zt5d$k@m2Z5{hwyM!JCbkupiZoPm%B*N09g(p+Ct^C6197zs1AsVE?BXpAeyzFxnAn z#%E91g2dMtd4-wAU2*D-d~}VOOhyikfFiJAvts?WkegXc8u2N?Rqh9Miwb!}EY< zF4$hn)!5&J@k|Zln7%H|Lg=%``kvb~CAHXXOkWq%pMvQE;I6HPikh#nzsruVvDagb zHCN#~4%moMjWt){Q~a!!An`T!f3j1FW8}peGdmONp%uQJL>Sf>B+Wn-3PIu{PhKJN zcL))G_!<)?i9ETL)N+x3LmqO@h&2{G^fmUTFh25zagl#Zm_@LYAKlMdPn4;3}fly(AB`jj@$RG5S*M|Vjr$Mk)9=-1fq4#$a4w!NTR5U_G&DYpRvg2#)!?ecmX)iWnLXB194Ku8kAn`T!vFudhSgbL# zgBq)@4K*f=YOEULoh?XwMVBDEVm?UDfRZ`1E>@zW)12l8W_GzwGKNrSF%rGuu|8f|=u8R@7WQ8JDd?oye zMeJXS*ebBt3;uRAqiZ!EG5QlC_OKl_jEk5sNyKQYq?U`=zr~abxEQg2_z zFfL+W3bP1@^JkDTCkL%B#dH%ed%7#I0(g;@wY`FZvFlOaa?R*|nm~3^*yMl`N;oQc6{W&O(I`o zt0rPXI#&>>}6?T~WtC!PJ^zV~{yXCzquuD7` zk?#w^OS^%Tny)e12~3}~qlR&#TbP6?ZI#q=Oqsy)GH%r|7i{IdAd2@LcBh1b$bx?- z7{|1?Fbi=kUt_zULLJ0XO!u=I8{d*JrJc&~&`BTJ@io?4{^07bxyG*kh_M>8>$o8C zHMWxMRHD~dV`hgnhSeZzOqft(_DTOB@sTI55cy|FA!)wGgh?XL8Y`*gBEPacyoYGB z8a(thwu&&m#th>kzp5~cU?V@T-h4_hy{aOAxXr7#4Jj7+zOv&ZziJwJTQw0AB42B( zrXcZ=Urly=~HeW!phA@cT}0zu*6|lqg>aKgOb6`4u?e&A;?mCM6*@*lm5L~@`5_$JDIPC6r?XFr}@MT8`k-WS(z8# zqrTlDHb4=(3K8R-|0hNiix~Y05i7k%Eld(I+A68#BDTJm{tf6Du>rY=ZIFwYVO+!p z3R7WrviH_MH>Ly0G@j$e16tTnS~r;%B?EK4Z@0(p6lH(j(epr3vtD^Hf%K={sT<0(c)jN_e%AS!-ZW><4?8Z?Bvkm(CM?s!Y3eC9f#zP3gR#Plxs=MT4(7SH{u<@npj);lqJGfXqzeZ4ZU zX2-pkW-HmLG&|h)v)(b&^4-_$K^V=n&35e&BsK%6>b91hUjiNH!(hkH659yl=R?D| z$Zso5h53`M`C+F+jJ9nq@7qc1VjPPx*j6$0y>FlE-7v2A9WuTDq;Ji~sl^kl_Z@P* z?pssH;n7OD${$G`@`0IRj&7HXvO#u#`WH?l-~En9u8YWuJ=Z1agRUdy&>0oQ?7TzxZayHnCx74gZ18= z>wRZw`FjD)x!!llSSAa@xZZaarovcc^ZtqTzH6@c?@8+#)51T6U30zfmh0UxuJ=I! zgSl>XoR?pG<7x~eMl+t5H(jywa?#H+G@eQS@E$X=C|eg6d!fIh59k@hVdl5%rWX0b zT`(R!`SUqVgT$+H&xR^~sGVlX2>D3vptS+e&(Cj%%2I=YS2^M!eEA^q**-%iC>E{&SAYVRfzb* zuh4`^)*FmbNiDbD7%C4r_j0yo3m*E}Z2;(DW7#FdT!c+lWhH9OEX217Ri(eVjkz!g0rrQGd%t6JN(oSGH zj$J1$GNq0%2~*liwf0Rk_={&cN**qPG%_8TW4cFFJh;C0$`e;*Yh#~S z8~;x~zf*sfIxLJ<40lH#Tqiv`saOo@VTfU8P_myfh8Rq+156S_+A68##@C+W?w?j2 zor~dK!uV=2jEmtIVJgro$JZg}oONk7hErnu{&p;YuxKA#I z<3oIaVRf?^#>H@gFr1@$pz8YE_2S%Y49|}-T&}8%cf_*a?DJ=f*aSuFXjt3<{dG<) z7BTu0BDNJBPFjo@XLVtch|yN6#lO<#Bet)Y`m4VQxrptTi z5u-mLVtupR?d||qV8SF3qpehnf2GYw>>x4ahrwdRCgvhGDTziLO@?t1J6M=Su+s-; z{7qii__wLW%Z%y4V)_#>W2@XlWM?fLCnr7|cCh^6S`=TK3R$5*OjzZ{ zZy^s7zf(F{b}E4;FJ8Z!9jrz9P35dHVYE7JsBggEQQ}vp%XC=}WYn2>?Ng_{f zsn$BF3V!pEpCS(zLmGDmf`^9DTB}uTF7mU5seqA93yp$&n^p2>@z!wd?UVLYF$W)vB=jn6nNJ6 zl6u|M@RB-x*Swd6^JgNduEPD(of11fgB|i`7>?1O9j5nq$NZVlP+e8ssJF}r!wkYs zEl_w8g<6?A@{CW&V4D!}N6cU&1i~a4WQ&MPqdDt7lj_0`Gq0itE!uSjt z#$~Wmm??d@0@Yj)0PBS>3O9Qk{WpE8lbmM_r>7-&A?2?_~Kyzp1&B}#abjA!; zqv#8a5HZSNbyY*N-cgcDs`0Gj<{3&xha+K8&P*jw0xGk zFCh>yRc#E(z|i? zkYw4N^=KzBC8xASrabEjlQ5;NRI4&o!Ee5v=gUKXb$nFrT(BTv5d&rz$Mk4n7Qs4K zR`+i)+zHY8!@4t8!$(4Ru2+i zW5>!4c{AQT7nmK?Sc84vs4%Lr2K(;3An`RuULo>Z!A{y@5m_zA^b~pcOQ2&#oSYlo zKgcmPjAMGLFjcTarrB@GTj@NA(M}c9RxsuHr1_j;Olc=DE&k2doX3Pon9^3N#c!8S zn;%W5$-`gaU}Sn~j_K(+riO7$&k*Kn*jWiokG|j~u%pFzKjnPzTmC1IaZNq974JgI zzNcrdMeGbk>{M99g?piKQH&V=DD*s^KiMjb(N0d%Ue*b%$TZ;ibE3n9qfa}1 z^w#dyAUS&}T4$LSF}mYZ-B{nK-DKsYxP`t_#n`X5nJ%k&p(TV@$-*iT&6*CE@>U#rF6!1Gg!{CTR?OJEV57KWZ5Yt=`L{)C8apXF{5qfnS6VzgCK z%gtlwiz(w9>*&1P=)OQ0A2GwYh+QbmLKs;euP54R#03XsBlg$|MXdPf{=y=5p(1t< zEY3rJi!P241Bt@1+~%|v7+sN(_&cE&$>+$s>7%=LO{4I!X%WNch?2onxL8`e^Tw$E z{hJH#NVWR#))^WxS*;&RYt?YL@ZpQSuz-&}?`>MdK+B!K7}b#X^@`@5yGz0(d1pjY ztsS#kF7KDfpT9vrdU0Vc@0SYW^KKZI_sfJ?2qT*y9=9EQ`I^CE94VWw|J_H*Y>Urj z%KMkddpG*4y~5}HZo{Or`uk4OUiK8UBGZrrpVQ05q6r5WuwQ(;ctncc;^KfO2HA1* z;T6*2E*LG3dg1rD+>d=6WLm^zwXT%b+R&i?+3&7;*|dm(7UOKI_p78e2O7LO{^qj{ zZ@(;_L27F7oaX_M5~DLnO?6#UVXv&Dp|&t&2}wre zmo(|S8N8%XUU~`FRlct}TwgGYte@a>9j+7(P9#3gKN5G=VT^A2Tc01waDf;^%$@bF zmR9j|)jG+vhzWM@H3`8% z^4mmGv4rL8WI67LynW}MolysG2EHWpM@+D@r%A#n@Vu^ZTSpzNkxYvi ztpRH4a2+=t*pNY=iyLI;3LL{gFTA+8g~ox66}=YyO2Kl;H+1IXYm|2c>NVQ#}$90)bSS8yBXE8ZD8>^ z^tawEJ@GTPvdiLc!06X~GZH_(=yMn;lcJLTjo0{Gi3pR7FZP#e9hTK{%R}ZpGQBUy^nn~x!#Ji73Nsg@sT|+zI{LkS*q@}uSU;bv zSpCfDZacKCbI0u6QhCq!(eK0zz|j1gN+c7RDDMq8;? z|E!j)jfceaHt5HQJs2Y9qVaHvXwZl8#^PbI7-uZLx}z8i+F2G0VKOXItr!s?~|>VJ@ALx+FYujJuVhqV6h7hEqbUJ3)%@R7G$Gpx!@{Hn1lswrCQ(5YPnoI zArF5F{pi=@ITk-(3X21c#m~j!cw^D{vtlf0XIU(S$*@SZO0#$}$KvNX7EcK?7eA}< ztkaKIegUVS$oV>B@swDc3l_Yyd)3pCMdhBgwN=-LCgCN$eS=p#OQab^?Fvz<^5^k z%F9N=kGO(=sux6=PxL$^%o@NH3jGS#?sWTa(}=xg5qm}vy9^QQ1>CXE$B6m!AngPe zZ_rfI;;h~e5@8Y+w3TYDEf1oaKMy`D51+=Nn8{~yES?jlc;5S88LU1h7Pnd6SNTn3 z!7NwfN`ZN&osjqH>U!nfN${ir^PWnouo`6Eodj=-V&0>qp{@>hIhl7#viGtnSytYK zNg~F)r&^`+{yh82nVtBt1u2e3lAN6b+--9e-zfi=ULB#F@?x9y>#Qe^{ zFJ)(2gqW+`^AEb<#9yc{th(#!a9?i#q{L{|T~}Wd-jtq7>g==9UQ(lkMG3OgR9|=i zGWu-U!FzjdUqVt_xPA#qO#wG<60L^12H2SoCgRS|7t}R0HWyCIO7J<>3TTDi{dK_$ zV!A7i;g`a02fj7Ym`jLx@_8fx5j}-PE^8V9RU?^#Eq-+R@FiGAS{Z#A2 ztd<+^zmkWvy{=ge9{MYe7lrX_W5c*L(o4d;gkCpBZOmTl!Y|U=IMZt5CDq1TsEuC% zcQ#)YrRHnn*Rtbl%7Ks_PAl)6ie#Te0dGyYF$Z zt5w*U;vy$$FZ(xY6`^s>*Xr-YVj~=-P2MB>ZBnbv)!`j4#DrRH#`jjR1&QDH`@QTG z-}n2#{2?aPPcz<5z#R*-<92udAUoUR7*0#N+hzWsewy*=D&|C(P(OI930si(`eAlL z{gl4jB}`I3jBKh^`fk^&^6){R$(Aj6=L(8*7#c zVn5VZ?BJmv1^*|E9|eYSwef~9aTL7tkDc~UbGhcV z!QD4h8@t&k7{phNsd=Wfv#e1dOv03-Ak`{83f`25Wnda>?2X(gcq_-$FplZl!Yqd8 zt6>y;dg6`4Q;T;Q)3?R+U@(0MxE=Y5u%z|6KK@!^o;>Fy?Pa5vItt!V@2p#1HqH95 zdf3~^C}^s#)iW-{gi+8`Q>9gkli-u2%%qouCn%f*R|;%F;>X3i>b>~5IQs@E6^IGr zq6w?Y9aB4QT>L|JhT#~;@<|Urv6r#HC}?V|*YmW(Xk0Yela@i^tA)8(*0>NRsTSrV z)hazM-jj!2sFu~C!4^F98FN!lN7j=v%r`t`Y6Qb~K+QA-^cpQ!iIP~e{5k=LBp z_;DN;4K;Y<1S^^tjSJlNsL}JrUea8sSOU|evEwn-8at_^1~WECgOgxw%oZem?EF(6 z79Tqg-72L5F&aA!wYc^ioZ4|?=Tq64fMc|E{iMHLX-p?HK&zp^{)OS#fh717B!28L zU&|Uh!Xy>-4lJiyrN_=^^6+(3)LPJB3m*Eh^SLm7>=?#X)W3v@=aiAFb+)DzbpyA_ z(f*~1x&*bs^T5|DK}F3orJZGs9bpotw3TX=9y|Y*huvTrDwbOGz%%_q7|+x&j_H@e zRKQMujGeQ7w9VgAi+BAvF#1wV9|qG6fcsBh_7mHKSaXI}VV?XR&(%apd)W<39XtO~ z?}q@+`&u_#bH`U-CS#`wS9YTyB_@oWCVb9ix2yzbnc5{J;WH6V3!l-b$YO9N8nA?< zR^!WQ*{5StNh7Xv*@DE6udl?S`1tz#PAL_L3FE67PY!bonH@L2zLuToIL3{NKId-m zjzt5bskyeQFcMN>G`^bcT{=PHtByHc*7y=8sXFF0)ha!{zLAIAxr_TG!9!nl-wNZa z&M>a({wquzUk{(R>7umiR^yFdwEwE=p0)8caUH0rd8V|ptnnpG!j$7H)ha!{xI8E? z^W*Ekx$#vdjAv>X$FzqqpoclLXW^FP7XLXgjo0|^gWq?3B5}msAu>IBV+@wP4vQy2 zFmXTEUukmr+Q9XJShdsTVokJ8T^+J@khMA=m~)^Ne0O+)%r3j=wGYD@%*Eg zJp46&!!K&VLtm@Ch4C3QjLTr31jDDy_U^yu*uXhv@S7FNVAt%{&hEM0o!RG~&$SHp zQ3n4Bi@cY+<_1Xy-Lr-CCq!%;;}!mi5yMa}2$MvNwn}QbUC@=p^kkr!Q?@>;4IiI(d*xq+Z9=i*ao;@UjCXd{weIIEMluDV*Oz8CiJ(%MoGk6 z&95qdcsB^Y6y9sT`uJ7Sn#Zip{1am}Z+oX+684CK1mMDk_wXlMg~h5iBjISOYpm8a zQPA>Zr?32}gEp(Xch4VfX#QZNU_)HzCSf#o>Kci}RWh|QV~24Ll@PAp1;dY630#i~ zlT-p@lxnp^1^w&C&T8^-C87-zJoJ^Yx-fq17{*mXKVd$Gjg?RfpZ9$cCrQ>;tc0c& zs)XWi2pMgW@25(rfW;5d!-o|~CAhIee?r8njaT?5MvU{KFiFH{E7cmD)pBEJ4Kck2 z$K%-Pmm524<|1Yo7qPX3SqwWpaaZx(12>wRTD-`Zt|g{Bfa!g}t+{zIrnIv(ro5{t zOv045QmxWV`{$Uhm1DYgj;UcB({+TYK(CxvCqKH~>Dk)YC)URQ_%4+Bv)g8ObS{wn z^vB;UhU+MXgV4vCI5@GgSPbc5h~Z|b0sI!L1;e8tOcF!dDyikFg`cf0FFO$ESS{=1 zVz^!|hK6x593TuzM0+wXee>6+Qj6ah(*a}}uM2c$TwhvKT<-&Ny>F1~-7v2Afx?W1 z9exICi~V|GQ2EjQJ=~DfJpVstu=sbNZ+tI0L>s6K9)JuE#b2jvSuBI}Fl2CN>BJu~ zgIog%lVp&#QZ4SErp?cg8;bkGI2bcHFc-s(axpZFi{Zw?RH>7)!jl~r9hq93YfLv5 z(>5^O6u3LLD#ny{0@KdaVf+@EvQ~vjn9^2BEmy0X$itI>j!ZYsF|EikHH>4rsW1y= zr@YW(VApx6#ixwvrefL&rU*mfKU)`LN;}KSsW1ss+Df%b=X5i9xHCc(nQoe6x_OSN zVI0#+VOoso7dKYDn_67RX%?+gOiut)?vgyaZ84^_vn-~|~#{{(ny&J~$zU@+aA9g>?qivh( zeLHDAgkzEWwz=N7&-HE?*ZU4j>HP}peTQ7{J4)+4*ZU5+-gnCNZWz~l)lz!j^Z_z2 z6smH)S4*qbRd`jd_nKVqhH<^uE~WQ3t@qko?{(4|<9e^n^RhYk_bXUb) z-!pE12xs(I$D8nUgtjYtFMAYo%gZ=)SyQpOg?7T+az#+GpYeQwOHkMWCYf7kE7iI) ztL4rY-;;-aZrL@*bT?tvfDIIbnqeH%LBhn<#p)w|iz~j!^n7DFNKBsx)4gEj?464- zrJcZ(KBX-(;n9^3N^>$Xv<#eb#ydK9R(;+#g z!-VlUHH>3ATo^JfgQWxejl3bX*lA3Mi|HF+x(#sm?OKc}?F6R0K1-WtDonzZwobGo}cT+7W-!*fhW{dV(dl`aElf{^s}*CSgijCAC~mN6EuQKu5nu=9umwjL)fI9MjRlFsEcXuiv+BoW5a9 zM~msV#&pX;#hB7gU|M&v=bgvv!!#Jj6gkiXN|NW$gD*B|c z8~QT^pfE;ESKScbM}^eP98!!a?F6Qm1SR_!tCus9FbPxIO0_P_YB{ER%fp9pJmz#v zj_KGOQ^Po>`v?=qY1`%F_f0K6XH54I(*a<*Df+u|XfdX=6PUi0_1UVIUJ8>irL9!! z?W~q#I!+$)=2K+4Pmbw$VSM!(#xb2BObhJr8upH-UO6$fIO4I;{RA=H0!+ESesNea zrnD27{v#;aPoGm^5~j43YT=f(Yko%BS04JDPRKFcFUQm{j_Llw#GHPw^Q+k@(_b0W z{l&BfOgUfn+`Sl6+6hcc&%MGVOld3CDn0iekYl=kj_H9priO7$CkCc)z6vwzoA=Fl zE-;O|jtjtV`S+iTzae();*hS1ir6SvtU`Y)kBJe(v+;G+ctgnTC{Oysy=6#nAEa+q zg5BMD7~KxjP+#~A#+?LDludLJJdIsnRp4z{G0p4=QxdYXUZ3D$_!;YvX9r=D?9lI2 zYmcm!8*v9Is=QO!*9=b#*>RDdR3h?JIB#)Ko1}0nkGfeNpOdk5sQ)rJjfFwMoD%ToswlmOqfi>QmxVvJ6O^15u22Y*dfC3 zUP(XPhuHJghjE&ZGurPhVuvVVZHU;-z-=`tM$F#{rJcay)NBTArsXUsOu~Y;Qmu2d zS}yOC50SWH<8i;W+LD%upWm}@L9oLr0r?JSFhFc}u9R%sTkITllLET#%G zMc(!)ochy#cy^k(i1Wr7@O}B`joIy8)3SH@X!tOT##BY)1X$$L4+C3^MT7o?Xgr2o zr7ezSrc9V58nl&aJ(<;VIh`h^7XTe=ZEA={!0gVxrVHcGo`!Mby-k?0K=;D=^U2nq zVBf<>?D`n7|8WPn_#XaE7Q;5h@KW?K6ds&5HHjfTwENvN1IO2A2Fv)nJ`IC$*rW8%jryccmmM)MJ;$}Yl+<{Y8S@m)G#imhb0)UiCQju z{5RR0-uE4II;ZWZ;9lnEtCrKll+)YL2P5&uv?QlfXC!!f7-GnKx@q$<6efuwZI#q= zF+5z{+klSa;;`Jfn3cqbR@n^WVmMovmvF2%c#L^&{#Mx-{`xz{u=u!m+hRCdF?E_YxIK>Z9`t=%>~i1iWL)qweH;bE*to#wzt~bqH9o<|3JwxKQaTdL z9C3Wxm|4cSsK)c^tUh5hQmS#coh?ZG8I3Vq)<_X1$uilN)N)y#D-W^BqURXdd+^YY zlp}=kBgHT-%bmhZfqoDC@22<0yqV4N$KN%}^Saw-wRbOZ3v}O=kS`;Q>N?WNG_dC<( znI0(*568ji*Ss9lqjF3Q5|oUa(- zBddjz(P!OZNetbbus|Mej^msYwmtdz$L1$1182VZbvDbCf2S-LofAH`EFY&VuZ1krgRc%xvh3yrdKhAO z0G&x%94V|xVUifqR;tD8s2X9>fR7Ja@V zhdEoAR)=|2pTY3;bB-|BYE0}rk;}!o!muJ^Urjk)i-f6mn1&qYJYjZnm?=4b&d>FA za1L{UFq55~Njc1g!f>q`eg10>bCEDRI?SJQn2UwM20>!yPdUsFg_-IwBYQ4ctCt8f z&0$95FqaDRw8QM~F%xj0aG5Y8`D>jyY{h#S}3ysCrQ4;Hh2R zovqWl$Fmg& zZHyg!z^Imq)E)jEbQ@Ppw_!*N9LIN4P98L=U_- zg18;W6Lj^`&}MM*{#04Q(*EorYpMut(C+i*D1n2!y4nw&g9J?I$YiKW)~i~A zxp7s41{bS@CMZuHI)DD|cpY`y$ksX2XSH=g)HZ)w+uZKSv)a45(G|kAWC>Z_uvi9< zA5*>e)WcA+*}8Hyv1~|VQ3#0-8Zvy`@Hx{urnj{e#q2v|_yL0l?>A)Lj2Ug6ZPO=o zw$ACA(a|}(l_RL7#`rJG%gMv$&7Qp=pRdB8yv)(89otYcix|&?r%!Jg+tJz0(eAXy z51u?~EdLuac~rH=&G>m!HDZ?!z1O^1-R*N{EvPFFM^%_@=6?JU^IALGYL)>_k;^hl zWOSfu8CI)3xNb;CcX!9^6;WwgeienfZBBRlyxDut?QWlqDc8@h<3}wK^2%8q9dp~} zOt0kI9jglZv#T4QOOT)%aZ6J2zglft(rR-WIYhaxsGl6uE_-9^CL`Fcb`Bf`z=X+@ zXIIxWwPVT{GNGm=6K3ROxhy9+j4@s=Erq!_G8f@#t(~0$Ff4No|#qibl#?76e@&I+mChqWz}%wS9h?bDXsGiFIYk<`SBEjF`e zhtFQ9s6#tuw{^XUqSXGBvcx3CW8OyB^RED)5*^V<)x{!-zeO`yO zcaO#Ds=bS6Bo7@mn!FfFOwpMmBUu(z@!Zg=Ko#jLsI z^E$fQQBK3VFd?>fXL|@aO_Mr!*6fb1Zc9eS7oDp-pWw)l1))+e_X4KK{Z%UC1$FNFEzq~a@k&#V8HcQH5VjEl`ZCG zW69ky4Qs3tDtoX%N*&z4ZakKREwE`LWE6%a$FUY16FTTmrXG zn~XgGUjGlj^-PJNIT+;40s8Ump%6}NIll(O^7&R`ZbK&B2!l)Gt zSYxqD3AS_r-l|LImhVaiBfh$ZHIAQJ6tA ze!%20IyKn-gUhg;{bFy!zpLx)jPqSIh)tfOzO(z2$BYsIl+MtW$yLLKwTu}vVpJT^ zgK7uW&*>Oc-yTlwgX+6*ecm;ry{&6defLc6<6skF!b~`l)uD99NCt1H-0YehkmzSSOD7f z3*~!2XX~6W{IPmX<)uy)g+WKnZ0&AI6O}G$u^A)(mARq-w^pkz0pNz@a-2#EgX~Hr zzrq?w1Cvk|92$GOsB+E}Zv39juNgJ=E zwY2ghB)O5LwJlrLiq*;w9wCr~;s{epX$vjCLi(UkC{Um+w1s~NkdRWIOHzlG>YS*7BH73EEK6+a+&r*5b2FJ-VRVvabjC3|Ttf<}NyBJ$CH6UGsscKe*e6qv z>1_6772u*y((zTFfvtuO7hPo)6huj!uC+RNhXCX}Us0)Pu>R4r^UWwS*0nmEMXxZE zz~n{c+M!Np6EYuTj!dnT;R391uocCGMTo^P{Bt`|5eAid5VHzu`M0{pLpR0CgDJ?u zDAqLcdZiW!Q5|MF9gWI@g=SLiQLdr_8%@JkwCccihJwkYv9x)kQiA1`pl=q?pRq>O zV7WgU-#3_oA2U5$P-VqVh#1zsF%1)pb4M3tBC=hA!~HMX7PjR6u|KJlTPQGFE}(^eH$HNN9M6^ApI{7m!!htZ)@KM+O$ zuAQ%@HH~25x#NDjH$It@y*U2d?mB>-s06Sx06;A$w3RK1%R^geVO@~wl$wm7^A9Kx z2Ib<%sum)X!kBPPItzHdh4P~5)-rGyWrU`3xB!)xF`GG~8k#{h-7uyg38P9vk@&!N zhJu+hmZ3mS(~QTW>3!*Lk!!ZIC7#6RHq2vT-fAjWK){n?=k{~iLgzNO>Gp;qHyLd! z2c^`wqMBA$5or5PgQLzx-Cw5i%fNI|BL`@iGqFe)b@4M*bRQgyhbFVWsVZ$icgAD= z-O<^plT*1fQ@R2c=$vckdUQ(07w5z#SJeS2XJR1(6Jub3{?BkKm1|K2b;s9K>so_H z9fvbHl{r2!Q#Bghixy#-Z+11nmcFTS$L(;gGL`J#ss@2)+!l<4)0Uhtq=m%x%LU92 z=vnVx%zF3tgwz-(!3(I5&h5D)C(soqG4F%%ceB`VK|aG*dbRalE3ofWe6_ zYncg@a-%i>a;=_O>7STVJN3r7<27hn1`PSug>^=~zb{}O2N~Epf->nb_yWD~#f~-o z69H)T&(tIYB%*2iZAFOAnYP_&YbA63eZ^bABQKVPWmZ@YORPWBolT-x}_^J z-yu1m9C|tgu74}BiE-6!sGJ}LI9-oI<>LD zCZL$W#Aa-^kmF90(aCf^H$8exZJn*G6c`}LoE#K!p(wCRnKsuqedO1r{%305$UmP} z#02!RoH<;&iL|n&upA44HnOwN)4Ri56mv{$tE`E)MrB%|+udR9Bzw84+FsoT3~DpY zq~hNkM?#%NTeX&QqNE%+hn+G|X{`W-*~_q*&9VNi#Of{UwHUF}}flB#om!}66l z97cKUj;)T(42~7B!&~k0DmC0#VlHdAWK!NGRuNkTGbq>waiAjIn=adhIkWZEz=j)m zwUP^0l8e!8J1YCWsEcIp!EIbn8O)E%bhC1QG#^#<6VK40TO{!s?A|IEGaH5y@}vIgchJ8v(w-gXtoP{J4z9>!9$ z7>PyTMb`ss%54eaIdI2mxb1fpwJeCjerk3G^U+7LYNO>b*_x2=+|I?JUeBKo9|csX7;Gu=?}#>QT-Qv%E_ha$ z-UZKXq3!A025yUDYSnRv#A_Oerf=)(jV4|^JAtkoCsr~!Upl<1cu%rFYAPK45g$-{ zZ~tI#6sw2+*kn2ti&8*(MQvg0PL6pFS!V)rXKLMC%L<7uyD;Pq(R`$WW8L;0R;UmL zLZX+9uK+z*QUQkW9}@kH7wZ|RtdPQnL_bSpP+l_HqGWY5&&hsp$Icmj3H+Bz)~IMv zRr!m)86LWV`)9M*ap@Vy|DOF)ft);3vtDW=PpB-6%|0P8jzbSuFB)DF!Q;$V8tWY) zIm*u-hh!=C3Utg+VO&KBr_7`VJ5XxTzgBY=wM=?JCH9^MsO$KDW&rh zr?SI1VLf)71>3i&P|YZCg%f%VOKkXhHwp&C?u%xn6#|p>woI=$Iw7!`ZCo^U5r1*j6U5j8d60C0oX!Dh3x# z8pISk#tB*h*%)yX?+lIuVyplMdHblIr*@T!xpsH;^xhVQ@lYan(z-ng;e&_HeN{oF zs(~urj~O6hbkw3{#d|)3LDkNTL)`0aZExrSFFJXqjLLB-@~jYq1~4nE?$$UkdKX}w*rjWJKBl)0Pm~-Ok?jXh*SV|TlKzZ zPftHL`%B}cZ#Irggm^a)W^d1RZs%cSr-{$2Xl)fZaJ!s&)diezb;nVu_796vqt~DU z>6v*AtuOl-Jc`wT5-U}lPr3R+1!Lua3<0JBQ^>QEK?j-xV9OW4=17EHpOita*-}?2 z;Vv#z+V)cZ6$u!l>KRwJca>w>);D}r)l%po4P>!VD{z-3oFM`@?ccdys2wQ)687Pp4lr*h-=n9pL%@{;OdonEk2_DhZ8e$46lWr30M^CuUp zX5b3V@3L0c*RvB#jL*3AwYqy_4OSLjie70FqxqPeP|6l2%qsBP?W!SnmV?v_v&L1k zRg~7rw0MyVCUsJ$9G4j1db`?_Gv=jq)A{TSCScSa%?dbF!@xuX?*vOuaoufpGECUw zjydg1%poQpm0ghhgBZ3h3<2iY zNcytjhc2(bmXizRL8F-;^NI^8yf&Q+D?@Td%w>hlMKWh)7ZqOJ3b{Z*>VCHZ69Kg# z<)_Ikr?18obz22MHKQ;V)X6wk#efTRZw_J4pe1I8pp;A=&v8Fv=!mfwQ^>BR&dJ&Gwq7!AorV)J|YB>)=DGi%V zC3w%fE2pY52r4rzuB@?f?L)b3pZ`sZndNu4mYMaJ>nI>mXO0QeF!R5^&YdoWWSmLR zz-_jM_fjpWyIC?in8bll_wIhwTG^eJtTi0uE=wk0DWU>=(NaY5QFP>1(}k0z#V>y# zox4=46J1*+NHvMsRw6EmpXQ>OjVs_L$K_^sL!z?Iz+CD?Udbs2COIb<UI=v!I9iJ6>@X{Pc(xSS0aiP}eUxB##`B+ylWz`VU)<|=C= zD(vf}wt1L}L_eRr34OiuVwmyu?c@w=I~p%n&eTFvS?>bFJ9VR!yLEag*z)E#m5a-p zpDVH9D+_*TZ;_Ly?t_p7{yn@U^0y93efgAaA#vHAu+vVm0j4- zS7TSoU5*9a{Z%YRDF@P}jbfX`cs6l%8aEig;jcm<#@O5uMXMT|o1-1?@^9a$$ur%k zoB&K>uy;5k3J+RMNI3I8@j$K@NK!N32~V~%2E9Z!JOSk?j80{9vorIN9d9*r3g-w9 zTMD34YNETf3Lf-yt%JtdaRHCL8upFOcfJ|8P@U+H4i0wpL)(Ih$(C42hGVtLc)TH-F*vTA zE!={-W8?)Q5$mI-N7VF2HF!cSM%c)?8kD~3GAw)8!CDM&+%voKlBdoVxu{|&%lGg| zOvU57hV~ml452C<>b;1x^=V*k3tLQaXq>3?m_b+^BL4*B65_(3dNBnI7%eOoVbO2` zR@1#;%Ig5dN(SxX41W2NmyucpwGP~ss}{SvQ_-&OR9DEx7+Q4m<_x(+U~xs}xpHo> z(U&Qxb6F!st>9Xu#ZmAtk}ff7tf(#}uc|*E!Bzv~NElAUE-BZtRJ!Cy-D_0Tje3i# zGiZf9U=N62>?nH4^$JTuLb@Jxk?ay_GaA^U=1z>(5O%l95|n(gTtXP_IqLn8 z^I}L1h`lV~ub9;Cv`ocfdqi@kXLN=)-#eub&*{|~s3~_^FG8tT=jlb_1ueo7A;jSf zecIKcfwxSw6cl{;>B`6~!;)hL8QfxDG8eHVbi6TUJGZuhj-p1p=S~+a2_>^GJR07t z$VDRJn>$$&8s$XhtY|I?p%97T{jbKm*{q5V`5eli_EGq?#Hs$H3kI zbSWfi4v(F3VoC){ucuUut|lQpjqYL&;$qhLB$gNPmfeKW!x%x@eTBvBuoi-ahNN7- zIiDdTJbGVGdRm=l*@wb;M{)M4J-X`K>A$*hU-IefzASHsOt-b~Xt%io8ohR3%qX=H z#C9=mFn7*`^o`CO*R_|G&YLgtN#ei^uhL^;7jN#^cYr~4uax^XSg%_!(5r!fI-H)# zpJr^yDLqyh80V>2a{4u9ja^34zu->87wQo=>OX z7-aivPN=yzu7#$ls_*aZX_F1`*nD=X=T*w!eDu!!LgTFu9FZl%emcLX7Raw}1l=9x)|gu*jCSR?18Q8h zfW1CN<1oE>%N>U;2%|CXQiD&9yB3cLXtBChJkDAeUT=_qwY#E~U}s#lFwEYlz*!Y! zPvVZFmI|pkZdw@5aw5>eLR*lDeJA99!zi(10Oor3uj`U2&tE$2X!Za8c87&^mF6q>E+Ii#jgWi?{qD3ztjG zv$5miqG84jsY@qkHBjRMt~1+P#S}Rz$1A9jwW^8YqP#`>hUd5G8rPdHohbaJ@>|3O z&0rfPZCes_-fFv3Sw+&TyzAPnw|5Fiu!ZJy9h_M; zDRGEh3XThy%R-g&V(_dcOlElBVrNSglWBU$P>GPwU<;R6e@b@=n-fzrI2KeLIgU1C z`*8h@j5vK%adCWhJQloWRz$H#FcosTQgMAcN4u(O&w;y!iagrIBP@05=ZmwPH>4bl@k6cL#XD!9V{CtPePX8`tLb+_b)8|4gVMEG(&Bj1^0V{|(cx*_i&P%%NA4^uTmi!EX9sc<;|Js| z+-1RKPl2lc0&bzTC#H_(qF9xXUe$-@;+3l$5BiFn&Rqs~n5y6re)F1|Q=?~X?Qk3! zotYT37j)vvIiR7o@wN5DZtH?e(Varko%`xwcosGNtL{PL^e?W>=muJ;BTi(`Xex43 zX!0oM`uitlPK_4ug72cuhMtOZUR)ZlAs&52aj#&m4voL1EHtCswla^*{!N7k=9LqB z2Im3K30i85Yzf@fip_iaZ5{K#;q3UE51+DSe;zb+3#WRt^~HLkox5DsV_a76vDMkRBxIG+tPrXkMp)olzx8Md6I1QR45MZ=La)Tfqvz@6^J|K z@5&Vlxl_if*g~XG1(GV+$rQb^!KjgtDsc+36}Q&r)%&PDiOK@B4OyZ_1M9CMyfJNSM3|CZY$mGK=!?xrxlvJEBgcL0#dXYYmXTi$Y zW}kO#me|X^7~dtNWFgVd#sV*mv3zzH_##=>XLq5W2{ZicmcYfg+0X9so91qb28-d^>-e82ooBY6`JX7EvYir_)43wgLtfq4qoX*jTeMnb z%!VoB?#zE-PP(hxxu%b2RrF;DR zuS{S;mlT(91f&NYEB0@l49GMuqvfq?B`>tu;Qvz|1oQW^^uUu@Np6b6eMfe z=6|tv?D&RW3)|`BSpY-zs=|A*?dM{cxY)c^J7T^FWq7s}%{3doDS~INz|U?uR3n|T zo~j|p;?3tS?gjS(=zao_@QtnQ+hqFyZiv9e5KConWovr?L2vFc-=B(Ri<+{n?1$w`CQQjzub6Zo+-g>icg-fQcW!>$pGtO5%@;xN-kSg{RqQ{ihM6kR1ha&J z$T;3(nZsQyyi|TDdz!EAFg!nOsxmJC;V_2RV#t2Dz+p^)S%+QO+OBp^wnt@`7DsJp z9YMn&Xu+awr1Q!#5)r$ucb=jH2va`1hHpeO$wp)Im91wmZd9g=1I4hMNI^z*U?Z?Z zVHrJ&&Q?)}814@3Y?&UN$YT^PmymF_ai5TQVf)Ul&BoK#x@+6k?YnktZ8stjY-?@Z zv13Pb^S0f)ckh&>yX#Yt3s&d3w?)@IU|G$}EP1w!=W+Yg>8$!?SzQQhzRdZh|JOHK zTgJ0TW{vH$L3sf8a4}pHQvRt5xO%|-xC*${q|{?s ztMTCz!AIzxC4*jpw;}#Az}%+cD0Wp2f4x15_&i{C^&)_Wd_)^jZ>oNEZp&&!{96F? zZVjjC0MuxG=hu-*&(x47f1;8wAWj4d>~f zUoLC|Cjs*hKDc1H`~WaD`&2o~@wWyrS7|uX4U)^>AifPSD^dzyx%#*gFgIzqa&)%? zCSkw@(cKILgMc~NUzzSJ0P~9)E{tv~(7YKikK?m^z_RM_7ex0E;BG|vEAin|uDrhj znBUcKVRV~;RxDIr;q&U_Png!st!|!RG+enX#$cGUSk|8){S)}` zQTR&xg$AU37BF9~07t&Ru3?CePf$NYGw{!Vd*J~A(R9(T7S+cSNZt*YH3t=3Ik{W| zm^KX;CYO7GU=Lva?675h|8~o|8kChj`{l9;710**6)nbUA?f6o5b>-McFz!ubOYM?M*#E5 zD&W2hn6DMX74`e1^CJy|pgckPEc#Lf9Lu-vE{#b43&Piev@3()isbSZz;y!ds~UDa zeghx;KY#x_hYEebhF>(Qh;A0RV7qq15%^d5@KJgIxMIHv30;7BWX!T29Jj0{ryUj5 z?*`y_J<@+0A3insgxT?r0p@WHN4ZNmiptx9`2P)4#kkm=9^VI{Xgv z6MqPp+M~o4US8_oTEIL9pBwOrIOQ#(3v+92LHeuk;iLEqmh-Oy=It6TOwP@~@jk$O z-oU5qmA`)P1>83PGky#KJmu(~1yKN0RY>&>x~e!4J`Rvpss#)nTi zx&^@8ui?VzHUr1&0P`LLUr>2p4Y)@D(>H+to^o{W0L-L@3!}^Oo(9aL8qU?zqWWbu zd;>7IogmfnbngPpl!gnV+YB6M0rMsUUr>491h{ttru!rUc*>Rc5MYjLxG=gbZyqp@ zXt=QQz65ap2$;p*@^%pSa88vP(Xe8S3cFA{nI^Vo|O+@<&zR*pC4QFr+8 zDOZla0L*taTv$1N6F8P(hT?5{mZDra{thtT)^O#@@ngW8o)z|B$HU99_cZ1#@ZnRg z967-JvW5#Q#~Xm-_W-l|jG)74CcHjo0rP-{3o8fp`4<865BRJ<%lVS<@xpaTzX=~c zVf@kW>;%k)a{{K}g6;VAfZ3_x!uX><9s|rDzSOeb^)k~R_uJE-fZUBQM;+W#neH~g zbZfXUy3If{0GKHQUyyzIDBxZNnCL4i)6D>8T*H;4I|Z268Tf+eehuV)3o!THTbb^! z0p|BKTsgXb2$(NuIM#0v-Sde5XTVIo5&=9)4}$CWRe*VehKm4J>_(A4)QI@E0Os8W zTo7HF$3F(lwXZ?|PdU0f0Mn!4T)IX5Q5SHe0rLh8w+z1xyEaT3d}8>#9Weh|0j>*h z{|T5|?_;hK{#<;h0Jbn0nOvC6X zi}SWG>`wH=MpBtnva93TQ!}T>rt^hsn|-nU!w2F+nWD(SRQEuvKQVl5Gdb&!c~Z-2 zk9XWLQ^-!A8l9RLHADHaJI3VY&)eJX7|P=14Kvw0j%Uwq$sIYd%i7S$T3Rk+nA+=B zBb>SJn*NEgd~POpw9tIR(2dRdNILGJXvVGg(-V_f*!w1HMdL4TaZ0md#vaY*N6%e> z*k&ivS~G*IX0XzMv;R00f1|as@!eNBiJP5u^Nx<#%nbH{VGoRZLi!Lu4^unk*=J9j znzlQqrgMCA!XmDI*_!OyY%Obi&!t4WA(hNzQVBaT(4CA8*n>lO3GwARHG;}X_WF_< zk@S5IRIC;DK#s-Qh_e2QD}nkM8%ro7)6>~}P(mtqCJWbPW#cNhSa+#n+3_g0K6TpM zh=A4i#g#A~!xq9rw@0^icdfB%8fU?7ojsmCZ5P(zX9Ch+iRF^XNwC_8h;Brzvhfnz zvl9io(14g`g)5NyIEG^zW|4Oqiy2wG&>A;ba8=7g zlgmw#%D2!zuX3*^A*M@&uiVk2cHuer*#$N>+A~?ZkjLAu@qXc4-o>^S>9-<%g&jYQ zC6h5`Z-)%)?1|iw*`vf?0Jc@9u;&qPpRfy;Acm|pOl8m5cwgB#)b(;5cL`pia0>50 z0Gz`u5$q8$#K|HkP*N=U$}?labYV3jI)QQdeL9Y#-%vx{}40fMJ8D(OlNs zKbxJ+UJKywBkjt7w2qF0qmw7I`I`aLaJ6MU*Mk{Gdl)Uu=Ckr*0(tpUZmMTu6707F z`e)CvtedNX?&#>596dIZM5do2Q&*Llg6WT<<&QT5)d^JSTtAG1Fis<6@cX5Pv=54U3W9XS*y8 zj~&mR%C-XNQUKlPWiAEk=)hZCGP&IFaoqi|9XVDa$CmOrbm5Ruz5M%m$hHp#-CZX_B0yOE#2F6Ga7R1MwV82r>zVg({rv~tH1omMs zIofL|vn)@u{lwUxxEJK@y%Nm+6fLRAV>UJVl5^?V0tCJdiNA)#7kG*81)s(ni*A{n zVow7l9y>mo-#da_??bMEdFATp$Y+mWv+yl<7qmXVV0tu<8<@by_O|xx_uc}ue*m=G z7ld{*avy^=xYWy?&gagaQ?36HQZI)J?DtaVEq0#}TxHk-%um5YT<>8XnL0W-J9B*W z$fVh16(f7E0sJSy$rT>Fb`H>;U4yDzOKNZv*dmZ_&BwLN1+#4^n!apTR|d z@=|RngDDiykU_DzxEdh;8_ju>N6LTC+g1Sl2LNsg1L)`|xr*v0H9~td2v_BexzmPjMFnj7qHm`c6 zHsrnxxu5S9B2-y*(}*I=+u=d%u09KT0rLXx>w#gzWf%l{7=jzZZUEj4z^#=4J30n( z`X#Buv(wY)|2mMh8ClyaXO*g#&JCA@4^B;mab zd+O__koE|a=3^e}@@;c5sUhvUiteZi5SDT``T?Vq>DeQb6Jzic*vs#M@Qq&Hd3`ly z+u@h3cMiyC++}3@L%(cUN>S#6Kz$E5N_(<(UMTDD8jaFb(T_Io-JlV#COY)pqA)K- zngY>6OV$X`GqK|VVX4?PG3Dk>vbJkwqd>0#aqfcT#DqsfpK5!u}}S^ zH@X6rakCd)szq$S7eL);zvvv{HDt&A)}OuoPf*!rZ@jYS<*u8^c>OSd#T{+9q4Ky`j{X_#5!f|OB(n^hrw5aK>0P`gIucO{0?Q&EFlB^eDZ6IfhDg_j@kD`H&Kk$1A{! z!K30LhJ;5^whoVZqj#ywze)o|3x>SOg`+6y(%7NDF31g`e=h9FfSJu}F9dHiFP{Wu zAW7%$019Y0cd_Atw!tGOFcZN68aGKA12hvuZ+41r-pu7$S7)K{hU=i6w{GmJ=#h7D z(hYhua2ak;Z06i4`1<*YF;|0c0Ms;!c8w=2RS_(jW2U8u9H-m|NMoE50@=|aHdJK7 zruneHX^NtvCh-&{rc7H~3>DItBr4 zLgEE9`1M|~dt*xEb>0}4k!=0)If`Mwd?k z4CXP=xw&;OuP|52)24NlylOzK!%rBq|RxoVqoWM5Px=V*1%|=v$(W!w5 zMq6q;#u=}lLbv=gUT(6hS?S49$Prtf)QlIg{yn%duu{*RK942Km6XiIs0;l6aZ^ zWUuk+z+NLhF?}5K9uOO==!+m?R1vB{$&AydPoWNs=~JXBZidfc`Q{WSxH%B7qjBA_ z?Zx={O0=019>?WdMfud=Hsd#PtnlAQjT#j$!?Q!VJdGF`r1cjD+qbeU4FTF{OM|lo z3>0MuPGI=A3b<_tfj{C0);>3Sh%8fo3&J%}#Yd;6a)lnwL(zkHIW*sx5$XolfgJWGe1H0C3irB zjJ||6V1P46oEM@;@l`NycoeLK4Xg&B#({30#=WkA;|0BX@Or;wD- zNE34$lXJV~o3W!~239_gHPo8MTd>l&K@j9{IPBu+Ij`Fg&i1nBz8dZF5>0p9&N>r{94%pO&}uYt%PIi1@ds##8zo_a z({Qee*oDz!TyTq`EUMT_5hijAdqBfa3hPRbS1+xFx2CckOu>o}- zJ6%vUBkD*8h9g896nQeOqr;=<7jr3Xe>$pxe(EcLsLhW^T0(hk;9A^1NNb&9Q`SMj zNS6B7gLtKXYJHUP9UXT6=*&q@mcAdde7e`Z+d0Ulcac$lWn$3bBNJLtNIQ)7pM7>@BX&9j?I3hWdWka|U zDY_vTDX0cDB4qu&45e1}cVu+jW))71(z`#+skXY1b&0Yy9s+xt`*}0>3est=X3@`pyQKzGItbBXz1j>&fquJ?H zmC-S-obCKSP>i)wv+O}{p(!G(Pr;5UR&8AgeC~Pl{D4p;!jadVL-0(jlbW zPG0>gvFhF+U-fAi-yPe_HLzxQ5X-sSADeLMaPK;AyzKVFIF;2W4 zhs`*a%b%l5`88;$aw#insA!SsCB^tB5UlEkf~@wuYij~1_X8z%O}RdXR=9cMD%NO! zcBsWPNc{_x0M&o7Nomce-S|_~gX)l^((uMR`eb(?R{3ONZ7eKxU(07$t7rn*z!U@VpX6nb8p`&&w~NQbXZS2R4r8J_N<7VXAjlp;>KaBhlnW$W7U6oJE1>-Ksw%jFk9Pd&qJfXLRP)Er zfzM`iZ7GA@1tW9%W_H32P+Zjs;~hW83dfb^ZbQmPp%^a^av_RQBGp~U_4mltCb|4} zD8LE6`83`#DPLmYDZW*>l5%{4+czmt+*D!J+ZbvMOZP_|`zp|{a>rgAna?6yo!T(T zEuEYbT5(3z6_*pZrL(ptnM$w^=Jw6ycDlc3fS}X006jfwPePEdLbjLV(_ppE0#-5-G!m$=vHP`&lP5Lzp759v_7^~VUM z@oBLBREO#RBV*&)qt=P13ny~CPYHwIO;kW1#shu zr-$YuAbe=q)9D-LQZ0SnIWiPib^ndC}rd;U%lK%ha@}CM|Nr-|xj!%YZPRmTGCHufJHex~5v&9~e z0Fl;NPvg-E@(-nzr+N7=UrrGRJtU2Wf!y4s51WV(vB4Z8)Qs;o39YwQEkl6Mik8&Y zww=4$i=%ez++G^Btu(5Az-kaRQRr}r0Rf8VgZQK|38_@&!tlGlyiJ42Sx<(f3uThSAcNgW%GL(nWRI~%$;gPw? zmemIi&VBj+BhcKBKHPwR?GMkP>HOgBXuF%|_SGIp&#fPsecsbUwf8?<*gdyzB~v9* zMLo~H>&_3cW?%HkYD=PKzf%G=`xQX7KTHs(jp0A3(V*0cvZ)g&5o;4-mRU)B*II-4 zUTzIZI4@z@Cdln2GghXk+Gu28=1 z?w-MDVKm=7j>9trv~&dEKj0?eT>g3rDg-ri6dxWq^qxBrR1M`t60(a5yh4LA*MnYxjctix1->UZp{T4* zxhQy5E{0UO9NL-%sT`Cm#)|TaM^mTDwaN{Btf&-gnF9}dqsy+9AisXYt2TE*AaHX) zz>1ga5z+r}*Sqx;F67~P_+BL*Q$0+%zh>F_@wo|~*RgL?kFhn=+s7kzT2{~eeu$%a zq_3pHkdlgnU*olyvciJXSqo$Pj>uzTYf4NlOQtlDWmkswjv~&RkwWRw?6RU8&f$0dk3hfVlt$P*^CgMh_#$GXfb7lwI5yeO8B{}=ivOp7iNk$ zH~5Zw1DWNywTlF;&aVeL{Z|CdR z5m09P5eYf*{QqkbLk9j(LVJruyA`o41|8MMz2?<>Z{$(yHR)34ZylwI&VjLSQ;f&hLlttK6t|hAEvCZwm$6lVps|)4Sff9>#rG+e>C*_HP_{`B0>+aLb-_x$7w zNsI$&z^%FU@DFeL!k)i9Q};AI0qcRM*S-3cOgOo6?$b5@rXu%zaz-c5#cLmUxX}Dy z-_!R$Uby_;pFUk^df+>=H~jqZk=OJ+J@;t^{!|=s>j1ZB#Eoj*eRB28s<}^(C=lS8 z``p}1SJwQ;+{Zrl5Uz{1$Szh`dQ-0({9 ze$yj!-{147%kYoaz50S;xaPa}{p@F_eVkseIBh1USAwe@eoo;Dzb`^h7)h6b;a-HU0m#&-}uATdA&HtJE!bd4D#r$6==HrU_8!R_B#6I`&2OA&!i;l}?H$!Ai52hpd zaUe3g_P&Rg-S_CS`yZeE$M%PxT7Koj_kHQ<2Oge1{1CBytJ4P#s^6$(bSj%r?@b3yJ?LMJl=EvnRxomhQa~fp(2vdOVQ2*si^c)QK!AP4 z-{PYT&A%elBwp1M5_b~ce!J&11=_g;j)AaOJ~pO+9}J}04{;`_4_s)YtC ze7p)!<=y6n4kM(n%pjz&Jcy9O@*4;#EZ;}y(}Hgq+W22cXazzvrFGUCggzmms}NFf zTin!b2&u9?0vN}LHX~FcMz7ZDMR>V&H)zyZWBA@^9mV%@>m?HNa*4TDVmS7yv;ItC zK8o*^*7xw;VBHKFYph-PUTekiy}|0i_eLv;@5`)F34@3{Thd(#3D8hUm#CuqjL1C_ z=GT@^zKz74r9@{O?Z&OL#*}2Vo2&ZKsPEq8?&wziG7JOj14U+Y9DJ=rI{DjhtpM^% z?;Tsv8MZJ#xOmXF9^{tH);8M^S=7Sc)YfAs#AA0iNur29UxY3`e9>^S#1q>#k2r~fK_;f*bCLU3fr zLy!iM*B}m1-^0HeXMT`Du{SBno zNi>|77W}Y~^xBqBA%N6>#J@GFxSG;xNqz_7RkR>Ft3eywxYtTCbacHDO*dFauQH-v z<3+Dj(XeHk&cCds8}p2P?N5tM-t!oKv=lbO_V>Z&HqiLj{rvIQtbA&fBa~WXVYbcq zG^5H|{*2?AGzyzO{}w5Z#-3_vMFnm^PI2z1Pz+c&7)G%(NS}qJH?u;cjH$(MwIS4Gokgfs;$DZ)3ncE%2;D4kA9Ul`r`#lQw5JO0-`o&&@CHe($G1wo z2BAKDnyee~{ak$NtSG*fjXvmxPP(C2xuG|^q4&9=k0W#~K6TbN@I4HQP1afn;cAI{ z0YcA_&|ZYDlF&hfZb7KYnm|a&iq_kEXc66YfM`?_n(*zJQbsw`p`0h;Q;W~P<5MS7 zUX+3dPmJzSQ1=i`Mbyne!iT8;10RL@lTr-E^C4=ztKGTGU||G)4rGb|7Y_Wq%M2JN z#`-5_PK_4Ej)%V*Vl1GDMB;{={?0v~h&Z*&5ma01`ZfeYP0Ad~JF%;2Ppmj*@6%9EFk!VBA$ z3SHrbu5&{iud3ATZfLI?;-u&=0ZS9+J}v9561p3q2Em*~s6#?05PAVVl&b%sbeK=c zgssf0H$r{~A2n>7C`tQPQQGy^^*1+TD<|g)3%TYz&kJGeO0&e{phzB95L|B+je?uG zMXTAlmcIFDE)N(AjMSY6q~$?#lcz@ick0_2wfK2go&!NS&&EgfyX=Y8WI(P`wu5#Ml78nvrr+Mg5rY{Z=QuT#p+bscIHqw2Nxqb+bop%&3QQ7LL&hat7D z!zxqjIt;0G9agAX*I`Jl>rhqHx(-A2m|akc)F2I?DphZdA&yGZU>(z;dh0YoRG$W! z=whheI*&LiQiH`ID?|0N#tNF5Txir^*W{llDu_$mCQM%VXg z!8rAX^S!GtG_?;6Ylu5nVmN!#-_L#K zgr%df2DWN=&cUGnKej>$KlbDs@qf=(PWSKm@@#Uhr*_XHv&)62d(S@o^O>C|B5uYW z%xLJe^NCupe7=9>+=1071N_IIe+=^)4$i0ICn7FEP=Eg1>DmW=JX<%%{=u4idF|Y% zi)J(WYtP?_*^CAYUTWiGgtFi+HgVYPu68#*veI0L!)zZ-EQh|qOWxNa^^l|{5PAZi zI_oID4@%q=LI))DdW1$K^xFt!B=kOnK95hGO!zA}y3E6p`elUD5@JWHoI2{2ilcrj zIJ$uf-&TZFD*08Z#}QJF8C^vbxc_^qkM??C_8F?5q#E7FYPDyNgA85>I0qL zg1v-bM@sQS=t0TXh|rx9^2~}XQE%P7wZzD6-@UE7$jIf9m!1J}^h*N~TE=-G*Du5s zAC7or~6~Zc0R#V)}Y-~HAaErMw+4`uVEw}8q@t=k&V-1ZaF(T z&Kw`bA(%*G+AFOyhfC~g(9MwI(7`PP@WqtsR$5;U$R>;Kni?b=EaLh(NCAkfv>x`j zHjc|0TvwX=H|nn3-2ZJLs7lC?Dk1sc<1DT+MM|g^H|Ba!8Rf^NkM#)qkM(RKp2vFV z)L3($y-PJAwLZ({quSbY8N#PYv_ds0$_m<6Bq8bw6Zn77laO)Z$&k=JZn#L7o!TW0 zRd$9{*@;;_bo8+hh41QWSGmz%?cQ0$yIH%(J>GYEOO8cjsLJa*cL7Zm>pQfAs+By>+v3~Snuic{098zljTlmtjcJ*uXeQe91} zVUkzVxuSBIHT`3+9LA*(#a?B};I?wzKUH1be;Y+qC1*&LytwX}@=Vu#wn%2I4X5sZ z>ehujkMOzSK(=T<6b|HEy7~OU=DBFg z`CcdXu_C9^*g~m#4SJRDLd^twmDeNnYDw)w=m~u4tOl z;Fck0-T0&o1HU`>=@XWY;xN!%wsqE!wY_G&H zaJY0B*mWY}5(M=d{lmbQ*3Nxq?qegqRc(hzxlv$IgJpB&*6&KqwHI(t;8Q2NiBxl) z#&6YJ-++*6uD^?rYI5&KNHy0#b>SXHNHxB%BBUDRQwXVs`x7^=2^=Z7>kv}-wjrc) z@LOTN-G!S#sLCe%5r8hF34d7fu?ch0wGQJ1-+tt6t=o-hB^m#<@7U2^yh~&TdD(>T z!v7;)6E=2<6nRYU^(D^KeUS_0G}pUJn=30;HCKjIb7d)1b7e?1*FTmx_V5g;=1M-z z=E{@>HrM|*Z3E-9;AtCQgJpAl95qp?xh|%6{WH)|&H7^qsS)7cA*31~eNok1|HF;r zY@&i|K}a>%?FgwHoOn^GClRW$k^Ut>7t%;SCHdG$KO>>yM%uo+ct&Ph>yGx~8JSt+ zWh1>C|Mz)~bbd23PQy%=HcVEbYM2bEhDpvP`OfKW8ev~2AFv*+QFqxt^{$b4= zOc!nVdo0Sy7;A3-%Jb>fb4l(DTz$T;5fg-s&X&M*)7*MBZFoMt>9Fi|TZb&8_|#$N zh!f(z$A=_t7ruW}LUDZm130LYlPzk9uuKMsR8{Z!s=$!%rzCV=(ePpbDM*lgD{L1?4z~i!#cemzk{WwJ=D(@%7ATs3Q{k6T2sLnFNY$8AHfK{IQsjv`BE?st2h zXX#$$O{A1RPEbCzbc?ZfBZTi%h(6g+yd|y$94*nj-%?# z+4)~75-dAxAd}hojhf3XSs$WUOcf73iMQNV-x+Ih=W1 z3RLmTkmA{)sY%Pm=@nKK?~rn0a3a-?XYlT*p;rGkyXdaY&ep860ve6(k0qk9t^=*n z=E?1Bxj|MH8LG#+qltB^ok?y3#*!JZ@U3b@dX?zdY8|Q%U^TV?to1HdhU%?X z`BM91(Zx-Apqnd{oH zM~=SAmT_KNeVWLnd#j0bIl%6J^99prXI4$*dpD~)30x3s%aNHG=NHFjHIWF1V5ZPPFi& zUwuyFR};Aw-{h?JtNa3gOo6JmWtUX=M~Ht@~Mnyoljykbu|&TDv!Do zqE+ETm}RJC@0It2uZgT;BA!#-w`0eQldDJPQaH_Ags+J>lNICN{ksReT%$S{Vf?gc zl4~N$Fk@n;_N~9@$bM%fF+|H6 z2>-KofZ2GBFmcvIw&9z4Q&;=e&AKi!yzrq_@Cc06A~D+mrM8i%`G!X{b;bhok)sUA z!@A8%D)W2KmPrLedIDo@!TlzDsCizl^%CcNnJtbRPHG~L;@gp<;#tG=Fb{1@O@uw1 z!=Q#SUR}yLmzv1E0<*$8KJYtJN~(@+IgOO+ZOiE7F}ZnSi_@f#8}sIx{5lJgkMtsD z7N2Mz)A*PgMQ&>%&Q99zes1|5#Sh`G)Cx%$znobLCFgzux{o7g>bt9L(Urnrdi{;^c8h~;9=aYQE#Ap00E2S5R({_ zAGWoc$OU{mAR9{fq2=+{yM{6Nxy%Ri8!vn3Z+RGJHR{V;e%|H~b7S6B67xkPW+FmM z>_#9AsTx+DM}EU>)K7Ib!q5VEuSe#-p_)iR;_-#&vXZi2j#z)$HH=Yq?t4=(B=rZs z{PKVGc)db3Y3z+_E~0*=Q|Le z=Mb$X!jps!^{Yy#U+u$;A2>BmTVnQu&G=mtX~lOP{x-heM%l@$)81c?aP{rI)R#bZ z>#ubwnpuj-J&3s(pXCEgbDnydK6xl-K4~4p%8f)kF^A+mUK>iBzu@7_)V27^6|8I%~kF)K3{P6A?~E_;Z<-!*ZW2xS z05Gz;{ws|ydCZneew4&`LeF~~i7`@OT!|4^Xf8uyY~eMLx8mE8*i9u8dx5~164Nk- z#I^{`G>}}5`+{zI@Av-LFR`y9y?TiSx1G;wiER;yeF+#jA-Q`50r%-x;RdO7hG+gl zB-BLK;G5FA@nzrM=au<(or^I3T&0E?S5Fhg4A&vT#{8o>Gc~MEsdrD%KanPV2mFo&$j421S_zufq*S#5xyY{B4=_t~7Hav$>C>ne?Fq#??&LnU{+PP`t_>pEzo7^yG#I9;YsP*hS!p;-lhT zqGK4VVm{-GF+HLfV8T42@912FLG2iRR9Bf?&1;c}hcL)x^k{L!czsIt{h$1b!ylk^ zF2eY8q3I&mCVcamKKPy)FV_K`i!iFB=XDHWRm?lxnC2qP3BahCB|`t}`%-x)58AQL zMHq#rc^#qn6yu?3uZgrsnq~dsj{D$3syvo8qjM2P#l6GDwmP-h) z9+m4BUkoi0&I`&(cEz))WBtge^qF~o`cU%6x}?yk-EF&MMp|G*$98XR6GAG+90jnx zlt!Hr2}w4Q466Z1<g5e(;C zZAq7ubVy(t@$HmU!x$wU7MNyyvrhf7ES$t$oUm00yV&0obkz-c$A!{2;)AcoCU^}GjWCH zGUR*^a5a(J@vYhma}{e8eGY#~HH=Zx!vfQ+@%ZKZr@EwvOXN(tHIY~AT=-`lE}{M+ zfiY`Y!x+@>5EvzASV^Cp|4CE7qlEgMl8cJ%l>Lqp>Zq`yvTGQFx-Brx8jrv1bu^rK z>=NpCBeo{;CVV^8?Goyv0%Mk4!x+?$2uyI$gheb5e4#*fsdD&pqMF2j?9SXUXmN;y?3H zgh+$A{L+|2j9(fWPi8A}sWn!Cp)?Sqye1W6j`7)#)kJ<%@Z$@Q!ee?ev`l_&(J+QI z*h|2!LK;m7edSkvSno+=E2Hq_N~AH3SiiR99BFW4x#S{@k_L94i!@Y>sT(gAJT3TU z4X}ULcu@9sj6vv|2#iRheYfi0Rg5W(yx@5Qz8&3AcuZ-`2#l#48pe=DL15DOUXFTh zKYHNpiZf@%0}1n(@d%!aJD{anpj0FO2+7ljSbvtdoo5AAQy##`|Cbms6A|w1a&%U~ znSR|YqC!Vf8V_O6!y29g%dUE~^}y~uPLD>t7Z|rkBi~-GCVwuYM>`ET|9n)Tq~)Fw z7_)XXj8QujQBA~|DgD&-pL@)c!tIwK5zko*5{rBXyl}ScT`yCyejkZ=R7t~U-UP-i zDRFtZ!e`#j0dq~{C-`=1=WIzyY2p2?Qo|S}eW}1SYdrq`>q%YGm$IZj3(3OPL_Vr> z;h*)=66!A(7*oy~#-M(Wz%=8VrSMbVy%AA(?kS=E3dGh#zJ_n7?Dv#VzgJ*P>KewN z{z`#q#&;?8cWdgeETR4?$#q`m!awVkCDbuUE0Vm1F{t0~gYmCQ|E;Eee+l&mBp0o; zQ}+8ysK45W89yu^%rIkq0Ux!~$-%SJ#3L}T5ttah9hhhd4CUa*v$q81L4jd;9Xz*| zz|0BEr~$L51m?8@Gh)E(HeoVIkPDe=B7F?{o}WXaoin!a63=L7TW2S>X9rw=9`$ZW zH+I3rW9hEGL$^n_*#j}lp0V*t!Bp-{Hm}3->K3cB^xY-IreAGhU>k`g4q#^q^#l5dY5 zjvaC^w^im0TWk;Aj?zuz4WD>j$fVSDkyDo#Eui_Lg}QGQ3Tpa%HIw^Baf9SA zE42@$PC`LZ(iyxPFF$&2;Z_9LVpZ3*|8{hzYajw02Y zotzBSD<5d@LfH$``X$DG0>x)n{`j_0P)))sR`dJG*d`$h+2A~&I6X#bXrfqIoxkbp|8qSqs-P1dML2^&aA+tf!GAi$B@-^` zB4XtLK{7l!gz!9Spoo)s`Lx7I~7z#gZK10<(QD$_Q0&Z7#P-aA~OG=y|eeX*Ws=PuPdq3@GHPck~# zok}yhwR5|=zZ?H^o!gxoygRo$Sv2oc7-2;HJt|C?xX^v_q7UuZEv(L3d1|k%mF}G~ zgXFS5n(XRwm{j*Idu(-fE(uv>hC$gQ8&5>{rBZ`M*1NME0>T)#bGvhKdFOTvcD<@y zw6-W#I$JQL!b{t6cY3rt>eHUxe(}2wjSM}d|M83(dZch0cW_%GpU>qpC{7d#3ehi$ zdEIe&#KZjH@(_-n6PF>1O?n+boD!fIAB|GX!qi-@WoMt*Jcl> zA(ujGpUR#(mBVp8hsN;qJK7@C?2Y5&&Cu7-Kd3SC!NDOePMON(gdIJHB zk$hVSfErWVz2TP0^fB7Xf;qV6VHkbL=a)}WTX09{)Glt4nOUs+8%xAu2XFv4sb>OJB;0ykF_!xfi==)&x#1{5x!xDlrB)aSv)jtVTG(%&|Q-$CTiCzkl zVT1amC0RP855XT2z0i`DpUqtA370T@OI#?!9@^E~4nUx=0AX5(pV-L;MH zso2_XL?YPM+PY)Mj^^gAt=QrvNq5($B9~j8=iV0GfmH=A`|~jmjq~?3KL5paOY^}y zGR>u9CcS8{Wlh%N=xdh(%->pHUe;g>#G{qQ}VyYYHm#5 zT}*cfa6d!(V4S(sLQJ#~bk*W%kBU|J#sD*;;UY*7IAh_8u%!EPz+AxR*YJs85j%)( z25|30`p@v;vkadwy6d|w>l%Fcl%snSVD{jXz$c6@7mN=g{de)bWe)%6v_m@ETFw(!JVaw6|IbhcID!G)SyGg^`Ape8uaw%{d(z&glPdU0z0OlJS z&ZVpLp6V$N7Yx6vVRV$mcKO2YL{Dral}RPLI<7r6b9!t#U%0l}7dtyUF}?*S$Eu6& zA3hKt$`rv4rn(1W{fXggn^}&%vV{e2yQ$`eiy?hg#?guCnYL}MTXIKE?6NjAvYg9h zgMRIGs}aszcTNAqSUxwCJ6dSIVd%!@!Rf-psfm~HMN?R!n#ScC*x9lLw}Sl3O-}i* zamF1T9mnixu5^w}4`(NjX7CdG;lgNPc4o7+tnodv&0|9WJl5~z19bIExS)9Wj7_|F_62qub5{%zW7S^VR1`i#!fjB;#ygji= zCq%4uDxo)#=^E+jNeo@4QLK zYB-dNWwZpH*kw94o=PSLGR=Vfk%(sF(Dc|qt}t zal0#tHZ;&{4-JlFk^>1l9ZL>f0jPa|+F-{A`}=J%N%mk*&u}6$ybftUegWRphO~i9 z;!x%?M63nyI=esFjkdz()SVcPU#^i{Qi|gmBqfpM3cF_n%`2T5vNMDBP@*Tn7oHzkejwJv5R|CDsCtY_8B;vPhj$q<*yM!MNQs zlt_Ttp^{7&j9kFZEXxnx=nNEmMuR}EJZ*#fodoF+| zqvw*S=Jdw^M z2M3@$j?{J{Wo;^Luo7bhvj~?3mw@=T5nqxG_W0=3RCcm!_UO@Uo*AFRjCM(Tp=el1 zEIP=UMQ43Kf#^#;g)!=T15*D4sjEfXbh~6^hLNeXrvr@K0O|@7Jp%3Av%%u9nk zh?rC?olbO9xz_`5gWZ!FjG-C#+QWGJs103;kw-Sqwf=Ur8qrVEmi2YVZJYLjHmgy1 zilGU_?Zg2z0Al_g_}XBIIz5P*2QzG96UelpuY2ggkZm{OH|uE?q@gM*NW-KdUImP4 zuksv>tm$t7!%8#-iK7mE6A_mfwna;fn)+EJ)qC<{J$@Qd>yyLT7tf+om>8WLF66VL zr%3eAk+LD3?1vS!GpS*Az^SfSd>;k$VWh29y}YB~4T!!5-F0m&GuTgQ@yGIm@xIv5 zwffhU!-@FFP%?8^n&wb4of*V^YAE{9V2Zr_7p(L8OtL@G)1QGqGSZLkIv!)K7C>)x zn#MwxhMNBYM6T%`iX9xzpd}KPvF~GSdjCjb=x|?bpgWZqT7y_R;C1$R_Ox9fqtmru zG!1LU9|dyVH8_}}I1>;xOm%K@68pzki~>NHr_!iG;<=W1X6?z`)G@Ym_HG+R2jCFE z_{E`2Xk3}Y>4a1_WdMts8XRidaUxL;B}Ra{{HMl!7fnBKL-9Q(>-Y3>9~(0-CGewjVgPxo67QD;Jbu!P2!R{ zUBPzG0Ne3$BwdzDXW)>UstZ0#P*w6~IaGoosboGWDcgYdNkrf4avx-%0~C<+TlHdhVDZB>bsNDPHr z)5DhHs0K^$`@nHYDy{1pJ;p$sb-=2-gjJVL4G!R4V>ON2i?bgjnSNwnC1UP^I*^ZM zdGV&%yigFH(40I139H1zq=HW*;XgC8= z%O6)F@z;=}DTR89b$6pO)5Cp8`diX6mA;MF7`q8Leuu8SbL z52ANv@~gb$KK{Pn`;9B!YZ}kvw~wC~+w}7x_4O2=*`^Otuq0O-$LNi;s3~>b$>DUe zo3-*8z#VU zv6H7=qDE|2EBboT=wc#yX?CgDKyR|!m55j@NQJz7io7J_@G+G=79=NuTZt)tn8N38 z2tSUu0;1)Dl{JKSoFplt(7~43oL!(02a$t9bc`E?$Xc%#e>l@OGO&;JktCs{>XcZK z$MJhzx+h^L`_qFkNNnzbG!K&ZM~ZltzJ%l2)dylj7zk%&Y5A{&?Tu z;6Ap%s}VT{w3||CcC5*G0?vAJz^&vMjosYx@2&t&ZamfL0~xkBrfh9aO| zG-BMcFJo9BR@tq{xWbN~#+{vGWbF1Z#tw>+0b_MNgCj$6sYha6!^swh`-4=BgFsQ= z-{ZuQ|Lc%%mDnbhsva?yUx}^m!vkFucsE;chWh7(m zFr;<%MDED!Q7RZ!$;X%|HG7Y`c#K^KnM&d3Dk{tnYm`!Awqhwsh0utgLd2L!M1w?V zogy;2C96&ynZZ;JDuFzH9R3lQ2C+n}pN)uZxgn|iVzjnHl+_EtLp{9W{^TH;U{Tm7 z)TQI_lccCLr4DIn&9qc2p!hU`M0*ne8aRy7{TT;Q&qv&5pXb5>q2aTz!zH5SK%`8` zrKBVMNlz+6yi9J0#p4)SL$`^nIcwvm#6<}DC z);wnh_az3%bd-40GIn4kw}8z?cIWBgv|~SFv{r2780MwX?`E80u!+!%ThS8}Eg>9- z66@%N86ycApsN74p7DcSw>P5*gB= zxK?0j=XBxJu@zdys4JHPOT7pzo*GVevjV;b9b0bqjwtt#61$|3&7Yc>q82*VjCnWe zyxI|BURF4&AGJ-XY{0K#sffBs=j=}NVYEd+mQqb`*)re2>R5vW?VG_&vyHP&)IgY` z3kYB8m`ZXnGOV3N3TQR*Vwh=~bb4N^5Zy#tP@IFYp>Ef_va-q88q6~G#`;GxP^)+! zx!5CKcAU0S4+$vc<+JF^3gm-+@}+@pGQDVy5H2G@pF1uC1gb21#g%8q#1LbW6-^r0 zI17cX9O$}rH^qbq6O7>|OPnBo-vR|CCAt<=PZ~F>Jz5b(@dE&??H}a(7^CoAw9 zh^`-i&!KD(A-_vV%!v(Q$j32jZ(@j2r%u!)lijqeG&!4Cp4dpHPfz+_K&RYqDggnO zrwo7xeEb9LM{YJLP)qOu!LlRg=9BwHYiprt<@S=DsAmet3S21KdV-)m)71a z-axHdtF3pdR_nF4YWuU^dB5Lh=3MsdIVb4b|NH*`@8_L-W_L34JeWPWU}Z(e{sKHCq9Y~=CY2p*PJ+=tRA*6PK27@1ozi#mR^*>%8!L;FfR*mR)1 zQ{RqhG)j9q9{J!^S1gflD9NoSwk!atXNTz1u ziXvPwIrs`)NnF?zjc-bA<_;ki^@ig|iraA}u{#O`?mzILcyeP$XLJ^DbAUVEChv*E z54Np{v|&RbmP9k+DavW-Q5kYFZ&NgM#JbU7dN#L0k|S)&OWGrHXp5EOF1(|1tzNe} zP66%~w0)UPqNYEU5SezP74z);Me*MLR9kcl9JI^=wS^V!T1JOwV5FLqybplm$AU8fm6cg1cqZbSOX1a2*hEzwyQ6)5 zjuy4Y;#;ez_;iZ$yG~0avGopb5}kF3<5HZn+nU)n8mO}mgMqS9P((a-!?!Ial5}X- zpw1)hV(TCj_e}X)>ps5;W*)d357zXku&shVED=dX{QA7jzwJxw0dc>e$eY8!T|N zaG66RH1iHV6NeGgM|=7>lxCP+EA|t|J|F6KjQ#8r5}a24jj7=v`&#tNif9sddZJ0{ z+QlwiOQaTY$a1_zyV$MuVD0Eu*fn{YDvD86gW^3XcKmF|XB`u*AW;D;>-fp&&q{*7 z>u3$cXcs4o6{u91-Q=3~mZ?iNaGcT#tV2&YtUw!FxI|A&f6s0#=A3RY(9SDc)rw|#UP z0LO%o39x=C)4YPqxHG|ebe1^U68-Tm+#kk@66FpxYe}T|C=Yd<>OUGSbf|wV_B~m2 z0*W@H`={81xhJ+P!5fhCqDVT&J2v~4B)g)?NmHsQHQteSNNs^xOsyS_G3C%&2nr9X zDr3ai?E^GFb9S?et;V-@cfc{jhNPO^s1oOSszhz9cXKpJBy08Pp&7LTXU-kbBxkQT z!PYU$qfE8CeS2Rj+C$fbhPQydJ!=O4W#`Mk)2H!Y+4^AV)L9hyRj7_bB1Yji`l#f@M0bN>H?~LB*UM9!o9g@7x+q9gDKBg20is z7U_{p9aEX6DwEkx&~Y%MdB_BDs67LMj-f_@Y)VGOFj|$OX`X_%4{KG+N8Z-NN|s$k zKd=BtFZ7CgB>t6c6RroXp5-xw$TCj2vRab06J12!T^_3MDC4Jgn(JBX1f0!rScoiX zjWppFQIq4wP{X1o?A6fKeF>n#l`XOrOP`fT0fwl90JyJ8pOt4U)ZQ4@Z|$;7=kbUV ztP*fILh@LlFe;ocd)KV3@|bb=R&DjMH3b{-AX!9q>#3H7{gFQUj=Yu|WBKik*jD3W zxsBAZ5aHg2xkdjX@(LPJ&q#!j7YJ!w)Pki*3%08w7Rx5_|M@R(v|uTMt@1Xh9{$a5 zU9fr?TnDv0J^-6A4K3#4n7JH0`i3S}2Dl~H%KmyDyfPQOvTO1jvWpfik8h19PK%QR zug;eRueE%a)t9+8q%7IV#mrT!Ms@(VNU&0tJ(3ggfBIm*n ziZe40y*N?`;1GUtV|U`TNR-YPt?LCS8zp6tNIVgbBvYwa1SgU(!_xhFX$;&i2XCw4 z!PQ=jOIy(1I>)7Ed#&Ff6(!3SS!Owe*A8N*LIzF$31X&P=&fOQ(HJ8{WwAZa#hH`c zVbFmQns1kWn*l5(7vI>jHcA~=v)ijUz5Wx{akLb~=*?Iv62Zusj`C`>MKxO~LM);5 zBwG|hGF(M&&!8fTTX$kptW$L$C$bsP%CV{%iLPkpwv_4_QAbRARSSWMfFqxdsI0U( zW;QmPcV;=dVKxYz4MI~h3CTzZ)&{P57eiVHs%px{1}YMz{xu+9>7Uy0V18v~q`9MS z>r@oq3|Ss4mqqxjF4mm$Y$EOs3yUv-dzf0=;dAtIuU%?a#ffwp$Q>#KtVfL8L^!`4 z2@+*4nDhmwE*^qYqbagH?sz!~owc_?zg#X%^rzf?zZ8JeLHQ&BpmLE-QQcdT^O>zm zxQa`u>%lWD1iVC~Rfs!>M?uuX1=y)HB|>3yAdE$c9te&Sbc6D1*?(uE)vEtCbaX}7 zg|RLg#dBaFlu^{6m#!FeN-;ShSZYd>LKLnaiw!n!-lxL z(}BXj59Lbu=2a+Pl;{(HI319b>Ny+0H%qX~zmAJlm)m97+l!~Dq!*!3DXCr97maT1 zipj!jrx)WTz0r6Nq{*760m!O3YQ}AR)_lN=KtoSzV|T};eu}M7g%UqL=*0JF6%1P%pxX?N2?AL{+apmOvArxbn^enxLc{D|=>YK1* zs;XG3!7EpWjNa>V42?tN0&Cp5Y!LmaJ!tAsK}DLlZclLtl);dzAwYFE=U&&R5~k-7S%CdY z_Tp`jskU{FYRU-Zg!urf;hZor*K#w8<=N(0u2R{yDU-}_RU3${04q*Zb!dokIiN$dpATC0^FP9dBfkkc zp+-K|zfSjv^Zz6is`)?JkF!u%1BmBDPd681vP7i8hgH?u_(=<{@+vF2ODYCtG~kMj zSwscKrYf!LZd|9Vt63P69h+y6uQbNYkJQ3u;Ke`N=~BK34OK4Xpc*P#Bzj3P{v3i; z(~y_d{>;4<1IeWzi5ruakD(RrGtzQvbmrwyi(asL1xkSK|6k2YYd-D9FVPR$Zm`qv zjxYLTYmlpaGO@QxH7MSGOS~K?@BI&W$q8;DoTKH&7_1Woj;WG|XTa%-@pPQIDH**p$f#Rx37%!H= z?H;AMGf;8|6yrEy=c5=|Qk{*f{*0@p%2kob zPy?|R)Gb+#!`)J0z~rWPeXHE?wr?%=%kIH)+?nKv{5^2IQ(E8BXdh{{wqBcR7s)YS zo+%nB$C!D93n$?9VIBGx6Hqo3$9!>YQyp#P6d`vkWpkiCqR&368n6jGo^s$y+3_$B zqpYOO7=?UwSkv4tAt~-fl;KSU(T*-yl8)|0m~&3&7Aa?&V{r+N`q$xoak$%RQRB_X zeq2|?X7b<|otArn<>rT~h#Z5bK5_%6m}gehHWr5{Rdh&iD%lm|IUZJ-Cs15fmXoC1 zy2|5yep14tkVY}z;MXpG2%Gdo*IbYMBAiD{ zB(Zx>fwLMz7S}X1ENa2QW`~F@@$gdFiN~d*(YlO-09qUA*z#;}c)9Z-4gIi&^JFl^ z(FfpA_W@`2AU4`+vC+nz0`5AF4cK(#K%)i@hwAebjje!`AqN_WQ3bh$$@2u`yl&!~ zhqt*&-VJI8v-6r4;`BC82P|n@bh0`R-5^I|Dda+&=w;`!3y#JWI8KkV@D$`E{5K?m zEzx@JoKlccrkUuskD~g^q59k~ zUIXM|PUS+Q@N5Ta!KWnDLq68zhr=O|us$ZW5?7XBGt?Zr97xNMr;ZlLIV}z(Hv0fE zQEXi6qS|FtByO)3nZ|;>O4v|!mP-wDGHnHFNX-JYo?66ClQZ(}POG6f<)C^i4>Zza zUChd%YwPRkc#@=+EI4>EjvCs`?N;_RkIkX4SryB8HZE!wZI@xuC{IJREN7QAf`U1k zCYk`Rss)`q*zZ1-%odm+zI=`*aX36F!jt7xA{#6imT znr5r}sMk0luj*u(=w=!fJgZ2#vHp3Dbt_w0N?k58RhcykqX~uVn)(_!K*s;^7y&&F zcAacm%egadT(R&_%a-cXCXr=rc=m!?-i$eelfrW_q?{C};*N7d9Mz?=M=^LlF z&Ed%U@Wurm`+x>f2}XkN0eoy!4(OR$U&`9xxhZpeW!?Xwkl#Z$$wB8Dbr8|g;nS4A z>6kL;3E*);bykqIrX!F?D@+4B4BW)P%E_z6^{ep=7w%i}fIQ|&!g*vhk7`H0ytV|5 ztgGi)Vs*Gr8r8@~Im|(AgVP+)$A?5~+G?69szNX=a-Jn6*@Bf)&X!Q(g>tuN)(lQ^ z`M{4hb-*0T4ws9gcPOif+hGk&H4EEWZ_Y1y6uyi%P*ARvIe@6_^c{y~x{e&gw1#eF z7h}j~=wX`|x zFSZ)zIy26=Gyh*8#ix?3M>6VH$%#kGy>MHHyc(Ifcd~Ic=Yea9M81!ksbXW=?z?w6 z!!YEk5RymgbBrd#`Ac1f{3ZnvIfyTViw;NIw^$n%wYEp_D0*ZXo^ryOkyuB(Gg>dV z_3?810wat|$fv}p&?)>71OiX>I|DI=#@>A9g%DLu$(MC6Ffgs?5R%`8&%v)7WY(29 z2GYL|U82JTyRJB2#={X&*O4!MY|N}JIjPz*rD|)^Hi@#N(72NSIz-BPtJ+RriG+~6 zvpmOWbk(*%m$SjIPSpS4X)e3AcdBO9wY#J-5n#NRS({fbJ4VGj#ZH+F4tu@vKH0^J8(`MUE zvreb(SIdU$mi-E+YT!QbAk9eKEc}G5QG{F5a+J+%73-#2#guoeSW+nJzrYw}#7?`S z`T*q2=&W1=`S$j7#A6-KRI+o865Y(HYm)jc9NRi)O_|)=wc(%dzVrEh$i;k(M`v#@ zcr#RY!iY|ebuBw`sCR&AI|sxu-9@!eDjdme+ub*=MaZ?ZipJ6 z9n4%}@G~HeHvzFk{lEymjmF5G=vholP}1MhJN!Eq1+uijC_BIggnkdFG96l~x* zg7XJq1Y`Y73hQEDHO_GjC_8=-hQ>5E)P_&9?RjE;H3n~_;Z$O_!mPW-I9gihz~mYa zpSbFec1!z61fft`ilGKgQ*T9LZe~kKN3|4M>Ilx33dU+FY1vmD?zkqir5w?jKblvV z)zTq?VPBXn)fh)hIX286jmb5Ro$&@{HWU2=lra=bOOHj0vg3Q0RB-kw>8O@gn8ot# zY^h+ZmXelz)zO((Ir@|m$qlvO)9lmYtdIx1aXDhBAf&q@^byMU8vO zv!$e?S~?XeJ2+b^7^|hEWnVShz62?!_R1 zjF#G0HCR_L;cO|k;8DY`ogtp zJ}vx{(NfY;EnUPSD>z#!n2eU%S2bH#FyU+|PE(?W7vj@w>8PxhmJ7z&(hSTp6dSlf z2Re;RW`x5*cD~P>shmGMuyTgWHC0|SUWL=^$C|-gS2m0Jeq6dr{k+L%^fWWL^LLG$C#xxG$*D7) zP2})pq@T^_^Wve-P+JVlCm0m{;^Svbo#uSMqxIIuj9kZCAE!>8GiwU3;9DPG%c;U! zAAekwW4y~L2f^ui@qgNeW!yb<25b&GM*)lC6Ak0rz~x<`fSl#3`PN6r&x^BU2jb={ z@Zkv6Ms>Aw+_R_}@wF@P!@O4-Mk`_-Mwq;P(M69w!5WlzAu?dV;O&c3s@;6=LH_B$ z%)5#x+E(Ko?dPn~dazJFT=s9L*=5Ik<0L=9nIPbSj?gr)&jSJyAzqd_3tub%N zcgXWCh%0gZ+bCanH4+G_e%^df0cNYl1@Z0Im~-XZn{Ow0rBVKOjSb?P^CRp-BQgZ> z9j7sqw>j`L=_e*V{zT0`6L1#$SU3LQs3>0<&1-{P?zl#&Te;*0_B9FMR1y=%1@4A9@~7 z0Q0)W(SP$BZ-qa`79ApksvpLi<40P< zA~N{3cRk7`0+UAk17ab(TCeuf|9A=I?;|o;?e%EKsOxaB4UxfWud5wjMOh0lf6}Y{#^&muQbk&FUQBd8gtN%!Z;uDB|d@lg6k+&Jf zWrz$xe18heof_xImva7{#(X5--s9*8z>WNwVf+k{A&Bn-z&x#SetcU&<7JJRL8aww z5Dz&&ijq|*KlXNFg85bf)1q-fd{=4AHS%5L$#)NUJ&E$me<5rG+j}!GcWGP@-v>2j z+%HMfoA0ks(uDFtCJ=(;JQkRV8t2D%7ii1`=3d075b;`D&-T*I82f9q1Cb$!@8iI{ zqH%tF!=UlD#+3es6utZRY?RDE`7MG8=DQb|Cp6BFZ!hS*2+Yzuu!cv>;U1)iUR?p) zMJPZ1w@4rawYL_Sc8&AnTMZg(HRdw;9^%P23EX2SuiuRXLJ;58yKxQ|k-?8I+uOIB z2>2(v`RT1!-$u#EJMrduM1~-~zX9eUjSB(mwf-RACxBUa7i5hX3Xt;`P(Jo;{Ek;bX|Wv@eD!}Y%e<|-N_gi1tNhkE#(uiS^-;`;@r+Y5Rw zzmwD7p};(%aRoxp+aDVG0NRVl;3tm&W~>?X!L5#4*B+84?YRpc_?4^5V;2P zO#<^}jSJ#?p~ie)zPb1fe4hd4O^plU`#&0!|A?xg*Zi>sMI|Wj7ff*f z4gm8#jSJ%Y1C6;wzP;PK6MTPx@`gXKZozy{24;)K`SA^dMhcjV9rV1~`!(RM0cI8* zGK3&Gp9IXw8t2Ei7c{zn`J=|s4*A*B(#LS-1Chb9rylmN8kjDPQ}xTXf8Pg<(}5}b zqmYxkb$Fvn}0AHDIQQ47qL{h*fuW|y0us~x4F_d{TA z)j0N>?6bP&%j1#%C@>)!Oax00Jm$+2fvMLxs~sMER|6AswtMo@j<|RAp_^#9~S}hUmE9EzcA?i7?}GV^t|M<1GwjaS^GQ^2!V0|=1Usq$5-S6 z%rl4|Am;k$!O7sY59O<0AlG2NJuhI)Au{;!oq~d|zF-(Xe-Zbg|AKvEbKU5&8{k23Ah(V+1KlwZjTASim-c8Kl04w$_fmxKSsp1SN>HS(VUX6&m-ASim( zS$2)|jsm7e<1BhE`IP~;9GIBKQO;g=oc8qVz}%s61^8e3!($wM2uuzaHVA%vX@^Du zbF>@hL9Y^+1#X;6E+>HA3XLIO2C?@pTsiW0df{AhsRQn6;9l2QwpaB>bVL89igx@f zVJte}sMk^UhWelF^3$sqfO%Wv{Pb!E3O)qpjK3**>>rV{YkZ7E{(`sAcZdv@U30ag z0%d)`d`IJ~{&0Fwwu0nwqEm+HoZ?Kh-$Dc7#FWSHL`@apdb|*Um-$KY&U7 z0|^9GKW}?_J}}?aI6uC$YgYmDuEtq%akaM#xYD=57m*>5FEHQLI6uCkt{NapdYZ>fhtQjQO{~1m~rHUq^*j0Q2hm3Rj9Rzkd7b z2hamV2ETSt|E>h)@Qr4?t!WFdu208gJfu zaKb0pmqKLlZ3oJh0`mvNzar+~7v{Y5?+oC^erg!sLSzWigC7I)3yt&RI|VfE)|h|F zxA(p%_pe6p!+8Njh9JJXfq6vZ{P^wwji-S*84~$2VxG@@R07=fA~hs*@UoMfAAb(q z-5RU-V%~Du(}RI~Xg}yp2JRK$%0i@M_8aMC+S991b|^4+Yg~|Ao&e_640_NPm!JIz z=)D8XojD<6PHqVEzP|tAvZoV(TZ;1Shzwi@h`xBtN7n&!i^f^{?84oO>-Pflg*-*? zIQ;K-zU0J$kWr7w;75 z!Fi9j+LDmbj>y1Iu`ez;S0jI|##|=fA24gm8#jSJ%Y1C4n}zPxwZy5Am(wN+l zM0xZ55lV)j{6@i;cEfx8-VMxS8t2Ei8uXsim_y3^`Thd9BT@dWV1oI+P0T^0vYW zUl8AJV9wMyzxM6|z4L$>b+Dpm`Ma+9cMNcCz;tUI=Pjw9%P*$?d@(S)HIDwh*ZlS! zI??$GyP(N#p$5u>%Fq0}~mi=p6)lQa@Ka=oe2tBxKYfGFa;mS34?D zwgH&)G)~Dmd%x*&;4T4X_MwVikYAhv<|`UUw4WY)O=E75Z}0O>7vTB_QNH3Z#WzR~ zwg7X6#`*E3{JsKA-rz6IRZ=fABf!V8ZLGsHzGGvTI zWZqM`Q@n=bM0eR^$Bi`F7Cw5SW{fQuKoK zIp^q*F#?gnuN^O-Y#cBjBYtsw2+!t(JjWaD)mKn{F(QLiKUaIlq3mX09@aR&_LAOv zz!XeS^lZJ)+&2pYH%4QSlpyOA*Epg*s041K##;4rtt)N;?km8YaE#*1^^Nqe!Zip3 ze6W5u0`psq^OIi~xcfEcb@|TooIlP6E_7_j*n!9pG>$F?=7$;=#PZD1gX^~gCP7aT8G_oo2bjk-&W|tc#tXo#pRDKw z+1+W!V;zOa5M(zxf%&S&+4`5c4*fo8TnfwyQxv@*yU_>CIT}Z_m)&>-`8$DGJ2hnd z0I|>{+b0Q?lV@zWGGNX~PCS*&q>^$UaEa*gSiZ*P500Jjt6 zA8Tw7-_q%@DToYyd`nSqEHITbLdMgGe7?NGd zGVRL&$dB#^?pWZGzeAR-NJ-7zAmr;Jv}WCXEZ?`%8@}oBd_ zg&P5^-@Nr0FfVBw(O!0F3i96q=8#%NkDp%p(u@4@zWzF!CK17I$wQ}qktdpR&SXq;bruK>N1XDRrWErX9qf-DV9s*mTzp%A z`?|&q#`k&PUUk#+;QJ9UC970htoph5#=z__jmhBaqQ`mReBd6`SYCz`Ta|F=7s0SmkA(p8&3PE&R@Pie8X?nG4Kf zjq~Fh2EFCL^gHNz@jV~70bqtl2IqSeFf%pIk8dmJ%?IWpjkD~%%Z_gW?kB*EUOzbB ziNMU&I6uB&(5nX~>Y(S>-tEAIItJ%^5HLq+oF8Ad_jq8=*0`YdUIt9zhQaxc1!khg z`SG0szB7S|BJM=YGeSzQTz(VRJ>Nw6rHBmHIC9~5U+qRLrL=i3d;nHm?w_dJdHwtRc@-3q?n zM|t6vZDBsbo_y+0o#lZYfRIN;Cm0sm-Y`TVpPgZ*RW+;QK9<7sm(ZdnhoIHO`Ok4iwA==Jtf57qtJpqZjvo5g9By>6)i2 zQ1(+`{-kl1y>i)utAKkQnDnWNo|@0S??dbb<_V1>+H0PszPzY0@5r~e{7wb#-zeXl zRD6T<-+&1JQn7H`71m`I4MI#S=*hUi(*PpyUAHzN)c7^}7_9 z>om@-w&qo3GdzAkRks;_j&C%O2ei0c|{owDq=6&v~ECA-%GZfC+S8@5-oEPF} zDh%l{c-i|I$iD!%J2ci>_qfI{kKerl%yVZcn#DrTd;HdX5q1)hfuDZk_Y{rUD&OAv zvI*Cpit;BlHmKkJ2F%AA7sR*VY*n{W^6kx+e$zOVU!<`?e18DUEgBcZ_ct2zkbL{| zeGKIdG}H(|d`|{ui^lo!eE~F5z%2U`Y!+gWAMq^8-$!Kd^CM=VEc|7K5g6HIDN0vIm^c7Xb5n2TtfI zz2`Dt0`2Kb!2DC={P+_02`~qotLkU*b&X&8_lE;>i~|SxWj$xJ2e=b~$vw}e=U2bc zz>L>8zxstiZz?cL9rV29axQRDVBT=x{P=zf%&@Pj`UUYV2WGa$S#ojN7xqUJFi$yf zeth2o<`a$c<4gNocs}-R5gDv~8kc?Me&=(*{6ph{{G0;@LdH}?1~o3T`;Gf>^}sx@ zaY260*bA`!KxFW1#}1Uu1m-rx`w?@j=iamZjSoKtARQAqQUtd2h52Y=f}4d^cDj1 z9gVZ})HRO24BTzNoUm(fzKel5MdSSVR)bztW3HC(d{29NF>rUIeC5{%=ere{FKC<} z-`${hE->}qz#a!;u6cjU<>%A`cOA;#Mr2U*yq^R55SUTlbk+~!*R`Hu{~ilWrN&wF zmIrPXFq_@Wt~=$#47Pj;bH$ML&D6 z510eLt8o1E8kb?@9}LVKjq|fZR|D4!%)1VpAK!xSLB@y-etbDD!@%@voZq;-5V)@a zGv*RSFUSr}2Bu2m{P^xbK_f8tU8?8>od>z(`yt~ehzwT!T>4yrvflyo4~?_+Aamb` z{g!(f&XFN91nG0`<+x9b$iPppep`?HLx4F8@lwQGXsVYz<$mHVC_nzc6ult%)dJJ5 zaejQOQLq-6%dUXWfmnbiFunL*2fov<3>kk$WC-H>E-*P)DV!hQ9Vi$I%!NNtxS)Pp z_rs8JDk4Krzg+~(EgI+7Z&!iFUSMKZD|$iwb~P}!X&ljB{k9AFzXfK=kH8zzZ~Z$3 zxO-9lKZp$ED{}U*LsS17;}?;^YKIHQ^=~sUGp|uNzxD6oz-_-)VMvd`%U;bx{w2UY zuCe(Fm*tO-0jZ+vLdFr-E1E&;luLlQR^y2Fl3y74w*vD=jbnSg^zR$Ue+`&3exmp) zxp@0)UjycHjq~Gs6X;z7%&Hp{JwLyA3~-kNbGyb_^M}iBaGm!8Fhg%t^!)7o&w)D@ zm=`rJ$lg!A31>p}Ui5g8OcZ$E4gFn`fFRX=Y(>^)!# zey-?Qdgao;Qt+w(W`@RD^j!W1^{)|_eHs^J|K{F~`yYr5svX{b*m7W^zrdOXF=$`q zEtC)WrJ`qzBbQy{c$f;z9F4Qvktt`6w`PrD{TRIL8gbi!yINx{`MKos7;tw3^X*@$ z`UQ>4SAcm>71cK!VLP6nn*jz9$2BA)vUYW*REZ;*s`F<0)2T;ED z-oe{@DllKtIKTGxq96^-M|-gL*^B2B%>5kKz7)sr^C&O5Pw}<k7`WY?};k( z=MTU>igmxq*EK%If$w=JzY3ATnpa(Ve-g?b z&=>*YL(bQ^>@LS!*<3q?L(idq5gGjWhEX0!be4hp8ZyFcG_dQ@n{Tb~<rnm_B0~`0w}AOXep5Mg5F0>vyZk2V)g8b*tZ^1!554~jFmJeVuKwWlpK1(}61@7ioF)HIbyFy5 zM^^u`-sSs&8eo=coFCs^C^!X}H{VnAMw;z)tpk|<<9}n{5s|^FpR3>4zfS}6sm57) z>S_n?*N%8UWZZ+u5VWsid=N595gGXD)o;6zKL(hm5pzD|EPbG7zg-F38kB#6$Pm+^TUwa=s6kCmr-0xDEZS{4qObFI|ji` z1MX2^@68T{JI=h^Q9W=vr)ZZ&X|f%)nn zIL-@~0@IA&1Z8mXT_&0MXhiJL7&EULzxR23U428%@}^}?ixyNK(bKoBvp1PKBAk)i z+`gi=ZJ8@`NmE@*O>=$w5n*zy!rMC;PN?0FU#4%y9Sj!yARA<0g_f z!;pA?clUzrsc7FZMp5bYe94c5aprH^R#w*Z^~E;D7sXS{68MO2iY8Y9x|()c!s1A* zr#CV`-ka#Fo?o${qc7GO=}RTSwYqNk{EE)a9mz;4*%3?iRo7MbrMjxCSIn>I=l2c%a%3ON9tSZ7S*&wmbBH?w;ilYFmfDI+4zVh^PE|5eTRng3{P~dJ8%zgOSdn$`t%t4^+-QMX_& zm_1-In`{ejLI1{$(PXr1S+XPEw=t3I=}5&A@yg1U*x3TyL7DqPr#m)dj%Hl~-80qLA2ykhCv_E!$b%kymE^La%H>EZojms9pmKx~tl@m2Fc_9q}a^K+3MhpRVXyc}d- z-I`3CzFm!vR+Ns#M6}2*t?AyBNTQ8Bt!6Fy94bho-Ga)k=;-c`wsypleUmI9bSL7Q zswRWtn;1OfZHmj|8@v1aHg|03b}F-~K-J;E-wO*d#>VS;5_4WOnVL7X>J&h3f$lA{ zAvOJ}gy?iPw8&AtMe*MLR9kclY;0zM_Z(0auA-W(Kz$u*vZS};)c&ZdAJyc0D0Zkx zV@Ka+Rmi%>Q87o|-2>n-K%RqwmfLmD6yG!e-Unc!AE2^QWW5aLwmH^^xvO*YL|k*} zSZuM_*QoY&L%|)=XphCWRviWKWVGN=8?5`jKh@rgvDX;w?u{mCwvU9N&hI)ck?g9# zf1MbQhu9Y_fU~eQa|)&G&W3I|WCx>Q{Wv{M{TejQVe0Eo?~KABO2k>KdXzb8WtCM{ z$^d4IIU}qE2gi({?1w{#IX+rpK^^16*MhcThD-Fc^!IFtCY2qXimONA>SOJe`YMrD z*=k(!Bg}bo_Wu&tEn73AUE@Jv08SeW2yZ4)i}^bq?QZYy?S;jz z#HC?eI(_g~sv%3Z)i72Lw#}Rf z)yShYcrnu&WDRJN9s>#v((2+G6zoBjDs7&QF}Yu}1!v0&xVDbj^0Sg~83LNYuX!0~ zdKp4n9Aoxv73AgU+l+>bUT~^ffd)FJs+#tesY^C+Hl)pZ7T%DqUJX(VGE z-CP-*1b|~@kO`my%L2x{q6=3%jLNLFD`N@CsmuE#-Xz2X;a5q^DW~lIovPD+g8TscF>NvP4$PEUK#3#{u+X)a+^KZ9uYnN z0vfAXGq|`Y#*)ynxPbQ&?dZw${Z+qE9-p8&4te;4we4-~=<0%rRXY(>j%(5T4&@MA zwnM(%@1vp)yFkUu?5kq{x)!~3gk6F9Q~R+CmD zpqD-v3qhe5>k~t;p?{+Vn#Y~5Nm9y`zR4iDm?t^ijY0#asOrdViG(5&d?D@1X6$gx z{;U^PR`y}4OKzt!%)`BikwPG`4cm;}iPIucb7$}Zl#P0_n*I~SOu2CRSqrl_ zMu^Imy*+nI&8q0W90r3kLi6p4M9p0rF0OFPz$kTG&2AU>?4Qu5(NYlOUWcV35$Gi+ zm5*QxVcq}Ps0^2PgX{rPCz9>#=u0v8F4RZm!p=x7 zx!!yTx!R!VT-2~3-odR*3jaQoE8&}0p?p!IPXOYLKvJsbY``LPAiMnQxL9?$U55Lq z@e~LAMJQAQ-Y)EmMz>-*C*z%7jFTPXmvGm_XCfo<3%Yv9XVPJvd% zU=ukXB!7boole1iU1&~z+&TRa`ZG)vfIihcv#M`m>QGh1{Q)dr)!aezv>YQynJ3Fs zW=;#T&$|ar9jXRJ6Yi75Qe1+TVWL$dg`>jsja*k#|1Pz(5<{wox7AtI<54G7RqCo( zH*R9S1g)wRR;CG2hBtfGwGFQFIm8Df&}q4MmK{c%}kh?hju`cueJnO58o=tyq2PJLv` z&eke6c+v)FQ5BDon6|She7eqZq)^fU8=XMG=e~-1MjQ-;L{( z^*0M+a!=tI=;Nc z1xcK;vHVFrY(66`_fX2b99q>2RD*syy zy|SScZ@(p8dLdXGI0n3zz@>AfLC!J7G+G?4Y68if@UrV2ZN@~YyzEQ~Wm~Asa!}*m z!0k|+BZXR~Ph**U&6~SMAHjqjB-ohR36FH>vpgK(&}wspLM#Fy`<}fbILihTqMqY(i>5;@j|pe$U2BU zXa@dp^iYG~)q+a(58O4+iUw9-ILM_S*kVP4C&@T7?Q<=)wFUj`^tsd?hsnChQQgl? z%=9+s0hM4xD7T_p&O@moF#{!cK;w=Rc0L-H)eD^J{*0^CRF`SsJiPx&+Y+%Z`H-21 z;v0f{P4)CDc#beX(%Rh6LTE1@hAQ0F5$T2?`JRgsi5KWpv2i(4VPuvVSLsx-aX(V$ z=P>UfohmlsAp_^dnU~b5V&fU4au7?5=XI(W`2TmqiY-R^o!3~0bX`T!-Uc)uKQ7XM z6l8?gC-B)9LuaS=th+1E*p(4jJ_E4~zdnX7RKx<~aC}aY)C7DUC#hlh#NG%Zn(heL zUBMOPdW@tTMgK=9$4hJ2uGjEUfG7I#EIVG1Q6Q(Te+;n|$nR_ZOi~!c#!+$wpJ}^W z@}QQ+Ba#XurAjN1dQX14@@*44ZxTKo!8J1KlK5-`kS1iLP_Lh<2nR?vOLTU{@S;qonJw9PIk?O)H3_Mbs z@rn5zDL!q(Ruve%_&i+dl0vFMQl}%;E~zt-`X^$6u>+s4Na`#2#3nWJ&c`QqqLI1~ zpSX2^)GmBdas|f4_=HtO>bv;lWL98&AD`680^xjV~S7( z$31PeHII9CatIi2lPdiPxDiHPYICgbAfup^#D_o%#T}_sN9Sf9TFF7H!pP?MDv|zW zO4${1WWbZ*WGt9McVG*@b1;@Qfvue1z9ox8FRgl7}#l7)Oe$^y1 zRZXT;HJz-;g(cY%q*kyjv%k$IViGV8u&e1fF=M;{%F!bn7RoXqYx8hNUDOsVFXe9fW9l0sw4KAJ_N>q>sMb`8)_ z7)#OUfmB6ax}|7uU4@v8bMH?Tq(fUm`%2SIn3M|$Th}#k0Kd<rIRIv*X3*?cY zU6LA(PnDXD)PUqwTY2f`w_nFU2F;owDT;J@5k)!#sjndxh@nU$MdNCRFC(d@YBi

    u{M-fiA={#6$?$)utXGwsbZr6pF1S)B%Lb8w|cOPG*A<1@D8N> zdUf;pD0~f(`a4ipVVt`g-8+;Ssj-`>q3Qdi7+sv_=v)3feYYcH7kl|CMDJea6ij_8 zGv?y+3Q4j4N(WY2DNbT)3Jn?ak;*aB^>4RI4OZW6t3y7D)VN|*uSP78SyZXR{&x9) z$#vA_A887%E}u0utIKE3ZgO>b1lMxTZ$TVlj;M?~+-8@zL{F=WZtTGMC)?P27*F;c zC8_$KDb@e1uIhiLRR2?6B?kMSDb@e1km`R{OO=SxN;edpySsl}x?ttLU6dupa{7H4 z#lta*M+|(iC<4ejHE`*681j%hUzy9EI9mQc7N2=pv)x4GQrTDCG%`@TUx(6#2Ft7!Hf?NN?6(7AXlGjsZ8d>#(3JA|SoQ(bj=T5i~VJPtyfx z_b#?OvhEc3YVRphke@FK$pRur7JRuzHFEQ^Bv7ldEFEfVu7|_BD9&eQd?ZkeOA9uN zOKeJj^-vOEN=bm+81T9r>Yl-pLL(j8x9f*U!K#*}O9%LQ-@dDMAV+zcuOOuYUeD#~ zK`vw%_?>6h-*LFgG(S8-i91T0qRSG~TxQ4Y#~)$IQjo%yTQpUQu4P}uuwu#I5Zx4u z4@1sSh*hk(9kHr)So1p~4loE(peOhz| zmMDQ-gA@c(Dgr5mKsKCd`Q2QBses=VcL{{*&cN?nTOf{OWTrsWL9S?0%fqpZ@sLNk zLmmgDum{_R=U#cbvyXD1T-ELSyO5^uw<)5m|Rvk*Er#$-SEbQTz!=p)>HQCWIVWk><)CMqbuhYLZ4BgYSG> zZXRnX-ey(z$z6lNT>bqCT#Iq^O+9GWH%f~x1!k5dnFmh8!vSdEm4I;>V z5_@$+Mer+IopRr;!Ak7a04tF%MrsLomdW;zsj{>t%Ks@*HqIE2oP6;#N@UxvP&R&w zuwZ1H8eJkk8Mzc1OABq0A7LL>G)1mgv>EF}hfScINyx3mlyedC!-!dO=0=y2GgC^= ztPz8$+AN`*Qx!wceJ^z=CxdHHjA34sE^S${6p8Ysuz%m!h1_+}auFN{w^B>IiVUe7 zV*);Njm56^o1Pg<5479wc*NUmzqPdgPmOOc!)T6qR$mE*DJ2-wv&+>xK`en_XaUR9 z@0`0Y6uh zN2X(LD>c#$tIZ zMXR<%)kys*nkuV zV41Oo*PzQdU`iy#9vCh+KSsy~y6Jk%Kz^YNrxF<+!{pY(2&2X|52#%&yqX^PxpsFt z9%phq3|d*)+Mkj|!W2OD-ac0ZoB(OA)QW(%ietxRtIUB@oN24F#*Jy0*jUwdOsTG8 zbs6#u_4*{16dKca57d+o)P&PD6RHPlCQRGyTKmOBY`l(diKhOtdbxO$9Vv0sF(2;@ z%Ul9;L+8Ah`_F4%V=J(YckVNh zwcASC&41s_0rC<0Vo>$cffYpq>+%K~h7Pop?rjjJ&}b~8)dGUILAN88iGjFMQro0T z{0NDW#;c`}&NbHJGf!@&<>N(b)Zd6pwB5+1_OcYO*D-_RIa%d|_H>*s52f~*vS(|Q?3q%sXFVBmj1rLuOK2xf zEnAu1K6LKClNITj^7i!VqUGsW-p;bwxo-|EEuZ_R{@j7p zhzu7-Qz8eK1Wl>1u1YFQDXEaN3i%=xmJ}LG(=~aJOc5kgo?couac}OPou`&z>$qs{ zBk4U!TDBtD%qeY8A2#=~Q<6F9y;#DJh6HmTf!NZc(^V5c9H>eim|mKf-d>bGwLJHU zx$pKDq?Z<l) z(~HZ}edRmn<)r_hiXKScD+Q5td-;3{o+myfL(05!O3r1*WvmQjNjcMA=gN$eC$2-j zzOmSe{37ENmz*~t_aH=;o@UG0@m$`1jdkcL9zJ!+)*R4Utrc@WOa`*=-HbT09 zC58HaqrUmr3S}sY*u9dhIC!&lIu>J-VRlBz)7|9{Hp zf1guE_n<%c%I^Z>KBO?Xk$Mn`qYw*>NAP)o>s_XEF|Ox6?-7Wn*rwC*Y8zkE=~F-x zx(bvAKO@C4LQAD?{W7JtKG`yL>z65Y>z9^E-TGxpSyt9vEgHul&oEemyD403VtZzb zA!fCW-a~7fI1*fc?&7_N^|-9e;J8yEBnJ)X>Ss*V4pHpy zY{Jb0y3i@a{asbEEo$arO3BBpFy+j^5{G<3gUN^1NCi_q?o&!82g)a6{*&=GnIQQz zCvb!~##3st`1X(#U7(D;Lf5?ec_hVFDM>NqEh&~jQp<1xDAcxZ7l$}>N4?^It4l{X z0vWik+GWe2em`7pd+WIl$F;UayK3THZP8SJGLFL&T-^2f3?|ntCvy!*Z+yr`yh$-- zt_-P0l54FOsf4UDbBnt1)FPp#|H2k3*)XMKW46!KB9;^yrr%+DakPMjak5J`9GzxZ zYs<#*N(f*5$db+eiNb6N>!Vu2lxm4t8#F)#lw`MrcH1yk1hfPXMw-F#_8s4rwBWre za4qo?l1=J7riY?uIGAP|SQFI-ro7w061jtX1!o$wH#pB^_XYBW(V1B>Vg+r%NMiTg&QFly%rmb8Kt*c8~0y>+$Dm zm04TzRJCPF)z-<8HDU?3>@rt3oYJvf>QbhBW+Jd~t6f{iiz9t&t2@F~QB(XGYUHtB zX*P(}QVn8CHON^hR*ogIef%2#3p)MT2&D7$XVlePwvgiDEYV{(cm94@$ia?-I))Or z%W0#yEOQ?R{RP;o_A;f~YgWWOp2HHqgM)Ht2ivi@X_;=BkX|t<{Z#rxwHx`nHf}ap z+mY(TD1CV&)GR6zB`8G-2LcveOfeYlh38~)MoZL z<)?f|rj!rKHYgvGDdj^_Pn8eJl+ps$Qq62*WqM$Vj~1Nsw;Av)Td51J)C3t9*kx{l zpFme?*+5I#^k;Uq@TLjwpPaugJg}ysZeVrZ!0IC0VcAnxQ5QPr{ZPhQJ{eB0C~Mmi zGHK1jscKt8s^N58P*<^P`O5RL7sj)3#yR)zo4$KX=-nIs{f9*$KQ8?`_GQYKBUyns zVc$Un;g(s2Y?wWi{=*&2&>LgRWnYXJC>&B1s8&;s`WLLq+L1RKd9As)motN-7OZEh z@-$r>gLih)!vUMo*4}E<+03$~xN=zzuAIdGq*0Nzn3O2mU68D|mLH8$wL7s6DYZL6 zEmyk}Nu;<%U1odloVHAD(@wv(vtTsQWr>S1SkwhsvN2FB{dPL zuS$vyJx@}+J9&dkd7Gxb#J|(XfxJk;7QSXm9h1v!9hufL5P8*H(I3cz`u4?NLs)3(0qOT z=VQ=gF}Pe9m_C-&Kv#mlHK(4oib;xX@03)!dAIB_;rpCBDw;e^iOv z`Ja@rMLQ77P<_7{IjkSu4dZcCoRJIn!JRhDUN#9sl_Y?Y1Rl>P6R*JhFIvpck`y-%&y*DR zhR%@G1f(vOl-n53m^I6tHGR%(chun{eJH9A!c2T=8Ci5%Wy?-mayIG zm4ms->+CiKxydQ3olL2Anmup2$t;m}DnBOOfG$amyP$Dj<5%uamF)OnU#j5K`_C_W zbBKD51$XH6jrY9`;uY_0pvoEPhu10Vu2eA}S$jdbK-5hsWCQY)J?8~xxLZ&hpvrc; zAMra0C6pe&H`&s2JmQxny)U|QsHYBznOeYpQ(C~3k`B435F%5VHTF*n{sbCME%4e} zGqqr~-44eCfDYXqtp6A8U;p1_wU8;*LU;eOyXf4%g_W?9HBDVoS*JVoZmG zzG$V{yAFAny-OadcbW3;U6#0S-RawQ=lpF7mI2kctBR*P3U;=P+xf-vo$<1zE0?$N z;f;Gx*K_8Fl1HcO4XhAwLRg$*tRCj=X$a$J)LLs&Kh`H@1Kkzn=Z~8J*PT~2YNsDu$Z7^XdM*Y+aNnm; zuG;CB6$J`Q(>bl}OOcqTo&IGN;mv>VN}6nlO_ik+w2_90099sjDw z*Hj)4+$r~dwT0uNOu6zGBXyx%akZ8A08+}Se*-Dy)W40Ca_VzYb>-9#MM^pK2P37N z`a_ZW7U-494L0=7wiuwp5LGq_#A5 z%I|c$f^_`=@eH(TZ_4$YvEHyKy(=l(C6Z?}XUv{H!<}_Pw&yo%=5+Vrg(D$^!@+<} zb?nOS&*260Jea*ZYga+}ZnLL5o*Xr^PH_2d=J80^J~qc9Wk4NKt`}3v^`bPC>&29E zy(lZ?dNEZjCu4Zyl;?`nE!1M;5~Thnd6(-{vGEh6-jckZ>XaJq6bui~;b&aMo{*M% zymOIkjrr>K>CddFygU8Qf#*Jo>rl2v*6NON`yU*&>N%L5%PK0CwqXEw$ymb~fb`oK zl~XWwSB2EjT!H`V@c)_|z^YXqM>VQwYzd)|tNt~4dK{xb#xch*M}mRzyk2NW*3Mp2 zu_{%lpCVDu-@O0?>{cTmLa~filVjTxLUWAw$ygCOk0Q)O>2Z?BCj->j-fHD>%p5DF z?6>hql^Hi6rN;YRNF6Puv;jv+>KUYz4R{%;BP8!Fqz;qRdq}DAo{zr$4)V$j+5lyH zcxzp4J%q%S$Io2if1IBMBHtK-&jMp4K54g9;JO)aFmU`n$>&=(^Le-eS-Vb#At^A) za}!~?ILx?NAiqb!-_WUE;Q6zIpO15i#kopS9B=NxykSyWgjA8FXpz+Ny%Z_6eBar8 ztGQNp8%nI+WyyX!z-sZHX)u-PUm0#m#AT((*A2+455uv(Fy5IJmfww2KSLAVuszIIeuUMV zohSS42ly`ip+*^j^8iKS71)F^QcX(zU`f#+l}n2L^Jqy`SSb$eX_9B#W0@spPMMyy z88Bz&92aWFoLO0$0dr<%Z5hm-G0S~lj8CnE!JNZnz3D3&&R?bQ-3&1261f3mS4idz zRNK7;fGoc)09L?$nt?Y%sJG0`IE+lO(j2L&g()?)P?&0JVMt| znyW5Rt9o{mTGcb9R`oP1YE{ovvB5n`?k<5rb@Yz!>V8(3a6uzcv1 zAS}9@BPXbKPM@A{&NchB7e$lK?>w{3d5Id9^g z+^1T1mQ8PK*NC-6n0_YyIsMQULubJW9nzlG6t)<6la)^IEfnT^U#Ckq_vvlTbD!#8 zly1nIdzW6&?>K$mr+p{ji2{>-L!PzRAE@W6I0l-F(kq6d9awFCdgu9#`%Ic|)@}(| zOi_bl)7$dSeGi9hIoTNLv+{6a(L6V*yy51&fwe_@@=D~i$X=r4ab)=6_MBE~-{VI2 z7z^>?y?;F(r43Trh?H_eV@TCY9uF?oN$Q(O)k^9|NU5ps7Npc(HC_D$QhF~^YWjKs zDYe1zHd1Pu;}oUx=+-J6wMNmKgOn;=Z*XXca{bGltCy6vbaZAcfs%SR!hLW6zF$a^N#2k4!1 zrbiZi&@xcfn>*%H&!do45Q(I){bTx{>}q8sm{LZ9EmTH=DRo1MGpM?u#FQGqYy%BV zNN>yiU+ldLd|g$QKYniRO>%piHUTaWAiyoXKp~~3P1>eSft02pr4MfN1c9cZ32jQ- z)I3^>T9LNc^bn^aI*#KDK?mp0C?YsGDz-dY9`aIWq~e1a{b;eMpkpm6E}1}Qo#>>vP>1qys1Ln_B~D5+=-b2D>`Nh8`oMGiO0FJ zr>&_!*LUU&_5lX)8&6EP}wY89? zKO}eRQA#1=qGU@wmn1hrI<{^NJgw!892R&x2kmFEVe5JO4b`T2QkJNFZHgty=4;wl zR2nnQ6!zPC;w8@Cv}fZKZ7u4cIn|s4H|;Yo0@6t*H^ysE$;7DJ`+&3$-U+1B&wmEe z>F1Y#wj$=Z_3uDB>3keWV}2e;C!Ie4(%$%IKsxEhmI>DJ0cK-!&L1EjoK z3FJp;yKZ3#Yt$<|YNCar^bmRpDMyugZqqG?ts zp3|*zJgck=@SJJQ!E?6Nh-bCchG&h{f#-$RCOj_^5!{6$+`C9t>@K!$gL|#4j4rh9 z1a7dtgy&_}H}PC-J%Q&^>lb(~v;K(Z(I^wDW~&mo#Y*AX2H{_p$?eNv4t?bB z$a7ncU$jeSU)h6hBM!Qu0fpEL#C$>e5DQ*%ff;F+IRqPN!nj)E<%ID%LF@p#1aZQs zh<$jcxK#jc5ELA$&7K{c_syJD5i|`pb5>Orr=VI8UaSZTADPTa_&Ax|?T#YSPBhCo zVT2Op(vB_HcKKR}e%f``ID57+%ygWp{~F506ljv+3EVN9o#E&;(}>W$$iM+Ohhg4; zzoWqJ?_&JEAO1WvIKo5Q-4Q68G97^u=?Ih=rz21zou)Edb(%_~(^O`^PE(0=no6$g zG?hrFscZ&xno1P2_8?(v#O+ZB#jNiFb&K2g9i+n_#zK1Y9Z4x;7-5=bI^`(msMr5x=BVy;)16EH-!wlBZlpsdSljT(K21FfzA8su2&B{0>wp%@8ykRh zn#xW>r>S=WX=iyakam%5^fcTl@o6hHuwsmN0(mo?)KYNfwaZvkV zcTl^my5{k|pF)rI%12}*i?MvsrgJpB*m-zX2l~cK81FLF<{!yh-r#Nb?#ZMIDT|8< zYaJd@M$Zz=soVrSBeIRLK+I4T${Jm<7^W$befbltK7=XG&0~$Bj@#3aa)e4}PmD>Fr!XX2~ zN6KFqc!gH}oT`17yvum<9D@$*%+;KGp$sC%W$cD6mk>A@7Jskvd)Tq;hIQ5ad1x_C zU=OU?9j%r*6R&I`QnoO0yudmkjXsXy2h5Haa5Fs=O6=DLF0~6WgDqLUhN0zQKZ_X$ z$+w165lkma=no4Ic41l|%u>rj2(b$xcD6!ao5mDR+Erf!!C*07E5(+cwx;3TY--49 zT9{(24Zh^Y`a({tvT zUbM#f#BLILdgsoi8E#lK^w)Kn_Y?41Kt5y|qv4<@iiiWNxHNLZVQ4?@YzFYiL@gFX zS}d4YUSX?HSWKT>;|a(N63j1Cpl%uFapN&`p>~MSR20mm$J>Y1~*6dU0P)62*Gi~ zRCw54R@;VGN<;Q>!?)dwfbB?66dK&#vSzxx z)UOb<9q44-dVEB+&~__+FBHV`+9>FDpmsqY16n8O6F`)Y>+umEL+hr;N8BgqZuopo z&^SB|1W1*R-aG+5AQwI&7gq>Tw6b0(BG!LNx#PItKLy2s zz9%RF^b0}3iP(%8h7y1?H=7-lJI$J&u^nyJ^jUL)mQf$WSJ+dr=UeFyhtBfX7GV+e zhAk?5!uEat2S-9H{E?8mZpdu|jty*g|24<_{#FDImq{;O$GYi&qXV7e5$PO{T+%rn zk;;9@LzVjwsoaMgR=E#ROb+>B&p%!c`5{6BjEkILjzp|8(WhH7I*_G143!OYtTe^A zYgrK_HSxm-PJ3eVGqm{^cOEo8D(3vW(GB}L3(67c8u+u|#uCC&%0i#(h8;dNrzq_9 zjV9Fi?EZ_{;bVez7)qq9VRCsz9Gk54IR@60rn82fKV{FkSyS(`#xPYIWQ{NP6p>~Y zCMEEtx7Ao7ldeo6%FZPE6k5CHbAoley~r;^V#a)mGnM7YhUPWXnIO|SxSv8lp9z!v zTA9X#^y!JgfE)^?x$JGa6L%&`$sOO9dU6M+~AXISRGFz*E8&DQ0hvI5{SardCEno+XgXonl2O_m`0_Z zNU3*ID7D!M<5GWWI`y#E4637~x&l<2!blETxz3WF+2_y^*JRv_eCmxEX&Uv}Y)%@C zAj$kpKW=lHnN$5Mfq+byl1!u|yUB7hoIY79Jffna={F7fNG+Gb?w^lN!{!`WohZ+&#n~-DIiT1s#KVWw)A; z7Udd|a*dSm%6FPd`W!3QZbdxGHO>OK9G9DGi+!$5&CyEuT+7{Jj>Nz8R`hM)AE{FQ z5oPBeecXz6qFK?{ihh>!BDO1>8)crp=CXuM*An*!1b`#+Cud`tjW@?A>tTA8aw4VN zO`zMv(8s0xY?E>-eXxm<6SthE=Cd48qqRwst8fs)xgwgCK*^y@g%_K(rS6B(0*%a> zZ0&9~rnskMBoO~wvn%Q#V+g?r(WzPxvCtldrRKBAu0!IGvRf>3%d8cioRhqy>v9#1C92Gxsd| zi4TLInqNY{|K%L|{qBpVe*Xf| z?_VtX{Y{zr{g^X_$+cF zdqp}IzV!%FAV);(L>boul~sFUBYf+`_covff<6bN+79;tsrJNwc;WT{>7LXVfm9db z5Rht5{K0c$gP`Fi18ICTSEFxGnNVYXrx&gp$gAEXtNVXW$US-uiaX>z4rD$rC|Gwh zx2Ddjs+t}&gVu+HvbS4-zt>V8sFz^|EwC|v?%aTb)K|P2Q0ZR@r+`X7GghlGkyc?+ zp;eejl_x$WZkHh?L|R>$PW(WRtd=(D17j46YSF~Uu@VW12d#`o*A6!hr>0^eEVJP+ z^A)*5B0SHNu|-G}8S<%PWb~6|(O_a(jF1OB%J2YCt*CMyeY~8>x2zX(Pop zS{td)18Jl36(DU&xNxlD_5!Ku)(?TS$$14x8>u6n+li@lpR+-{5H`>U%xV z7@MZYgvg_Bn)b?jY?}573N%f#r&nhzAXLw+3MzLEAfarUR^snsziB!; zOKbc4T3ro@SE&JkorF6MV+6_(nbm)~v*#PfbM9}e$0T>O!}FdGr2 zB|Lm!ZD&}3SPn2jj! zz#W&v1a~7facd=htIoq}Ak}%`$Vyei>x zha-=}Im{7P4Pt2ND}k{w*2|nRHH+t`kt=chv#jq+qAAKgwz2Vd<~wp7lM-Bz%r()tj-=9*B{(IsjL_ra_fgEbXcV5o3L$|o`&Dy@y(l1lqE zjx808D6Q8)Y4*Ws623>ocQKH*zchiNZrgxV@%Pg}+IDkrs{I4``2iWu?gje2#PST# z*)oXzE|BhJq0$SLhSD!Os(}DZ5gh{oEWxgUfS_Ffel43l0N;ShpCtvQ2&T1&FPIm< z$bA*MzyB2pyhOQ~+W!tyErK^8h#-{wyW~r}Atfb>NUTWSD6s(C=Rlz0d*_Gxd z1X;D7J!96aplveQE`$&8??fpX0H~aPO(an?jt=EKlIMR}Ha5(zsxtOzI8HMwSWzb+ zI%h=e&R|(|v=S0&B_wHD35m24l5nkrL|O@%@mdLqV%An9^EGi}YfBWfJ_Phzar=ma zw6c;q_QhCxmtK@HxI^a?bm+V`wAKdR;!ijz%F|3aJg=935*ra zG>(b{;k0vucrH*$d-$mpgAFCv;&)|0s6UC6OM}B>uUQI~%I_4OJi0W!EHuNFiKFlB zepxW;)BN7vjxDgle!Z_}Fo=LoP5F!I8ITNRD3LPMO)T^bq(P-mjy`NOD-VAc09p3i zC;*y)oXFnC{v`xJ+Q*JA0Mc-y3xG7-Q3!x$3b{u=%bG6lv1Okn$nTuA!>gW?(JjK@ zL-5d5Qvh_U^bd$IZQU|`fBxLL>A%_88T<9!QRyy36%hY0Tebfq(*BP$X#Yo~^DSCq z(!Dc8T3LhQANrv6L;D_WYQb4)C9Q3hhj%U%<1T8SdvG8!I1n8iC{i=s{TT5b*!HJ4 zJOe8WBQ^W_r@)E{OlD4^$;>jyXY1d5q7^nx-2G_n_G1tO@ZdW5#eK6VzPr7!Xxou9 zH%DN_A#?>fpoao z@1fg0^huxv67CB?`tE%EhQ`~5>o@dl-jJdFz`ga{)AI!GNq%=`Xg|zfx4NgdyMN94 zxpO_ZtYf|GL^;*(z)p7hYQ$p|wYMkr(3F-=vEY$_Bh#UcE|KOVzs?>4`--Hj(T6r= zi|pk%4;O=x$Y7p5KN_BI7=GEkyG6h^meRA|9+g_>WelJYH zQ?QE=t$Yz;OPRFG1M`$P?o#ZW*}kWE$3G%2l<-u*^1N$zzEro|po=fVONQxrxbW8! zo$|nrW&A-VjRq#gv^>mRq_7#RDljFAyHg^^S{;qtNwR2MvKc}JPS;haz)coK*yIr% zgmU7NWbI%*&Uh^`tmfAlQUyo4z)p4(IFr3)KOepW;`O`!t0);!zs>d^I{Rq!| zA-M3E%usHTbo#R>zwjm2clY(t)R`{)>K3B}wjd4A(wSwtA`N=c>>W?{lvq+7y{M7c zs+4^nlDiVhe(R@_*=h+@{Kfvy*~I~}Ag2$^#nTtZ@U z4ojv8gYFG2MVq}0R#%E@_F{Oy7sLBKl!&16Mr-zCr)N}7zm3~GCJQ!R>Z9SkjVd$4 zIpeT2!{fwDcuKI0>#OmForpPZ-GZkp!I=k?hi-x;o|215hQ{ROPFVWh>1UmxF)3Mh zMNe<~$o>-u`qd!QWoE=vkcya|Nmn&Pa zOY}X-P8^cj)CSRW8LPBqpS2u9x2{&GZVr+tI&~ub~qJfCp%>g9IZxtYfYY{3H3s(wN{~9yIT7| zbZ)iGkzEBXc)0;#S4PlFI_8=6%oRCrrLM81RbN5vtCE;gh^7+}upVjeh#s-o-j}w5 zloEwxe~tTV;B@wma0X&wKE$O;>R!aF;P#-raV^jTf}RJuPtXs6z9et_21vWa37|&1 z#1nwDOQZ=I?GkzDigtLYY5Lmku*iEj{%Pp z+rBZ2U|1umA6c!@P1aUBO0mwQEgkH6cTJ&su|y95`?IRa}y*6Ud#PY8{y zWNNr{l7~>-9s7A4JbXjAQUzq=#%e|G%9KbgUeMH@nqOD9XxXKSjt!lO%a<)|pTDfG z{hbRNFZX>`VPh_AkzU)C80hQjOl-#JIDxqRiz)bjbvN5x!f)mkC5w8<49E2<9R5N9 zQ3-s%Du`qAk$1Dv+-8B5M7Y22X8S+?u-%_aPCtj-;xUK?*7tyZCvGnQ!2$o-LQN3# z641F4?q@(%f`WrpG#PTiQ!bIt0dWwEh_hZSefM}}?*9|SlJ>8H%7DHgh^6XoK@~vX z6yy&rMQ&0JyGlW)s;W$<=|R=F>Z<7(1L3OaL3>QqRTXot3&>5c0Le@lTg#9?An?Za zbLWoGhK=Colc6KznX`g+;X$m}g&#%(<_y)+hZL^PdEkH^jx;!32#z$E5A54?5KW|m zX!2YK(L_3kW{&6}nn?H0F~4;G9Ff{hVs5J4B%+wL3g2K}kGHtyOcb-I@x|V1y!BBB z#jGC#{hPS`kAq^?Yd~KVx8FNRM?%a2mY1-Vm0<%FP)8h3Y8l4 z$}souiX$4j)@|&9NeJf@zI11b+{zG%vA&c*eC!`}gh!-w@w62qn%L&$w!x+Lw z`tyhCYh`-X5V2Fy+gv?B9=Zi+5O;y~K|FQ9<{FcD5H9|4ZK^pu4o*LoFHnT0LnF88Wz)*c%yzL# z|3KbjC;k&be#4?oCNz42PP3}2R|kp=t0rY-H{mYyi_HA76`8HM%M&YvQDWTLJo%{& z5s@}Tq(mDcA{98ZsH?!4NJ|mZO3GdJVEX8c++MZ>J9M$=_V|t`2A4H&Dp5P2NDwQv!3q z&CRmg=-J`h?ndxA*GKy1*vF2cO@;+E{{q3P5 zd!Lwb{p}%GU1wm}X>V<`LoLIpGR|6ucQa*n2^Y;7N+SCYFOGy+UZwnfsKpj*|&jOzL%!^%1yCkm=P# z>we%8>#KN9v>px7<3&R4adols`-%uRLp7d?c1fGx`pLQ`%meIOrUJ$4NO7P93Pr@g8lgU51&1Zw@~=X zcD+#keIcz9>MhBB?NDKGqh>quDZ%$ zi1-VZ;n(Kh^4GF?q2lcv@S(nGE>)q%Im@Hj8-c3yR9EFnbrp(QwUg=!C)FHRX{wL7 z2}7!11@=-+4_=y0emRp0)MRrzdSl$a6(;p)KhfK%@cu{HMPjTGyqw{s{9!3!nb4WW z<>(_!CGQIOEEBi8fmDtA%RsB(7Pn?0dKD|z04AMq1W4_;W`z4UZcNj?H%R~38@f8ATd^JECUoFrKiSJ4vjgKph>h>8R zjgMWs#>Zs@jgP`FjqevgS|a`zXsN_^#6y1usunknG!#*o2lWx$5mDbS6y?BivVN$m zp+(ka_!i4jL5cMM@Nw3oc%ERrfoI%09yxlFbuyl%)|q&oYE8oPH0$elo^H|Ze!^OZ z=Oj68`7G;0z-L<@#q)gYQ+Q6bp2G72>qmH2Sa0At-3lW=W?JXrIom47bFS>UnJ1dc z7mCgIi>+R`&$o8qd5Lu@xV*rcif5fQ3(tCMKAx9aJ$Np*2JnRG5c0t)#dDc;2A-E& z<#?v7y?8cS2k^WSW5x6fFIuMx$5<1)kv0{Dt3I|H);RvXuA{%BUe@_MkzZ}Cgj*{w zyRY!CH)VGm`LUDbW2HckugCJ*?3PzzB3Sgc1Reqb+VulCLM`YUZy8tDS0&(t(-&kIuh$0 z^TLUq>zrg!%ZVTHt`o+Pn$2EnjvF;K8`pKvy6z4AV@!;!$1S_uTb@JO`!;s1f?5Br zPOloUU@*nG{*Jb2aDhj_R6#6D<$}0qaK4}<(0PK`J2nXlh`Z)gR%I*)RA(IGP+dLS z&{|Q^S@rDTHX?*F#Pn{cs;0nvG=g+YLVDN+8FTjw#wJap7J-O;3Ry4R%cn{f3_z8! zp~-QYX(Y~dGFC@irz|fT9CAYi7EGqko;}-mk+e^rU0pFV$7DH8I+bOzOhum~Zw?Q0 zQk~yNH9ra)=rRC`Lw%=F^x*s|S>L@OO|^o%4_K@c2pUG6ccqFPF{xCMNTrG_9V%5M z(&Y`79bMia(&Y`7EM49p(&Y`7J6+x&(&Y`7N?qO{(&Y{Ixw^bT6tkX1x;RoBF9$>r z#bhJPG;#Yee2HS#uYlemZe08zg0uj=Y^AtG92Aq&BWH^ndu5`S#R>8paXa5ZF>4Oc z0&%0t08z~1kbkMTaWgzo%xVYXXkomZQA4Cs3YOaiNJ*Y^Yz3)NDGsekQ;JhMXKSSI zT1>`DpuSPYeJQjTKD>K7-hyjc&9l8R`@0b248~yQ%dWu*hLE~r`f;MYcW`S2%82&< z!7#L;DC>bG=jDzv%37<YnN~m%p4={-n|mv`X&+_$2m!sb*~_f9d)Xl z=Sb?N;CDX8AEaP5p2ed56BBvu1dItOeMM;QTrL=8YP1@wM6P1?=TAiU-7nV8U3DSTewn+l#|l!2DnTV9nhs(s zLAUXpU47lXU7d92+92CYD#^yKmGg1w?24$!E)`J`Y37qWUiprQiaujok77?_u1B>8 z7)M^A#L0TpCJ_(vJJuY(Idtq6_=By{4cDwgM9wPPNXt;idz2C>rEcE2%TV+YN_7=T z&im>wgZ_B~6wt?00lnbOCw4{;jZ^(SY*E@@FJ$bm=fDp8e%T>GFt$PmPFh^i_B-3U zIhxWXqIw|R%GVO$(Pi)EwYD^QByQ}uZWqLf(uW1H z8@o+V70?kuoIK^rgl`@Y-!HIg@tiEE4$rd$HQ+f(&=Ncof>L;%DX1Aw){g?|454)m zbTyt#V}Z32PihfB1s_l9h^tkfQv|KUlMP^jSWuoMY3axBdO7T>pa8<^pcRrxDvnN%02;I#zcr+|bF_IrvN9&ajqALX-tW$^w^+2wvbt zpB(x(e`B^GUIeAt^>>os!wukqZr0jb*dr-4+m`#B(0+kOy8)wcHn<+csM z#vbytrAKe=;m49PHnJ)c%TcQn{c9kC>A7}o*Q)*mG@{QHh3MX{?hW1j-4K-BXozK) z6kZg+u=-`YSU~<$KFwnHJueYI5#);^L;^CWdZux#q&m&c*myK&*6iwc23oNnAaZs? z{QHPst*St=sh(x1cdAUIdX^Z5H!5I`T}ZAxfu+XLQUX$W0-2%m1R|9u zkX0&AAW|ti^IZ2F5yh;30*(JAZl82e%(@5Y`{H)5gS4KKAFS9R$1DV6V9T1mbC1IX z3te=&E<`>ZaWQKj^LdJPf6K=Ho>VGV$K@MM%VxpW;F;HG;R6}14%4Kq4v|vhrpWCl z=u>E=)3SRv2Q``0n2q+6M@0>6^UNRU@6kiXVCQ0E$79GnMrp?(oB{TM3ml> zxCGIs(5eh{d>otQCWzVd)KL+1=?Da6=>qwAO*m0{!kI8$^vTiwk7iflC~VgC{AEri z%&8Kz28}cRWX3D>VTo_y^)-{)kbzWJJhHxmm zzK1kk@{v8)zY3 zE3n=LG!~n6-$J-cPS z2bD3m;1itbbmH$;PA>E^lrbG?ia)#d3~KsLfeE)Ox_b{I4A@j)mTKogq@4#T(awWN zRb07frz);QT2Yx+Qtq16q)+D1nlmm7v$gaNz-=p~w#FBeTetJ8!hUvymJ_zw~5G56FmnC-AC#gPED(bg}z?T}) zdd?(inT0qDtQmN^3_2Sq4=c>n3*=y1N5>HJrgLSc1mjXP=G3l0D9x5eLr32lcOz%! z@Pd5UjrW{+-3SAR1iruoDtm~OJxl>hxvPdtAIv{O!z-^g$mQG_Wi*g_w+rRpANhHD z(dc=)Y+(JhUA>oI=kTR((S~LW6`Q(xySw^GQ*?-J2S_qc5Wc?Bc__))>IQ^FOl@YdIqhMltQhHC(X*D26tp1wE9nI=%3P1 zyq(P#GD`OAofg}cmtfg6^gc$9FI)0UMEZH?DF)mJTw)QNOO>NyD48?lcZI^DiB zVqXp=>Za84wu4N}HYibF8Xatp*zd!(hQ#33DQ)~foFBqBHFeM&!#A<_d`fCo052T;Q^sr#-GQ7L4-p5@Vmu_szh=x;~LvJX($08?2kE~YuQNjNUA z-6ZHrp!W(|0rU#Uj$0dmevUGrXSM3!;av!W0SE4o)r)5y)KFg%WfJ_|wzomx(9)mD zUw?qXPSW3o+#}IbtoYxEE-pgM56H(S!A%Dp0N%y2_qQOD_6Rx(&@X%;|HdlDK7dTl zebD9Kw+2&djvTrbPxjGAC&sRmH}1ldWAy^-ZanW3#E#_Kg6_qW!{7qhX|h}p>%u<^ z`Uak?WChk9JlTF0h+bcDl<0B%MyT<3@zTU38*@O*K50dA*CxE}&76StRuf?I>x zlD1+Pab5Q+!v;qEx{lR-p2iPelgnx4MC9a-23$Y)FH7Q$QYMRlwg_UIc!Qt>&`v?Y z!GF~pL&Jr_r^Y>PgfkpHdtpAL^`7&dvr!Yq~a(t zPsLG0s@_7@s(K5No_@(TS5Lnr(jJK{V4}j->5^;o$((s`%_Z|3GB;~cdd!)JaSmCo zf!_T7{*F~^Xw5ape1jj<&XY)!>VA$%;YFX!G3n|wvK#ql<2gz16K*v ztB)CN`Dn`qkIGlsfIZ@U{~1BSmV4Hmj5c{z@I>RvikZ_h>|&bB1{3^RV4UZdgVeco zU2JFkgm7J;vSQX8qrY&SssmM;huN|5W@|lRL)T_)vS<^|ZJt?9w0S1d=9xUu=9x&F zXL3lJXChrKU@q%w0Z~kh`8+0WAHp|@V%BGX_KDkF4$_(#TrFS>V^ie$GeVk*JVCJo zyFm5=Q~~&^-ya%chwS~{=-NC+uQ-zSR-cf|YDT2wy6JGWx9Ecd;J7~k+AGp&VFj8E z{4e066;}}hxYtj`kMD5)Qh;->)8$2+M)Km4X=%AYK5Ty~=^5bk4F2`a^L>{MtXoIR zoUI+}2D(xm*vdV1U_)Q`>J43;379KieGv>uyu}z;K#P#HfT{tfKH7K_DbHMLTsr78 zHWS>+IcoT9!5z<#HYVUo;Sh&SFUlMi0CGBm6KPx+y=Xu!)Fo-8qVYc-nM6uvLcYy1 ztA@DgGq#%GpWvosj#Lv${3ge!3Avh_(adQWD{CW>`;h`SSBbLM1p4IYl9$u8DbCk} z=%9#J5?WLC0sD`-gYv0H*_V5e%o~dh4G4HqfB=!;ho=jkxdiv#8E*sIun- z*MM9liaN}9H+6N+-_WTRm6vsGrdG8G(v958u{gkk$Cy~^WRJU!#y$8lT{&73SJ{O` zS68)%uF-Ya5MpX?lRw(R6KU>}JobGN5zRt43ZJnxeRC1g90Y6*Fpj)(2LWgJP2X~# zak-j4F@*_R38JZW`G$2{MsNJ%_<+-&jno<*j}ojLAj;kv(ubQD4z#o$UQie6f0wGBzVDUShvHWj}BKUYB{Flx5ys3+meM zj`W{uhwZ*4IPNjS^hg}Le}h^MyQhMix_Mz1kZxX}Fh+aP5U65FpNnV2dZ)Nvi)Vps zI*4L(WBMrNW(lEN629ygYU7B&T!q>+E@KqktO9U%(U0j=t`jNOnF3zua?x+AU}>b| zc!Mn`D!g3ix=j5`LsvXk>DrpzBQR`t)6NcF(@vymcfaizx?kHaJ*L{WHKPWSJ4PLIxx+RJr9L3_@t zlU3MERZ;W8fbfvr>Qt;M7Cy+Vr>!%DMGRzL`81lL%t5 zMNJ>U4#T{)q22;QXbI^~xUB~zaZygY z2B<*9(7GL+;$W3NX-gGxbjK6o$`Uh9`sbL~OPC-lJrkXc=AVM^an{%HJRY}R+y$MH zgB{)Lx;kq!oV(ZMw5je!$G_gd&vE3Cr%}k@p!MT|&@-f64AUY$q%YU5aQ794{;-5* zzkP+E%L4_MGJM8Ga*cv}-slC_+5PE{Lq#Aly}}f8yH2wC@+}l=W~UZwqL^4QyHeb) zM7oJIBi|`*>)=MD#owhcPtG^fm4Y0Tk8Q7%LdgT?%)y}1%P6a*d{?daR32U%(nAxt zB!2+qv#beolqBvcxTktrSLdR>l;twz!9x}jm51fX4jQU)PLzXXm(ro7CHof^F~hOi zSrOWK+~B(+gYSwCzRNiYx&(`*rH!pAM=cC%-}@Ibbry~w8F333*IwJ5uyPiOH}6Rr z3h?~!d%&~olb>_p`)=`V1XB6oD$k8mAeA591EiW?Uk6f+<9$H1kWpa$6o^x%xb<5+ zZ;<%j1k#BUD>LPXKU3W-tfppD($f9-9E|%X&Am@z^5ut&$GtX+A8W!rk_NxF!Zc=L zy(-}()?ig6LF>%2S>LOgZX~0L5(nfXtYrOOQf?CD*AAJbO|PsB&eEpOm>$@zTseJu z#q>>qdP?hR34Gv}xbN^gnAGU?)Th{4|B_}a%Sw>Av)}y$;x}Y9WFCu#&gY19K1W)0 zK1ZY?LvlhzhD0hdWX7tf$zgv9qGU8ipRvsX*r1uSfcFF#Mc%M;;w<-bKBHQX zol&C+Mhte1G!^I(HYAZOB4vY{K37CYpTG9NE;x<4%wZt^8YRt`MrD*J>G5)vD98^p zUdUC{68I)FSlfCcL@MXwa8~7fL|UnX=dsZzUC!4Ai>YhCGc{_4aZ%jS!-Xng z>CXCuJ?9{O@gp_dR%S0NvyX_Z_c&NfK7Md(S$j}N7mL=%;RRLG<)l^Bbl(B=C44<@ z{TrUHMDHA+JTb!nh220e!(k9tT$bT}!Osapp27VbUA-gg>3$DyIvs5eQJg!kW4g3a zBvSq{4eaS~4jP6wuu~47LW?@1{=8T9MUQXjKNtFZ8=m%TXLz44j}-*UKVyb0{*jBorBLgdle6(AK1V z5St$^jkLJ>pi~C!fz^zuc54}QLtTpm$U#^$u;(-)Ba;x;mO&R35lBjCyd%+=T5hO@ z_Mb=p)}r!R2u3KQWZqWUsW3YXCPG-ea7?s ziRXI~GC@nv*O3Emo=gHNlHJY|EDoRZtZF>NIPa9@s~gXJF@{lSvDu4SkKj4Z;+ZQG zESltt$+wHFYH_(FQ2uB-kK-r$9`MVbahy_m`EylBjS`ntf|fYekD5Rr9>`?L2SeS*hPfPW<)yaJAYv zdLORgM(@Kl+)?!5&kDIm--kaX@39YmPEeo^pHW$9Y~<8Fd`{);;O-u?58o(rA65n{ zb9awvV`en-DQ*wF0TBjzXlAbV&_voplM?NriL{5N)j#c_iL&?5^vO|W$Ds9H2d(eH z`sOT(-+3y>&aU_!K1lwIp!iME#UZ3Ddl5bxzN+=T2+b<;eA=?oCUsVPFf$)X$h`+0XkKLll@4&AD>n1#ZE@(TR+T+eP>PmI6va;7fv7b$=qL4Cu##rU3m$P(}w5v_()k zBV)%Xor2vAdY+(E5l+>?({={&VQN1O;0~XOhhCTXv&RwmgX5zxq3OuZJPHl-5Ti4f zaYvRknGoG1s`p*JN3BH8CS5x&BJH@yLG8GRROCqhs>qQ@mB`6`RU#)+8;Q&twUI~^ zlZ9$F>*Gavhe$g;vI##t#d7+LO*EN@f@g{*y90xEj?*~^rf71Up8*TTm;s~7A&ndu zNe+2HXig#xL`t(egK*`L^vTiDtAZBRE})*3!s#>i0rMCmDC4lCTc)B`9qiBBT0);hT;g~sD(jb1hudR-P;OvFqIR@sak_u z>+Jek8)tSchv*^?N@RHv>XI#MfZQQ2N@G`u(pdZCfYw;U=vreeekY)y6v&n<9euKI zb7f5D0l7zoQ;S9oB@|lk2F4;cp5v^ZKr?bXTq%2^Z@!|-XiRd5rrtI! zG4ex&1w@+Lq>(K^#F1^$$J3E&z)=hLz|&p;J*hyxm2KYxXWzB|6ua6E*?o1)QYcD6 zwciR$&7E|m6m8s?-Xhj``idD*fcXOtSRfDHul^U~()$Z#-gz8waPgWf(j&fWb zE6!2F7Uhr;Yl*m0-dHHjSX2!4jJNK9OOYJnbUc>D)3vVl$~%_$7WgH_u-!O9y-q*Z z%P0?S_nx-**cDVV`I?zTnwd-nFIV-7J{bx+b)JGw!`KvbIP}v(l1)J;Xl%k%&?)p; zVW@wP$cijlI-_wUizv-y5|ge>B2p#=wRGrXYUwnHmX00jPe3QS5gjk?y2jyD0`7Kw z9aMLQ8>j57zv9qEP(Y}H(SQp0w>4!6v8%ozo4$^t19iB*LG*R57+qhdLG*R57@NM1 zcGCZbEV}}f#pUp^2A~4#8*o#t9gf^}@a1alOvdkgIWDVEta*-;P4_XY8Sdk86dB8Y zFP_EL4S1GFH-5ZqNj*U%svLmpMGc4Z`i{6?#@ld~f1i9Z0jDADcqYT8W8OCsY1)mH4sps6vlU<-L`*L}&Nv z?*5K-i9UC_`WEzhR?4?n;o7|vT`wp&Fo&Qw=u{m%$+;5sX3ma47j5eG{LY<*;d^5o z%w@08j)u<&o~*vV#^(ZRJ}fXgXeZJ^J4x3;JCP3B$rv596X~Fx*{y?iBCV=HH6Qwn zZ7$8W&YVl%65tzI#Q`EGHGlB=w({-Z+h`MQgK;BGwBIQVNg{zn$`CiD?nIkDe{F@I zAS*9(SjoRe5qw)%nPcMU>Hiq4bO%SwdF>jAlx<9!UaJ2?pBzp8-}Qeid;g)o+S=hD zaw2yZ^LFe1XczM$io(eHKN@cIwL=Ye6l;gK3b{wWcDPgCD?!4C1O++^oct3M>Q+|F zm>uja%(cVcx=qPny|Zu^8(&2V0*j3-4cdPYY5zgewf`W}#YT>Zb+M61>v&Kdh&~kX z=$X8)LE}2wW*6Wb7H;^XXl;1+qu?j3W0u+{LGPoa4VI!PITXL!9*18R{hyB^R!*vU zb7?SN7WHV5K7H!EzzKCR{#pq>^&8HW)dc_y+_x#uEv=$rLCpL`sWaZnZ6^k3q|7=oJ;g6kWSr(1clRT(TdA zO{sCec6d2X-$5QvVXB6A--M@ZQgt$@|A$~}C#qT}878N50kLGrCRcotZ7covHOSyVQO#Ke+mo?1B1;NE70 z<_G$5|MN)PThOy{i)-nyxrf~Qn9n`8f*Hr`(AJJyaPn8-(71k%JUB8n58iQ$5Q$N? z6Dix7G+tpV#L{okCr1~$?Ujb6*2)*#?AMye_6lrTs5;1ZplnsqByLmSwnp3_neW7s zep#ByOk~j-@&N)iobbHkvw+xG(b>Z2;@DUbSFM(BG19cdkzZzj7Ek9T30X$me%gNi zA%-+JHOeMkY{l4FHsvdMc&U2l)yb9m9)6WTS8!!`InWX$r9qN%BBMY`u`Y(I5#iUs zua-ZAkZX3KghAw6G50C^VQjXnOD2GpB&QD6m)Lv7AvstdA6!vtzh*3XJmW83An+Af zz;O0g$X2E1z`jbd{yX4&_Ac{$_^K4}BA}lmTwLUS&&wN4aC=73jXpkSnR996A~Ic3q)hB5L-ANf0=I#E&Yb`_a5EJF|_o1!7Uw}$EgMc%kuB= zrMQ?R(`_DXDs-F2WT5|qZ-F%hNN0t5zIl^0M~U^_eSO%$n~*KMy5TZ`1F8mS_rx+B z@wQ%+2QBE?(AR&-mj15!y}cbZ!dKnDpja+&P_EI|hWAPGN#{A;JHq$cHLtRT#-|oTgW>mAeOVJAFisWd*i$-vE!VL~`;wm@jPA zSWZ}PbZ|kWgA1}v2Ny&-IVDqda!RBN!eqHF2ovdoFf&9Kgo$)Pm}OlTgo$FXwt~$| z;`V@pVq&W9adCSbZbaI`l80<$Le}Xbc4Q1dj>Rsid8Vzu z3R}L}kYpOS;DYJlt2T{qm4*qwxYN>p4ozq&jIy@G?LXSj52DvcL}r`VzGCM>>l*ZG zXo#X{$%+PH;JYR2I67Tj1yZOroNdewBy%j5Q<616*G|FKc? z!)Vu$0qy4TQmn7a!j1q7xKzV0ab(%*v!KSWMmbrqHHS}tDK2$vDwR4SrH)_MD<+K+ zeK3MXNhpy~bliRoC8KP)U2GRLE+<5H7)K{4#T72tzk3rRkmA!?8h(DTwREtUgJ{#T z?wg2JM>%;Sm=B9J+=z4y1r|;_<}Am%>VcrwCcgLk4a-?RN6cn?t{SWB>TT|k@wCxg zWEm9E(iO`?H}r`o^!Ijb=)10~m(6)!w!smXt(dd~Zf`(N$3LUBIg5@Pd-`BNqi2K5 zV^XR-CQ=@g9@KL*NQJ^<`jE%VOYQk_4p>XtFiMKrHR12$te$wy!(ef=H$q0YwAwR} z7m4!km+zw;+?wYQqKq2r@W*c~PfkHO#Cj#_IV?8YCE;h;v_(vAa1`qeM)_8Q{=#=kI0ml5_;g7K z?iKi8mHOGt1{$?4v5!NLipC~quP=Tigox!Bv!+m8r!e3_KF|X++XaJX)I5R$)x2pj zicrdKE443;*F4vEp?x_{jKbCq6rn5Z7SeY0+R$2lq7xINWhaB@1=9Vg+jRJxC2mw}(19tJyVdPx zAl=`^(Ed_`4r=d%o9-8T3`lnobK`}cTSV#4*)o)U2}p;nJUdpuTPj6jB78zP-<>t# zXLv?r-)z3KvEyQdjvmt~N9PDd{=x*RLTArnYjwqTe(a)(bPqHydz2AuhS&CYl?SC)3% zz*dDrOO{?8S`z8dl6=*nC6Nv-$#orC66v}JOPsEI5UEAPGsNvfh?z(&BAzL3cfpMa z|8bGU6edQjv!vx>3>c5V_yxO?BHAGc*X-?UL%mLLDvZisdK1EQXk}*s3N%Dh?B!W*X!1!D73$ zr2P5z!Pb(%fC?NhM@YsTw`%3HC>G%OJMau!Gx3Z#Qp)-Oe;2@yqbughuYCR{vhp`D zw)*La?0p+59dpPXTWRm_cH$&b8BHV<%W>W$+Z|ZZ2UP)Msr_&Td-kyRSuTO+2iU+W z#EV7k3194Xn$L!&?hV(^H5(^3JCBbja(f#%;L^)fE4@TQf>e8^navL``p_tJdTm@G zfrGpMILqS2F8JF%y=lAuNN=!4JvAc1e}NjsWe!I1 z5jP;D&pXVS*hYUQ_D@EU=vpOKr{;O)PGQ))*RTN&p?(icX7u#7b@#7Xu&%3P!@$P$ zz!xQG9kuCgiHHSqjX(Kyiw>z%4iX8eq7X=$@tY+;1ZbJ()ZHY3uMhAA11ImQ^jnOD zK3^6L^!4|w7u|t%#&L9p$yin<5T5<)q4WG^C5ME^C5;JG(ukBaH+gIcc+p1=6ofLY ze+^0C>jI>?1&TbW@=5cgd8iLZOIrQ9fxb1&8G|b7y|U6KaF0WY>6Ad6v_u`(j7baA ztCSK+;=ST8IfxhOQ)t~Z$LgPeis0+Z8#a2tfKSWIq%>r$3(${AmR!f<`M>8oKX3w4 zUw`M^xg9uSuzh2HuaS+H5A<&w=tmacu!Y5Vln~^?uMlfsg@*}J(unXMmzxkb3G|Vs zJhEfYrlOS0Tp&|{6)!Y*UdHm>J8;KE1g`IfFuq_jcO0Ji@L_XFJ^TEOvztzVD=+%) z_UpTGcGDQDGuWhcUab3n(65bLsbii~@)UxpOU>(FfYZ_T_Un3j*LSRQOEu;9$`B$F zh4bX(sqHl(ePozNDcxv|p2s0d!&U4=ongH~vbQQvb`6HDpv}Vb5r};vwY@&%GsUo3 zI3}iac8$W8FnAN%n6|j-2~n6<-337Ar)kw}s)LKQc0{7auq8o3XYTTs$F zFO$XvK8>qJp)s|%-C0wdziQRM`hj)qymFG5Jv1q-$)u3!R0@eC(HRudM~B8y&R{5Z z#C(PHSvrK`3wYPyo~iFjr<)Ugt@RvQqS<0_WcVN3|}VPI^a%WW%2jdGO;|8cqLz&fq` zrjPW1#$xsE-J}6htpE*X5BO)9u1FMyRgz3=@3NBL+SA=B2H=_ff5Mvq5xhr>yXoT@ zgc&EaG;i71MbRHAWIIr>Q6h3lWI~lhA|=sHrrX)m$Jq}cmiNBJRNKG%8fmQD^SjR% z@AwpW0a;h6&S;yY2f+k+3Z@4MyCt&i(W0THktP_&gV~XRCQC%y7~cLw|0y@UKHMMQ z@vDI;Z$8novtih^%5Z1_+=>yd#xvA#sAA6bMSbJ!r<_G>#A82ezdIT}VyB;KRkY3~7SHzuxx78=KNndakB4 z!IYkcRLx3HDdze2hOWZW5WG%8f-m(F?D+)J{qCsU6tSNPW2xyOCd*uC0#TCqDbTQS z;sx97M|PF$dUEbb17%=Yd{-)jAFZK*iQD$%ZQGZ({fU8>D)$`9KW)#p7lt8QH2L3w2V$?eg5d z1f){Shk;b4`5mAI^2X~xljV&FO0dRP2Bh&-dFV`N_?ZhT7~Dy)^&L1 zTQ`c!d&T7@aiJDXf%SE9c?i#_^(vm@t*Q9N1gjd)iPi#s*{a9$WNQ(gCs`eW@e#SE zHOQZ}a4Zmu>5enjOdRtIkHO(h~7-i$0vpnBK*9;tfB46?eKICaNNH=c@V#N$=@|ZL$@aRoz(Ju+mrtb5E8F#kCxg8 zZ5fZ+&%%eF$Q%A{YUuVPwOCpj{RmR{$WFK+)T{Utb|(*v;2G!D2w%N5c{g8O?!SuI zz6YmNqx0>2@xr%LYeOJpDx7}?{{nHwKqZME7QAjvJ`Moim+)tTlIwh_NWAZcyE;om zH#kAZdv3Q18IE(zaOP5z<2=rA-sw9>)fw$pDUN5Y!#3-N%3*1LYxd(ua%5Alc!jT( z;Z7jSl3(XKND9QJ20tO>II&}O2^m;5h;^Yx_^x!)RP24c4gxOD*M*tw*lJS6FJ}i=yUj)Hl$;r+>Kk;iLOVPERgw}x>dkut+*`* z>K1e@&>BH~Kwm;j8W;70E^+%H+|CWt?Vo_I6}S66H})SL;`XfP_8Ske46YF07}_h1 zWfIUQbi(9ItDClB50p+|tOl5hMBXbZj=w`!X?NfHj{a3^YSWMH@#Gw}weq4itbQE6=F$|$ zF@nGIB?Vm38Wcpg;6=AO@r?p)L>dcZ`o+}hktC}G4GmRMIqGb_KeY5N7dT2^Lrd>> zU2b>5qb_ia{tgY*A%d4B0u!$D;$;=GBmmQ*YGRZQC_2?clRd;fU41D@S9Fnw76I)= z>f=^3(9NJSZmk4TwX-gu4MO=^ARBiaclt%{@IB?prGm^57m5o*-6LE&*E)A9RtC4o z0%1?0w+o$I*QTz7xI^^Ti^aint@ON|o9IWzQ^`$oJ^_&f!jLKEmr&f~!e`_{p_a?d zQ&c3m(kDjR57J|tdON)d`xm`9wCCl1kF5$Xu2GgK%y{yfO&(Vo1(A2l1#xL4B`67W zxgh4#GC@^9O9jmXS|X^5HIT;A38XQv1JbYc11*+V-UD=*pq)THg8XGl zT`!$I$538Vr&%+D_EoB8&IqomR?W2?sbCYo(fqnUz_-7&IM? z7iTmDhB`R+P3#a}gTK!)5A?dgAL;}O+uY_gy*-;3U1v5nK9_XmcJ>^DCF)dNG2KW|=O<66sPbGgOyiiB!vv zMMbszh*Zmu1xdC1h+@_%e1nB%ytUdvF^dW$EI#8cYSt3PAd}I8G+vIlW08tkpMV>S z)OhPN4vJZv0I+zEx4z<_nDsCa3;%d)pMzr7Yd~z&$BPCo5$HgTZ5Fp_4gwuOE#fxc zK{~i&E>9kQ}BdMKH(4GY4Ecldcr914G55t~BuzX~6MWdgWa|jVT zgWr+%%*_+Z*(eYxzv@XIo^}R|3!~+a)a*l$S9cuVRB11blwdN#A{xhUa3Spm4K5X1nk}9!%|jPr=ZG6#%-e2)X6-C_t*{Q@}Tf(kQ4qocI?x$SA(~l|%DEmX&z%F4+811^?yA# znpDzvIndQ`%|JTjT??ec*3CdV2!#nG9iaK6E{-8|Y{X(nAqtK`1F~_$IE$e(xfE9s04!UZM zzrqIsyWN!~3%I{UEUlTm7aQg-5g}+$ydrb8bqC#3`b3v)p-fREX{*&l2f6jiqa*wDa zVi(OH?bovDHrtQLC*;kiM=;EVZ%_2TEwA8Fx#uclw#Nc}2kyA&oN9OTQT$ePr|0_# zP^-dwcL9qtkP=xai&&F@3#79vv^d&}%DUS)F^W`TaSS)X`XrtctuNwPB3jA+* zRf(^{m7@*%e%xOIGgT$}p~Qz}+(vJe%U$jJ7{Z4-+-0o0Eb1C<$9xe!JBHr>HLybYLZo~N_Wtx48(;n%95nf|as5wtbak;4#! z4tE$rhHCZ@X`0<{y6mG*p;c=|jfr7p`-0|+FK%zFfE1(ahE-h~sbpVUTU&kc#TCZy zd2Z@|lqWxZjgWVAq=vE{jg%;sg-7#`AyG*+S*Ht3j19WZ#5(b46W9|_Bj zBD}{z$l%{uRY7VgFVb`o#h{vCrmN9Nmyik|+ipXEU453Y7UA zk@R_y5XGzu(jrMX30cVPqV%EKBAG_1Yinsnf$&|MqO_uDb^{60Rom9s@^Rd`+H_izq+>zD&BovS8rN1t76*5&TD`7+t;RD zhZA1$el6}dvDC6UykHCw;Uy}FO%c1`Q-x^`f7vWbpp<`8B>IjJ+RX}#PStuAN~5auS++rwy|{Q^e~|{R5u_w$9DOFKVZy?r@yt&kwvG2qT!M7wP4?3}v_+ zuR#&a3zOk;Iuk3G8|Kaomor_$ym;=+aQR+_%Xmt$(qg7UPP)sD87}u{xcn}|uFY_Hzv0pyItNMf*z6|M`iv1qeP2s+G0PYU z4u{xs`0=<%#{KYNm^{mTi^POOkK#EUw_fgB&5R5e!=%5(MCAI`7UwO7(U@*`T(m?@ zyY@Qx=*8^sk`hQkrGHIZr(yWMgt4Y|sS8WF|CTY6g}YfR`N=SL)VgWlTcq9zQx7PM zs^Jjha4Ufm#;Aj=(;9}MUfX}#(;B1O{`@2SkG}m`gSY(aeuqCX)|3#F#>(`|yW9{a z$Cw`F*a@z;{B=1-N+gWOF~*hiEu$U7To9DD;pygoEQ4cgvC}!`gfTcq4QZcawIAR6 zT|Y)1UchUDP|D_$>D}=;y74k8Wjso0f?nQbQYv9QN*Pzqw+u?TNFENY!qcU6LI$NQ zkLi>;VGK%Ha(qhtvH@pn9C|xmB|_;+Am+o=&*LGNNh#w|N|TPS6UM0pq)WnhlrpZI zZyA(wWicFL&2cF$$)NOj3B%a<9bQftgHo2YT$Iw7GOrVa()B=0-G61Jl<_E~X9M|{ znWqvajnbTN8I)3>8xF0*)1~x;3`!|?OV3j$j6vy15+>oqbK?67{>_hZvqR}gq!b}6 z>!Xf~B`#+BLtXiB=)HKl={YGQJrt~`r^g9nq~{a~lfsj&*Zt!T%=2Ts)A{--UV0u% zOAlVKeqy+Ehu#ktH$C)4jpMhHHwdPRPBt?J zUUT&Y?vRLK@+^s`YNjZ6@>>NG<7sT1P~T(gc;kH5_7{V47dQW6@zJJae|Gh;AwhpP?Y5H$)k4crG5>>ViGPR|`DjFCHMN|=>+7NXRD zaN(yut+mMQ9sVAB;4i+M2%VmJ6p7|oqo?73YR zv-KknwM}3>_b<0iASDvUYZFMn|CTRJ=euSupM~Gy&+>el$2v}F$gNIxurHn@@WzF|5mr|BM3FA@9xcs+R zvi-}Xl&xuckCx0R&*w-OlTs&)LFu^?COf6W4yES`rF#*Qshf-TQ7@BH#-o%npZv?D zRKlcD>c7QY@h_9oDR54w^xO5)7fg$IU)MVmyzEJuM z5czuwS2X1^DP=rLDf#PPE~ODTNf?h(#^t}owECAxDY={8cb}g@=~M}0QtE^;D7`?! zq~s&{*5|(xL&Pqnw>XquAe7R4%L3dden|r3VN%L?lu~}xzg$XLdL@iUDdY0rQeM07 znUqe0V>+c5WKjAJ31d>~gfS@P7s8GwDVukptzLY<4{^5lpaI~_CUYLN-5(} zN-Kf<%cYcUrG)V)WnBJSRsJhLCZ(KXg+u?2r?$6zi+pp!)B~#FuC!T+6ULyF>GCOk z-^>-0d`hc|7z?&%38lXW;#lO!y>#Pc<|*S*O0{p001RWyza)%DDdY0rn&ZA8e@#ls zgK&sd#-+3}gHlQ@(tB7Zj6vxv2}9oIVFowzgO8vAaP#y(97<;irC~U;WG3&!!@GXx zgrNh*0LI*tF)QsCdZ7ti+F5fYj7K|T_urb&z}{uj&T&XMbPJv??XxmyC%@BacfuI7 zle^*2N{J_CEnINJ6F%*$Ccqij9HE_ZomTwn{E9f@VN%L?l+rraTmHI~#_&tRc$6|O z|EQKD%1EOiCG#QrhVFI$@mhOiCq;M=9g--?}FKErU{)k#J}io-U>HGAO-B!kCmg zVGK$ymM|>Olt{#{&3nnG^Z|#`i-l5Zpt2A6(*q34%cPX?D5WduBSk8&X+JIrA`=w(n};v3Qvx|E}J;}uutjiiQ){?g9(gj zXM<9Pu42O|mq{sol+x=QUnh){rv>;aVLVFt%YSQK`ddbxE`U!s^c_6&oG_PUP|6yU zUQeAc2Bixnj8Yo4j;ng~X`j+hJCrUIO6x!=Yt!8iIv-5SQ^uo|_PE~i*UeLos3nX? zDdY0r+MNEDK`A?yaA+T%E~N`ID7{p|n0e}iF(_@2FfOGRuK(sQeM)1+@Wj<1lr9IQ zm*H30e~2RzrMWea)xzeGa9Ih0+zE^dAuJ06!|1Nh#w|N*guzsf6(;WnBJScci~%P}sYB^E|6^CybM)h4?99JW3gt z|JFU}ZyA)b*9wO|gQrXB@(fCwB#fD-P8fsIW(iY^C#Bq}pPYP-pQmT@Rb0(N=?+lJ zao8unC60KQlrkQr^h^Igaqj_GMYa5o?{WbfcI^1PD0bBJ1VyzoAl^jzvzwZNk}VS{c%mW+A~g6^zpKFvd`u z(#@#T`mFxR*A%aJ;B**kx)7Sy;O|dXnB1VI#K&mrIXAsbG}%GRD)Cc==STgH))d2 z%YMG5>qXNeS<~B~=}Ex7^Av+|(wY(n5m_K!!GRD)Cc==TC1*w##N1-G*?>#c4 zX%%C%rh-wLPGU?2&Ktlx&b)INDhic2?Z2h@oa7`iM|uv~G%8FEINB`1ID}#N5|vZy zJ_su7b%vYXEv!bCzu&v`o-Z0Eu@>0(%gfHqVgkYh_j@NZ74-+7v;Fp_NGDA2iXqK6 z6a0+%f%s;UrP^dG^EY95mpCsQyM-h{q^mvQsmKlPI!c`@QD^K`5*1@;*AY3n_}k`a z-6cjHVW9wk#l!3?6DX*hzB zO)$zgsMjUjB+mG08Rv+>Ctq$XZugey(d5ovc`O#oPj`~=vG<@E?Rr-{hZ84lF{+QT z*qKr)7>OGR{K**4V#Ld*Iy*?EdeaP)B;5OOwjMD()SGG5tHqtTz7zoH%JsiI34Vdd>!7{=EUe7Z9&l zDy1nVk)*Ch5owp6C`6jenifFQZusk-NKJ{4(exoA z@sjpl#(0_%uUIOj=?TCk+;efZZ8|rk={&}0O$DPgrFCe+P2x;^f_Dgv6-`ehO#{1X z^MOsc=Lr=)oD)ORPhyOgE*K?!0b?3*rrAaBGoN_N*XLA`zQ9N)D!HpOKv9jZ z>@Q&HG}Ft;$weNXHO0}LuF>b^6q>8ICP!cMJq4KH>`VAyu9Z_z#C?@9Jp0Ni%qGT; z$dvU(we0JSG2l`Zfg^DobW4^4jn5s98E)G z{Zx*=tMdY2;_k`G+75+CgbB9Ag~%~h^{rvQjTS1xn7mfWL5AeK9?I!WjxWhjwS;oc z59O>02Inx5-aR$BbW}5ztF^{33ab@y0KTCO*{{9tC~T zG4o>lop473O)-&@sk4rmmmoK|b`Xq;nU^vq3umx$9({2d7~58!Cwg593sCR&?{dG4 zsakQi*h|@VTKeUTq1q8=N`g_+uRyM?q3hi6_U|=@qm9^W!M^GJ+ zdqs;YNDKE4aNHCnJH4+lZ+k6B@^uSR4NVI+XaeuLFzLn^uLX&FES0k1BH$8kCC=7{ zSA=YMC1bP=1*2?u6=RaZCpZHs+7a1ESA|-T);+;>%2grh*Dyv)7mSjAEn_O^jHBn6 z(~t7?nIzJ$W$7q(PLUix_AXI5weFKJg|!CZ;q&UbiN*LkE{;7Tdyc~ykRcYMG`)c_Nt~&MK|6mc(r*aa`9`LiFI4!zvl`Uvbx*koe+Q)tMoC}7 z7-MHQ&CcC-LLt%;lJ35R>J7zTKYLqQ+MkJ!@#lIX@sf>5E^-*-`7`l~rBeR7v!7yv!7Fxo6p=y zFM}z{Eez%4;avolj~<(DMQ+0FOJ^M0zrSj*NXOVzl$*=ZpD{c(73CHHwEU z?fw-b?8&x!cVsZeYj?7UPxY-O;7>gk+=iTl`#H`%1Y>HbJ^XgY=yn&3YWHP~p?2RA z``_LAe>~V9Ia;N?mT`OK!W4S}cPI(<(p`e_W6Rqrr zG5?r3KKggzLzv(k=}xAi86Nq3aJIY~Wg`)WB9cEdzY96$NiLH0?WJAr_GPsS6=8z1 z00LFCtb2rtFhQz&n2HuHLA`PE2Y)`2@C3yCnM&mJo|z6~ExIkoOqVH;8l%DQqn z_?Y<^dDDR77JanL>nZ*6`|*3r2xEFdKkUYn&#N5Vle|$Nrzp?(vxmvgLf@gbCvRas z$m!?&ioZ;b9xv`iZrphBv*<;bpvCTED)Loh6MXT$<o%^D481S`11&IgCne9RQ!3AG4sKv zC%zROa~isZweupe*rQI8?5uqLF{av@&NyD&fB&VATA$C)%Ik+b#~}<^&v8B!KJ?x2 zE=baMlT1!o(*A8RmxXff2;^WS%Foa0$9>1h(k=Kn*adfKq=sm({Hy}rrC|)WV7@%r zVRE#cS1=!HS)&V93!(A-3C2)6z>J&(qwM@7@)K?nXVNz~k9wK1k)AYmR|VoU{{aRle9|4t$cX;n!2)5uM@Q*pM^SB0eioiSRvV3hP{ z7}E&RyWk1SA>Rx^ueX-kp*ISVo+0UO12EHZ4EfRI2InNtBGb$Ys4YJHVOi=K&+7`Z zviWXi!k7qIkeAJoR_A1~x2T+~EEeSF6c+a58c>}LpTeRXer34IDJ*h!MY*BUUiTbw z{kZY-=v#M?8p7)eu~V@Z${E96S6Gydzip0=8zjp_fG*ZhjI?os=osV04YHa~H6ci) zJnDH+Cfo~APHjfX)KJHb7myo_8-h`7`XXaY+;E+(_TS-T<0W>!dJ*c={`qS38uqB( zR6oQQhkWAmz3Na4UIC7+ z`0KOZI1?vrF{+QT*hH#^m#oD$LJng*ixDrMitfzwlaAr9A=^CZX5-kap*Z$BW3SF)&G8RKb6 zynHHp1E!y}rf(uUcu&q7Ax+<6jMh{zO4GL)GaqOC-lem7@w_j5O;e)j+pOv1&~zSf z3%rP~XL0W^pG|P4H0kXf*O-1qf2|ZggbB{#-bGHrrF9i4y2)!lmHSj{g^Dmis`r>` z2b?J#|6mdg)y4eb{7a|^6Qp_{ISF@voJrQI+-jPY8KY~)j&8l+Oa`vc$-F71ujTD%=%IUgTSG49(+dh?O21V(weHIyDm|-Q z10D%?FPv$PGvV{qH-5z5Fw-l@#&tA`?rU&J43{f(DhDGhC6lAqDIX&@Zk^JTf;|#p z(8_9cvlclCmsSV+;V{YSe6UavCP?)Oa^hr77b?O8sXk?@bvPf0!z3%~0-+)duUrap zatiq_r8UUGooVW-*=NW}xOq5trLwNq_7WRnw93iJceY0^V|e_^$tl9$Hb;9n`H%7N zv$b1zJHW)9F`kE$5BXH*1*w#We-2#2rNFo`4oaqmdi+AT0Y-bcV3dcGt;~J`d3N2a zkIg6R_~X~@sABtPAa?vhH&N-KKIV^gP7*!kXLxS`GOpglDyJ<*^)VKsA4Kw#9lt1( zF`mVUS1gsX*gt>^-sQe76cfH=jJB9yl*RtZm=w-ru``Yzh9v194DHtXHApPbbp|3+svw>H6=bq)9Y+8 zu?(~+V?0fXS1gs%^gG}Z?joFRz1D{`Mf0S!sbG|*KQP8>`j@BgddTN^qG=bHn*y1O^J`u^afjuoS>$R@iZk~u~bUaAAw7_=i_WO{UN03zZs+3R4_`@pBR(E zncDQ!hbNEmIo>Ur{=}Ld2u%+G>h>+HDq2(GV>Df2i-~2RO&Q~9O1xsJl&1dyF5y0j zv(@yckfuK~Mr$eN#RVI{=U9@Dxc#uqUmp}X(cq> z1*pWI9pAB3u*d0W3;A%QJO+M@JRtl znx<0MAxKz`yY0!@C`e*Ft%j!A$k@53RYhw`e2k{_goB@Sn=;1Jlz7EbDNS9j;e!C% zdO2=4{G~@3+II<#GJ;W>(uCQ*6T@}(%R3%swj3`KO{vYhxb@I@=el=v7; zm)T-qgKf$fPgCL*OQkgJ$~C+NXj`vDNYieN(QPUirD=D@B!y3K_j1#{kd4&cg{Ibq zh*)@@gQ*tao0Z-@Bz?n>bipX;8wD^|&Ru%F&oNu1ZxoWgF;g9-q;C|GP7}FcD+@+R zrzw!>xuiu<_d`W`kC1elP9$8ddykNG8i<3^1*4?X5N4hO>JI70C)YjY>)tBTH#gFW zO0G%KaFB3!1O*(=`EsZ4du`6rX(g2_&y^6ytfX?~?ngf-FE@wx2ThJ%Ur_ked( zHsG_%Roflm+vgIoPfs^Vo~i6Z-7vUY*weF59`=nX5ysf3DA(*3njCG7ZJAFWpvgCA zw@~=N8bz=n>Bbng23-@UWOB4Mwqrimpp06XlHsEx()Nte{Zuf@8aps1$sD>luidxh zwHy$=J-tui4jo?;1@8rYT&%i-3#+>KfFsFU_7{leq$3;E$3(UZZLz_~J_$u##(0q} zX>%BVQIJYSwjEItd>6qEA^)MPV?qBBjIvlS#*qK?gyeTG`2mYkYD-Grh^D>VbpP3z zskR0tfrGAp_453uC_fK*7}bDb|0&GIKL18uj`kliTJS2B@TtUo!?+Sb{=*pZAMnW` z#*(A`XBXzP5M|bX3?J=3NycdZ5sb1%Z^oM0do>_x|Q^{_9@Knm&V6+W)V_AJk4i1V)A`2G7wLXqWjA0w%It&TmJ5lhSTeYW0x*K1;6yN-0=NlU! zi!q+BlKwtb+6qzmDw!zZ5}MkRlBuC?o!uFuTSqXeb@pJ)8qnhxFr2ryIrmKCt9HkJ zBXpkYj5GELV_hKqqCzEf` zoke?izL5)`-w3&cF}{(5dyOdhIeB?STqm-I!Q|y|CS@|l^Gs^9SSsb2eYuAB0Nq2_ni^`)+>bHZGXiwR ziw#D`9r8TJcorjGKGjV@DrK<)P!fC(!~UUhCyO!KVuDc?%VtaxQpq!K?~(JZ?_)QJ zrr9nu4a}%>LejHC(sM)71*4?rF=i4Z(_Z_;x~DJkAhZeuW&hOpcBK{g_W5(SqiO!UqwcsGoTYC}TJR z6ydoEN+w5-@6_)T?o}wWFs(k}FyqD(f>wT5>T^-2L(fDAlvmH4riqE~<_lb2vMHuuHHJX#A z#xnTL?zAMT#*=Hbhrv=i5p!h*DK; zTU4Q`+us(^F|!K|K1eB-+F}CQVmtiRN@0YPwiwmNSnMuaY%nTjGRCtQ@$#vb2dR|B zicykq8-TVJONA^}!WeBa!6=KB8Vt@`AZi`|dVe$-{@|1&nwGkx>G9CiMbWzyYB=fH z=|E%#?`N=eGDcSR~|or9Fs!=TctkqJvh54 zW9c$Iauyv`hMgj7m(@Z=m>?B-al+k{*de{}@;e{-RNeM7xr7N)4Q46|bNJ%?JO89J ze5&1riZDEr!EMw9Jd-h+>Nqxp`B3F(rbjawu~=mesLULjF%-v;W8#>}(LP4@F+O%b zRme+rCWB^U8~S&}SUVf4$AVPK$I7{eUxL1ea5Xj55ppPFw2ui!`PeYVRDg#IADer| zh3kDE8zB}O<|g4|XQHyBfP0#T7%$BhjNK9Vt{JB<&IxF2F8#0tGk^cv}s?w6vngMiwYhAK|F zm5Gnh^f_B>FzW6I#(0_%FQ4j_AeGW|6iO2ANkCgoM}{=5V2svOFiO)y88ZpzE#WU? zPFcH~uW5oVY#|-$lBSPA)A7K4MZ>F?<_pHOGG*VRa%$ZhKxJ!ah;;lJ&C;ol(3$%8LgIdj=2{?=a{FJRSxcqrR3-2qo0x{q`Tpqk2qHB z}0f>dLfY8|K! zG>jGfjY35j6SeXS^7y)@(NssRam;5RsA<;pkDj9+5j!JBWd(i^5?_2hSYzz61Jv>I%*NG;4YS6ls`{kOcr?H zOWN~{ABe>!xJk0Jl72W-HG;yn$%IgEIwB-pFiQGF#w3MLaEH7*RSIdMn=buGrn(Si zR{F${^rJ%31*4=_F=jFNP;Xj3y)PEOmSaDWUgffMqLLXt^?m=nPxLl`Dz6U~V26Pc zVN6fK)*J8Lm>lh6)yzlF@P!Y2tPnE?@_ojzk74tRIh!2a7L%FJ^(ZA@rDXVMPng1( zEl`FpoCKq+F_kfsxU{=-@nz@F_R%xM8dF_Z!(E3MH37JzXac}V`#kY6-utC3HW-QF zR7=KqK2N-Ss;`1n%Ik=0!kq`SZKbK9cAv%=t*Ky?rqc}u=Pu|y_hvoS;%j=HXgb{` zO@D-@bQNbbO%gb1O^J`u^jlkOFrq2-OvZSc5-*=>L#u|NQku>HE_g+CdPvh+#%N6i zqclC5F)8NX)wwJGYqeTmE1DkdlBQkIEOd?GRhsH>(wY( zkV%E9wrkYn`{S!%bifo0Kr9$%c%`#9hE z=(mLrVGw)OeR_>dMdLbg4n9NoyHF8^BDTLX`B$d0vKEdWx6+q&SPmE=5hf_BDTAze zLPeM$RWnod1jnv8g3r*sDO7|pmibk3d>ihOOSPetbZXr`VH;ArOEhj_S%ZM37{31f ztM{DgMdKnoZ9z^>7!!?)3JducA#_dw-`S{h@_8kobIiVtm(wp7zn}60Vgq>{bMBXm z>jh7EIok5AT*G42gVMsC4q9L}$GhT0Q^N3^1bp%w`V}|BS@W62d{WE>ZzsC_wlbSEvXR^vpR-HB$8IGJVo>KGp9+MHs7Bw(~Il68oqb<8jOwG*@ zMb~+pP!T3r=ebN(D|J4u-=uMVosSnP!cd*F3kwT#9m-Ue$Bw=Ap9H-%2p*NgZ&Eit zru+K|ENdX>(Gi?G?mBg)cz7kKaDAEPqKu(=0@{>3-sb2SPSQ;b-_kY;Bkf$2mT8Rf zVmL)fpX%r!m5Sl>xQ746ImsM}3NCDCjMO=u6B$Ex#urY4Q89czV=h2x7iTl)gsaL9 zHdeL!TIZlX9pBfQA@a<}GHIRpZW3cb4LB}9!LKwC<)ke}^)VLnR}%!X7TXNp8RJ=u zc==T21oo1ivz^46zJ)St)cGNcEntkcm|&E}PG(F}_yp(A!)ORbI@yJ$wk^g`&M8cF z2EJM8Cx@h;8j>y;CH*wURDchSmBD8NTSfY5Zo2f-nd)dI{j`wuGeXh@qokk7n56It z>VBn2KQko#ET+=BpBa*Vc1XHll=O2L6RrCyk$z4{`ngP{bw4L0{k)KL!6@nHGbRhV zcXeFnmHB%?BDJOMDf?qEY=2LQzMlI}(c*m4!o3DPWmiZzmzEn|+SY7v;%{nYN|m9U zGeSA9gmRohCdP?I{7WFqdZx+OW77q!`-Uj+G4|U5!iO;Mc{Ms*$W+Tg2u69r z#U6$tYsC*^VOz`ba?$HzH;ER!6;|CG^4>HG;hWZ!_?Uu6EIANErtk{gVyWr&6`o~FbrmP%=QIoI$Qpe^IeLYiK|7~Q6VQJOCDFr?{DCk!j~Ic{b) z7@S2eX}SuUZVGv2w5a5yH6=bq)0b_93`S|n7*A8;6-%Wwy^?GAIM9~yqL8Lnd0N=I z2}WspHDlI*Pw>7JWH=*4)2m(5bPY7c_KdTLmc5+xzUVc~ht@>2;-EW2uIBpC%&JhX z%MixQ)eEpLpycNi;TQLaJJrWvim=P)=jeGj-K~>w4`L2@mVEQ+*d?=8xLWE=7&Bij z!h1Zn@?`0G-D2jWuZ&2YF^en0n?1-!7{l|rBD|fOlF8AnOm#M`{GqJ|BXx{ojMvIm zuShD@%GYrXKLa;=WyI7_?<`%<812u3QLTJ~harES^TsMnoNQHJ5sTg6QY(LjR;HQb zx3n$5Noz`cOr6(Qa)VL+%otBo;uTA!G`*2)coxu>@eLt=zRA zr-iMXV3ejyJq&63&Pz*A^*K%uO_#c)=?0jKQ0>mAr35FfDe*Cy{%k8`FiKO#1T>AM zQkvevHEabp%Xn!>(_1|)Y~2K-G`)>6^KtG8UcvXATq&B~=0elJeZsdh)z+XO-RVBh z+q{TWByVpZ3`LvVtX$kVyb*9FM@NZe%%=~^NDI0TMEF#K3U800c@Sd|C5VsNOffln z#c>DoxgKaZ9w);`_vJeoqx-U8lr`@1Fx2kBQTXp-jk{cG_uZu3*VDEVC*AJE$F%!s zGLV;a)M8Aa-D9a#yWh<<{3|%xcE2ms?)P|F*t!WuX}X*-DdyAFDcNlzZn7q{onx1D zXpS9ymqqsj!4PS=OBO2xN1AkhNn2{1^tf{`*Jl$c*=)h{!+Z^g3LnA*XRxG&v2%kp zhv6*!i^faFcy^{5_*6|nDrM*UxIV`LZ6V7;cD|o6+M@)c?EHX-A^Yat`TWg>qqXy- z4%s<+Ei*&x^MIR#ori!UjSQ=36OxnmOsbEu*qB()WQ=Dq;uTA!EcPI4ItOTLu?IpH zd&skft(#z!#c2P_T-OW7-escc!!Bt$7MhY03tB8Utts&_npVbY${0^mg2hrPO&{SJ zHYrUX4r%(Rr-iMXV3ekhF(!p`cgzq!zx?<+f_?Df4*5oOAN)!z_841i8aU=a-i@@C z%1K*{>SHX{YMantq&Lz0nK7Qlh?h@wN{~uf>~Y`{?o!ZO$YUXktzeAqO@dJtdx9|+ zfX~Kg`5|8(iU}sNIBhGF)+b!@jWeO?X~=(cwk;>nEIYAvfT0ZMCY4j`HiOF6kc$JO z-jiUJaCb)m^@$P72M&6IwV*MM?pvnukT7P{%adO-*ExC2)a2;(`%}z0de#5B)Q~X2 zRsTw+S_hue$oOV!zhQqCRQPvrlQpZr5?NGo$6B^EL4P{89wytm&b4FlRB#_ zHBU1i(ukrgy-`7|fsr~7&oXR}T*mO&ork+RDVZGYb=0QD>&~{7XQUk~saG<_^Ezr* zpX%HomGZj3a}9q2dSm8DRMc{MR`3jCwATqndEK)fhP=(671$WQ2^y}m`%yE+^3S?S zc<&0-DBBDNSGG8tNUY7ebo8hFa5?Lz=$g zX@M`C1fw*4l`(5j8s5$5i)$H_UUf;+m!avq`0LG+EH}NI@f!2#g>t)_@haDcqD=wb z-$E+|!k8$Uk2jK0@^cFM6)<y-s<9`Czc&UPy;CH*tTTmUW5K+cnQ(A6|+ z`PW7IXGS_v$-NMtGZpnu>N<31+Gi}C;s(8)k`iG|Oen%NXlh%NqxeNMG+ly1N%lwE(#fo(mFA+Rnts*!fCZA%hV+Q;%YdXJ_K&Q{51xQg;51Yj_;c z7P3C1>GzD$b{34%^oIZ@_*RN{MbjT#Xd1Bdk4!~AVWs~NlK$@iXFwgnDCs{jrUGRY zC4yJ&yQPqY^pl$|{Xa}ama@`+3Q7MtBwa8{`Y()0fe)<_d+$N7F+&!ol9c)U#f5aY z6s>$9GH#-axtw$>6CcycOKgPH zEEuKfZ;V+1J_*b?cJ5KUpRehODP$x4=8~pILDR?a*OY}I;iRL@|Cmo1@~QNQQG0*w z*KB!;;SOQoEo$xgJ5$jdlC%ikCHRw25hh4Q;JD|q&nPys2*b0%>@3XdsNSS0k15E> z=XbrE99i-Q8APFm{z{sf|=B=d}$`f7_XIWeGJv(K`PbC{Ck&y z-T94(Y75Qn`VfG%*Q4r=Cf;;B)sJ$ zaO@6w+g^&3mqrN2ae(36i&Rdn+W;z)Z%OouqZ^9+=h{yBvA(El7wSQnIb`Q#=kkh! zFs7BW@y2XQCP(kmbZ0&grDR#D@02i+Ll}x|{=KOiFxBp+*ctlJx!4A?R6CTKY{D3? z%f;^(&>TmkE1#$Psr@(1&>BRvsLajI#qS_ce`O5KTe5TWvY55W(OySwYWyduP3+zG zMVXB8ypGx$g%4+wkn~MM(gmZW)7{(&w*vGD9KjLf5|O@HNc!eXbq*--h0|ss>05-P z3r0z&yBFi$+w+!4-_l4YDw!K^#Z+5EZUP5gkK5Ao@Vp!|Hzthn@S>a?_IZ<|bI>Z+@~d zyeqO8!p;m=x6Mjyt5D?S0iH{z!d= z=(Pju{wQ=m2)K6^Tivy$#K&m*oUIV6Yc<^*e=)|>lz916^h;EJ(%!No*YH*pTF4F| zO?P69)>JS`Q~E{VxW2PeH0>4YJ3BL#?mNA_zS9qJl@ejN@8sm-U0$?9WpZ@i`3v*u zgED;KYuUo567Lbi`-CYbGKTsN_?S_~d zyQ@mYpFO#TJHjRGj-sid_QSmxqy11Y$`9$+s}pV#QmKN$b@$<7vAs>NRMPihs)a&@ z4`=UCOxQOhT`)>|U&h=CdRiIJoBPWszrD^A>3xlKqLT4+Kc?Cd6kT!9djk7<-kXOv zZjrAM#&~aDRu2BwIr(^_I9bJDbi41*ocp4TT87@rC7jXj`4~@$iZR^o`8j6q+T`dc zaRBqdCW1HDGJJIFWHCm!j$o91vKg}&d}#OSgX89%?njBo#6H<%AGasM9<3XHzY{LO zN&6x3F@E?lzWK@eAz6$uo*xn~pX$pXmGXoft|9GgTS#`u6LJ}&H5H7~G>na{>f z!{guKqM+4euffPh%41D?L(?bl*UtCYa;+)xF`9m5E5x)`Q@Ym37*A8;^&0IU=7Z3{)QRn~A=cLHL*YXhj0I{%)}N`OcOmv2!fH8$ z2~r)*RHPS~C-@BJYM~;G89@pV`KjKdsfjiPxVFB+%hB~Y#N&)FlI*u$^0GIK#cKP+1AHU?Hr_1tvmpn6E4N5?oyirL#>=*jBaJYs8%jE7&Kh; zF2uzf{gG9`45^d(m@f7yW^btjM_ToMK{qvd=^nv2P7*exlo)CY>B)}6L1pr7uAUK< zuomPkG^WrlL@`?fyAU}=+2#&O!q`?et2UFP=PjkohvKO(%YGXp^&w1f-ZGG>XxyQ+ z`NIFM@#(J?D#94Aqj~REz=?F_^JN|%YIfR%5G^o%;qg2kzZk>gS3mg$K$D}rj@s1t zPo*|-U>AZhp4U-(#8N4*8^kqy4Yea1Q8G2uBjaGkXs;8D^1306NrE0<(&jC%h{cAG zw*+<}%9-j8p~8nVB;@l$L(&DKqz_|E1?b7n!Ci>nxHpp0u#oiOOm!v7@P*T`kn|BD z>4H(xM>1wUEWQo61m7M!Q>2eH(uqoDO{17fucSs=56{iQm3>NtVGqa6yk;e3a&#Q4 zU_N>!C44IJM5w%Rf-&S{;A2)&CP&Ya4rM;%2{!&1KH3vTGe&!YV3ak+FoxQK`tH!O ztYgeLVRs?cqThFR7h;82bqrb6T?CG$kT#cYyW*t#4%Nr>om~@BY%mhBDZVhq>pR5D zr`jt>rTR`KYkC^c_`+#S$bZH%Mq5lU%3|XflVlFvotM8o`*(j_{!}y_*M&6w8#JZ0 z;0(IGjg!`t_!v$14c1vSrFLbErz!FBsd9rESiGYVT`9K@$#usK`N!` z;atOufW{Y26GECE!5FQnV3ej48PkZ$Z-vOZV$S6^`kG!KnoeX*-$G@l0(S@9fX7LX zgGVwS8i}a&exKOoo{3(R$j3dCJ0O=Z5+&qWA)RBc(W@Lh%|yx1Dab0~8c>}Lp91`n zX%AG#-#c6k;A`FkhxdmB;&aNmkdg%yR&3yW!jOO4wcEA2|u_5AN0e;0biCo5T zge;JEUYQ*2bz}|Wb)`Z75wD{Wlrf&yQM>w7LxWVx>n3vzHwT)$ijt|Jj=fVDqrFZr z%Il^w<^s^uuQ8r*SC<9GVm9{v0$*!??5(bw-dNpKJ#+uSQGJZXc9BxSsD8>A&tk;Or`jt>r7Tv%n(DE8YN(%1V~n<#V3ftCGbRgisQ%rW zKErT;EKX;NrqfB&z`SJ!Q_TX(VyB0s*D^*+7mSjAG-E1QS~ut2U!UL8)Wf#dh>bha zUeR~6+$&lf&Fw`u_YQ)*$LN+$PP)CQKBm1!1btQ7i~0{^y!IkqK2_RN5~{t9VNIU_ z8ecda9kN&*W3JdoV2FI$7nh( zQqv7U!5B|d;^k8v8KhF0)^iOX0UBR8%?xSUz!IDPq%|cz zrq0I%>#W8m#(0_%FP~~wkVG|`lkU!53X(||{=^VyTtfP0LZalizJYUnD zDH~}HYgz(LOYv7Px&@b$)|B`dP3HvbtYQ>nJWYw0PjzCDN@;o=*YGKz@rBczkfz5o zM)zF7C{5>j7}9WqK`XGSLmX{XKL+}>e-v)6o!MAd6C8u_e6Lt+ZkHt11!KT*b4WOd zZb;^&Ek^Y*7JE}l1tS(C8pe1QBVMso%3>$5rndo2`cax2ve-PvXp0F(S?oj)Ll(m@IH`@$bPewty}6S8&_| z5=OpjYo#ql^)VKEiM6sPyK7A}jPWc+yke=8#ZG2TUk94>qqHDou~QhMeM2zHVyAi- zvYG!Jy|vh)j#(_SH~lCUJC!ZA02~vj?=-r>o|Cp1)yG)uI4Kp3@-fDE79(D9Pb!^4op7Sx?6K1M7jj5eIlU`@}5rqlz9>DGNtT2ta< zG(BEQ1*0@&jHfB_iltJTp2;;_0yMsGIwPd%S)LZQZh}#op3RsfbLirX*x+Q0Da6tG z#%?O*m`OkQVop_FIOB;L$M*%mNA|U ziI-1>NuNr3zwR8?{UnqU4@zf;YiXJh{jF)rM1It|AwPR!b7Vw%S1fiOTkLLdqViz*T#PF`p?6Wujr_ZtH7$f*X z*7R{`x(_mn=>Zl_T2taV=n*7N+Bb+#TbeQ^plK|X()4n!;WdzmFPtt5X?lgHg{_-ll%|UqlLChX{(U+l zZ>ykhblapOz7f6G^oCe$5nJpRSS$zf4x$ILyp&&Qza~YaNh+t-{TftOQ;S5bR2WnG zj>@TZ*N3R|RmCe=ciQjsIoof0O1C5oc8%0MR99u7Y7i>IfJ$9)COaEXpgRQpWPLt? zEXH`AKsNHJ4h~W&Pq>=vGaqPt;j}2^3D+=2M+w0wPq@~@kk9w*{xmE}9PKE)ZHGJ| z`mG%oi+!$TPuK(;X|7R957}|j7NhzYi}kg|2BYRJjPWc+yke=8#TK)s*8)xYQMxu{ zvFjM4EhZRcvFjN_I}bbHn&G~8e0yKeVg((tSajccPb_vlTWnu&q@RDU{=m<*4KdHP5eEN}YGV1^$b1Y6Z%q2;ZfwKbzpfK1!kD}V zV)@(zK*AjgSyZ33zg>KXrNIu&VN?e^9mIUJ7E73lw4n6$%iRw0sVaqvFu@*2tz-OW zJ8dj)&bAGBF~;*BvaCK{FMu9jI9(s|pPLz@{YNm$f0i<4KF+(q9=9HO z<(7t{?QxfP$bX`HT$9*mDf>?&IJQ7uA9{GuOAiRfagw6ZdX-b__6HS+RMM?;3u{q? zQsVji|5o7MA&cH;ydfeCT1VYeaVt~NekNhdUwo^dPc=!X2ot2bjj4Kqf@W30_mICO zRD=N)*;%g9-_BI^prBp8-+t(|Y$>-F_D=H(@HRgpB#hY?&Bv>yX|rAB;J)0Fw45Rb z6%Jqu`OV~-s=&d8fB+_+uls6D9^Y-Cb8@+sI)_FA&8M(mKW;_xA5-Td?55HcGn1q3 zybQT!_Yz+u*>622m<+)pF5cfCr&kYuX>jdCN&EcVS-e5 zG1c~hYdmaOvrl!pP!Yy(dPs5z9^`X3^RfH5U)(vo$3_?YiAk{rg)kmbCUvM%m zRvAf{_XrhXOkVEc0%Ym*{n9`Vc~l|Z%rF%trUi9dEN59)p$r|}d3m>E&l5ky?sp;H zpD-V}jN$$8qO2_ZZFBUhrNwDze?nH9Q*(sAp0#HPrjz z_c2CCHo>UKc0Xg1pvRZA`-tuni``EVDR4dR0j9cKsPN(3ABw9FhNKHdNq>kj6`)Vx z2;N8ZjYxkeB>iEgIt~>0!s(%q^hZL{1*4=t%9sma!>z&PQ+M`!pJSgR4ChCUbQPl> zV=AJcI@8lkk9skxpZw|^VYt8N=N1<56(5tMee7}OL;j2}{6vQEsmujcF5e%<81gaX z6as~3Rf#Il7Au&~-6*4#IwiwLd%_cp(Vid}WsN5pvjX&8vA6w?2|G8Mn%OaqICo&} z8M!YpNv!%LS=GG;qt$)j+Jzns=A`=$)yMRmY$+9t%qnTmoH1VCAznUJaga*&ou^pS z>rjp_oSqE%&q~HvvrI)-{qcp2Eg`^8cNq;_o2|h>PXQJW!d`S8WOjUE7X@5Q=<5s$?FrnC-X96Y80kXKV{5(Rx^e?1z$KV)AeD@D~u^onA<{_R~d7P z!rU6dyvCSng*i7==hqoS3kiJTban{y24iTZVKK*t^m>yqxe8Ms!n_sYGdqNNJH)3s zgn5TC+RjZO%)5*!SM|9sq}O|lp%n+daJnaid7m*CE6m*?%m<9gQkV-vm=764amC6y zFNFDsF$XBj-XXo#gk*`A8 zwA3`G24oKyP}f4NNt+OiiT#tFFV9ylMzRUQWtnSB*>^p2|D4q^!glFdz#TE?R1uR22>_ zE=yI!Rv|l;I@}ph+|p7#WkxEdno6DGvhm=R4bh+)Q`0iK1~smkRb5v)qq@GnrmlS~ zI;$}W7l9*cnwzVq*Nmw_HJZ!nr?#sCRU_Sv|96Tylgt!IZ?p!?T`R)G2(tl@Kyj? zsH3JbjWnWqc1H=x##L2~txYvkFtTCzsu~;`zs44qRTPhB-3L^aWh#bg4#RjkYVy%F zQ!r|_Yc#{)?9-Gs)VEaE)?@fI0~{DaDP7)L-yZ9ueaU$SR27D*TTnvmC^)7t^u}R| z>!vp})wax->47{de=sg6A^I#I>le|OZ$>CHva`HUU0_-1UJWg^)8-iH%$oWZ8e6B= zq(THEF#L0`n9kRcHuFRH2%09PuZ4JuQ>iRWo}^O=C+{ zU2SuVGhk%Ru>)(SRkzl)_-2l@R{T^g$EcAd=03Ewrd3Zhsm)C<$$>#^mod^pGtVe1 zwI#XTtV+r%O5&!xMu~wnJl~9}1S>4F7!-rRu4k;cvvTS(U0X3&{ z3mL3m%uG6}j#VQu^Ub0@F8-e(bZ}skS(z85GTDH9C(;I;H9ysNRBKCPYqZ0b52-No z$3IU_j0K?~>_;a2^F+1X5JoD*{ux4fQa_>wtJ^65C>KkT#mk!;>M$-%4OK9fn!JlB zN7pphw3x_RLify?uSVWs7?5pbDzB#|^@kAz-|^*ke#Vrkj?!cPMZ*;495fB7o!-#e z%q%dG>0nK0IboIqV8*L~4l*bQ2eJk%-eKY6sU3*eZbh_Vwl?=Byx~6+qu?;!c6$Zz zGE2+EKX%%dnaH1;@nnxZxLuXg-V7?eq;4m@zb5tr-$3k=%&M7MTt5{P_130(OiIRJ z=b%|ercAof)DN9FG)lnHvUxuuB&8Ef$$e;f3C+h~KMZr_ww0y|!u1rXZ?yK3%My!2 zsMxBVq||ez#_gaeD=y=}&)vi>c`{jFyQ|D_+knelv2DBYw6PpLK5iOfb_fS#ndvNT zTc(Hx&XC2sfbd_9e7KVD0!lAISWrmCC_9H1L(Hm-C(b0v53p%Gqak1( zRbZu%Cb=x8uw_nTO;v6Ew1!m5ETfF%@_KA#)=n*Mn%+w5pm_P2fT%@$aavu-PQ|$} zQalBjWpI44c8#jC_TZ|j@OVQNmP)E2z=b@l+Uo!NxXDKD|stE#M>I;V5ouy-?_CnUB((mRdc zR#j!4tvUnE(c4Q^^Uw$s(G8d+{;R0FC?Q&m}|BU2-WmJf`JjRSHA?mSeKRfmIrvq_qu7WFwBPSO$K3ax) zUDL+cN0WJ8DZ*GI8(PZg(MSsCHB*B!?H&oX725~n(J2<1HbiB>VT6b+O&cI&OdQL; zkGT*pJVw>m&1riz9<0wFhl8<)@TKMn#h8=)QMOq;!e*rq0?iDUMu34sQe`6t zSEMM^k8G%)OiNPuGsXSJ))ss;56G`?pfA*2d1su+O3G8C$}v>OOk@Z2DK6$+@ITN# z0WYlSAXS8otJ3r_tOHfbDQU zKW@Iw{VLYIbnnT|gyJ!lR;bl;Cf9Um#f9qAJ_B7nzD#eXW5ZK}1`aMwRbW~@2J`CbI@^!148pXHW?MXMD;b&^T8jHv zY(23itE_ICUei+1P>b=jNs+}bAbri4aTa!DXU{Q~Q(9ARjOUS!>AD@#qv^HBR+Y5_ zGuZ6QGE&te$fq5c!e~syj!_&iZI=j_4Wp|c!7>h*#u6PgClxIo`exW{%0OefE>F?? zdr)HWk@GwDNHejECCsqzpMgd;|E0&Zp?+rrirRVh1^TftljS=t+HZw$bcwYOHOBv& z@FJCHvrRi&fwa4zLL2?Ds(1cUgt!*g7O_ISiDz~!L^enUM|WTygtB8HhDSR$o6=WO zv0VMtQ=6MoCcmvI77g!x*1!FA>pFeo%R8 z=)kfO8Cr-uuVPr~77wwhm4Ih?)cL#R|s(?|N>Oj4*qjfjYICv#& zAb#!-t8_dmp>$>I%O-gwAn5w-M)JmPCUkHw)n2WOtU{{DzW^8s;NXC(r~c(gExxq2 zaR%;h!_{x4ceMBzs4qSekS5;l&03uzX|&xV0g-lZ8%bfItRywOcwkuuPqSBtywRtu zI8`>VWK?@e>{ZCf`lwynHci0Q9hDkBbX0j8vZtUGO%%)IRaUmT1{&!xWPXx8cqk^4 zoXQm8cAwkhVORJqz&C^Ufw1H_6B>4TxoSZZ`I5(xAe75Y;R~sH`04NZ4+XEl>KgQ zM7c-t&uC2IXClNv+@(8kcuCBnngVId47$?NF!^YN2)jJ_gDz~A(|8K7xV5Fh>?31^ z%FhJQ%{%R}$awZcx=ry9vM4DV!jm$)3liC@^^nJRSkgQvpme(`YaW)cMpF$pq`G-V zXbk`_i|l!RV+~IY9Xbpl9gbw4VzkTtw5OfQ>nqV{=6>gPR20i1GD+GqQynEot?*=D zjAFr^0z!?$t%cKS@n|YqK4c2EfAKiN1s7&`yd~3~KR;82`F5KEbbPNW>lnPSO?X6* zY6nePkdg~3BT|FP2MuJyhD|o8u6la2IDvWEf}d7tPe(Go8S{undl+~-U-B?;=#i1O znecNTSSXYC$rB!J6PXP{yS(OU&cMN`kt0V8igESyAl6a;$cBOKo|U&b(VQAb_x+^Z z-sB?)xJ_Pd-bM^9 z|G=eurN6g$ZdYC8j$zze7X5_2?*Y~davNI5ZpE?0c71KHAGf!Tft7WKh~$>q5KT4S zZ#*?73@KkvTX_C)HdvJYQDSfOrppKRZX#MT{ZWSA&ix-|&`E7%8|jaVSKf|W*ZveP z;X$yS4kDq6R;Q(dQiBJTl`5yg4Fa^6ER&o385sZNCZAa*p#2$j4+pSzR^4{WKgl!w z>9ijxQ#31%eqJedZb;+M=#hg}C!A1>y=1&*WNO1qGpQR~1E%~IkZc}_c&-*NDmYuq zv?1YjHM8HG#glqGDN+-jtEl=3RmHF>1H-my`{s4+V;^+)KR{F1KAMPWUV90>359)L zoBKmaYUuDG*w~^wY@&_G6F$=wGN6>HwJoySO~Ov%du8nK-9CnGj^W-A+gvz-c)H{~lU|OKlN!^|irYVfVO1Vi!B&*o9Kud}+WWlhD>LXe1lhG| zu51Y5@HQ^G!W^@zz{5wKy#b1Lk+^bxSf|SZbiq2U%6Ql?cCKMIB}#|kvcfRFoMP#D z-e&Is;GI#U3OfxAZX;5q!$u8HsUq38kT8m8m~mCUt(yRf&0}3{gAu#wR&-7gOlDWxD(PpIOKFVi|mK@Q6{V zP?g9d>-BR3E%3#FMLYifz5iD)`iQK_|CN^o96orD7iMn%e|UOYCH~J`9B*jsGp1$= z?**7oL(H@Z9e@u06SlFvrl>0W zQ@Is(mYd9I3p1L7L71su-taH^RexCbq_qM(@XU{}=8fcs*xy#|~;sCZ}zdh)>G zPy|oMiO8ANv#Xlv4#`g4!9f#Sv#{cumO8}?3uU=%jfvzyRFzwi8qi(@# z@g=vsEVu`5yu&l9<2t~D*ZUo%L0cDgK!#e?W)CSIlp0WE+*w?P9t<5g9M6*$4amY> z4NY^fbirrCfcz%&PU4yY`Iba_Kt0`|uABqD42Ln^Y}Pd8B_)<426()%+2I}azo24%K*1HY4p?1# ze|E>{WZB*UqJS&XdKP=!)lGOgkvFICM}K;yAw5@1!8vjkM_bNi<=$H-{@n3#aK@1+ zV6?W7WTpf1a`TcZWoH%T<>VI?~ip&#i@b? zt}|yt^NRBQr_xiTc)VCr2|jzuPkY%sXX7mbKfyuyL-D5galkF6Ujaa(ANEK&Ta@fy zI=ZsY_)?DpiP`Wp$Jqi0CA=XWxU3cYGf13cPW00geSpbRxa1ZUlk`s<5RzVWKLnWB z3YXdfa?KB33?d9A;&%=(R|(F=-;7f~>R@q8fVmIHb2z%-$D&y7W4O{oa(olWS&lciM}!Q>j_LB!DXu7{=gif_{G^}G%yPkF3v8O0<%PLndIIH%nHRX zPVVc#bUmYOeYXc@FTrJ!n*&UV;uj}(95AOTT%5j(fVo9*ndB}9W+jfdad>_Z(Y_y| zd^7q@5hV8KnD*Tjm>j`nlG`7c;fi0JzLS8tK;h!_y%Ct@g3BcLF<@R&{Nm)U1!k+W z+SYduU2iH&i7#Njo zh@?-_x@zwN~`BC1~7HGG${?-IXx(%4W z(63@5^}-S7_XUd`XAllbasEf+Ld9Z2zy}x8S>k<~+`~{Z4dsvGpk(xo9%o)z>^L9e zpp;4OKNmB^`7eJ)%bh|zu7eNapp;4OY+%k1oC_@5C1QMAD46T{Gg|I6(BF*m&8{b@ zndR;ZOpf3($?Y$g;rtmbmwp^+G|C?nY#00;*S@a;vsQ3%aw|apFJSuLfGJ7blnc$2?%pQ@AL(WarC)Stqzma(@M;#}cYt zeE&$IY+GOoa8%+**nSxi?+-`$WE_;d_DI7~oSX&B(7!RvkCSQr{Ad(UT<0S6^dkFh;28;Ja~fO$!9-SKyn{a!%+#`hww;h?k`jyU^G#;*o8 z(Ju!g#p#hm*<4_*5?q}9P6F;uV6yMW7o<$~D+6Y%;Ns-20gozR2G9fwsRxcI`;A5Z z{lN5ikWj|2;_NpXm`ep0XTO)g<5gf5Kg8@Z+OO}!7zc4siqj*BvO&O16I`7AP6X~a zV18D(xOUt05y#mX2c2U=xO9dCFM-puA0p>Nq#o6z8;JyH6@(O%G%H)5uR$yI=gHoJa z`We>?R=^fd!X{5S&UVfw#x7Iw^fObM)Aslng7Qf?C>eg(w@B;1y-;>EFsBL5)Q{#l zL4Lh~TLjF*?clcxn2+1ww>$X#2+WQv@dYVU{rUit5?oyU_6CniU`}WUzte%aA)Q~E zU3!Aw{lGjgxUTq{{VFX^_Cfylz-+e)Uy!=tU_VW>-`2=47YyMjfgkpff_6R-`4fS= zRIr|1BF4AHz}zf2&n{_tYyp0c0P{jRE`r}0VAiGM((2b2{C*V-zH*AvgXHe@v;gEI z3PNq+4f!7f^Wop| z1u4_Gb@Vfcl{hFFJun|9e=%8nPU3tDFgFU0+RgY&&E(eUea0{dr&Dn}0L;P9njF)< z(ewL5fvFZ;Cb`D|bGG6aCHG8-yB3(eo@-lfe_)0SE>3O**o*^aiQp3Wo8?CM-%4O! z5S-`FY3(rq^lO0W_k7#+8v)Fbg3DCD>A>7CIIn(ba;qWk4PXjrB7>BvJ%$2vxZvXC z&PTyiU_O1(@S}Lcc1epb6gO_e;Qu&H0Fb=;rTH_(p$~v@UuKxpFT7s80>#?^vrKT^ z@ps%f_$4sE2riQzU01`WUompG!AG1P<6cF-#6c;O9;X9ytKj1N;6m_t9GHsNm|e#8 z$2q`UCAc^}926`8X36W0^AL_MSXo5%j|C9-CCcmGFmf~b!F*sY5L}#G@`FXd?D!V; zIB>+Rd$xwSbtwNY4oaEqx5L|r8#pM%+3yCF9SY13g3IIwS?|C{a8QcVV=)Sb0`uj& z*sFVw#=)({e!=l=Z}2z|<@e*DWcWqTOP&Dc1HpNEr1?GdoAtnSd!O0iN8QPv;rD4c z8jtn^=3v2j{L=dQFTfoN%&-p(zYUpRblklXm|F!GXO}Hda4#^cuz)=DBN{(sKP;`E z_kx_mP~MD#66p~aC$9wN2EqAy1nvA6(BCf@;zxc3q`0xm z8jMLeC}pzCh96@e9S5a2yChMzD=;O3BR!(}8;wWffcZ$_;^Ni!z$Dg!0LjI{xU}(? z#-mMvIZ|+5KT7k1YT%9s=6%6+vHT2f5dP#ue)TP3J~4mC$tB#z!0d>l4-OaqqV%l< zZXcA-!$B#N+=akgFSt0lN$|K0m=_ekD7o{2TLa9bPw@pQliU_yP7z$3T(a|dza8RQ9vA$_~PvKIKQTM8U-bN7I4~0h zmr3q4U`|u~qT=%z5Vr`JUH{Xz+yY<*2`)}9#e)i977Nace`)%T2ktRow*9$nx%&Wf zpx`pe9SF?Df{T+o3F7VsW-FSIAsIi7w(}mq6bLR(?tB!afLZZh!>=bk;>LwDes!EH zaZvK=m*%Gw4;}>O1Ht+ID7cQl9JuwsocSAZ%Y1!s6)ae8FK z+Xv#Hlu3`tz?>$yI6W=^k43=j;~IXM#H&Ivdu(K%|qkwpIK!2C^cWWT65 zc_#8724>(!hM%!>bleyZ%nZTB$*lmtCSaZvoY#-i;^buD)&Ntoaocjo0W(c-adPLQ zpb?mFH!=J&#j6K;xX$x9D0%fu^8<=k{{UvwO%2ZTzcf7-0oNOthXt3ZpZ^5R2Adgv zbdGAb6)4yem{&G;ohPsu-rm_LGG0+X`U&NIwlw^_ew3yM`QId9ZdACa`N06NSp&>2 zTN{3v{O>hjJ`o(Dqx7Km_zIYr+ZcYC+9Q8k*BOF?Ql|Ep2FzK4i))XC;BgHwS=$+Y zncAZcn7M)@bd(+x4^9K-QXGqM#H~YV++Tw7|KXsNsUK~%z3c3XgHoK_H7M%~OphI0 z=R6#n0%`hhFplp5+{Gw=2nQv@FFKB|1ZIukJo}~j3+ejv{HQ(HU()9Hy^y~v zFoy_^;(c5kp9W05;4;Zw0L;R4Tv{AYLe3Jw;47!7I8OUCPXqUzU_Cw3`tLo!ZLyQ< zJcWZ&4;<_V1~-T^aU#1M)XQ~-;h<#f96c`{3rwrvNZ+Wqdn)qJ1ZK0H4ZlqOvMVq- zf{T+&akoD(=LpX0M``*_1@0DLHv3CEH2Ylz+}psk>}vRB ziZ6EpvqEr$j*2g6=UaqqP4oY;6vNQGH-2{`%pVrR7^~YS``l0+@!Df>CEHLi~E|c6(1oJ(A zM$0`0a(_no)VU5q4=GOg;+)VL) zxBXow7YC&{eaWv57R(6#jJESxz>Puq2ZGJySL=as4`^HNCW6_CKcnTI3%R{fzD%&0 z-oAO>mjyZjfVi*p5G=Cl?rSJNFxS*EliZQO93{9+a%Tu;Hh)ITrEy^%%GV1vliY53 zuComeN}1&DBA5gCGhS{!%5N5ICb^FQ^Mc^wP2}qUMPd zuWke;yPx5g$q`}0J|{TAiJ4>EdWk~;~QM#06&O@iNXz${Yy zqU=obt7X9K)4y%GhX6BDaB*^}ea8bcL*b(2js~s?n3aOdr0?6ntW*5r=9Ax9UI$a{ zqV0SeN;X9Ka>ity$36qh+k(ra?^?lp$Dh%1?}gm|p#1hj+P3o(z`P>3IJsHi_Z~2t zV52A(N2YZ^Ka>~apk(Zf{mzJWz*t~5N*P?-I)EavF zN0Ij#tp~=X3+YH6zqIw>cPQHim<f~(~ut=DVUl3Y3&kR4=w|) z8Rfl)==w$bUp_Epf{T-z1iw+hG~hTFhu(l+)_DDOI~ZMi96Dg>8F?%}{3hvRY_adN4jUxV@shqo>FMPNPPl4ML<(rH&ax?YwU4S`2aB*^z;MWhB2{?|$;p-dhZ{@(9fbyqtP%`|Y z``c<@{v|lCe?;^*XO!#o#6c-jf9ns-aKU-}()!z4@R$TlNrmB;slUww<~+d}J)-;D z<$}4HKcoBGHITau<--p(ax=BZBw!i^7biCfe#Zf`2*(3B{Pqa;w}*gx4CS*&x2^AT zU{(q)liZhp`5H%$G4XQg^7U3I-@LMIxx;`tLU5Vn)&O%VjvH{q>H7)fE=Bn{W80Sd z3@~pCE>14R)3t*6jz6Q@_afl_gYvV-8M&F-_gY}?5L}#G>gNvv^A8-~9DPB=-qm*5l|l-o>~Tt?x~cy9vtg#6c;OzAJ%wU2vJ?ehAEF6L1X) zN1WW#A!{#`-+`koxlaM}n&2|Y{Xj6A9!{ueeQ6(LYm}eEn9TYv2Ifw|#mObVdPp$O z@n^JLYTwl;Kl+Ha^_>UId4kI%_j1A9%%9P67eMYZlxIzBTkb$$Dg_rOHwk`60W(kW zi(1b-0o+1h#vIwU-08p^E4VnhWapEBxlrMv4LPxDv$<8Z* z={Yq`k2JZb0G9*IeS*tm=jVWVS8#E1$Ban3$Ff(TuxtZ*|6qpAEN9ZU!PeT4v!0c9Q_)-0$`q5p;F9c?t!ZANn zzdvEKpT^~FdMfRT%6o3P|y>YKCPIW;K@myW;@XYk&_Kc*YjBy`tpb=yf+MtQ-~W%jcY%+qs`kgvH0dOr1R7{) z3se|jv;|5@GD(}Hwe*qn0co2yX$w+1O_OPxk|r^kv{ZR%T5K4C72&E^)WWTbipss> z<0@(k*n$XG6z>n@CxTCU!3TOTf}s6>ziXYxK4)g~fWpt~-}Cv*$v6AC_S$=|z4qGs z?A?TaCHg6(-5X%m~bq|286k3m~e4~`xL@FF-*9P2=^O=S@Eu+>1#!}R)je;Ot?)5 z_hW>a_wJ$7JA`n}2y@DnLx-b1dj`T>J4`rM^vwwK>tVuCKEHx6w_P=Kz6%iU%LwzQ zVZyCOxT34kPVwWDtG%2LzZAm!%P`?6hrWt1zaA!B0^wdkn0H(=biQmaod~mUm~d<_ zcO%TNhY82}eFb4!sPN#)Ro?aR>qD3y4ik>_{Tg9Te$UY9k-qZ~X2USyNM8zJew;mA zGrZ+lg7v~hk?rkld?JXwiXnPXQz|-b)!ES%-Kq9%?eD@_#nFXb+qx0A z2VZwsg(V1VKQ)Q=ZQThTmh2oF%q%wcZJJlN`hr;NmX@AGs;8wr)jO|F5AoOc%mwp? zOQ)+h)st-5Hf%Zj}dRGY;^8&xkvI-K*yV^V3Q%ijOn4Q57 z<;JmSH0>i~>;fM}RT&huqxlTifG1i7CC^TAcrh-qw5vD4(w+eK2VM94SX0F;a_xxg zRI1q}7InW%dqX^N;eyK%WSrZK*V{oB&cme<7bJK}GfMXQTJ*yCa(?){%DM&k;-zHU zIS%QO#9EX$JMHoKR3EEOaaqMEXoX3)L(fLQ@46+J;T(otTbuo^jN01es~Z{;3zy7a zzP!HSI4iHD4+Mo1ZOQG4)Oh?`kMB$h6AQaKI<_ZUOW;rkhjEFn&g2#CsYI#>E>XnD z--vsg82t=J-+^|RNV)%_P+f`CDez^DOz1=0Zk#=xY)fqF>ulxq-(E6ZT^-Ejzc8&H z=N?balui`7x;AY}q)x-X3qZ!CL~oLUt+Q7y?Ql~&9{z8Ke?em5cARkC%II^#jka3N_$oyi@EEjUpeGWKNK?Zi~FXIndNV@$f~GlAK{hJ_>% zIgnE9Fh!?Z)?2+W+3%Q>iw5He{TG}EFnvU!Yis3-$)$+&G9oP)VWjN& z%QbFMB()V4da{?4eWU37p3QyRlAWoU2vHTatnZ2+e-_-Q!hMS8j(c8Q5}R7LB)28Y5a=WXI(w)M7sz>*y&zIO&G8{k_dreop*NhY-(vuk_$BmXL2E1 zIOMP(dN=rcqL==PrbK;DPgl>W@Txi+GeFM^_xmN4x%7M)EzR(3 zXnEI8Tn!6?D&hGdc%J9Q%yx?YoW9OpURc`}rJ6B!HDcX`Sj$HhtG2c$xv{;oZO(?2 zUEk+*JNN5UmB**for7dQk7TP}Q?gSKdoy~=NnUK+z;wk?9qY3bWW%WD* zo}D1<6fbVDX`hZDKS9%*>;>^(wo-urFCoCWxdPPIX59X8F5-OjR2*yI#nJLXZSFO= z!JD(@z7>IIpaiFRft7kRvkUW7~Fg^|ZzCUn_drTf9he<(FQB z*42aiI4~-ach{iZ7`#JwuS>RyLf^vyZ5@hc2=V$WT9Z)MyE;i#J^T!+T))~{>6*=ah{ZSK!SpN9>7+eU4YsoQ=qC;PVjWQy9%^MjnMS zue&d$Ei>6R6)8-ZXjxG&h3pNq1_7rdV8w6&p{H~$#K_#4>}cxi?uIO`Mbs#w#)pq8 zRV#uPG_L6E*!gzEorV(548{#Ku}YR= ztf!ow4U!Exy%w`FiWyQ=>!--Oq|9jYLs0bJeu^k{X8F_VM#B5bD2I3KwgGQ-Z-5$L__R%f9}8r`Z%$8@=4^(1)zC#25t2EAY` zhx7t;*(siLreI~m8$|9#!^4~zLrb#FFP1nY{0aOvhXn5~a!R$E15&LkwUk3P$J=BZ zi%<_5jUp_lUj@m~)s{r(?uGZo7$Q16T8ADYhW5=Yr+)yMz7bmU+)2oE9N1doWvX(5 zWt|5JX_R$Y5+l5JcZ#5A{30kriZJO@kb;r4MrMn?1qC%)G(3{*2&}L7!po>H#|v6) zPkV}tV&;7aWXL}+(2DM4C&EzM-;6MmymEPA;6ES!hfo)_p1&cCMl?(|B8eEZ^`);p ziGT#8{J$~VsKjd|g*?&q$)vfcGlNM!=1Yg5Cbk$1Ff_581AuUb*HF#n$i4<_F-G?J zP0PzyY^3r)jdVREk)e^A`7Ta&CVO}fBJ1Z0bOfV*Yz?3et3HclpyXKk5u{~|rSp4t zZrjEywOZYVJq@9{!H_dN7K2u_LNdgWYQh*6w;v&m;^qj6NiD8*x?DKPE_=Y=Wu-f! z{#PY?aXCB%^Hj(WLomCM#viEUG6a^$5o-mFd&)_i@Y6-H*_yeV;Lq)J?$+WoZwuD0LBEzAHbce zI5FA~;}H;ZnMaJvB=0gygODtu$%~q!#BC6&4Sk!boMfj(E854ZOvU&$mS#gjnRYo zuIOpQjJs?u$$B4{V~}O4gW5>hV^*N`8a+moO3Y_4a%dPfMVd5?rs(Fwk!2FfZj3C* zq`tFNbxzJeUq+SsXP~aPTcM2|EwI7hKl67U2%uQ9PJ`aID z1Ipg!@y%5e7Qh7MS0?6iDE=CYmh2ApXD*Cmi%lX&m5YU)^We;c@CN4nuPa}M_ zM@O#k8SY|^U=>}LRj4g&@7|K^A=~;8W+G&6r;62 zQpg&A9DYVycKvE=ahqNnMpg!TC}$vhc%~HkCIT5!$VdsPuF-4EC(_%{@t(2DoKls}%Dz7V2Q!<-ZfyNVz1FNWC5ZrccIX zQ~JHVHnOpAQvxcmC|N^SGl#2*NUqEfCnIVfl#^RvMX4Tb#M;_k3{^clSv7O8gfu}C z=-Lh=Wk=VJM3QzzQuPEHyh+t2U2`0|I5aLCLc|(_su4xRver_p>uliZO_UT8 ziO#OhL{BQ!p1^`C6gHX^etrr}3PuJheZljgX}btfmxI-HMpTE@u9>r!hTu#Y?)Qf@ zZ$e`41p6C~MPg2sa3O&d7Vfa=;&giXy{eFXKwwH~gz6-h!^bVH+J zYp#NuuQiWk$fojs4X7&jQzhfb(9Gb<#YJHKcrCN68lhB4w(do6*Ve78Npwf^U)Iul zIn8uK%|$n%PK>7*a;?)OffnbM++ZRU z^JgImU1|1$Nn4?q;7YTmpIF^Vj$-zKg|0R#2fs)9lO_GGzErRwtwew;kn)8R0K_FW zC+(^imr;w$s3@LyBG0HKkjTO!Av-#EGV*>aSbc&7r0E9DPF7Rdt4@WF-Kz{ARD(_@ zS$|ie)LMTVTiOz=!uB>w`+kTYmG*Wo9l5kGMf46Ndz{e3WLsN$Q*^x-^r)+|=F4f+ z!*I1bsl5^m3Kw;@&>TtTKLCGaz7vabw5wMF$k+=`Y0Y^7C}&yaA3$WSa?cN|ot-H* z()Ytt8>#2nn@nDgX)`k(%$6}##%mZC&`*U6|K?rsf|`W%F!lG@g_4f8gYiqt$;qieiHBDnq5FYv?&dk94>mQaZX*hAV=oO_jG zRM0NK=I%^20ng(gf{rpin`Y&twu z59{gcl-YtPK&0Zh02R)zve7f08crUBqiQ(3_+IT{kGq+x8}^K0c~m6*Bm`HY9WP1} z>^64v>a35*t-Zv z-*7k@d>xglYKF9c&P`oZ+tmMhT8xAC zekDpZbQwpgVOQF8xXg#sTP3`$Oa`k!O3&F0#qejrI!_Ffb=eA-jfvU9G3gwGJQ=$T z8J+>gF7mfbn7cSD9(95zAh{IEAJMAerZ%?3qhPk#5^cVZK7CG}r$B*eFvxw)i8&e= zC(j%u3LODY-Kz*KTXnAv*{h{ZyAnR%LQ6SM^3Tyy{9FT*xz}YgI^(%nVmU2Bntzf_OA9edC8c}+8fuM>S=4|j!M>N z1g$-ifN`Kn6c%P876>M)wbf8{$A(j3RMl5TOjUpDm`}(!GecwhAs}%q59m8;w zZ4|LS4aDvJMb_tR6tR8}G$3yOZKH@)gLp^8?d>*-SnmaTx`1)7vr)wQD$uhM?i)6W zSRs7m^geMLYomy@6zHp%MsC}MpL=x37eJvNG1 zPXY}f$0F;eHi}qFz@tSHx4}jcs|Bb?+>$nmSSg@ALf;iOidY{5njv}IW}^sVc@OX7 z2+LPqa|At0uOoczl?TaL5E!_RER6SbLFZU(B;Mns$iEMucI_uWR$no54B|!MzCtS!XCj!W(%A>>3QeqrGRzw;{1pnx^ZCkq8t4h7_)Qb42>IPn;l4}FH?L>0n> zGbnJ%l7)gwhXR&DDIm(u1Nszb@dK@4A$+totP&Kg1*cZ|*Ix_q3Wox=HKl+^V>t2P zAP;@A^MHLpTSL7dQZ%a803o2Qk};JIBBj9LAk*YSpX{yS68OBf)(|guC?F4&0wSd# z*c#|F94Fo(v;^zIDNAN+h?hAOuoOxGQFb2Cr@-2JRQg2QZTQb>Y#We1`kv>fL0mO$ zJv!JBE0*pOfAVl$tdL>$tc#TbOL>~$KV{(7ST)5dJ-3G7GVRbVaS0v88WSYnt+BiD z$BFO7y&<*%{qL{_Mhcq5;0>{EI3o?TZMmLH!mMLg#e?9C#Rnnp#~(Xnz7PO!y72*g zKoQBhA;z)BrfjTB*~LmhmNpk}~8Ig=4rt!*y^Aq@mGCweAFZ zNPIaGKOl(z|1O`t{|WRRaeD^udj-9O_qPQ_kixeFodom^LFWK{P0;y3OfzgP1p0~~ z9$58dLHG>b`Zqy00gW$YZl40WM)LhS&{_DET0g-1UnSg6f$kFYXCRF+4s28oCEBKP!e{?mV;WMKCL3_!_nSRjCv9u!AHld#>SX7_>dyIAi^=D^@RUUWjnNvk6v zIjtH8$M=Y|ffIo$Q0h_{?>{MM8r;~OORYH2y@KWf)e2hbqGmT-0!Y)l1xVA|=ej-S zy0Ojv1i!HL6y86^kLCBC+W}Qax&bu{0*z-Mu=;&Mkm2>e3VzHjhn5kI+4_l;mePCd zSeBAX--&|ApGNVW40O7Udr{~s3Ld3b+FP#xa?BxniVtktm9fcMRU8u9+1pk};p5_B=%9}u(-@4bRH;Qf9< zZFt`(XbawyEn%wz?;8Yl(uSHH5PDSB%Eq-B{f&8OI{-Z^rF&y*fYNTk66NUJHXc>A)q=vu6o{nKq zW#}{F8$&9;6*LWqQb%Rzy9Jfu{VqY3c(+R2YM^dGbATve!qz;z|2AbPH64|qR|uj+ z^JM5>q~ycP&|)dCUxxlp(%X;s4ndTm+XYdEQl|`yHpU#o*4=o&D(Gu?Q{soMd+;6y z{UU4~0GcT1exT`++XFzgg1!f|M9}wv)(8S{pM5}o4_X2X)Z>7fsoWJ?@|IS~>9YR>1Li?{1UoBjg6&?G* zlZ$P?;2);-Mf}2Iv;TsiQoKJeXbRpOK~$UkoS^A=e^yW>-k%Xfxx_IijN5lD>(hc7 z@cxvbX1qTsXdT}B1#Q8bbI`DLf%&JVMil9?jMRlfAM#Qp; zVDc3;Gvk4X6*X1CZi8kr}F@Vu@8$Vi#Nfl!6Il_g^ve8ph-^ zy{+Jju-&*f(VXl}EyZ{AE!a*WAC>eTXN5~>XrZU)m=4CB&FbW&D@M5Pr2d zW|P>ZS?9C_6j^LBL=oIZtTj_4Yapzn2rTYeZ$;J&8%37qIm+&Tv zh=q&ow8%PyH&H}vY;46vQZAy1SWwx&AICPI0^=A^itYNH7LgFOV*z%dV%0e1~k zVBHn+ng90wj$YP+Kow%RlZVauFI>LS$Jla@D#RZ6+S>W4R0|djv8f-otChThuqRsi zsV(ijj;Wd%sHvJrNpq67leOqm;I~V{H2JD{FAtC=Ww9d`p5~-rP4l%bAr0S@wQt&~ z1oGS8h4=`4b1pKOnUYDQWSUtqBl=`=kh-R2tqhRq6pKq{7>US5c$1rap6A54YQp{=2#CFzD(;bBpW*4rlT{`*VZ2F^N| zij=e4wyBG%O?V#APw@*|>1Dq^0$|uTDPf+1URf&kaax(fIET}*I6C7K$0c}WeVD@A zBp!)BS5QFw#^dFcL8pr9@(ThrwFL1g-74@in!fQ>nNw3&E6CC%Ney|T5|c1vYvTvfe_nO)$e2HVF8xUVGkJgf z?6VBje}8^ry<0DP_fCOZ9Pvx7O9N$m8+@44Tk)Ib^&8_eDJ@!~?}(7vTD!!4XO@2o z5($VTT9vg$5^1@ZuRalWS+P79Scj#I9^v%THZwawcY#Jm>#(fvvy${NKG5P9bD&c{ zoC}pafItDdXcbqwh?FiTT_-{MfZuho{56f~7lgUm0S+&cYDphje=pCc#r9l;ER{9< z2B5Gt5pGKbaV^IG?8Co*FLMch$^8HE0-)D#?eXlBqqp|_Z?u^IZ?yJYD=qo~ycK;9 zi0gr2>-(x2 zR686+h`mmGH<9-4sGSAw?SPxEk``EyqtdZo#FBg{HExX~LbY%2-OEgLRgEilDo2|G zWufR~lBePqj^d?{@$tD+mJPkwWsEbe+Hk}vkEQ~^*1$fVpD;C0!V~Qh(hOISNXYjb zPVws8;t^@_9Qlo-x}|vZd1Hq8Hl%#)hWX8s+USS*R*A=9ev6>sm|htVPO0MYSye*~ z^RIZ#&=}^Os=GRCJ7kTpiI68c%oFJ_PYQLIC(>b_O-YA&BCWY4h|e^fVV*uYYOeqJ zlBU&b;!mzkzt99lZSnv%kVuQQN2J4x3aKXTSzqiMs1R)0!1~gG^^(T`SiG2NUu&Xe=B)@6(p}JVvn1Ryq=>q(l z_aFAIh=-BZG?rnYBR0j}HnFV1_LO9s29{Y(>4zEJ-v5!Fq#33c+pR5))0`Pp0IIq)5XZ>d!d#Em0inR-5s|H2kI{v$za@g5N0 z6cG20gsrQ9zAC;nK)z4h?f|+@&^<3AhdF8spQOuTXUH_!z@?-Fzo5D#$=%MASkf>y&VbKU=1 zxN7rPYzC%UR5KrntgNaF3>#GH zDYZExe|j2T`WPoIK>be2ITSe4!+{(ooexT4spUGDH5VWrj#CGvvNnW{A`>!@5z+3=#J6f)+Mu?BlhO3ON>5>-aQQpM)9N z=&QS1ywNu}r#465=RG$1=hO}xhZ}$m&JHyIzY`@;{emd_08F2pV!XI1{luEJkjur8 zoKb|d2H$-}`tSfma(c=B^vZl&7&naBZ_D5AJ0b8(2PR&>XbFU9G=JBDRAKrNTf{D} z!#urUYv@@?X}KeLA7RKbc9=ykX-aepL3j@|m%nry!>9japg_ayelj(7aAC=FV=%K^ zlAmrYOuvwQjtOZ!1@p|qVtKKx0g3gO_TN9*6VSTrjUnzr-DelmweVFTSqG#dv<2vk z5~B;~J~WzA>k1&1NxOkmPTdHk!ubo&c zIbR<&gNM5USB#OxXD$1@R*^x!0 za)KqJEq zD5SQeqL3)ND5TF2qHuNk2xMVLtYol{+o3tATNHMKSF1>z92ALz7vBjf7RyUNWXrau zmsDQTbqp2ChRL?HgK(Q<3%3^`+!mR_?FmD;J>)Z>sScW6Ml)!P9m!_~osu|QPZ}*# zHJyAPYx7}LQFc+c0KO{f*v-Eu;SxY9!rlp_BJABjD#G>ysR-jDg^Dn0kBX?t`h^*! zlt`=otDbj-+VdjRp0af_8ER(inS7MBa>r}oEuJ#JtXOplJ5$l9D7g@<=6v)*lZ39q8xivP(U12mQ`eE zbk#M%bv8^BGbGfkjFr9ktjgfZ9-Jx{2m0jGpoRVN5PlV2pEM3UH2WkitM;kmlw?L1 zbS9c?U@FOoRFbjOD#?gcl94AW$%s^vkz*>!h*Xl1pDM|SRFaX~D#?gcl2P`kBqP#p z&a$Z_Q=N`JBa>v@=WR-|H36=flI(*X*Nn3Wg;8SV9Zrt*BmM~F*sUmx$}ytsa*RH? z<(MPJiU+US0J#xGV9QbI?l4ulJF=^Ec_UEiZeyZ@%PR+*N%Znp#feHCRtEA1>MCBf zRmbsZXLjBYo9sy}ckRYi)hM_A3l)-GZc#-$BEEG%BT>;P?Vptxdw^8Q*$eb*al0Kz zCEcAsD(NV8RH_{W%8+V?m>PDjOPhVE?8N?sWOp(WRE_JcKuXLxK)(^+^MOVtsVJd1 z5M+Dk{wqn366%+ND4~8Xh!W~&f;c((t)QS>Dvt*@4pf#^2K6gA1@$X91@)`SviQt} zf$sDmGJXqwob+GsbtmJnKCe5e2$B;ALnTJvaRd-siV7ei6+kSW3LqjCKrFlpAR-k& zWQ__SA{9VnoC+YKh;XQ8 z;!pNJ9i9D9-#M7tl@x~>SE|y~e}CcZ`%))u4K=#b#Fi@0m8K^)r7z6Sdn7$Szj#ce zt%-#(aeT4v>}YuWF82BBn`3SL4<6mq94p0VQzhv?#}8oAOS|P1{GxyO!k->pD&JB$ zR>L}|eGRdglDraOwmi$i_1|CIxOFUi=AZ;^I?siSt)!p*pTL!J^b*c_{rBCkS_ zIShgi?b;-rfiF|)Ja@|AZvKrwsrd{{PEV8w;0(&&oY?a*iX>CLYs5+)?N=(C#sRIw zzubr9xKXM!iW{ZMGC>ytT_|V;&|*Ps;B|sN0Q6qeQdqw7SSW5^gxdl^zXO^t=r2I? z1Qj4OzsoMQxc}svg3bcs*KT2}5{Tb#hpo2*@k7F}wFn5G)&i{nS_4#SC4umPCEPlJ zW(c|tNXsV0l(md87KMMlmB4$f?4Su-_W>7JO$c3RU4nPSx)kqXs}=9#EMAIPf)M)5 zxM2Po_cQo;^TaVGx!D2akD~)pcJiS#EtF7`fyVm6GsSx6SiX7AHk4tLjv^sGO!{~? z=??s>5`}(}bWhJbk%T-K^|d9>oj_rWlz%LPa{DOQ*PF#DZWg-*u~fl_Zf_CaLZC^4 z$lwzMv5JZW4KBM|tr>&M?stINJlFx$gbeN8I$J{1P@-reP&eGr5P_P-HwvVKsT@#_ z^AT`vMk6j&!ww;M=`*8o{u=j2I6W3)=*!C_T4t*`Q?g_+&w>8pRimAaRQ1&ohQ*Ew za{Tx=FA(3Y_S&eNH5Bc_A#7Zs+XRg~x~Z!tiqf>fp*Cts@fP5+tDc?9a7>$6 z!Ah-!VzRta!3)#4pw0;7G=9e){m1tVr*@p<7Li{Wt7&|yAgUdTrU9)Mx1ib)&zQng zR?N!KF)C&Sr$d$Hm9s7kjG}u%I&-23c$PpP<8m60#kFG8=2>KV0HQ}%2{&_A#;Xji z#&N0$*mj&H;2%NNin#Y6^-jRL>0Mwek6_aI^eCBktJB9V^yWEi!?kTs2eB!!VF zG}`ezg=Sr#Dolmu8(vk+bmXP6njn|#3~vkiSEMq6In)>_W{hQVi%DYmIP22%8Cfye zea%VYh9QdipjS-ef(xU?*|K-|qJDd1MLokUDp7VVjy_UU+nlthboYVOls2(XMV;b!2T~5pzAZHn zErJ_1KLq4pkGOa;GPnRm?Suk{f4}ZAF#7^jeGhh^UX3@qq0t`LwW3IXjZ)QGB4r2@ z)+fY#B+Q%5kcL33F$?{GS7_rv>};*(YP3fp9;{T2KDsvj z@*1qnm)g4YqT>ETB?F6#2fIqHKR*70J6*}v`Un*HPS@3%YFfrsss>I=`kZ}uSs`Tgz}x5v}V^3Oe#_eA4hX?#_a9pbV= zsMzN|m40}uWjnzdF%B#C>c7?6YB~6@tmCB*AGsMc%>MEAWwW2?Tbf>!Kl|Rku|n6i zR~-Fo@2ssMCj$I-AF%xf>bbjgU|C^$O)<)W&hXcRdzKt^(tK{=){vViC^#p*J%9I$ zec^PK6!@zA^h4=`-17Lz^aHfm?nhY$E-O5gU&MWSC5IWxf(l>i+cr=F7q}y(&DC@QxBJH0fkp&J}YQ3b-YwVv1?Vm*hP5A>& zg#%4q_dH^E&+nk`Jv;lUzRPF-m(e|)<%@-d=YGfNo)@uu9zpkd+Fxc2bELF&cq1<#)K@+JQ#cQ};`8N8eNTNj&z{ zPYMe5)XH*0i?%y&`K+LAuor}~r>@7}FMB;TXdC2=*j5%ZbpWS_ekrquvM#lU5@`=5 z;o3uqw1;xGtUZ)SdnidWdnkPhtp4YhG_Ao%nSLKlI2c$8Waq(>`_hHq;5-mk@ar2& z^7HQ9^$_i2eG}62rftO+3>d&lR;C{~x+?ly!PcYCBBYi6Dw9Zu)3BMXtH|%0n7$X` z#vo)v*)&+rmNceMK=}0Wl4eCdQp~UDJ1Mv)dK$^DI@%b0u1F4enx@GLW$8l1 z+O=*>e%~4C?`{qCKR3r)iq_G-H1kDmm27Yju(j9t@V(kq6ItQ4bH?A$|% zbMIZBcMv-&mIQZHu;u@xfU5DwU34cnLyHWh*@=Q^_s+MtmuswbJKkaIF}w?`U*TP7 zEe(k47bFC%*!cTPRHFSDH;NeIdRfaAt9WZ!a=Y^>(k~Fjm>zr$(=Q%oT+rIr!|R-m zhXDV+?UtA9Y;&|GQmtAOk=8jWVF^Gn*Cph;%Ge`7DwY4obvqIALBpK^r0H>eT4P+|`fdSIS^P~% z5!&vDIDt?$$n$pHabnTpy=}#CrIfe;G=}7}LCROwtjcI2mC-DU%4i~$(d3@WXd>;e zB$jE6u}%?E=|dSE zE=gmHa|!m+Rrg<$AL?BIi8?R6+M<8sN_5Mcb|E4htNULL_2j2tdhTuMwfX7Ag1zsSKQ!& zFl~-lI1+BIk)7LSPt=3AA(4Yj}00->!{m{W(5AL~<92md*aeRH7*4X3E zeLU|0@?>EAk>AkyE0V)Rq@S)U!`y28t~=m-M`--+efW!EMK^^LY(ZkyN-2)rm-**j zI8H%BD79V!dKPsSmX(N?fJ&`2*!?SUX3N;z&UL;0i)NIB>x2Gf=_%np%JQ$JjPM1`Rfu4~R76pdcTTo!K zkWBm4G`#dN?*21|S-nCm+0)!*tPP7Xw5n#7@d=~jR8``A5+Bx+jRO`_M@{?GNvQ7> z4(U#&Cffp`9d&wK3a6I$Zc6s>mc?E!VX`C?6$SX}n0HFkwu*nPD1L<-ah(0-Fo=(b z9fpz>>R+YUD(6*Ug` z@X4Ks8m5{9$PI2uPQlQUra0A znmyQqf%VEt`}9tG+Xup=$26{4>8_|EIeSCd>_bD_2O%-0Ia@i>-!a!GV~(1LCTJB( zJ7i1KVUMO_MN@$a#CH{t4w>YleU9d5bzOow#x0p*3Lco0aZLsS^m1j%7J zPkd?X)7&UdFyt@$h1xH%^GpFHT(-3(wO&xX6iG_#scOAo1m}4Lsp|A!mwvoHV=vv< zD>broV{v3~V)8HTA3~PtXk(EFk~3TWQOSoi6pLG6G@n^M)98gVznWQA6Wm``Ra0Fa zG>(h|gQ7_GH~9U)69d_eBev*sZ<}PFei)JLao(|nu*!7|C(<#T1<)~^NLMx>xZySf zITJ;!O8{6+Mb>3D(#}R2*?>T)bT)<=nc1E~aHMAY|MW_q-E8lcez?sS21|z8eDP-~ zY7E69(xRRw#pJ-IR%-hEEm^6JCX(Gs?K0_V8)a!DQ52FjqXL;o3xA97P1C zt`rg}g-+T`kPm%E))MC;q}dXO`f}tFk80z~5rgXC8la(j57hwQ={7*3>tkEP(0;L^{9cq)6xY zMA|=tt0eR(uvVv^&wAK>|MOeq!?tw#PS#}d_q!h)xa|4yyQ(2X(pMGtUtsk$^RYDza{o(5$M51+w)E=B_}XICR%>wegsq`f>D8rs>L;W_tB&s7gM`wP{+&|j+z0X= z9hj6}_TSzYXX#&Fb}uHZCtxa^caU2T4~F|n9s6wkW9bvNT8*^$Mqr*@_SmyX#7cjO zw87}hjf&;@Vc2sYb*#P>(*{@XUzHBQqALNeuRA_J?}a;<=5n?9*5Bh#^BzsJ;NQbY zbg=KS!K?OTZF1RT>D70Fpk?2;H*A&K;>gZ2B<6B?1uLq}J|@R3TE68B3&G%>$eH--s0Hs-$lG%;&>YGq!w z-!?M$6{qV<(#uK@*RxMybLhGErY8)*seUrd5X%Y&>r3z#d0v@bU6P)g_vhUQ2Ii(t zLH3D5{i3rwC;wb(^IfReiqGX;|s{`+oWshfEK0P|s`Z8Ri);I7z!+IL;Gi6i$S+W~GZWVy0^Q|(x%dCs= zu8{q#=URQh)2+|oeV%bz6QWxkQWkPkr)g{j_$Oo1MK|+dT>ki&6Eeq5ee`I%R>`9b zPMw100CfpsJ#7;d5Wlm^s>*{O;`|%PKN}Ia@&DJ;0OSb;Kg7{>u7zFQJ6G`pvrOX) z(hk~V;1t{;H?z8;idvAdGC~1eh)fOZO9`Bc;Y91p*p11}?VVgI;iz&Zeq1V{D#?Z! zw8C&!8pY4G!Z6@t;J&%;G7)a~*ltBgtg)*XJMOwV8P>_9pcO^MijFgnWUtV%f+!+) z39yA0S+kHGQN-E+v_ah3Y!tD2fm+0Ehm9g~ZaZtQ$hsbGM3FasPkSNvv^Ni4ogduO ze&Xxh(_Z{HyQlqTu=lwsgS+{+aSL9STG|7<+D&^A_p?(bqF2~5jI;eOqKRn%%*n<1n-4G`zLZP-f+&tokeZ}~C=&E~HicA9aL%1_kIs~DW`5q37Brn@T_nTd^KPZT!#7%;xxQN5tm&7eNKvv8Qj##tGYl7xX zI0e6romDooGPtAi29VC2*ii;K#Of2YRgrDAOMAOIaPVeZ&b{BWDrOopCt2HoQw_&b z<72efviF;^O-D8&oduC$ItwCF3n|&D7E&VJ`%Px+-ftq^`%Rgmd%uYyvK!+Tal0K1 zAd1MXMz@OFm*GaFvnsNT73S>yW(p&-X=#6=L0`@8!809c%w$vIXBkPaGW=&cCiR0h z+0r|lUF%XLV(jf;)9b@8cqG}orIa!F5NRochE@8Etd#7NrsXaXuuGYx?Da}n6WHM{ zO>V?HzuQMvQr=#vRxG0IC8f`sZNUp}?BY1hmcYMl9*=?>yM#y55}eK5MvXg`JGMG4 zGm(~=>FT4FJNmrYWeyrt%rf_QWeyrt{O!Wr+ikP~r|fKtT6UuBWv9 zR?BT(CkuY*!%FMNJIXJr|>W>W%|WWna(MZk<97zqMP#4ZpQp!;NBV_X|?o(Rb9} zNIZ7bKL`qR)arPJp(M-JgIP84%HYic=GN|n*HQg93z)i~y|dd;0GtkbS!M@iRcZ$% z(hf?xwSy9A2jvV`J1CKM(BRH)`s6(Cpsk4~tMJg%FVny=`;UF^#^#<0-v+j@x2IIL z^$qXZ_H&O9*mG-a z7o6cuqoW#<)8Y70EFBEym!})b?e&Iv)6x&5OOCFZj`fVbvEQbSEXxOZkIa50H4*0{ zq*qQWIz0P_ePfFAo1Bvp#9AZ!8EddfeEhCGh{ba8BH(E#mrb`6Q;MjEC9qFe2x4zk z0*ZmYD=|^GR>}zp>z-u@xHa>ydyDY3_$S{jV6!B{^AXlD6fV7GK{+Rt*w|;3!Y0j% z1K!cA-S-AJ1qW^)u0>u5Or53-?(De90lE&QzG)dxa2PzfB zQxG(_4*{v|=w;-o$ESqkZj&(CXlGEX ziW8I;rL`~{B+>g`r_qO7RrT!ohj6OFz2LiZ91nhTQhCU)dw{h_# zm9wR;PY2@cpj2*`e4AuWag@2Wt5Ez%Vs3j)t%M;T!-9e~8QTP-yT1_1_b_Raq6DsDmfUzPEdesxtmI3&O+XymEJfkDBv;_>R>TFGr_&QWB}X8nF|;0Ugjh=%7_ zbQX2=^=|Rf7Rya_)hy!>BiqT`1MfKDz9FA|$JxD3BF1fL>1mVHx&4%lmagu?hqG`& z@uR~Lkq$>>s18R&YThBc)x1Nb<{egsns8axOpKv46VUT=g#gDN!*)i3T8A#X(OasY=Aq*tfdNml_ zWG6M~2%q7#(5>%Z|NZNs3&$r;J zWju{khPD@IxLo!E^&N%1V2KoR^wW?!iN|TkQbC@0mpMmGdB(bT^~{=?!Sw;tUhr*tOu2GbJf@rX(fKl%&+1l9XZ+5_Kmb)A3)*{jV5Pl9WtI=5fy9 zo03f5f()!xILYiv_*L?sXZcEN*7$Pt%EnciQjJbqQjKeL#)JtAcROLqa{Y*=EbB)+ zXW0z`?6Py(62-K|E?cf?OUy0o6cmG+qCIVCmeRnjfu)jZOBC$5!ke=+C!NT9 ze$#=gIfLt>HRUsB1+O?d0PdcS%*o{&$pw9kD~{ZmM=kDB3+^hasWgvM7frdw_esC) zR2EzurJ9WLT4ngmtFXNjE9_X2c6J|e?JnGr?A)B%!bMavF@;}bTe7#eWpff&3ugVu z%h9sghg8NAsf;DVRmKvjmd)x=Et^QSY*vb%tyr~eqKNe`pzmUF z`?QTBa&GJ;;`Vj85k=&yq)Wx^VYm^gY-c@iIW*rooh`*;s&BmV^^dR0b05OPjYpX3 zSly_JH&Xff2J+BP$`1nVfSd_i{})J=ujheOzP{wTorJcc;bK7geOwig##rb2UJj%( zci4}~d!>-0SH8L=9+j_@prG`cm2r(Q#KX+s$K-t=lyk2Q_4 zC|#^V6$nHs5JYT}0Y3NgMvb986E(q0dnFKwiVZR&brWfR1>$yC(vX zXFtX|_ri{@P99Z(^UEAat#TX!2fjaI4mx)uQYxMForLL=LwxiY@ zZ%&_dzBz@JT8`~4T}?F*KU*Kd_oi>d_ok&dL+8;o-(tkT2d9&Hv)1}OQ>IbPLcAra zN8y9hlBPW{ZNs?|>QX}pe)h+x?&qc@_}sLKhVD7G^3@!Ry4qwT^r&gfQ1q|FWtXyZ zYWMsMN}9cU#t{Av@uh87y9vJ^RJVR0Rh>Qoq+RTjKstxwPHO#(^dQhDC6z~jZWr`J zAXRH_!2jMuD=97+Ub?NjBgvcol5MYT=iOe(g*)#a5kxU$KFsuk;!_9|wAq@cq>l7c z);rxCGwq!p7C+{h+unIV!f>GeCqZn&$!TXt+k3@A+3s;9x-*%Y;o2e*K^}8|wd3ae zWzHXS)4x>^dGmQeL5Wk7VPdSod@mRZwn13ZLJi~OH-Ac z8uKzg+o@8FhR69kF$=_It0IX=MG}jqB8fgOZMdt^c4>D6{~GBh2xT*=zrxe?wPUm`8b7S z8V+W~A;o9#km4ygw{p>6A6$cDTAee^5_0&+CHLlA@GJFBdiC7X^~L=!oxUR<2h-w% zPA6XaVduPAImtE4(JJ*k&NZ=K4p#ZjWtTDwXruT(%KAA<7M8D&o))yuZH_4y-Rz=| z0sU0MeFjM5{sjMH_j2duon1RRaS3dZj@ERy>ebh7yGtf+)?eE`XV~Je%CmNWJ;wZ+-0ug&C5tFEQgA{DCl>1`=5RI zSHBXW&YtuEq=Ob;&gGN4bi)G zUVUS5TP(huD$)3>H_raEpfbEaBB&DY|BbiKUn|t}t!Nie8o#i$2k+|z-GKLipuKq0 zJ#4YRy-(1G@xD&bt$6Piv=8rFglqeOz9{GppxXuA33QL3yMUNu*jgXxlV`$}z2Xe~ z_IrJ@+Ut`G`ZnRjs$`pt%YAW*4AcsXHWgO*HfJi$?l*Xl1Muwv(`t|Jo?~Z z6sUQJ#W{X}qKOR(6V?FP9J2Uu()J~fY(tUDP9A1IJxP2X18Z<$FUan@ zGuh2dm0Thv*U6IP@SzXb%{zlaI77MQ=!R0rIQGy?aw)a>@b5jNA{UGna@%Phk_#pb zb~|?TD0qG>?dVaE$$}^gh?E6RF<8ZX=#xY5{yQ@?%|c1D>$NfPVW#-{4NdBHYz$2l z_B^G`y8vgTrkz@$j0O|V{Y$MJy*irO0%J|r#;wWLRJ66Fb80HOF^T(R+T9CKGIy8_ zXSFGptSMm1Tq0%*3TnGGm4Pi^@v`dRjV|%BSu^AB2uLxO$+6np=XI;f;f1fWCoI=j ze(|!JN@G!t1|2%h3W(<%U->y}QEWA;HWR7ZOlGLsOr&-mvP$hdL~7?@ovWRPC?dmm zg}701B+}hoadG1SMWp@IvGas%I}cN!WK~tw*2MNwU4Yp=z*BLAJ0ma zWY3CCHr2gLJDVY5wNH@vEF32ZN<5Lj?JK|W=_-6Oo5~*2hvO0b(?yfx2Jy2-P5h8l zGjFAuC_BsPli5zFcw@iN5L6rO#JKA+S38-XO10n^Sm;SPS_d;!Qi-yYN}o&yb3TBx zMTQ_X!u#g*8G-Jvqz2~%Iml+_N;Xk;vgsp@dLO4RPP^uWCX?(!B~vDzg~y2OEX|pj zE7?R!wv)9@fy}u6|Dix01`l#8kcY(AuRy9>KUnqpS1LJ+eQgTlcZIUiDUkNMUyIux zN4?^AP;#a2c)-p7AwdD%vAjIE9V%X4R%2}GS9@wrbyd)KYU+;1dA-0ep5~G>bxFz@ zj}TD~L5T5ngX1I{pNt6`53{DWFb)|W*O}a*a)7JFj>^b(qADYis*L1;s*FUcGLl28 zG7_oE$XZsFktkvfBBy)BjSGTA5o;gNed4y?M%pujDkD=E+0x)s2x%@22FFmY#!=JZ z2B#8_(IXf`hg(517(3Jo(hK0Y3L+vcZg7c^K0|Hn2p;cHfWq*h8PYKO7{@#0YCTtH z_sAjp$y}wKNNIQS76S014`u(M`Nh`JeRso!^8W~2^%;|KnF>1=AO8Iizk<@oxJ*T^ zzsz^$=uO?>4VkDmBsM`yM8eKW?Kt>QOFN|_ETh2 z%9K9h5pI0;V-p@!zex6nJ+d8rk+~>+L`t8NhnL6Pg10g4q*3?oof9 zr;ypy57+RG3K**4Z$lBZbVORZV8f@+P!0d>figIaj}8A8uMCqi%5b%mCD2?PzLQf* z8Ie-vq>O~+p%0ohmWd9_|1f8kSbI-k#@74*RgNi)q9fO+(obr-tEiaLl*P$7bM;`i6^TcVPj{b(fr%8E(-%U&BKrBwCzUP(K_-6F=v$zY^f!VSlA?i{h6tpC|cRa3U?ZL%j2s zKITG_RJkrD4J;}Qt|vM3e)2^Zl6cgRE+m}-R0WT)nByx1oy&l}XCMCidss-CA?0K9 z8RLaLWbF0s1h0VQU`V9}-lD z_df|*g7+KY zh_G{!Cx=9G{j*+|-sg!h&m4u_@^d_QS;$zGr0v%4kzLc68=Z^QVb`?fk23nSC{}Lw z#L95?Fm^{32t+CnSad$l^#=42$)7(kztHLLd)e67Z2U$JO@ZNkZ0q#cbL@&*TRW6d za1=~nQIrWpS_G#cj#@+?Fkyb7&nn1%mdS*CI^vuO&ERA4%52 z5@|6Vf`w|l=)*g?qSykg+kA0*m2_}RZ=RMBu@E8ufQnWfYb)Y}EtXby<5IYJ4|e0O zHX1WF<6aOm{zt2ywsWNm@QrHye5}atUCGhVzz1H9s25Nn0cVB805~DWD*FW*{idn`c zC7tnBRLhpvyS-LGoq|O3Qy)D*n2HAr-G|?6{LUwesH|>nRz!N>;U;n87(k@o>TDJ_ zno)?f`H?duAz%2UY03JC?*I{whd9VNz+DU^@=*2qmdD+tp1>JBcb(NJIYWQ~)nK4+ zxg?R;#0>;;%@qp}#jntDbUGaAR?ZMQstwDJ(;~$NGaN%5-my%|JEDknElRjs+;-V0BKpd8;`Sl95&2tH$Zl0k z;q~&E`Us8?AA-jRJRUE8Jv?5h7pP@^=7)}Mp1W$ZwMGsPH`wY-M9ryzGokQzeoC%D z=P!X%3ctWdemSQVWQ$f4k)G{+v$*X*Dnxp=_buXfJ=}==)il}^Thw%P`V0%Nl|iIZ_g}<~ zQkN(qn*Dxp<6MBqUm1CJWiSO*{jgOXmpd%V-+rQM0R8vpV>XBlg-{6N@UWpM25dfG zLCjL?ZoDCv0~J99lM-+mex2OAuFr?PifBrEu%5PnPJ62E?5bj?@$IT&X_fOt%27|59xJLOeMZ*2 z&qKAVYV{+;F;%NW_}_a*qFUj*;Z(B6RXOI(GoYk2GF9rkLI_ohug;p$G@Mp{azFL>WRJ!)QJ{H#1Zv zgJGjrl}M*@f=EkfQc3#g^LjhbZ-pOQ1N<;s*9lSK1z&ZZSQFEHi}r=$peVGB53Q1{MF*9 zLQLWHR!cGRfeCqtramFc5b`V>O;fk4W!RP;&zP3R^-IhwE&X+>J}j&9Q$Ihm% zzMj@(a}wX)V!O6sEtC^Ic!v;%CP$chyCB(;XClFoE$@*yEk2PJ%OTCNW6?)6xiL;7;p~UnBP?V z=6DP+c7BeC0gZjzx@A+fQD*04Kdyp|+lY&%7k2e^rX006iVQPWIY^`Ofk^p43i*t& zA~Y39Ig}63Y;k&Np*}e z2^_lKhTq#gju>wD?3?e3HY*`F@o?()HJ%YoIwa&f9gM@5J;(z*QRn3%=&4Q_A6Z@yPlW4pzOimHL?uh`Pk*NdYJC>Q1-HCrw?g(C@CI3g_^3D75BWB`4n za3a?#?doe4;)8|_)+itTUEmRK7&b;m{197Rjh;T-S_Ns;(h+It910!rMjx+q)pqH+ zhb`U0*Iv4z?C)9Xh_q-ai2S7xX5&Slk?nEVg^=bRhYttDkh#agk2f+M%k`My zHcA+4GLBNlNp$dPnDfF8i-?p(!Hp918ET`%;Q%ARCwUOfy31q4ZEp-Cu0D2LWmh-& z=5%#dyfz~u<&jfHyQmg@q#5a=eR>h@=uS<+hq_DfrEU?w)D8dj!99h~jdM*phZk|A zw+=7j93OwC@K5@Y^+zeb?0pav+9ra*>ML>Fp^ECm!UkD#|PX0Yjk^{g2Tpr(Z zP5`p62T@P*)=QFYIHSk+KlybsG75-BuF@#Kh?HNXNgw@Uk3KoJzYce9!9NaJJ*J1O z-in&YzCCv;DooEUSORox4q5%E|S)FC)ZF!BkEmobX%4S_1=(OemtZ(r; z?ZwBi(+<^VoxM<}BJ04(2W%L+AD2k?Ul2D67ozOqk3J&) z(u?wk(+hbzjD3a(4y;;Kh=idXatYGPIJn9)2oQ0KuR3DAi}nQgy9z!b{8r%i04qzM zjlC&ocN<%J+glU3VS_v4WED`Hi4v)vmiAPyxXzs}&MnTmpgMAI-EfnVMaa>XjzdjK z?h}^AKpK&ItbY zIwz!d;DppCz@{lp1F2XHziIf{mtEnM)TuZnbxQi7be5x|>g2kwX#7PvJnCUYvkyYW zA*quGuPVWjS8Mi+PyYvwNv#aom2eU%KyH(9MCzKA>Hn~uk9(gz|7Qb^W|(l4xyA4vas6%QN! zT>6pzXY&5|Sy?2(ejsDLhy#GOr}3gIFujl*qcuj>i1IQvBb0@k0 z7{QjG+S<0HtpUhK=QkoDTVNI20xJ(p3w8595=QG|sMC>Fq*bLAk@ACd@fl+kOM|0N zfn}eRmrlhdubur{2#zT@ZFzEE5x$iv#Wi@B;?pPyt|-LMWxHS8e%zX8nFLsre*C#H z@h4~h54KZJ>B+}?GVb$h#wpGR(|<_6B3%7s`hoZX@^wFscK&nvg>0No-)CncaUV`U zVbsY(zB)nfC2sC^B>cg>7yNq5eabBeOvDxXpO3cGufy~&>KNvCPB;Mz2Zv}v#yeDbYg=_>U3$3TW=o-vTc z!I}RT1DVc2|AIQwfs9+~UfV!6Q%c|sWR5+K>G2tEK&p`VY;xspO0xt72Bdgd@b-{+ zMNLiM+7WCOs;&smQq2L$FeSZFvs7mQV%_QhM5F@{%cuhokq$uQfDS-JIsmag^b2_+ z?Nz}6h&~0@`BtGfF|^K1G%u~h`R?`|(b+D+L@ev}JSI=36Gf~tUm|BE7BNkm=t)u zrlvrYSz%i1&P89js(q462T{Z-_t6n^s(rX*cv+|tLlm(#_>yVTCU{IgY9bT)8I|Tr z6tP--xi;IxAM5^tk6tUWT*{(Gj+fZzi7B^IYEX|GzndVFsvF`Wf{8caKV_IgR z)MtcyogbuW$yS>km>-mB$%uG;k=cP4j<5l#*}~YbZ9p~{ZVuO6h$7ZXUoLecZ7{=S z!wuP*4N(O5gqel;&?u^DsGLSrEkh-cr5d;yT`4DuSo3_8$34o|B(G>qcJnk??2o6s zHvV@SE~In0NM~Njtf>-3tR`Qoi;Pt3-BcYTm7RPx4=0~;cNpL&h?)^m#5&KHQPdX8 z{*%N5O@vpbXc9ybYlbh0GuT8Zn1@V*SBYpEL=l{BX4ZeBQQn-%2v2kRW|o}a4rrD{ zxkdxupvsMufx=h2{3FUa8Vr|A)J=wHC;>TCO2UGn0=Qi8^nkaxITP{o0F(1849>e_ zbASz!Yc9_$IZkqOB+AA3RmqmNT!~UJ{mM;+C@15GOXe9j8KR*WKU7M>f}sLrVZ&2y z&O{MRYOxE>nrOA}*f);{(B=K=lZ*txC z)|q89y4yDX@eeP|*wo&UM0_5;^w*=LMR?f#XFt_q1$_VxUR(u3OgL+SAqBwJ8-{)8528%H{ZREZq7r#IL{bs#>U=W=Rfj1FXZRC<3}?Y zODkazYm?)Fyzn79z3i)n9FG|t8irmH#+s2-7t)k7meE>h7WCIeK}KD04(G26JB(2m z%umCxY^6^Qe$Zu64)z$MZ432qG&m0>*d7GPft+>Jv6QR>9NBY^w4DO z(c`rZ)?g+4_#7|v5LNJHKYn_+bnU0-_zZg3O8xZMVGMe(hGNj;>nU+3_Y;I3lN(%# z@#lU*M(z{bl-UaS*kO#^Y07fAVfGYqqekM;kRL^u#rThP`S>2&S^kL7upPARzSI6M zv#l~OZL6LYkb%v%Dq(zWHD@fNt)7Hb{M;zb;0EQdzb@=B1~<4<)Zs>;t;T6I zV(>4^tnK+3{a0MtL)-9I-Cbt@49E84#F`okx-2zZ+C%Imnd$J_P<@q%& zq4#7>=d(r_P3P$hm&>R`$m3A>vkaHZ!oe`V$#CiAASsWN&hIi@dMV_5VfJUZJelEA zsw-}Y=cIgLhRd!Dm-{kY{*d8vmKs%!lviiC?9OocN`}ktGF+xo^vmPWoXl|fNQTSL zGF5rHkwK%RfXI}<)%|nQ(glrsV_`r+&aVWQeG`H1tS*p zO0v;(QN2K2;AOq&mfhj!`Ba7MM|rr-=Q5+GttHi>0ZzxCpw92q%AIyBhEcb}zI2$v zFEd=GP(a%c#wH`LC|q;p^$t50!}w#7M|q*U@jeefeH;p}wPP`ix_vrl?q?!QuH1iV z$6^?N?q^A??70_E4aCDR{#Y@%kJ%+cV8#|@K=bCmbhVjRGo5Z4^ zak%24ciXWT#vf~{#QGZEGw{>LiGRBti(%C5yS59%`O}#Oms}-vj28^!k9D@h%AWhV zRFv>A%orKXD`u8ikK;eD&9AV-s1%)X1>3VK3g;kPUg%1^*)VU~_t?MNdO~wWyrQbc z+5lGxW5wtK3BX5Ph&H+@3(dxCiyDz?u&!WZ1XqLQKqFyX4VK!B7t3HFV;LIkx%fXX z)DyDgSV;VXSWL~F`BHZHbv8SUp|i1nXc+2hFC0GgVU_{u*j5Pc&>fY|hJ!?UXKX9A3FDTOY2}P%l(Z7z@jXQbje}o9-3W znN+;IQY=r56}C)CI~y)}AsxlQ+1r-BXr}|Yij&JEmV^;W8!y)}Of zwKF%PcIHVKvv%w-20inAVLp20XVA)=6nELV&(Fwxfy82+I$`H$X42@ zv$~qPUp<_1=?OFKbQs33CoGa!*)^hf*s&N!^S#EP2k97NH@TsGd4rEcvoA{+w=YK# zBWEn5wJb)sywFy>orLQ$>T8LFFTok$Z!LVXMoOBtNoqZ_wNs%eKiZlUVeojHe`Nkoc4&@mbp6 z8Ac^ZWxQHsg1VTJWVxgh!<#&$B(c+hB&m$glvol*BuQmlZIkL^N|F_ljwwkr9aEC9 zjDBv|VGM4plrT}W=Th{YKmKq=uTtjdQLn;hRC*LvbNpHqPHnQex{_QCeGn;5!msZO z$XXuL_O%Kwd7(@2F2wIQKde4&rOW3k%q!1>E5n5GgMDm*{E?UH&s9}3Ey@fp%sE-Y zRLK_tUKpOj;yiXbnEB3d(_t-FVaCc}8jCKKm0Dk>i?#$W7Y(!=2BH%CZ9TK z+08cJEGhF%!_u$6`RXU_Iz^kWnpIzh4P5=b$qr-mCTi(<{~vpA0vK0S{g1zC(l*^7(6Y9` zP|99Pl1Z9{l1!4O3vJWTqzmgbO{Q&Vn#4&`S}j^E2qn}NL=h2DR2Bgj1Q)agWm8uD zA&OtWY$}5K6+~8n|L1e=eea!@H`cVwMA(bbGyHkdk{?+qU}L3ts&EWq z1tT_AYM(fn80}Zj5zHEDxKzCRRewt; zE+{H-*xMT_Z3(T2^)2D#sc$W^QZyBTDkhd77+L~iW-l^CGI&x7E!k*#TG`{(25xRy{{P+TS}J;aD5Af^w=w0lD_xytn$&V^{pTt72>v?XxXnG@lhi*0D> zs~c{#QlQ=o;Yp&16^vLyq3ru`W3*3L4_r>3s2u53i#i-mqBfamVP(vN* z>3usa*;!VK6s3qP2S?^N>TagF;fr1k0wa-ktC+UP2t=BAmx6!)tT607y+wVe8>u-F zCL=57S7-G7#;4CY2vG>cfJ&{M_8=xFGDYICvj625(RH}F9%QMA3Fg%+REOirykfVN zuk@+vEfq1ryfz@l&+A{07ro$9t+!Of1oJvqsE)*ydA%7uU6t@QOGQjDuZ=?G$`#D( z2}?yxFt1HQ#a6_;)|`>M(l6n$2O|oBm|$KXL`){R8Y~qtK`L5uPK5p<7oXE!{A<0R z*Y%dlxAuo^jN?SXhv5ws(-t{At+gC6S)g)3?ra5i9=92BW+jJhsB~s~Z_4v*MWv;9 zug;Ml@G+jPsC1^hHb^RZLi`AOfHP(R#f9*G3&^ioHpu5&kol zkLhuAOW7h+^et|l{@o}V8p0NQOzQDAhOv-B<$gY5GUfhZOGS*~bG64ON7y*KqDX zv$<~%<^FM@qI7O;Zx7}E3BhRDEk@=3Nx?MmiqE9Ri_Z2r{*TT5laf1NJVR1>ut+**}BWpyn+`$$pt& z(#w9S&Hb{F<}VkjW?WrKFAL@V*--8lqjJAOFk2#Ai*uZ^bszhV&+*$f_bW{9q_REQ z=Y)!V3hV2^88fcGLULzMRD!WO12Lxm`tN||nN}6$)dW-iE28dqH~;5DF()71AG0tN zb9E@@d!d+|shSVUTvCAbgfWOTW!62>=Mfux3S%X0B2|gZF9bu6gqU(+ZDMpgy;Arv z-sprsA_&*&w&gh_`vN{eYq1zrUsnl+^|c@F4!i1rGhBUPpM;g`Dkn-?RrU2nq0;qr zm0MpW1%+lTL5z$*N{R~$L>neXYvXF+GYwbP8ds7nAIM$|9dfoM7|}*?q4CcqMr-3s z!iR0j)rR4tedaZS(SE~Xls3LB7zf%IfxJKbu`et%JrJUug;pD1rZyrsqrfjA_6NUW z8iVc~$jA8kBPGqfxV;1A5{%b7ke5$&f=eKOwWQY~CMWVyTu}fCUk=s#R}depcZ*Sy zepN80okpB}XB>nMpB&wp)GzTR`vRf<_F+r-Egev`vERPNbff!>g z<)y_^ZfeZ>ZqKdcnM=sYgrr>Zm{~f)rrEQCV=A@a^c9r-Vp#&N!GsfZCkoJbR{uEy>RY3wJ0(HgTDrLi4?iQ*czmIf>7j!=E=6sj$j3V)m(q1^96Y|vUP zM&*9DV2rgy`dLfL=6<*6ISxIa0`$M0!$pGDGx-=jci2>mQEv+h#?v!-Wu#Ji{wZ)d zk<)Q?^?Y|o(w_-N>)B$Ir1uDBOC;S~?~_*2dyJk*W#@YL3Y8w|-6OeU-ZT@B(vga1 zCisXqo>_+31pTv#(f#s$hz*YGEFbu~GP?^-Fyj5nu=9bz#OS{Ae&M5MQihNAQ4a`4 zYr|rcHhwOc9Z>0Bc(yd5WixsxsKy(8eF&XT_U$zN=<80a)t`&~bisbUjr=zJ1=&b| z4oeHLcFI_mM|6monJR|Bc}ELeE~b|$!?VZ+kBSM`1~80yB@}beF^o3>eVnT0Um!9k zG8R`bby_<9aL3QxT1I&ag@l;kdfkJFF*_uoEN6V-S7unMCdh?VzGB1*hII-)<~hEO zDUm0$Iwl4hmrA!U>c_ON<$`c8t{*!D5rXmBm#bAnb%9GDf3-zDgqWPj98^B#XE0KT zeoTb(F#hI5xF*OaSzSk*^N8R7oo2QAu+;K*QOlPC_uH2&sr>nZr}?OD#XD3?TjWEa zqUQaeM+Ws?_O$)Al-KR=fDq_R~lorh_muD_E zclFfc3E`6`NL(bi)^da8LrkzPeuJ1y^QH$a6)~VvdHq(X(&zP(r6MLMDW{(~k>hb? zsI9vY=H`|#-$oM?r1~9Vaw7YX1mU6?cNX|mb1W4xL8|{kOipBPk|5ms^sSfqRO>7i zF|Jl;%CiYm%ew#iJuty%6V`s<*@|ErQKSn-d>#5Ue0O8CA7gzPkF;G7?#1Yni_!Q|r#rV=bh^^8v=J|_~zm30yvy>GV~ zdm8dm&;IEB8DMiF^s;VEJ{=mRJS!NTyTz#7pA$^f@(JetZJYaZq1^ugN7JD0dDyf+JyzQMvzBFk2$&#)pSbMI~ z{l+A3oN@AtX zWW*9=IOtiP63J+rVUc5_+eV zi+sE%S=BO4 zBGb6#B+G{wQ=&867~!nP*b(7#gvr>MeNQ1e6IY6xEfq1gJlMBGtkJW!x)H)>Hquz9 zADQv&0k%%jPD`+AjiC-&3Cb)jmwV9}OpG2UP*O8a_>v&pi#tvjjR?Vb;{>)kpXwVf zf&A4zAxBDh7_PJ?22(=q6WDlzKEYy?PZ%kfDCnuDU{C#=)!4{L6sbD*Q9`xNQsEDN zDU~B~o%`re?iQnR&l5}oDCtRpJ@sBEA_^fd(m!{ugyuw6A# zjBEjto+9|%yx8VG&g4!i+gFYk&boIPC%L1qESrhl=?uh3J1sB7IskhI6QgZxg7BG! zG)lp~((-A-K?o%=S-lkuZ45D`Kw*uLRIZ*I8MBx0xe|A7UupR0y5Q51pe0z0(nh{u zcHnv-O1${Y->mR^hi0pd{0QnI(hPq{+)k26(5n#p2p{ba^IiRv$7aqHe@KkcPYk0A zTCg93_o75&eoP_eXbgT#aY3n+fCVso_`LfDd^0gbUu?_Fdui|G#dxy+ReV!a1vAA1 z7|yzO_7y3#2e4A0F6go80R$tp!{_DA5t_PrP2*&dO)T~c+hf5%T zbsL;0C9J~L^#G=Xy51)VhF%>v5-dj5`+kDif-76WZ!dpktlzF4vpU=_f_e}1dix8N zZUy^!wOm|iS^+Vpc1m%M2PHKzTF(avAKeNpALzNX7-toON-(15(&A!#cVo0RejZgFh7*Yy}phv~jS)L>&K(RCne74{&qYuPCN}M*phS>cJ7Vrt{I7*biJo zF(qjGVR?-Gl)1?UqgJE^TKmnRk=8sU%#CA}Gv{ubXp&Wezr`|d-9&ryhH>X{|$Hu-$YEgxcn;}-US znVwvqWvPe>QbmP|a)n2*w^%A-j2w^I7{`g)m^V~RTjUDJC#uQO^bg2c%;3*l()j#Wv%Y$GwXdlCR?s6V%2L zLPc%3SpTltQV|0xwV!sHP({fSVRGfjpZZiSmWmkTd&@Brrk^r$X%BFu@ZnINb-^d9 zRzL6n=rCk$Suo-O%I%x2CPudu>c_N{3f%d@^|Xu>jMq|Jt)`_?E#)XF;dekk-m*0% z)V}3t!BB^8<`$z`3V$0gClUpQdJc}YuC*FF2IwcU2@sa+yPZz3IP`S2od?@!5Lb+Rv%6*1lqL$A$#~1zG=lB)R#0HyLL!E( zGFDKG^B~#BnHX*1G2t@}Y1AP{dX`TUsY<1f6AUaIG4?D&6QeDmSomB89&R6J_-H#U z5sbD&i&5H`DVRsVXEdz!rp4sJ?zJs8G$w;&%tFq2;5U_{$BW!)fgiT-AjQO z?IlVjFM1?~hU)F#c4@HZBxYiXfz7L3IxL}Sm3*S(2i=whHYjomJcz|s#@otB~;%9J3FDrotwu~mWr5QT~Ja}7hiS3 zQXpLyg7NBND$+Ajsk%5>%G0e%Q4y+(O2O#5uozVr90Qwi9ldYED@)OZx<%d33>clN zNECH38l$(pkzb6iSc0}X@-dSB$R#%zHP#Z0Cnkd%J@A892eA0z3H-2wrN`MZ)-FrK93m61wGS}P@7 z2eiw$CM4->PYT>fuoxw2orj^Mlh0dF>vQb0lGa5i>EV!c0=Qhuj#7fIQ}QvAKI|6A zV3eeS@gya$j8sZedZwJnPk?qA*M%gV>q+63&0>_K^91u0_=LyL4_Ha(MJVYkNXjwG zYwXG;=y~^i;iJcy^Q1iNo679_XvCP_subrjGWap&#U;X>Cv0 z)BpR~UcScat;XsjtmXNrW&C#*amXY=OG-Yb%ui*MR4|^T8T!uE%(01UOLd{_!%qdsS!%L3`L_~nap9H1T87~7)f7s3uG{=0!dw`#US?$_VT93M=V@X(c5eBk3g>B^69S(u`C}(q<{)8YSt z<-rK8u%O($J4uWk`<0mv%!?`HQy6k*c?5%)auuV;hwCIS+q9gvnbA-CwezSgGchtg z1RwKE+~lRlhwZ{gj}L8`n_{3c`%VSJ@gZW&Qy3GYYnf#>wfyOfwJaE~mR(8HQmI;A zFD3jP^x}>WO$qh*utPA~8(WO3`&bqQX?4=Zu7tvB!U&nKqLV~symdDil9X8cs?8uYS3dXY* z^75&E5TsJpvOy%(4yXpMQXTR+-oKM zPy~_&+Qnv}+H9%t$N5kw_wz!zTa3#6!vRdNUHrl3{^3yW9}%i0D)$eEa^Di*%o19R z%Kdx~!&)9aXUFZnHs7_mpU>PQ6VXDr7B%8zkVw$>Og^TTAGfI%qiR_&UM-VXMk-ay zAC(f`1hiYr=Z7TSDj4nkEJjIsfrp`_MbF$Y$>+G$Y_4%Gh)~ifB!x*kFQ=81e2k<| z0OJQeZV`+pDS2h2Qj%UMCAkfqK3nN?98+Pa zE{agnnUECAdrpiCj9%!l7{>udVjovAZIKf|<(AM8=@sCMC3lWse2jZnX_s?|39cJ& z6RPim>IB15(cfsPhzYJ6Q&LkG*LhUD(RCphuP!KUMk-Yomq>a30km88i$ZnLCm3yY z7NhFoQV&C```KOBLqwP3L91S^E)a5?M%dMoJh)~i7NQy@fjvQ5u zzo;+uT!ws%q&G^Md(m|&7*A62%1EUo{iKwT`g0}yL`c$4c~am;g2gCFKP{LjQhBEL z+ZX@%HJ@Yt$%g9F5lXral1@g%lscE29>IP__?(7xrXKp+3G016t1KU4VDoAp<7GlM z1r(Gb__ogXEfq0As>_86E-%e))fD^#12JZ_jGfd{Zc1v#;YHY2Nl8qMF3)F$Gi}4w zs(*K%%{4Ati&QPlEAWJDjoey+<++cWu?GIQ?j2Q8^!JW0tbBbAc$N-5#Z zK)ag%d`QwScv84!vlu1mRf36vPuQM&t)y2)DCtGkp0{(MTLNcxMP+4T8|33!i?JUQ zqqV^pqm8wegZZPiAs9~^toMvmN*iAkDINgYt@o=!+PGRU+K*X`(#Dqr69u2JHhyij z@udj0@mZ^lm*#^+f@lNph_TG%W3_>^2>ckW4PuNo)>#hbkJg4@0@}z(rL=L4NHIam zV0eBhq>V2NMr*@jls2vvOcX4_+USZK&euk$jq9v7KF3EV5~vOAVi4KM$7mx~P^ef2S<)s4(9_PFRZW_#{nkLd$NQ^hd=Sq zywN%ojHg3#&q$?o_%(3Oi983i>us(J>G11<(K@skrNeIsCJH`5i*j{18Ji1-pu@B? z@nkjFBYY!59X@U?^ISfnlAwFx>!m#N5zo}^BUZpnTnWE!`4AKAPj3*a^u6%kEEO?9 zsvCtWeJ^}bjVT*3rWcOk-FEs7YRtAB{K|kIqkG|-gflhomfgR5&~hdwXf5PytYx*y z++MY{2*$G(H}|wu%38iD<#`7DpnM762wBU`UYT*DG0IwQ@i5_Dc;8w>bxS0QT7DK8 zvFH3ogUe0(7Vu1GEyl?ZC_VQ!2Hi$9W$lMDH#?yw&CoPrI#&<*t zu1>l2{_T)9zAG5*B`ij1<2J!W!6&SZo2)i&i%=U8_zRY9d?QFCh&HgppRwd)wSl+l z{1~kbVvJmwdtt!@w2_fYY2$k$#oH){tBu=2+PGaXS{oLlv~h=EqTmzOM#*eMBis?8 zHu9}DzS0B|2}T>nZ;+4G2KM(-8zx3;gE2-MnR{Wu1hkQnN@?T!BE_@F)z!uwA#MCX zFj^ZHqqOlu4?~~u&j(`PGi}f9L7o^=4}udp()_;Oy;iF~j8LnGgX0*K`{kv`T7uRX z%VRWlzUu-EM$OFy<7te%GEymx{YWJJ4A3s)ABHq`r>70KY!;(5_G7^mfDgwl&H?jl ze2z!gNnxEIM=0rukn}i2{9~ERjj8J_hWEi9gq)4+TiqfO6c}#^#*>}gGg2wpe~{-B%Wg4B_MZyImHnvOSDo#1 zyv54((+Fi>0NJM^zp1Bz#0&q(C_6bD*)MX7C{$W@!FaNhdqyfH`_H7z7Xj@u{%J_| zdjz9pw-_b+y@H|awEA1FJqF5mId;#LXy@JtWnTf=k3z(R(?KFZw{G$=l5TU!4Mw$Y z!FZCAS4Ju&>3vc{z02a>kfiquMoVfjO40{B3?<$FJJ($0OM0i3^nnN^O+r%oo(IxO zNrBz;Iq_)!$aW&B`B(uX}M+_G7WlJpV5L@l4- zv)WZw(nlz1;F;8;LbX%n{zxeI#{{D-%3@URzYJi4&!ir(x&Jbh`>%xRcPjT^hI0RZ z0nUIr7Nc^1Trdqt%fTo3#_o*yq;Z_bBmHInwNPP^&eQzkq1>Mce}cz~=rN$sNhg(>BI&SRRIxPLV&j@T{TFzz$tYF!6f7#BU|9iAbQNJO$!6Qf7|X zO7Q+E12H%?NbRwIQmFEf=5u!MF1NW8V`h=%*i*rFYWb*@m+<)o(4+8SFnsj>gx?EBTb;!y&HuMx(%1W+tz7>dp`LZ_ zPYKlp$ko-se~0S*=}_(#qjG;nFzM_4#08WJXBUQBhpFQ5M%O)$=^AT!Z z=l*A*`j(}_ALsc{y}uC3-C|VkFA64V`2;=fmu&7YM*8Re7ooz$!`g%6yco*;uc6#6 zM&FCe^$?I;X8Y*?s1sww6?9cjxM!=(4u%-sbjbV^42uTj!a}YRk*coL^tN zaOv#2Gut}5SD)Jo_JL5l$b5Y%0FfR|@xZ_oF6pYv7vrIl!6yN-y?eJyMVK)*@sYo>v-*hYZhhTIouozVr zuNVxjJd^q1=dSr|ur9`-Sq^ty^ru!ouSBSMHuRCm?@t}LNYH)LKczfV5Kpc1bmdn> zF7!<}$jt2JBSzK}a13#=a4<1?ef3r0W4Dqx_nh+ft-huXt`{PQ7~{1{%gsBymXGpU zuL+;&AYfm~cX(}i;G;_MgoWA_jCie5>^5XDG1?NSXJZMg1mRv>OF*(C7|#-@ql{E) z?Dx8q@E4$`2W2oN)RypuV6-JzjIx9`1yca}2z0-(Z|@g_mT>IQEFtYvhI*^{HzTx! zeZcWJ7>^7&`-^eF(Mn- zJW0vRr#d}Ir6hevO2}t2uB2~=Bz;#fT2hNql9C+zmVr#~C0KyrdWn0j#+(tt8Z&jeN)YZvw|BvKbxLV7QmH!4krHzJ0~MJdvg`JqD;Qm; zMhe}7j1){EIN(OYZ{$ga#*7k7k;42cgc&UucDF8{UxqMwf;m%R9t~l}2<8NZakQ;A zBEcCem>CN5dWg?B!RRu-6T*xaOib~4D}D;TQE#oQReOcc!56y}ByW|ClP6s9Ls=KTaiFN+%q z8$y`<1#_ap91+Uv0KpU}Of-Z!P%sIFIV^-ZNHDtIw}i@buwZn(e<*~REErv19}Hop z2nNfVp6nY#m_tJ4`DO@nXsA3lg)oPO%5$T}G@%eqR50^+8we8?V}E!8533VZRR!}q z+Ir#`8z)vZcPHcBJ+1NhsnvDy6{iC-AJJ_{_t1p{p)JG2a+37pw46BvS*5{M$#6c= zl_FJfg>%}$a$ObV%23`9$Hn5;vL zL&Xpc4qS|^SwW(jfmzjdc5PbH+_5Iv)LE29u9~{})dT3Hx_ZHa>Y8O$(_pu4Es5@) zR9nZI`0S-s(^}RxrxHD>=C+>h_-tc`fHk*cdrLD+2607k6P>81c8t1{sr1FD9<&&{ zrxey28zmgn zmo>NdCL5aDQr*zYJkxsSidA>^rdl#Lut6Y+L|1Pr*#fnj#@g1gP8oc^wwf`~m|HwU z%kaH|Z3Ts>SxDZP>{*h8K_oXcx7V(1?&wIiXUAf=Rmse4hN1e*MutTFa7$qA!xqAr z$@`Nt%&t($udFYd{ArEDYReg|*{Y(Uw`WmjYuoC!=2h*Ly^YrLBQYG|mcGL^KbdE-zCMaR47 z!UJ7&b_STH%g%;y@Gd-K$6A%BlMXy10M)Y`L#V~8&PldlAeCKls+ajRwVfS3&21eR z=bBC#3{ep}y%$5_!TG`_Y48~E*S2?d(0gYbM+^vXXFP>&H-jljrtzW~9%4{o=0Rp= z;}fpNXfxToen`}b*_RGP%c{1tib6Srs;d9|x4%q@M51=%#yNN#mz>w! z(b}F&q3V(wTasNpiT1Yc9(VpJ^$#rtr@pWp+m&|qw5{Ic&yqQA!|Xgnu*f!y#`@yiIaPR`ZhWU4hxXr|uY6FR*sN z?y{<|pY3_<3L5)c8yRGt-TvEp8hs8_)ODhVi06uQ;;eb{_qBPiL2hz&i`pV9i zmtrKqZpw4p{-OxkqOtj{&rhQ5dp;puscY}>NhXld`n>akn$tZV{BfKP*2 z+0mV3GLUyN#YlrtCQ#)ywXDkEIf#T=@d}O?!a4}0r_H)E8+!=q4;APtFDvSR#dxGy zwwm?y@Seq@b#LnM#hAVc1gJgtin;K`T;7HXh5Uu!xOM2{<3*rqmv(ZKi-PTTR*Di`Lo<08*-?dc5s!Ecn zRA;KHq!T8N+N>&JzkzF~H~(zz?rvMtF+AZ>>v)!hz7D10Vwu-#CYw_p=Rrp-;IhIj zF1gi0H`}toAM|9^>2cr#6Lfhb=Co0GGwwaDx}n+|{GqV+d63v@b-Zp)ZH=+jnzoMS z)Fv#bCzYY1dd2jJUL2oSH_w9U%K4;8LBZNMj*T0e)}}ho^&Oya$gT&-y44qEvNzTL z`z7$*chGYTjIipgDolF)K-_0vnvU35d*MJ0)#H%8-}EZBHjdFyRieJPy&cWRGqa&K zC25Sc)u^!*r^kzD*SP$XDQ+0p)duR$vP`p(wR_hf>#$BWEVgtts+A??!oY^jF;QGJ~nP1C=i5#PoZID7atb84mjI(JCBAizq_*?Yw@l9r~jeFf~;o$A*ytf{{cW| zTJFwugTQ`%)pNi7QMw}xruFxx?m9qVI2R=8m+64W{!`^3r~a9Hu6zKV;fZpPXV6U! zz$gF|7gZOZTRW#FzF0be#=+;YS*>wFTcLSuu*4asu|b%y$xy>)3@(ngc453>_PoW$ z(SpN3v%{3k%|-T_c*Fd;wN~~t^CE&8;-@T{KgVK1(;w~2vpES%VHef*T_d2`cQ{kc$XztIH; zg9FuzH?MHJk6oGxdD^y1wJaw_K#OKCvWqt`G`3DN=&UM1Cg^UfN;*1w%u0^5&a72m zIFO!DM|O-d5XvjD+3SKw!Lp?}jfu~1@HXaIWl_!kL^>_=n^vOyD-g0 z5?4GXVPj329X7Hx-Fr+Ut**YaXFd;|=Vta~Yv%Rt0dQz<8B;xFnpJ4e8Du1ohL$lk z*vhhlm1cyw?Tf7-Bgk!Bwbk*41r4)BuUP)7osZ8cRV8iR)>iR!+0|lI$);paRk625 zHa8=4El=S%R ze$XIhFO1jBURaYs4E8)dYuSc7SDk~N#x27xZWlF6L3m}My0@pZ5sw<0+ucn~e3+P( zIMN4TgXONWsHv0b8#t&Jqs+FbtO{UvaP`{^J-?#~YRa08-RRkGOZ8C6%?2{rYnF}b zOvy96)szhbe-FbhGm%%NY!7Q+^U5Y?zV>C;M9ffb_S|@V{h~P;YOKH6Vr-gCF5aBG zFdMWuM7KexM%jN4;XrM$p8<4-U(oZn1gGKa7dTC#luxh!_M3xXbK(25^cz^k>R*WW zYXJ*`Fm!jG+u_q}EE|anUy|g$Z;2VS-qi>|-LiXhUnhI-atU^YPsof`2yO*gqoHOfG!>cn`g}bEX@eK_VcS{ynG;`lP-A&d!+((?M zHDr1vb~i{q+)~H@sPGCSLUgONv=m(3Wwe+}9w5+HEhnrfYtD+t-EM zd6LVI2V@K?0$Mp|P?(tF&F|rQXQM;!)uvsl3d6&d1%7>~VhnRLl3m{sv#i^=wz;>P zYvw~2#e0V>(=yM{S!OZx9;)rz5j7SU-os(L-dFOTW@FZOaq3Z5FHRKUjCk0?csLxx z^}QQ#%j1yUTxNGvgZD1pGtQ;Ele2lSKWNnr)K_I+RReJe412Pwnt`~XOhc%OtT_#; z`hhsvJrrp1!#IlxYVrk}yE`o*pt3A}!u4yyf_c^M6R)a*bVTmsusK~HG~0n=iBr(g@BRt9d6p&5Kjz2hE?SsrywZOm zxi#5rCQE#XJ?Oj%^~_hGWxj-`_Cuq@lOI0(abIU1)P)XInQWI3dF+YBCB;z{3Jc1L zi%QC778R;U+!hw#T+f;KTT~dsAB2@-7e;cNlQ&%xzZ!>6jmg-r|R z*Hlbh-@T!wE7dbK8i-xgxU6)Sqv<>hEC=rBZ2;fHCR5&1Xo2e>nF;rynig>{L#`q}fV>l2HY%&uE< zkWGz1)cJD*N%=^6X&(}fPSoS|skWX8PELL=zK=?@CO0H{_Quz`LvS=Io+-DtZ%DS} zBVslp#w4)oVPjiQqGudpqM*oKg(G=LemKd`#k*Ju;U-`4Hdtq(=U}AXk5gtR_JX!c z#srDgy&YIB@9gl|bau8gmlq}>7w=6nGTv9p)wz0gqUTV2twAvkNOUK8VqHf!<}95l zkK0~IKN;zx6SW&)Q7t5o;r!N7=Jjmy?*X?l>sR5h#2&EN7cnf_xQ^tx37nt6!x#>- zarKqf%f3+xMesB zZ*?2a?1NrSLyiIc_Mwh5Ju7rY#hmu$HQn<;^ahA(vLs5Me=}^fH40Yeph6GwSLXygSXQs=Xu-=;shLPGLHdb)dT@k2OC`wrh4K)qa(~c$ z`2hUry-vpQmj|*$2RhC^e*Apw$yt+39fy>Bq#O}Ssi@%I&W5=Sv(ac5>QGHwp0{&IVe^?s)?6wVUt;w2ArzcaLM*w#;a8rC-!-9lYrHw6Xv1zFQp#1Bc{<6f9lb}-V*-`l znWD081i4aH4UP2!y~&Q2q@|w>&>LvQlYIJx%^%!^)lC$>7>QRP@dQ6H-2h-#Z%4P7 zMzjTIb5NW60`}x$^hOu#z@jSHG7vV&dy)Nxo%|kf3(?B&^1FvK&xd^INt;BeMR&$`1fgKOj zR-mT&d8R?3#n8L6k$wGaM3_B*iGCZBQOfu$<28fn8MRYLlep2}$DAz;1? zy4c@mzPPIyMq`Ac!F(Rc%3$U-cds>xha<5A1v}WM?cZn)1LVJ8um}2(;4!5|0K5*s z@tFV>6>_F2z15<&Zk(dqvX+|u0)AssY1+t#pAYF)Li0&{<&gl-fCPv78JN<;=;iE0 zbHWe1#v>ebjjiW)rdnC!Eoj54#^q^(S$J{}^QCgmMkOlcEH(Si7SG3kBq#qPFhQkQ zI4`tA8E>UH?l=>2tG?EIsfIn#UxI)Fuk z0V^u%JMB}e#@?5!uvU2_IDKRWjMX*G8qZLP4Cc1i3syz%) zqE~_?;%mlY0?Wbr!zfXMFRc4yE!YpJQCt?CMznIGWjvnjFvt`&)1jP*+>}GH`MP~W zH=ETFFiF*{@QMoR$C&kgNPZkHX)je?D3+b$Xtd`kel$f4x*{6hcI2)M5AzxHQpwgJ zkPUAP^sO2m#)Y=0Hf}t{9_Te-bPu#3VMf8p6y4%w{oG<;8#cwPgB(gs^yc0e?*Ntn zTFCe1G4eCpIJ}+8b`kqj(>hu3r-L3N)ac3jU~o{Z4KW8=M?yVnpykzc4JMAhJz$Ze zqbF8WSq+MNAVh^Yy6HVj5;F^LL#^Klj2x_6ty*8e~^D))%6M(d~XbT~EQM z#!_&Z3DK4+!9dwkK#B5ffL+5fh_1Q@=3>SR97&#yrmRMinu9SUOdVNW8(}5N&TRiW zySb-%j&wupsXh;0s;8>%-n1SAsZ?8ww;|{lpt>O1;l3J8rBXE4Er^I51a1XV4FWSD zF*)P|cG1acp!yzq=Bx zR!-BCn|1a5U|q=!&J2oeQ=J4*FF+Ig!lVCY4IYEGqH1tSvK3?X7Ss$^1~_%jvbz!~H`>g~M<^3?{8mVqQ@JXmEg7+Nvc%aj#+`LHuM0J5vj0GYsg%}|o_**8$7!TGG0>{Vz(J5KQB zFFu+1EV=$3rBYmJUT$AO$vQ)ld0b7YPXOq8lvQ*0CY$Cii z#2MO+0IC^UdZ1kvssjG&z?b>u$b=8Y%VH2+?Z?u(+S<0RwaFCK#wvOYnW!p4H5i?7 zG3iCrfm%#Lnkh}=Cak@#=W-t>7^CPiW)@TXH$c5g`{Dyubf(yliKc@QbgYPmy##1w z*yi^p@sn$&LsHGAlMF(cswjquZ5(F72fygz|ssS!0ZFhgBhx+2Was=UU25a zUgu{JSM@p#skRO9G3ZA|n;nzo*r-j;RA9xe=A1O{qhz>Wv#!i*wa&&<|04+g1PpXtl{%|uLFt)z{< z4Z#97TH9C_Ed6#AOqHIamSC>z?w&*mRd>fqUz1A8GL|PLtx}f9@pJ%-%ltZ#M#|@9 ziJp`3weKLzqVT}2qQag_u&Q@;0w zBGuE=mcXMFj2k#%efD5XSXJJ570w(kF>tXLfV3X+&Q_$Zyxw|TH&-{qDhsAVd5vK9 z0q9`i?qKHXg>$!B_?3f&sXTD-hjUW0N_N19p+)a&^KG>UOQSh+)`15ePQId+E`zP{ zA82g{NJ1MI3Oo}@^fa$w6OTg{BepRFoQN^7HrWzh2GfItDSn*k+~!nkfGx}OB#LUv z)84rTze*%k%#NZMc01V=6ieG#Z$TKPo($$uT9j)Y?_ej+GJ_6)(A{edM16%E6q}W!gQeY8gennH-46PYcTGiZ| zpf$C%vVZ;?a^KJ7ju~uQ&n!x_T5t}1)~&Q9hpV1Ae|U)5$NUT_r6?Vftr z{5f}PN8u(I917Rc+}*?2yC9W`bq~m)D|ryH)|J>_$%CA8aQq=w;8=zCA>CA=ONI3L zo!tVEej9}{_TvNiY8(ykQy?~m=cnO0Y)21U-6xP}TAiQBBY_|pGv1yqV?Nqjk2+z= z`v3@)93|t^1Txr`j=`MuJ*)ZHlm)mjO#xP8@Qa7Dw2#TqqOlJcZ=!Q`0#?5!$$s{W z{rXwkSr2TTRUo_*gu0*2iqP#(xRUoK3}`Q@Sq>Uzv7ND~FTydKqT*pD<}}7LbLII; zIEZo~z~gTYB0QH%?_fM`8aE`aBPuRtDVnHpF`g^)c$i*{E0^~`S>q)iyUB;<{w-u~ z%)JXgz!uCpiU;o9J<;Q)d(4=p8!Ih&5;{-QlG$qA@s5W#nbWer;MqHx{CYm;(f zQjD(HL`6uhzdZ|kt&oxieOkCD^^0c45uy}67Qv9w8JVbor=uC&hDx=)hbpEx8t!o5 zplq~l?i{o{fMV%E3%nc`{)i8EfWoDJElFgwatWBN0J8-mjOkQ&nHjsgRC0AEczz!h zzE*g;J~^mzQ=D`I)O0u&Hbd1#G4gr>8Rnu!9+eDJsJj$4iv(-NTCR9ffu%86wuERU z#?5xHZ2BQV4}}~mz)w`-@vsqcmq=mLEKNQnV{;v2x-m3Yc6h(=I=tPYKswoluzurY zu`Hwq-yB^|N1_>Brto`2oOj5ejXP;_;Qq#mhWIX!Sq*x^gPXXD3O>LWUw#1KCL1@2 zEgjGC*&Xfxo#_tU#I{zpjVBRr+J+mSsD*pR@8E2rBYhe*Zze2my_u0!nzktILs}r! zcsmqp#trE@(jnVn8(5wSme^?IjZbY;8X~X$Z8b;^6YWA)e}oaB`rqrUY@6oDVICB1 zMh=;WZuF!-Kz*4pf>bU}2j{r|OvIXTzjT4dgjfx|UNz8FU?!s6Sh|XlN)*AhTi`u3 z6RlhbmfJD9uT#3g*uaeLgPJsY)?9+=;6~@mo_e%xX#Z3YL^)nzXM_n}xH$nor3 z=wQrvw#_VpCz|bEF#0#R1lPY|#~*jQRU_(15#A1}{a)X6qExW>#}|P<5Y_RVpoj1I zg9;q3|F;8?;dBG;0Ee9c*Lr%n){|Jq$tAnl8_;(AZkBB)Xu&4ybgd{IZorlhtz3i* z4@b+IBg*#13U;Ao$PD)ZyB>%$*0fD-mgLapU9>hmw6P5@tzZKdnCmf9F#21lio46q z-0?Ffv@byiWHXswaTUPBv3YjvREjCV{6Fa4x;_>tBRCy3F~eQwnE?s zW3f+{wTT_u&RG7gS)&X`*|?uX4r7w;aqpf5o1L+At{B}rqt7)JIS${scQ<#={DpNK zBXghb$V9`UIrW5g%!GraSzdGfnY*Q{%h1MUZ+Ba3(-DQvyWo?9z3cuS_Xt2aks1S4 zSG#Y$kx`T=C&C@>!JzlH=LjbJYxPi!b7FC6scgBomqGXF7ZFp z(IS6GIMMuum0EX9rB*tTe!Im=zWLs}0douoj6rbob6}pdIEobaaZN6c{Qh7uZXD$Z zye+WH?-0zg?+}z^V{Yy{1g%&o8|DiH6Y(Cvx}zx1*t+`KC8sqs&0mZaa1$AE#?G#D zBX{Gg21h%2`5PruW~{a$&8}<2eg|17ZR}drxzY0vd)`TSZ{JBc7VdP}F^)6Ue}*XA zPRwK3*`3&3fdw{stsn~Mz#IBGcT2bNo(s_bIUCJ6QO>Z5{0t<$XIqWgk1skJJz(0Z zbYJqHRiK{Mdd;qq3)TPjdyP2~80scs&O=Xxfvep|keW-)Tj7Y*BVtb%7b5La=<&m8 z^++e>>C#7lIZ`eB;R?PSI2ZB(u@cS~g{ zCc7uARfWyXEyab+tm<9Zvit#%{TViVj<3GmQ?7;vyDu?huY8Dd80=N;Fr$j=X4e&o z(T+fk{slGqmS3d*lQoxFL(xjQmNR$7wLpuz(Y4Uo53&z@I2*nBDETBpD!vXl!LhQaJ!4G!Mkho4`0NlQ^{X-kYN-vjJb=hEE2 z-7fGx6zXP}zy+$Y+Y`h5^&76gD@BTpG-C0m+TF;YjuY!g6)RGN+z{*01c9;;%*PrT zH;Z#eUNuUpcI5Rl*20;vRxW$LzkA9zAjd0Fuuflv8C>}89e3~*;8)S?YW#e?W;et^ z3|nyd?rg!PCs9?ut0jw8Dkd4!>h)X-I<)+XTg!@DW3d+QAK2wR_FM~_irMmz_QG!g z(a+J@Zt^QpP3s02!|t}>D`nozJLUP9k(N15i9!=QI%s0=!8mdFrhrXwc()Q8Y~YcU zJq_FRR+W?&CX+?w9DNP6zn@QE-rueJ^j{y%%75)%?Q+EY{_gZY0Xc4fq-vkA*B!B` z_3M&ovg_UtliiIY#;i;>%lt~QAYD+{T1Ep|ldXYd$r}w!%?#5|tf~KR2KDc`^`TE8 zcW>uAxSoffUn{mJ7AIrn)Wa8odUy|9=kUurG}oDZeydl-N{eR3R=!b>u5txZpM;5gGL34& zFCfZzJ}@$WkMtOoozJ`NJsM5{=0ZoArvOF8m;z8$!+c?eeG?zLsAWgH(B39*qc))w z>Mb@=pExm2i)NL{_UnI-cVoDcaUd*X$cv=Ax3lMyg+bq_VH-Fm+y*>P!TviR>8k%8 zXiCYc;GP$B_Pn6Ow}CL4cQ=G^QSE=r3p(6}x99bnrnc5i@5AdiTz=Z6cV;++{?B^n zh1>jx@m33;_3e3Eg=X^~|F#OBLG0qYCVVvdzyD(w*2I$!V)C6l?mr(fB9D+f2Y*N45AR1H z0rxfne;JPmU>S$|JfTIr5RixAWzr;_c(RoQxhIx91WTSKZ<7yUOfc!fmR||BG^QMa zlX#Xv%0;%OY`BrKO9ImbW6H{Vi6>9y?L?r!^P`S@wm4J{zB^lBCHO=U!GJh^&gVxW zfWtq*NIEaXGnT>7veM4yJ!5b$sr(!Dc`=TB92Ez+35av)Ts{%Ofo~LifI6Sw@t1ix zQT_!#{M{n)?!AM+`z^RK;2Omh--R$j?cft}YN%C-bDX$|%i~|hAszPyQ-ga40cnVL z1jBpcfXQPzK9a`2Cd~nV$&2xFk3Yhj7zW12O}>)O{M89Q>9Ec z4=KCwl@v*1IZ!UNjwrH>GBrPrzql7KVD9l1Z*jzth#O+_2}B$s5RWSY<8U8kk`p)g z!b5nGCoqUdnxV1xh$fB64_HG>yzr3xcux$m%umX|vc>U*{P~yP5l{}{MG`+v;*r1b zaIwHi9#OD$MmW)2w1!+#u{wA^A`eM@k+KM#(3>)n2Khk@ zJFIp0mANsve}7+@Gw&{W@5>?o-Sx^GUpS*|e$cO)nOEl6QW%b}te9c$c%_9f5HrHj zFP#zLjNNKLw%c9({SU=ShbpeB#=*1s)N7r;)faS2E%d- z#+i{cF$DWm6MPcf=~v!H;(JbH9Je1un<=YDFVI)Fipga77Y0W!>RaM zB`;;gxtS#n3yiyugX8hSQ>#xasH=`on^s%1pxUVl+ouAbR=om0B6MPLdHVMg3!;JG z{)SLdaZ#!N8$w4qv+x^2a~d4yI$O?k?-S#dO2pq{F?(0w3#va|z6qq9fb>fRGjP7w0CTIwWy*I85`F+o#Vp6!g3oAYV%mIJ zPcI|=ij!Hkf%Cl)m>*hPrhFTa@H1fct8$#%@X2>3q|Ns{ya<6pqcs>3<)_>4f~ zO_%Q#z^z64yZA5+l5>5c-!MTp}B0f3jUee{e6M3BgzwtNgI|j;k z#C*Kagbzced{-iE3NV}Txe}k84E9WU??C$EQ*eVYP`)j|bX#1ed@1jFz#OvBaZbW# zAbHP2I*vgYG~Xq_tg^UF`K|<)c3^&i&*S(+29Wm^r1#Yip6{1{xy9l#`SM{!$CY=oFX(sPj48Jqb@9v)WsVkf@ z!Z9|)_o;{Xb8PO5)9>rs)cMZn{2PxEX>rNvYAKwEmr|Dur<)r z4KV+e?l2aoob&y(!QVZinx~hkO}ZKOiJ9tBlCac_r|!l>St2}Cq~$x!mRG@#_9313M==#THoB>o8<2) z?9$J8{YSl8Pg{8yn^&9s#)lRs?JxMQhHB|qH@iLW?eBSSzp$BBa5emUztbDI=a~Dm zeuQ3K{e}!zO_*fP!1>?v&OaN{+rfr}4s16yq`?jpSdPr!zu!*Vb9}-7rsE4rVH=Ck z{D%00Lxq)l&OPYr>CAkDh3XJ9zq&ficlG|apL;L{4sp-92j0(O4fVJ5_MCg5-eBdx zVE4W;l~oHK<~a*{&OHc>?#wL1{Z**~bWKD1g}^=M9>|hT;P4Um+=I)Z&5xs_|F}Pu z^VV|0Z>WaWZ#=B`!hYH_XF_xXulqy?{kg?G$1(5+9=RcX_y6!BS51d-90O-+>%ucN zcwL#PT_2vQG0Du-_8jG4j&h*NhwwX7dk#~@P65QUs*xDgDV2gG1Dm+?#U0_ zC(YT>n3}dVbsep3%^iErg7|kl3*r*g)4iBYZ1p?041Jmpc&~aiK3v*!E=7iZUw%o3 zzd6FABzD`m6zrMKNZT_NaSic`v^`Ui>6zZYGcAU2g7lu_FLv`}ZqM-->L)$ipZ1Z# zy2SI&{k1UOqk&eT;q3W++W+w1r`>b>1%50n_`@=3e^7Y0{QB&k<1gGFgN4oq{>j%p z$6xIEvDQ>`TaWp9ZFRN~pGpns$6EIse*ul{IsRhL@fQ{DFNN;;1<~ff4>s>P{$h9i zGU%S;FaD!{2y)Ny7v66%zJ}Kj_QGeJ^On6E>x{u`AQL2Rg1sB-9E!W~5;xV}jdcoe zXO7M&ws&KlIk>}%V~9V+-i>w23y(egpnb+fDvFMqdhotuN1PNp{)ovF$K}i_o<6Or z^u(hNJ7Dk8l{04?b?E+kjXJsHgd-2xZ^Fnalg8&pM&ypl8#{ilz4w{8-vI|rp0d|I z;|`3B%$c(HsQtzsFmZhD!Fl%*(?k7azV2gTgt>`g*42Ess5RNp8`_v!{*kTR3g}`A@%#gub0SpU;i$ z?7Oe;^+*4__37NLf69$LEcbsJvGu7)?BPfM9J_Dp8G2>ohse61kt-@1x6Ky!$Uo*xo zgNlmUwaJ!s*g49OmXQWwf*PFZqp2mn}bMy)j}Jh%0(vXk!GoU?VubC={E zc=7Cm%Br`%QMUP)vHJo36xm%e`{2?GcJv(7xAP~okk7yNZr_`IlkQ~F&NoNoO)3CE z!RAL}J6MaC92L9&k~t$Tsn6Z{RNlCqeV@1tFmPHnir?>wJ+>|P&zEe7T(T?&rJpkr z;QG-!pUE5dNZ&<7^7hefP0#1nZGAg`?@O!SefQn1o2N~S^wz}gzhg51%wy~Gd0Thp zZGC-K-xZ|kYtPT^>)Ge^ZSDB<;NHY;&d)>azqW10rzbz}BR~5-b&OKJ)%cGaMYm9C z;_S1|*!t7_yT&{6{yqKD416Xz2jI$Yqwo?uYmaxWxYA3Fa;O*jrcusKxSG^+(CkjY zw@D7(Fh>}TPY!-_mNibE$2s(e)15k8PjJq{^+dGt;1K~ILM-#|#orI$34jgL`WZ1_ z)vl;m+R?&RjaOTewC4#WNejduEGPs{Dw#`kI^-onh|C--7ODuEiAF5)rzDdW6 zw7=%z>(-|v208UjzYsMC9)F3w9lIy?>%P}P-S@mtj{;eGw9S6>BMm*Y+gJT}(Eqyc zO)1AN7vdE#xhwYCE*1jBuPxa7!oR%p?z`}tlM>tZfybD%tq68~SDrCybF#!q&>FkR zQBIwAx7@p_CXO%Bn!BsLyB*%$1K!>5yt`+;JN8C~cC2?d#k)JgyR+|+ zgDxW0FhX47D6xjI&ML%@bJpRyw{tD7`#87ax}WnWT=#eWj_bir5qKTq)Zlt(s6nu? z(72eoVXy|Vr1{*2RA&o*K36uWvq5zG4Pt`r@Y*J#D``*gD=kvKrV_59QygRHyfcQ* zLNJVQcycJ-iN^=s-%^eW@{O%8?;B<8`;nawpZ|wW9ivKibE|7F~Ju0PvrVe z-`_!v7Ut1I6PCVT3j=+yh5ZxMuSq#}xe%|!{u#SB_V_Lq0>qEo7WU`^eRuWU7kl{p zr>U&i&e+2{?;q3mD54(VfCcrmGxosFouk|+QMyF!>qbe%NYo@ZN-7UgXt)QWjQ8iV zno;%ln5w_$!pC|>#74kIrd;^gwoyGtZ@nuQQPI8%3>xpt+qp9@cAw4t;Y94dZS}cq z`{OaBO!Q0k)AV68-$h-T2Kr;~?h)_q*WTSL-rYOiT|Vm3&>rC3m3w!!-rZ8~?o97) zlXth(ySv=GyUM$phuqjXu-&jv8|ly;jd8w;>jdXXT=#OG!*yTj9Va=*g7QFTC9VfK zZMYud+=y$`8H2vyaAzs5Q=JuZ{{gvQ)UWUCK`eWIruO)*;^?$}r}Yzf8*@cxDxJ63 z*Ln+fm!sP{1TxXO494Ycv~-MQKgz*lUZ;K0%=ISJf$=81Gv0*dWXN&$5^us3coU5I z@?=0gsqdw8@|HJluOI(BVO#Ibi|x4ZNkr{^*^Y+oAE){x0mEf?_ye;*k;LUrk}(TA z=}9tHp<8BN2jQCQl;FzwL~zu>F)3?^soQ+b9UIV`JlrO zQWU``jCV$1_S6-QGiXgB)@bKcG`qZIeJ?HV8_{>)&ike1?KCZKXWuEgeUH)+qm8*O z9PJyCY;tb9-FZKnG9$dUeLtEzBfR#1KU{*>N~QIW>3f3_;&dO4y%Bq4J4QI$Fu2{m za9ZB>507tn^sZC;9^QuOkW|uk6q1M~y5<1QXTqsV`W_Y(M@bat(ff=`vR>+e-Rz|% z4d|r~6fbp@@luDS@j`tgjF&nsvy)Kn1zPUmj7 zca1o`59sslcz8ZwJRHNnFq)nUF(U2!mWMm}<_)W<24n8LGv-b~@E z6Anr_-(u=jepQ71iQQHF?R}r|DHc# zitA6ffH$e{9`Pr?5r5LRU`pSlGR#J2m*sA&&fUH^@6=`67Zi(8)%P_Py!QLauWtQg zeqV0owh?^`E3puR1u8udvF^VBxfn094R@~Z;HpZltf!20>Tw_T9j79eV-cp_?5n+> z@9P;NW*F^T zR=oA6`P=J@mp3ebcggs^`T{s;lf3n(;}d72%iIrKK9A2NQO)P%?z6ZuA66a*ZzHgD z#P4*xxuM=Kj@UeWnEEYWZT+lOt1Z2?-s)>^c-HC;=qQF!BJYe6a9P2%-kjHxlJ4Kl}3=`ByhG9)8_dx z<_IW<17r`w(Ub%e6F%;8rKFB_PCsZJR$=HF7;?=Y{EgzcODvJdLb^HWkV)x}yFAoV znLqAvmu$b}m-LRiG)wmGA(=-6smuvtguqoplE_)Oiecby;3&&Eh=9)^CLdS7?4;9@ zvIIGimAI1Uc@Mt)K_5-e#DMb~A!!tM9Osy`6>$@glzftsjo+pOV-NOZzJl>2B`=@q zID);P5B8*m=R^{?x{{6-=`BVi9U~Ymsl})>B57GUku4}APiTDX7d7NaDko#jO0xbn2jE!TYuYIf1p_6DbwLek~H&^z*EO%t@FBNwv?DT{7Y%xmG{RMLk^5J=v@#(jG z#Fvz-Zw&i8l(ZFhoH_C=PZPAH~ub1Z}MoBtFFm9dRee6NV(arQ-do#tMq#p*7qj#QH zYJ!%Oe2k>Gx#R-Ubt)K7Qu6YtejKDyl0xU2s-(nAHKCAAnO>0yFdiL0D?I_)#J z_>z`eb2-eRqCK1R}=!7{5l6^th-dHGcL2C0;!QQ(4gdRR!(!v&)y zwHPJoRKdh?~D$VnXG=e&0-v4B>Go@7_E(|NH^MeASjp8 zhG0Bx#6jUxJrtx;+Tge>*b7e$X=9pTv^D}54u6~@1;cS_FuVeps=_-_`W-snSe>YE zsHuye4s4pu8X@$GhH3%#dmNtbJo8hl>sBl;_I{K(9*ZNR`OK**7RUMJ4b>~;OA)@{ zUQ+r!R7}gZrfx-b^@0M@W_^}=c>a}+^-{1#84CuHQ5NUbS?rkw9U$BOOootmY?V^ zG;KvKpSDQgyyUmvbew1KVL+1wu3*QERo&eZVK2w%FZO;5amp()nx5iS@EUcq0g+$2 zbH)o0e=snoC|ss<^UnsR!{X@7(w&969$AoAuzFUBv* zJdE*_V=VfwgYjX=lrM49fGM`Pf#jVB%tnRFB=4obTxD^Y@?D91zXr^xTXBQHIcO$% z7Xq`{;s%oUlfYbKahdYXM?NGopXTPA|6)F#QcKO737_ zCV27-lY1I47khAFdcF~uUl?4J+|9u3@Zdylb8U5^TIvVooOTcYi*AnwV9qtTsPe4`<{A$!tbDfsbBDo&l@E(%>j7YnHroYJ{pCbprW#yW z`C`a#E-))R`31EbHaDTohB12gDV&EMN%!vj^ zxk3G4HPUAQ^PC44)(`#(%qIpHCif;V+JO1t{g!p>13X@ceO~#Uo)mM1lScUM6Y&3u z$e{Vbe_2VpR?ITvUE10kbeoetnVOS-{-ff&A_S zX1hN>Up?4gb^`N`!F9s_FytlL6_8!$e$1dWfU zw_s(D$l&NNpnPv{!FWStaB!*9jO^9#yHzpvXOP@{Fc$#VV6aYoeR9VEcL^}h8XWH~ zh+cf-w4#Nnq2PkY$7jIgKB72W7V4k&0A`@UvA#j$<3glQ0Om;#E^K`4 z0%niFg~_czeqR7{(xV^{sFyIiu^5;pgLB(Me($AHF2=_~#I?Y@oq`M2%QwL6yG^eQ zD_;!k-oOksxG=q}25t&4PkL~ndI4sS!G+0P4aOJ1oV5cPBkYGLdf|G;Gd_AEead67 zy@(8s{(Swa2)uKEx!K^t^mik0zXqoAaptCXx5Dai88AOIxUhQ6M;<=~rppt!zk!&8 z5(d?y2XJ%2uR~;T>fsx29RC*?i~#Y0@zKssvc8uBcelZY)tBns2F#^TYHm4_UvPhU z9GI63F08(^Yp(9xSz zYH+#uKg>RV1k9HP=hVX|m+jW=&+ttU862F?-=&-qV21l~K6`KwaMKNj`7ua8_2Jl` zmjvN_<*Ns78E`KeY*)>%-MVoi8gwE$*QI|20HF{u%uddE0rL_fLs-9B4Mr0%dtOu= z^9!<*J(0foCChpOk--_izIxF9y#>rZI|b(I+2=>x1omOTY&E#ZaS6;mFKd2b^_UO# z{syx`zPo5Wd~!L=eh&V*f7AS;#^n{j++uKHa`^mJ5aL`*+miHO1xQE3DsN z3e1fLr+UWx=G%{r;riQw*@5^xBA#On>@SOedma3f{{aFa6ERF~6)=qk7bdqD*RL{| zpUSsw$5Z{ujlgXMf7rG1_*>G zxr2ZiZ*XC9W5{E=!8FQuaDA5pcM z1OMpVAP}PDo(RlTgA0?3Dc|Cu#=dXCo+EZf34`oGE^sa2dxOp&sr_Ir0N(|!&0wR- z*Yj=s-YFtOSowB=cN{SLyaQhX5f2Ay`F!&)?Z)@P{}m!b7Gh96&P4i)216V}*f<~j zF4m%m44n|gUirrPV@O{O%;fio(x;Te#@kk4o-??x`o@sQPGG(?IO;FR{t?&heLRbd z$iVgqDqkGw=K=G&!9}&lXTaosz}&*yV?KC2fN3_kZ2Yf!PVEPmBKzF*v6^eEpypxPibd z@ZiGw!E#_OG`O((-i7=&0aN}jU=cgp^R%zu_W1o+xvcM-2J>(E4)!~*0lJoyF9GpivtCo{vk z5RoCOzSjbChrxx(tw0|40+ZD#!#W(X6Y3Ns_cY-8fqwxaLzLXBfcde(g~?_6-eoXb zO^m11Nv&rDXiC%?r;0v&-PZOA?n2;7fcb&JMUA(g19QK@MakU`%>H=s+8{)?->1%(biXRWpRjNG`d$Fc z6$Te2_j-eQSHA6ipH#Vjh1`N}8P=PK3{my{5}2-Z@DRe}mV>t+FtZU`5X0(AxtD{# zxVz>T)xNg@bFaZg$$bErZxH+R2$##{XBqfKJ=4pb4@{H6Maex2nBOD5fEZR^ZXM?rdOo8C+Dq`WTojzTgBQtiJQX+ZUJy#0wDRxkcH>OzqE0f%`G|-Fs_(QF4z2 zW{|;!$t_2IqYUOe`3@dOtAM)|{62h403k|lF)-x@7bdqDd7NZ0XUTVV;JiQ^cMbUY z2d0-B1E$#E!sI@S{K|mIJ1E1dMeKr=XwbaS1Gr1UzX_4S=?4Mx!UMo;GdR@?=4l`9 zUgYr-Fqihx{Eox_*r#cCe}?l%1zug5;Oi?9ocw%t{88}M12gqd#YK&`4Z!@s;D`>I zKVnF~6_|$&j&g(M>D5U8D=>3o-tq;nKb8XXU4sjgTY&u50rPziE=Vr@#2*6lxxq#C zzkLpaeL-Xhlgs|s*I?$#cX0n}1+EqRw+%K*?l-{fdw8^5_P^f1>_!}OM0EeF2mf3| z2B-h|{5tlR>w(!~aAEyrJ8*vj=DH%yFRH)%6__^-E=+$F$nQg7Mjwf}5RuQD1hpIW z*8=`-M20B+eFaSZQHl$b%XaH!FcaiED^M=i$@9Q})?lOLz7EXC1{Wr`9Ql0%%*ehO z))|Ol^WZYz&I12UM20B2Ujoy$U;6s)XE5XCJ6O+)A*%-bCk!@9?yJCjU~pmerJg@G zn4^y-Dp)S(qlw_(Etu%~ZUg2o1{Wrm{c0C5#m8h=(-6b-{9WMc!G9BxA*#M#0@L+a z#f8b;gFN;#nC$*U?HkyyxE*yW_%n}7FLxm@%MC6}F7>?HVD6IdU_IXk+|%GUAD>?C zg}_{8aA9)Gk>5=QvrE2n0_#gZC+h_Gv4{*&dOjPNOAIbdZVY)`1)CL3|q|LR5Vx19Pgug~?qFMh!6k zDAD}(L!MIKfOY7v@lxs?hzwEo{taOA1}RR<*M8soM&xk_F!vc;l)e89nB2jdA3uZq z1JO;|k>QFfg-+X?{`lxEz?94UXubdeFYy z3Cx#>*=6hp!To+Ca7Tmx8$^bve(*RjFBx2z+ydnBy1{%b-x-1Z?}xyB0saq$rX?)cw_Gz<&pkAq!FMQ0jhN4Cy^bDF&p3p!*;F z!6^Z*%3#^=gYJLagY|_W`hf>?_Ie5Az+$EXIR%F@;xO%_J!-2 z&EP+d$PhIycLS3@MsZ=|au4!|0aGwmaZ%%P3NU9FTv$C~$ZsJq7aAPp2F(lSA^lol z4jAVxU$Fj;1Lj173zNGVjETT(AFugE+2fxx_tSUfcYy8;=e z|E1ak-k%)|zBh9&pUv5!QjHm7ejup8H_DEtbH@5WmqGoYZ;^D zRsb{K;G*O%0p?=F8xb?nazS!AZ`}p{^osOyYk+AnxG1^j0CNN4uMnf;J`DbX8R_LN z2j)V93zJ)cdTcV7UGkk9Sl{b_E0~#K-HFH$rRN8MdB)(v8ANgGf%o~V@pF*$G z=-Iap;5=Ol{scq@$4>grchU~k8jJw(5#*N?A-x{BO$HlgPag*EHeeQ=s&b?3>8-%r zV{l>hZ9;zc19RMI80(0gL+Z=Qx6~RN#Je( zrf#0*SAzd#zu1Rkev9VgJ|ZGRRDNrKnO^P7&!=blu~Ta@tW}5%Y>yy6miK$E2Bx`I zaV&@UB{~mIz`qg-@c9rh&l?=kLH-MIFB{Ce@@>z*srNtT0{1WQC&yK;);HMyI}?~? z1{WoFg~41T-@$TgAa^79dki*8Zq~vKs}PYPO70;BbG&>9%Uy^(O2NO@V58*z0+cC`d|+^4 za#w@#IWVifqxnVcuZ?cbux24LM2(MTV6HMar+t0vl;0zdJAkQe(fp#u$4$W8WpG3X z>2EdCe-BJq0&51uTxcd}oO8as3jDhe8Jzjj*AF-!y#P#Bt6Sfoevk+D;lT7?uDGcA z=xksvF*u@w>QM~FRlsapkztjt#Qg*8Bn8!j_UZ!guS8^sYLB~t`HR7YwFe%Bu-*pd zxmB89RD0}m7Wy+H13!c6F(2uDfw{=w9DCsF2fRQ1J7AW5SM!VN&*uYkxxt0WU5)&% z1LmN!H9wvQ4$>d{K{YVnHMppLa4Rs+7##H+)DNCU`g_3q;T)A4)epL!i}E2dgwdza1`MJS`^=JCyTY=eff#w(0pT7boe~se8>cRP_m%$t*-x=B- zzW#hRaQ(r*-C(2o^L@ZPX>eh3HzB{j0JCr{_D~U{)&b9g|286n(+>jX-yZ8StOF4l z9R2xlTn8Kv%ohgdtOEk<Z?ncG&GfaOy4CZk84%Xj;xV|6wZyIb=fBq7fu9rs3rMcJ- znD1YPd!3sy@LsuYW*nvZYez%wW#Df{WYBs9pI3eem{$zW>CZktk@@`#n1e1)pWl(d zj5atYKVQ4iPnr!(ox!nvWnKvIi!TS}*9PazgTC>`_IwkV4-76$F8h6_D>AH}hzt(S zS6}+OeGNu{_(1vEtpiGtJ_5KVgLUfRvul+QcMUM_d{5;@`MWEw#JrElz|Wxm7eo5x z!2HVKSPz-sd~(+#{ZU}1eqZy``Ua2RYGA%&aA9&Qkl%NKdBWhFdB!Jq32<)#Q+ZW- zxr=~VVQ^t`*>2|>%;oYOJl?q9c{TWlU7cR;AYjHDT$J4D22&;9!E$-uIS&563^q#7 zIoD)Zy$~6qzy$H;(A87fU@#bq^`khOG zIrLh^MaeAzW~{-5$z6^7rULVn!A1F^9?R+UZCIkLtvI&ulYsI z3-<%_l);77gZ=cc2J@zT2e;dIfO`-8c{ixsDE&19bAiD{$-Ts2u9xp%xjYYi3-|}! zm|pG)z>G4uD7ljj=2ZC(mfH-uRp38ouu=8>CorEFT$tR|V6*{q-c4E$&L=_seNUuM zyg9=<4UxgISHAhE2)vcRTyJn%zV`c4w*Yq+Ff(t_{G$BgOM$u3;D`>g;{{;c4$S6T z;oskebEvQgLG|E%(@EejL}YOKy>H%{0N$krBS3tFJy-rG;(nz0g^dqB?{Ww*e=)eI z@p06TGpxag4EzkLZ!yyirb)hY0_Uwwz+DM`(N8qLsQxk(m`Mf~C3mL5Tp-`Ua%snZ z41US&>E%uYX0E}7$*n+s)duq``3{!*0&sr@|K~qVFLx_2&ly~p+||f$CoreqkzuVt z%)(z#zv4c~b>ROTks)e)JORuH1{XFyo?;$%;`}ZmL)7@l{~697ATos2gZA_&gBdK} zW_UqH`@3{mPq9J-}Zl7~3BY_D_ER%ufw2Oztj7x(Ar={R+?2-5q_7>>%)mATos6)4||X8H@n& z5ws5Ae&_dr+iI|3_Vi`oUIpe4_o&=_$uGFRCHKN_LSzW5?@i!M1?D}({eI1UYV3<| z9mR1z4E&Q38KU}W9WWaWF07wUM>aPDv*$OOUsONs|681EL1f@((7eEYIsuqD9$e6R z<}~2u1M_=>i|VIO1M`X}zaY6y$Zt0=r){#(i48DE%D@%vgg9)88J*oeRvw`!&BP{jCA!dj=O)j~Md1 z0hs#@E=+$sFZCQSO%JGCEno2XT?@>W1{WrmdcF~uUwCjq?Un#;Gcf%hOfR<_mMt(= z^R~f-$-N2reGJT%kKo=jV$^us1^&Mf8KU%8@F?z;Au@#NZvxnpfVp&=;-d8TI5006 z9MM5`w;1WK8%*JLqOt<*742ky@c$|pyL`dp?HypgG`J|a**mljgXB9{F4sL%!Own7 zu~F@I05C@zT$J1rgQ=14V7Y&Q-0y-v`0?~|PXgvNgA0?p8jM}WZ-8| zzltHf1ei*Lqud~S%6-vAzg79FFWm2J z2LBy{jp_$&z;t^-%NHg00E0PNzJuld2y#yV|4#-RC3iP4pBY?~+{_oXY(3;VSndxX zw>S8|GT11&j{@^&gA0>ejQm~&rrS%fMTlYNs{RDrq2Pan$PgvB^G-a=iO3KpHwNBe zz>G#b88J-m1HjDyzuU{{~*|vfAPKL{?GJs2Lm&~ z;KJm_kY9ztG|6{npq{@E+}YrFeB(=Gu30=KDRKyUy2k^X*U4zFYFF(qCJ21c0=Sdy{?i1jC`$>Ae zJORv3gA3EkYUt&kz{Eep8su}FYe0>I^fDB3ZwCKGL-bi230UXPHSqE^mlh*~|eD%E^xCend{VT06-;XT%^Vw4z{j;*ahCTg8acrM3 zyLNjU?#ClC@H1$f$B_OIFs~UL^`!kJwVz&t^iP4g)FQ%ekKplp3ov&ZT$o(W`}YBp zpP~6V^Ng>)X90H%Ft-^T(P8!749pIL3zNGEjOT$_&`ITTzewuqv*VJUm1&hAGC1Y) zwHw=a1~9D#r{!yZ-r{cHHUKj`Tl0&W2Uh@dk->%4qa68N4$O0iA0S5A=Zu_8s|zAS zSov0icQ7zFq~L4A=h+n6Ewg1&ufEzjWU>)4Cs#AxiFZ!2I3dqU62V&vBqnBfNJt4Ag4#xMYJIxwr#;HrVU5|~fY;06NMr90#zGK9%3 z0dG1m7o@?(fx8NrFVo;yk8V9Ot#U+$Fu5$>EMP87gR24VT426TgX<4m_nw*7iHHng za*qRV1~BKQ!JP`+6~Mfc1~&<~Heejyo?*!(PG`K5)>v90*1w;mZdhCHSemTy61m;5a@$0p_R!qw_lfxH4es z(%>lf9AJK)23G~#R$yWW19D^wjZ{hsP*)6yEpBFm!C$87+x;)3WM@x@s@gTysWE z^Qxvqu{DhNz1V3jTaoE(ln&!rq#)XMk zznMqJrZ*+(merkA*RUuywsBcgU46V64=q`p3wG}hxP&eX>JnpGYnH|nOphPwq_%Hs-dZ|rF>M;g6fvKnyQvWGYVKfZuY36n#I-4Rf*>6xfs@Ddu`&yO!QBh1=ak8_W=$DiHGbN-$)l%LO`kb# z{LBLkHv>&Jd14ByeT9Y;0R3Ti=GD1sT4P;9UE)}jyR+oZ)I;1VE)u;=t6mnLQ(fO0 zuc)qTZdnR&7pIc*w31b0%SR0uHL7YF)QCF%XZ0OBx?;?@Q%)-{9XDn;ggx#EJKinX znAU|0n)IF@_E>X+0A0=4Eva#Mz}~ z2E#=SV_8HOs^#X+SbRlD);~A~-*7)JzeF)w`0lc!Zxz+Vc3S$0Cv`EE7`D}k z*5>$}cyrytIt(|cenMS6YFGmF*N5QHLWj_0WfSVF7qv{rMW5rMF&(@pSbjAuR&5Mf zEkT!l6yBD_ym6e?wUp1?-v2t-^ zb7By#$i)?&AscjssT?kx5^q?PSiA_AO*+c5=DUI>)UAxyR-(I%woT*Qy2RqKm?auo zn?|%Y&eGoT{1e@3hu6LthOEHslOUFrJ32jMp!m6>mvQKue?ZabVqxrtaaEV0vZM z_~z!u=7Yfc9R0e`WlgC*YgI*S0;MVi^J*}UbD2&xLp3vUHma1Ah-X^DGxXx;4=#gQOn4#Z!jK4Na|yneipC>#2<32@5^(U}QcAh3VyH zKE0{>JFRgQ&c5&iuswZYQgzE>WljLI5-J+yUc1*S!W=b{cDMl*^w?ql$UGE~zoEPK zc15M?dLRIw0dQ;>psY-sh*_8_rq;D!!me3-EUvlkAj>LpuTeeK$6LHDTUpnzbmWl$ z9}i7<{1epz#zkcl#_FVaeN()dQ_c~XWU^~lG&a{3;lCP;--A68;9)II^&8j*=bZj{!828naV&g~hIoBtYf}@Zk}_Nx!=)wZFCD|C74wZz zIK82M)rq*aA8I(*f32^B1s7VJk89Cto`xUY++4ki{gItw7)+msSJAqlzODu{2yOdt z6xn0j=fcsabzzChQcJWf&Q`2yN;G>6NkoZ0PAw75o^*k^$ogEAsKTvmWxPgok~;r+ zX2}jr9kG!;O~(1m4$hZkNtiNZ+Y1OXuS+&N*WI6(z z#pAWC!g!R?Q-v|(XTmZx*2Xco_XoQRYFOZ@g4B&-%VDfMVyAM})R9MP@b^?}&~898 z>jRO4Cu_ZUG#J}Zq%v2gXH0fz)~P@iMR3a}fBP(ahJa@9(jenZmqdyu9y{B1B=qHJ z+mwon?l|SmK?OZi-ss9{1Ew$FtV+ji9)_03ar5RdG2Rew<|>FPUWu0V7+f=@jl;do z39@43UX5oEdLvt(O&JUknJ3rEv;JUG+mx^5|-2ycSMq4RpZeB-dM6oC%M{ zKcB!?INYs<JOmBk(J`jOshE?i7sW@{)U+;Zm6awnb1DX* zM>AvTV$nv3opju^p+F8pF$cK9$F{a48keaLg-NifdXcQdJSI?P{qN(-^HJR(AFk zwYcJG=;%zhrcN_Eiu8I#?X9Ax;vo$&lA8u+qiy$hrI>QeY;0|)ZQ%%Agf{hz(Duzq z>oy;mc&yvB#>Cjhrd6EcIQ#97{_2_i#@07BkTnFX#V|a@uJrK@t;=RL(nlH*2k9~B zlsmn-7Hjz8ku26lP>!cqUJuPRtJ5+5JY!z`Jgiw@%oW3Fn>%Tq!Q{xHvELtc_ZWK! z8Q)N&ZXnmRpQA}r*R&4XY0!##j3M4x)io`1eFdfRb;}WkZkoPY9_h!g@uS+-N*>j#p-90@Ay+fOl%l&uIH9X6G z@Ki~atFY<4jGJ#$#~N3WA=b`le?#+I>z-hm$I>7Zi0PibtX z3Fe+m<+tCH>3B(~B2HJLqLP6$GBZ&ukCB<)nt)?3OD2Nh)+uSd{mM0yL4qK!S?LPc}ka@c!#{Enp_0n{`U zY>?Y-f&M+ZNBaqNBnz60Em}`OWf@!5+JLntO~v&nsK*F$l%*Dv6HgwR%QNv{vtls} zAa^?BwJdDvbkDwc#Q$Jl+?zp0f97jU5FUTVRWj@UOSFKe{?3xiX#fsW-tzGb(=qmK zpJTwg2pJsVHjZ%^IXP*fJss2JPQq~am|S)Cd`m|)&?5;y1xob5qYMgnKJJH&^Xz<} zN5}}*Swjn>wu64w(*S$?tW>bGQ$Y=FMCCmiqU)SmGrD&>p#_h7=j{}ZCfSvL2(g~7 z9JNiB>gkW<0F|2+xGjgRe*VkjML7#`KddToBK}PtfQ313e3g~e;hqu3+k)1GRdsNm z=)aGU4PD`S?vzO?HqGcq^g?#U0?>PFjhadHg`B_^W5;Re-do zlnfe|W1G0XaYa>}`?fTs7lYSJcvV#mjSW@Ji9}r$?qR|q=N`yE@aoNh9@$RCql`bI8jzZijD+a&^Ip!$&{j7sCUsqfg2dVXCLmq=pWcFFdRbZ3)asU{+#$Rh zx;#cMtD03;y9&2BM!1>y8!RRpVB??=?d@>Sn|P;EN+hT2#M*=Wd&`B5GWDml{R{wBBIlC?fWlQRiksGw zl)bhpF>#!K2AMI*AV@`0?AXZOkbNXn-Ccm(4MIyhm~QYL0wQ{9qa>O&}xrebVJDY*=M3aMsX znN*Z;LPIroIH~*{;H&cOtH7V!*dhR#W}zu1qE*m5uBvfiRdaR2B3ZoN;G1+zAB!HZqmbqOxX?T4bm&6cxN@iT3v`TqrDZvT zj-V-GQQv_b)1u;j0M?yq$hcH}6;t=|azQn2R{6Gswv!aPjJau2>Y)ihoi(CZt>d#_Q&g-UWy^Mj3)Yx{sXdEUf3&ti(^ zrYiaEt-4&L$*u*I#MsE0$m|qkcCr*#XNqr~8EtrTd|@N<{2f|ovE*snywnEL;sja0 zARG%D(o``x3k49!uGd996?8qC-6tKh`(F`5gMs5Z#$aF@%Ij6pZRiiCx(&^(SjfPk zl=+$mRytuQcNJ~$D$X?v*jBI%b@<8Pr@oxOsL{a&|L9kQH(EODO4aZOBz z+snNCJv#Mrbc-g4dIOyR&Hq0w%Jh8Njo+gkbRLsN!;vVua%Uh_T{$t++BK-&R!6-Y zC~zG;gE&ax(l}Bf@1P)!8plRXL6#fgu#NZB8S|GqY^fS*Zzxjv$c<~!&FDBsNN%aF zhGTh+Y;FsD2}`n{VC!_>xT@M53E~h%ueOIM&W7>O(`Y0esg*H)Y-$nuOKmxg(5Bo0 zRk=2Ws`8;Fry!*T;k@cg<%=SxLf~OghQyDR{JucD&8E zUNV+y@AKz+sSl>MDW2kf>&)yaopX0rbX=Xg>*e&5_S{l%9ze%9PQ-21(j_L*-dl zgW}QTuGV#i%CqhO#it^>TE8$<9{zI!`Y7HN0A*MsgxXEkTm0B00fn%z31t<^JLZlR z>KKcS;|4oNe(!*mO~@)5KX7O!-$Z}}%IRwHxh+z9g?$|oB#_hDnsM>CqE5Fkp=8Ug zEZD8N{9wgSeHdlR0YPo#;I~<9iq=Qdu=ivrmKtkKUs-Vv!(yE<`u$}swadyYwXCGH zl=gLcwd$m^wHSO$R3=5^V{TRnVvcC5Kd8cXC16Du*eX744Y5l=J!=U_X$kD>kRXAa z&ep|Lf^}EM+8wRaE`BcW*_)}cbz9bBmli*Hc<{xO+SWdn$Y1?=TcYzfkFB57_DuFLo^8vat~YH$r;&b^W5HG!&0^X$Y3zZeh=tZjhdarkW;&F= z6;20-;WR{_4hGpepdM8Rq*Mp?bx4pvPG@ZZU!NTdj`rCKq5LJV`yRhjOHfi`mw+Qe zOF&Amu&+ac1adlCza#A{0f&h8gL+Vf7E9E=Kic^Pl%v=#2d~s}kP0pbIl=vLE;!$= zKb8!%OF$iJ2}o%P?0$j-3FM^H#5`cykBA5z46sYUT4)JK1?zyE&X&HyO?$81gX7@P zZn&Wuq}shIq2}UwIhV_PH1Mhn8BFrO=lnqXyWeGH=eAG8Pmve2Ve;-_WhEBZwb=Ec zCbT}Jv_7^>k%SL&I$O!D+autI7f~;H?NOmqkvBZ9eSc=fpkYQ30HyZ(G-pk=qQ zm|n5HYmk~FcJ~6I_Q$8DaiYBnvCujUpO+!#SV!TrzoZ?HPrYI_C=K}C0}z?kKzw$> ze4pCmX-gT%ozILkcy7whS{!%oWZBwS4U}qwlxoAy2?-Kb<1^SYXbIVqe~P$QmSM16 z0@hqhKuSxXpZM1Va?tgbSf=xBpCB{eb{RwFA9TP}^^2!*KdvkkPvaI)IpV$0H_WlH zV6m!#Qu7sP{p7Y3dLc+L~uhvtq_VcZ7vj>W0iy2 zPpEOAP7rDmsKbSt0&1yHoRQ`UH4D^gp-us{QK&OOT`SalP(Kl>7Sz2$Ee5q!D4MO^ zLN$T9PRf!1b-Pe2LH$~&vq4=hwOkGAMxoY%YLObP2lXqVE&;Vgs7;`r66#7&FAH@I zsCR_A9@J#f{Y{{bhc(TyZUYq;>UL142=y~i%|hJ;stjFPdNpVbI=`U;mQv$< zv)CK1;yo^gQ{MEGm!~bFCaiJ-p$JqDg8|clx`na zRLmY=c(aOPlEX|ODl)+AM_D3WKGuAe(QO^gIm-g>o^OUkq)LrRom@ zhOTvqrql`Gd?Va4e13^oXidcD7edh-a%-Z{s>bJMh&k3d4wVG;iKJbN&yR)r4L&~- ziu(DNP*36W1EHShCrVIg{S}nT;C1f^my+HVss}J{3Uvf1O`8l#WyC?Lj0R9D<7`kW z<9tvm;|fq(OHR&exbO-%P@OCq^(^Zz_{_0h$7g5jLZG{V(s2B!(Q}*~r1Ek}dzKKmSwDfOS@#xuZ&((y_C2)s z?F2~sNZF607NMuqz(V{PF-MjM+{n^teuq%WsaxIxVQrlHNSj!JjZ^<*6aJLV1PYpY zo`&kE^Yj}2%fZv|mbFW$L-DC;{hTy9r=6sH13__4!lGGDzAkF6ZdzPd6RWl#ziWx% zL~X3Lu7$^@YGc(4acC#j)VLzvd|Yc&tUA_$M;&7cxc4#MRE^it8+OA>Al0|&0ZpVf zJy9(B0a6flfEN&RI#`eexIu=3;k27u8mBB;Xgndt$Ho0+f)HzqNTPJt=Xy?hgxw** zl7Pac1iL|F+21<=7X$|8`#PdF?LUMn#OL3I>VwZ$g(|}5D?%0HGfVW)-NFlnG;}VS zGH~F~A%of_4Jh#^4IVh4UDB}Pc1Z)ZxB^jjl3? zNab1k18!FGL0L517YRxiKo>c>iZP?XX zWT-sr3Q#nJU1c>$Di81Y!h1_3ZHuAuESkADB<+ue%9A1ZuB4GeN?ihKy8!>;7h~B) zB>#>%JsdY)r{_$c!*+<|s{60gk7V8whS-L)tjyM|c}zLI>oXqNn0AVCeO`nhb$v)_ zJy{wCd)-cs)KeXrnuA@`+;_UTd#DpcLE9&AX0WzT;5f39 zPtQ{Wsq1)-$U~u*9E%k$MJ$x*Y8R+f>vNEx*pt*U&G2dOBya$+_&v?lp68L*cG^4F zm%^Uy(U`r8X1l3&NU3%xMT0u-s$-X&kiTYI!G?+X8>pn{No)9{Et$#P!(VA#I{fYAp5-|vgD1@Q*xX|u9li~a zJ?lPQUXnaH>)36b-m2JGc>GM`dM20Vu6ZQ?*!Po9EU{c~w9D+IorC$_-dO~1f9rer z9{%?7sl(rDot&JIHT|9j+`V^T@Cc5vxm1$Z%crZo!<5SV|>7tiX~hR~A?^WKD%Zgf3W= z>{WsFTK|d}$*1iVV%y9@cFuXuTC2}P`Ph+WcRU%Ag1aNtb&_z81$Apzw%#mI+VEq+ zfisDiVNJnjCcNm^#Xoj?0&8?SaD}o?nI?Jdi!|*C`czzpJH$k}oE>7iQ2q{4T3qT+ zDj71!Z=dJkdKQ{R9u#PwokusZkv`deSqZyE0!R6I5?{;BelgJXqxLoZq8Le?md01H zpX5SDD`JkGL10oo{!K8cSsn?ryAB&cyACPsI;^jD9a7qLsC4Z*q_pd>Mx7BmiDz$F z%lm4S4W?kZ z$#Xh9bQa2`96H>8;BHFFqNk*Ekl&V;lnxwP>FXZep)|=%v zM^7@j7Hk>5ySPb;yv?Awxy$kRcU3WXS2*klE_fiQVxyWO}(n=DPo2$T;VZ zc-qH#vCg*{M8P?+1+v=@D|R#;R-}T56*-;F#;Mswwf9ex8Ef8cnwz|@XgxGBx2>W8 z`=smWTqiFnT8kviSmWkYB)hlG%uViDl82dV#M~L%*A`s@9)nC^$wKw*naqMbb@3%G5QAVy6@pSIhw8E-*R?cFiNj6-zQ8VLp=ABRNZwF&CbK ze=K3;gT-QXQ6E*(`k1s_Pg;MI*4dLb!lW5L7o|N#iZT-t=2HUr6svWbhlw{)NAhQ+b>%Cc3XWsXQq3JU9w5p!6N_@v_9hZ?Ic|4NO)K%nL%wa z=9_7k3pW>3QYcR9Pb2Dm!yQ6-wiNHRw-j%)i7Rbltxf#N=Q*KR)LU7de-9R z#ubwnnxX29Bv+*DAeIao>e(N)lZNrmN+)wR zi%#aGba#=>qPvTvba#6L3bBP($ivwj4M z2Cb`{+8~uDd;T{`+I!%V%Co)#b+e>#c#+aBIU3ZV;AL9+%3tOX;)kZ&b!pUHm#Nl< z*;yNA=WdwoZo9l_wp|{^p2`cu-*0Uk{*q_gy-+ znX>KjO7f{CmPx|KN0-W^$zh3wQzeGBw@Kc*615xt61HAm4B2|I#e272#>>{rRM~o& z-G1w3?2-&eC`xcl>ekCSS;;4oTT^ykre;a|IDtnHm zarZ-U{Xl7c!$2u_zQb(VU9->avS&oUY%l)a2<|E^j_cRXk@{wCaH-{@>Q8^Q!5t@#Ljvn%;Sbs)Qg}sBfo9L=D<>aKhSoj9o^DY+Xuqbyf zsIP^)7L;0-?>lMSBmNjMM-CLIW#S&OTEF)}eIeKW8`S4QW#RKvp}O!BvC!IuPrMKV zv6DqdG|QsH+1Z+g&upC2W&U=cmyQ=%dEWo`?R@mtr3}51?Jcqju-!*n4u{5@f?;=6 zubf?U2VzdZjsDF@*W3E3F840M_rxcE07%yzuotMcH{i$Hz@yA?S2_c1b*0}HG@klt z_X3#~VkO)HiGPU#dHiZSX)vu;98!$cvR%#?DoazO&sNcv*=7s2OcU*WSlTDE zHEa8!98Wr_kkUzo`qD{-l=`96ruw0z@~l&l6-Pr?i;Hwpc@{_8za;GkhRU;U2lbJp z{mf8m`>48ZNa@MB;Cy@r?AwuTNOx|^rkvwtYZjml3oY|wJ@_BL$c@iT%Rf2W z{g&M6z3`#IGdTyo>#?lNyv2v-qp9+#xYoBJOW|tFNoj>_akdq985xs?8^GGgSiNcak*X=yFPqK6J8M`lReIvK)o|9YO zMFuhGvjEdv;SBp>gWTbdu6QzuyRx_s+3BIvk%>>Gy!UY&N>V6y?E4GF-g~T2N8?kM z~78WHBCZNvGI)W8E(^fUizM< zY3AakZY2YKZDZeUIUKom!fz+=e~xqgzj`Id{b#t-SPDNRcUkpHzK5`dx6r>biJh5< z-v=o`8ix@t%x>nZDC{PsDzr&SX_K-t_y@7ObZ~OuH?k||qgS^j@=S-G-ufy0KR)z< zFpQVTbs2K*E>q5{b+Y{X>s+=IO4D5Fs>-v!9-^vob$I@xxmGIaQ&c|chyE+RSVn_g zH2GZ1BX16~D*PE$n zf79)mU4B(n(abo0l%!#Ht=y}RA(5rhRwbpa%CcbIMchY5H#s4jH#jYh6V{z7XV2w1 zZ?~CCcABHrG~;GH0Wx(RaTLr2*AdUn@hl`#&sopYgVx@a#1yO~)?+1+vYId(IpS=A zQIO26sN_Lxdnw_Z7Y|rUoG!*m&Hyx{roo#doW#B(+>=4+GJ-CSrmX?>F=CE9RIa_@ zNBCct5p=C}8L<_VE+goW>oVexpmZ6r2>Az{!ASysH!NxEtVbH^h~>NZ)iFk6}WXYk60)( z@j6`NE>W3RShz%xtgm~3nf5^!c9g9*f9U7tAa}eZR4DdMI)3`l80XX+?A)Y!uSC=C z(B4+Lt$0iaTG90LfToEdGfu5)>)8mKF!^4uWY2&zza z3`+4|p)455)w83T7WXM>7LaVJ8HhEml16nvN%Qd%EIbK|hhl@Dj`eivs8g2g0;)|? zs!f)P0lyzFK0Y~74}keky>`~irDmR{Kehw4k_WQkr-ZaU^{J&LrKPo{8KKf5!B4NM z+eLkAyX?g~2Aua|(4Er~kkS(9r!611*}w^%Vs(+!Zw{77I;7XVhm}&{@_lAI-SCBX zGD~*KT$?kyQjWXzXXb4crI=&;V~+i(z8&IR33A$5C zu`eMq0e19o<&Wh$n$MpJ<<0;)BMlww*>W*S155l1mOF5L43TBMOneX!DZkOs{vFC? zWwY>}F?n6Gyfb|j`|o+UIB55|wr&xgbeW9bPjc7Y`I@Nr`ME~ljY{*kS#p$N&r56| zotH@Iyu@njyhKXx53m{Z{s1ZMpsW}>f2I{HWR1uP*@`~@-PHh?&FDVKONy?=Pt>kH&);t&-^UeYe^nD>RQ18Vqv42XIo;r#ls_=Ll-lhXIgH@x1N8IBy1MX zs^Gbpdy$^Gn(P}eRA(*zv5$?O|Hviy&oS*#is{N-K>Z2-dbgrSAWhG$%y+0Ip#CVhm7tyl zRVYvAJtJwGkoHUI#bBt2|UsdP#9YSr~nBe%5$!FtK=jeuWn8P{V;T-sQ zM8WRpWwx(LX57wFid&{i9pO;4VwyI{p~^u0HIqde1xm*|32$HpcnCy`eV?F>`zl{} zu#6*$9y02pOTV>b*a{!F}j3mx`r(M9P#8>S3Wcz8(^an*m#eDgw1d zDC*%sp@xEbK`5WC8dTiw@vPFJL)&d(4;|`1i2;=VBnFb&x!ps(&ag3sLxxuQ+><=? zTUOv-h*!9#(DU|Swv%KN{6g1wa(|LaZbfwVCz-&( zsm73$8bj(;jUg#@(y4WI(n;z03bu)!uOOx8E7)RszJipVuV8!X`3h2czJjf-=PO9* z`3eq3Jzqg8Pac+iRMOr@NlE2d9J<>ijb17#HOy2qM@fb_)tDE-3Gp9zz5-9Q;DMF` zvq~O^qw$HNete{5FAi5M{hv8pVQ=1S7pE+_{r{(f75)>9FgVtGXo+Bd=x}g9M$ECs z<5RZ=7J}0A6%C;Dd!oM!l$0Epbb?VH%;`Jvll_>X$d+>y8ZBp zlhy-yDef>(njiDhD^7K|i$Uo$!AS)ZK)NSd_DEHEyJqj4u6O0S0$lc?Q0@>HvoZ*W zzWhnW0|)va7i~syIc1!Q@2Rw&8a$7SI?rt5M-uI~z|+f`2(<5R8Gl}}i@fiZzY@gF zV$M*bP{s`B$xpVd+741`J6IL99i-HeqW090BBkS%g{A$;H21a0!F{dKU#;2tRokZ9 zz`-et++;=8#z|RihnH;8+gp6oj0StdoE7ebduyo+XM4+<+y`8v>v`hR{tYqzX^4sO z#MJ7Q{NX_T>9etT8bfYx-Rl}tdjpuI(RBMOn#=nQaw)bmdm;R4!Al>(uThsjW2T zy4|gi=O$@bh4^lEeYrl{$Wxj9%#{3RG+Q2iElYplx22aEY6(c{+T{L5n_WwmRclEq zwMj9CB#dICEi>^u_rAn|1YuAdLjy<_M8_146xqGTR z8a+?$dPZZqH?DbXZPcF9f#|VXLsD8p?vOFqPi~VVHT++Ea+|us+n9YFPUKBGO| z)sW|vL>>*D>(IWr$8KH9(7Kb-x>JG%-JK*yx_GV(g{Bl$!erYh?GQOeK*Spz|IidN-t$olW241^<%<^hYNoh^(654~A9Mp7NQP!Gw zW66r#b72`Po%cmM1=A!?8!UFMfk%zL$9~ek?_eIXF&?U|pjJrmzo&AIV>L->J^fab zoQRcS)cX$hVsZF?C-1Rd!ug}Hw;rGyT0g``@XD|+xc}{w_cw~PUC3EI?>(S&W%!ko zb^!W@;=)eeE4L9iT^Xib6W$_X-8CU(IpJ#I(K6{FQO72xc>}_AavdG;TZM8Bjjk7m z4IJ!GDjhs{iEk=gg-UR6@KpYh?x~`2>8+iA5@`SX@ic0OAx|@A?GtlHAjx-HpPfJ# zk)(7H$@=Lcl9VnYIV0#Il9Uc@)_~fxPwSKOzwHqDZ`_?E4|-7!FFE zhtZ(adEhHPHQ3Grhi|r=$I5DVmW^9IoMVak+I7G@XW7!sv6x*w8@4iy4sO2(iljju zm|1zskCPyuUdUb$UsTr+a0ZwwH4e4}V%{?SMQ%8N^z7KcF~oMB9hIVuMM@7f+#_jc z0!}K=st0wiq%|2z8OnceI9*bNlJIRCFU5UZ~ZL`oHJS1()r7kOo^Z#3BM;WIrtdiXM24fg249ZNLB5%|o)@$uA+A&x(e9%4GV4N#Ka zW*ZOH-Hvc)2s4HT`p@u>RqY}?XuxYlEVI8n@y-gd% zP^5io8kgY_uSDG0e+g+P z#?ql3XvS}~S;oq1W0A^}m;JmaX?4&EsXS{XsP`r9Y(oVPH0IE;MIs+=@@}e~;j?7k zMdB5%pETIDWT_8@rC%eiM=l*$BfbNt(WnEIR@1*mB<6qHk(};R&`D?r6hmGIcDbt{ z&rgi|6?ATD0{fFkC$<~OhSB24J!vxub37 zht?BF5XO}B%|Zi8D& z`?g&n{}s$b-&rsTT_Sf$1}5ck@;J=lQgv7tr2@T_AWd*AxFU0yjy675Ni${9H&D_ z^e_c}WC5Q_?mvTrX&he%ROq}7h`YK=IG%EMQy9Gbe$ZHd99Yc9NyP%3#uAf&Z&4h+ zbBUAJ74-+Ae==t=6L5elf5uE1kH!4It>SFR>5aVl*@w3{yZUe3`<^B)hY;@(F4_y- z|2Q4g{fLFuckww&aBDz~5b8=$-4Ju+cjWX6{&t1#4Q9w9P)|4J%IU^z>motliBIfm zPu<1a_r5cZb8)?%aU3f$xL?f<=$c4LKv&XZ=)C2Zy7f%{|1V*X)R8K4kC*HFvFWsx z2$y!!{Y{dAl1Ag3gD#=R%LhnW3~B%On34ZUGbJB|~|br@wsZ}7lDo_FhL z(ttsO{8n)*+Lw3SIeMP@53QnevliuXpPJ_82<=QOVh(=z9rGuFyHL+-@wiDB`IYj@ zx&}Plp@WZxLwEN`>FypYtGj!oba#(NL3j5^si9?cC@j;wzLK1d`JQSby5rhX#OPlk zxd!Dn!E-}*G=Gns6-n=QZa@Yda63z-hD8uXN^9tMJIRT9NWg#Fl?zM;nzyUndU$TT zdg^hmLvsT3l-i!`s5PDJNNEXe2_gm``qSF+5I-u%$?o&AE$Ni>^|kc zGP^r|HqV9gdA|blDqnVU3qAmMD{PlLYL=(NsIzewP)(@gx0&59!L>TOKj`GgU!h7j zyWayu`q{ljO6AV(9kr#6avkTygsE2-R+oXVhaOxyz_ZV#NhJeH{hjbJz-dca)@T3I zP8e)V*)?rr+PMi`H?1{gL#Z_-rPh?yRclI0ttlHpttlz(*sPG(nv&y;Xc^PfC?U;S9EKPmZIc z+rU`2CHZusAlb`Z2G46-a7r>~UfcW;&gz!GwPshCr#b8j`;Qy+1&>wbw`bkjf!*|3 zjfv`dd8$8r1!vcjrO|ql(t1*&23_xyZbQ%gYe&*$5w&M<3v>~ZjC_3Vmzo1fdu+3oI!9gkF2lw8mH zy#x2duzpWdN0vnENJ{HSc^b5iO9+siWJN`u@!JdlcO0 zVI7MQUvV3=0~<70u1|}vOqhE5Mz`I=Ss1M*DXk_&YS3zu6Io5!l~|l&?tI2hx_g+p z8w6q6_eX+y8qx~ow-oJ;;3_FgOj|bAyWxiKRaZ$JxMM)W=j{oe`!&3MhO&smo?XMU z%(l|DB3YG2N|kn!Y7A|qN+SomTJrOE_HGWk$AO+{Vo&mEm(%(N)YCheyIt~G_ZVJ( zm*4HeOYt9GN7F}MZonWu0E~F=^oR|x-Baz zMchmvTmPaL4PCe8oa{9_+TO`1hocos?mwe~ucWNRt8nBlC(c?QsTb91fkto01u%bD zZnq20LbfG%b`!75D6p#LZDzj|+A-g3JoTwF;MmiAbDJq!kIUf~4XL*U_}o{XQ0r#V z4eDwA2A{pG=ka-f{36^z*55!E%Da>gvQGCk_M70*YySu0J8okSO7G+9$+LK~-Qcqt z{kKu=!xleAzB!5NW~|ff$0T`xEPt8a!IqQl^g+0h;JxJ z;MbAqBKq$`oQPCvjojN@t$FT4gzdG`E{(3Q53$-Ti`JTy)|#?3r~x7euNuN8C-zZq z&(L$u?S4R;`^9lY{iR}E^80T$#lX)-JQ#7OyH)7D-Gl@9bE@lG;}z9)%`NHI{WwX{ zk#+xk2-Iql(rU&)F=WUh%(CW##;X?aV@n_MJ)^Q~?)HDSw%z}=buMQbNd#&ZSbF_UiMCT4SEhQ5GPe) zMGv071Bx-n`nQu-2n(yYBS3L-%#nv0^@<9l@d3pg>of7 z>o~i27s|gYJ*?fUhz1WDFvR~7n-<9AM&~?yFK{id=ZCg@#~+<{Kij_w!3o539@3s~ z=OZ)UVNy1%Zjg}D4HDKuH%Lh71_^&BLN`cA>2PH^F+!mt{h=*#zU6S;i*w@t_YiUT z8F6~#+%)ckmPj{TCjqC!wGPzYy`lXNxI&*G-U>>e41O7u4!(Cm>2UqbN!t&7MR7%- zbhuKcUU7!QT?(p$=fn?{O78t2JxH$OAdLy-8>B-9mU>cAwW1Cu4!fk{dSCVvcC2PP>Um@J!jV3GrG$##}*L$O_F ziT~Nol5)gZD&+f6=Pqf3|6@BxAEv%lwhR~2$u6||B7b!j?N^;1i~s*0dtU-yRdwxs zPHwn_5G3kVP*JZM1r=!~NCH-)%nCFR2wIgnN|-`Jf@6IsUs%%iP!7zq4$gY5aD_J(sJPQIe{=c;kOG%$ie0h-5T7lv{SLC>)^jvi{iRUjs&c~S(OkUtlotmwBecoeod)|C5e3#|!3pTb5#k6ZM z)vESg4kgduRBk{PYCl~896gw8@5Gypzfs+dJ@_@CY z@=ZwPn|x9ECZwhtYe-EuLMo%TAwIj7Vs9t~&tpjM=JUQLF{zMh@x!sESjUxxFA|ga zyaPg>I#Wks8{gBF3{GEWIogG!{7yq52x()D&+sq=Cy$=UomR{q?0~tsi%N1&*#1lIUB7ewwxj*%P%lf$;Amm2 zJX%10c89c1YP+Cy39ssFZe1+z)|?o5Z+B$1b8S$7i!oq3Ed#H1VW8 zEf?4pFj30b9dY+NObXczuNKM7S$qp?Br9PjKQL%?S@^*9_m^`k;s`7b7t3}fSsfOG z1U5_Y`3I`WlCf28Oco$ya`%PXyhYa}Y?k_}s@k~Cauecn zt&C;;TiCz$*=ErPT6$@-9Er^OY_t3pHp^v4M{O3?lWGYB!0NO`84n_>4O!oL_2g{*ahLF}HbEkT-k9IIbwS5WOKDB*W-?aV3MQ6v<;##bU+jRVDpp zq**GP8v095U7ENCa=MAle*9-4Go2P*Xqul#6Y`GXEjJq=@nPQ=-8EK1HBxEX%J}&1sgO|m4h^TlL9{nl9ZxDX_;5S%#ni==VS)IedJ70L` zUG_XDNrbUQ_x`%X`7^a^Btj_yLbOT%i^of7x_)Xz4ET8g#kn(^fqAT*s$O@rh?|4A&WxNym!~;h#de4Ksk_*cN zmQQ&=C_fJv5?`!xPYCmn{na;vS=b|cfb4wL^VGVCbr%9KxGBNLS%}QlU&f!ZrZrYL z!=_}<*PaNt*qerLKfJ&j9nF47@H`0}6fS8wBlkiY?Uc^Wg^QQQRDS`4@7@m$EaQ&lN-zS$T>;1`|48mwgwBxA8bDtdNNH;Uq+`0t2(e?j8GwokjN{Hi zOV@GSEJ-UI$KgeD&J6?$CwrQMK3(F|9%>dSKAx)^6MvbYzOH7>l2|=2KzxqpSmukv zdOj(%#m&24TA1?W16LP^FTLt3le85L5v=_SkeV?A?cky5Qip>J1hhLF*s3=s16cC%4Ez72uM}pSh zUkq6(-nbRAL3Vnb6_5>HrZseC%dFf(B1BxSuuuG8`hd0s6g0LQ2MZYVlLZWl(GujG zUyNwu{TEbSM&4}yAc~vu*f*;fEexRfNWl|hWVl?qHNwkHd_|vYIdfY$Hvn_U%!E^~ zpC{S!fGd0X-tXvIEb&PEQjjbo%^> zs}^@$xEk|WSYwl0QH@7i`>IK8DN)7=e!zyZg9aY z9N}zFou9O(30@@Kh<%l0t7NzEeWkRKu$sUJ`C`DKWg-VVK}$;a7~VN>5;&gQU`Ok>5IrF%qF~KxETi zC7}NhKQ5~+6TEsr=LG_Ra>xGjwTh0U(|h9RGVK+XRT0EvDr}&Q^i0gdZ=5OUtzEzQUpF;m3Qd(%y}L zxNj!y-3;izB)wY!T_Vu!fG!q@w$()f-35q7O4|Dtpl=Cu51KARkB}D4CU0^Po!j4w77VA0rD*Y?s+d?NVhJ}Zt8<2`wrE&fZaeovEg+3XZlgI* zu6N5*OlGFVB&5Z3vtlj`Npg^?9`_*hz`;RbF`an_Tg+y8gSyGQ@zQFJRGOzHb|)Fi z{IsNm@-vhn$&#`wqP-p+``gN3T{|UpuEFWKq>-mE@|2gkYIzCeFE2xSFqvU67w2Y_ z*by5hebYIAnZKJ$z$Fg~RgT>o$Pp>~Uxem2dFv7SHT=}fQ3E!=$@;qiG+FWSo|n|Z zQM^@ddm6p}O5&9xh2IF2P-SD{H#^~p!o-foDTq(KRgIq``p%9ZeP0Aq7j7&54KQ6_KN*R=F$+)*= z7GY^F%_|+RydTjRtO?C+Zng&wAg|Nr&#T#bRxpn+O?DNq?WqJ(%F4u0g^U6Ea#V4nuhSojuI)_!fD;$G6yf2j6~PF=F)h_Q$ux z<0}dS;j51C$H;ydyyP@>)#|R!53O2p;rsf4%pXy*wCuG!PAF1&wfXD6^m|qCN&ppp zKxWJI_-n0OrvFTaxA!n1f%*Y>9zWegtq=#ZJ~GM3`zM2?99j73Obr3+UYAm^Jo@~D z^|${rZfii&J5@=WejQ~_GJcwz&hRT}6TvNlC_;%X* zhB5J{SnKQSMxPez$xcGik3vqAw~vK=ZbjT`i826FN6EJYP%cL!%YJZp)zOgKh?I>X z#~rj}0pATMXs-oNEHa3r+1S$o>=Uy1MOKWNCY69H zX+o-`$yQa;gwz}))72a#q))Q4O7uxqLi)r2o9jRsSraOiQSZCrcQbM$R4U!!Zt?pj z{0OPiCu6zrRO}ta+Vz+MRuk{d?BrkfnRzCb`Y@C=<8d~^OI+q-RREdO9afLCnJAxp z;vDFj_7#|fUJ_nfAFBqkmzl?|p0^e#OQQw|A*INc1%!!XNFf7+C-OThvUn`ErTY@w z*W@OZt>0eW$G2kt{TvYbMReCaJqI)jHId(78;+WKzn=rrF7G*{tcNyV0kjLhv~*+Y z$Fl*7SLit)4ei5oKvhB{`&R7_dTU3XAn~X(ss)N`)6t2u*bSAVD_6wyr2FL0P?>dQ zLA*(!o-DN5m*}_g78*9JE_b_fHqH!EH9FF+1s({m*e+gHwW>Hms^UnYsyISwhq4z} zJCu+%;P|6I3@OxrF^N75D~3%y&$~k~hr(zZ#<})BPPF3=8g(3Tj7LfG3o!d8on)tB zsgvyU0BwdkP0QUS9}}n@erjWJ!ALK`^Y>y}eUg+!Di|Uht`E7=2GcOFqdq-V;eEm+Z^N=ZnH|#*XyL_%+mIq^uVd$Zo=gi%5X(so$^w_zbxkdmcGKD*bTXhb5SsDW?sT#Cc0ltX_!%+qiJS4>!&gT`WvCS$ z4IK$c^WfyZigJ;69H9N=D!=_@*|(o8`KIN%uo7<_LI=oszEbZyfCqYy;9KVX1>eCk z=Gwo&Nw(iZJaiu7Y@w#_^AK|-9{Z1T1d6xNF?ky8=rNbY`j3&IntLlbKHL&E+Oyub z`BQ80Md!kt8B}X{XHkm4a%S7*(X~t2c2}>!tI(aeG|)Cu3V=3JLfS~l4sE1_w6kGF zYG*@88zc$FALy$O68o1SxO-sp*%jQo_4>A=&f{~F-a!Lo-^LD@KbT*>MTPuvR^>`a~y}l8jc}_I(WGSqGl`l_p;oK#$3yU+|#+YRJlAdOAesgI?%;-c4X$1h|DTdkiE#P zV!6&LqQU~bQqFlrcJOOalKdTf146YXrUB{#UPdNrzJ|Zjdix@BO82@e*NI22kY6Zy z?tNF@De>8ruMvnGxJaP53aG1zZzO6MlkDBc)Q(vf6Sj{cNp|I}_hIY*E@B6H-YeVeF1U9;;tkT_H(?I^blr ziW&8+D`w>hG26rB^%W>Xeo3PqQ2CkyNad>ukak9P8r%MR4?=XRiga+wR(D{8^3^Rl z?Y(?$l=zgd4FXZVHVYJ&ulh=7Vnq&1H`LX}Cwv;}Y8tv@@^uE1MuP1s;s+12zTi8f0mPG*-}9Jt}B~RM1Gi3K}65G%`m8jgSf& zH@~Q$5mG@Tg(_$|x6Y7)g0^hhKX60ab;vot;Bihb+|c$i@bYhHy9yy%U&l%ZbzE;Y zw0%ahrM~Oiu=rYu$L97~lR{)eTSI-~vUhlm>1jh-7xzr7i*9I}(7HIfq0M*%JIW|4 zYY^MWN_>FP!-lpmL&6$Exy2In9y1#|HlDqeP1c~wCLxtgvPor=keWNJCpC8nsT?i` z;gmzWp^YK3OS||%VM)zaPWjylUoUYYpB6G5RlzrD!Kiaitx6k8SSOVKe{aZx`2t4#t8T~} zA~pRGYFansasGi)ZvW-V7iSUjIm*XYX(iNjKNN^Y&m#gQjGn~$enY+c(5~7+^)q~;jK5wRzp>MZMXqz!*Q(o`pS6QIv+{WoF$2$|9{Z7;-;aU zd+vbsIADpjGxsp}%o^9GNJyI^Ii^jKkTyl~Q=1|oZHla6ZHk0cw#gJW#gsRUEy`mE zY`@vKZo|j)Zu#y788k+2JWn>oLG*;na*NqRH? z-aLnohE>QUd`b6=3Av`?&G&Y2|2;^h5lNHy;oO8EJ1NAYBTeF`>8T7Rl6q#`^&NKERuR zuRX!s3b;h>xgX$N3%Jz#F1`c3r|~V5EkuL74v55DKZL2n#;F!_N%n+= zoeL+mcdT6484MU38wKled@;Y{xIp6?KZ^AsLK=1I>5%yl-^pTp+v=sQ9h^bmyDW|f zvcO3>WMNyAQ!?@6i?w>{|C9Plcz9c{v>L2>Nw z;&y|@VYVL#5+5Z{27V_9lm&FMK+!&}rn0gjvFh4TT_44&ZfK}ZEW|ccC)RYuS?8>rJCDbL_g%Z*(l&se-l#q6ztQhS=3F%HNR-5j$BBVR5 zs0nnZ6`@k^r^voi{Qk#4rQYuWRf*qA2GYKV)xf1Sd;L69ki+3S;px4OgWgzCauCA{mG&(9aeagzEFtR0VpmeEg2q&D3ZV4Oyo?kz?2nm^quAbI+MhK-9$dQmz z%JR_JL*EP$N_7qe`)qNY_pr@Vc2C)`qjTW8zwPc!zqeyk$*uuSI~fiA;)9cfj0Y!C zkKs5ZZ8IeKoR!-^Vz1bcEy?@g{B1}E7m9GS{nbME7n({ zB>ATW{&6eT*GQgwKLPMbiBD_r69Q4me@dXxZs4?8O=V5o=BcTyu8r9|^r~GKQ=smO z^&O$G#a68U4q?00#EmQtITB_q5Y~@cAcWKcA=PSu5K;?-JW&gTkPhP6qI3{XNF_18 zV$G1`eA*50^>8}7@NuwTg=))rBCSxb0=4D5(y5(FOb1(C%dEBe5X!Hz7=oDxfA@m3 zZO?&!Z8z_iM7XF@Y_)n`8D=% z#D2eb!Rt)Nb4a=8UGR!mXcxSO_F)(N4k3~gDYUx7{mC3FTZ@ZF_fW+f+|HA^s zJB0em*ti&dL~TQSx!>Ide`#p!JInnE!#;SEEF2@nY<;`i{SqV?+wIOORV7bIl{_g? zB~M6K9I;GcT5@jgMVzr5`a`l$4qDc{zRZ`imfYi; zdm1x$!?^HWf!_%HMg}519A_GbL5w4(EmfAWoWbeIn%B1%r@Y*wh*qi5aK+-#EgvoK z?ka29G&uJ-CJ1YN4arF_g4~AYikezx;(1>2;L6B@6InQK-1eSFdYC61G2h_k9>4>Y z!LoXVyF^4q`V2TzxZyl4p}a`&1^m+9Vtm!F8_;Xw_XT|Q2neSQ$3PI%GEMiEKo7uA zPf>D;sTRMC_bR?OA@j8NE+Czdd;&Rf!s@p=8qH0APJwX3id_cNh(EpZODUs_X{A*Z z=(*gJec2`Lt!q{d@64|0TD`ixqcgj*Yei=po@mJ~#+mn3tt-|f=B4(u{_=Av1Cbprg1{cWJFN^hiWKi8p)T^OINDVF4s2W;?Ot%jb21u#1qCpq} zo8^=@Tef`UO`HU7DsI4(4W3u!gV+1}u92wigruidcsk2W_a|)=REKb?GN$16w zcO)>V3$a$@ef?;B)YXT~!~P+;;a4ZS)W7+{HJz<1$Bvzzm<%JszJ_!R!wxZn-%X7FyXsC_g(GqL)2RD$Y$Q$<409a!OV4 z?pYL+Oy_=3iY4>5V>YXixp{b97`l(glFD;wzN=F<6MtuB@p<&!O%>cx4wNfPLa<~k?q)7}SY zS2THQ*38zDnG`wp>3KztYolyoS+GU-_A`ndPLO`(JR#*g>7(oC`9=JfAqBh45{$>u z5zgKC`rvD~;lO_x`n7U!ePqtZniPQ+-Ul#}3GHqgvEkX=oA`4WmsUEg1SGT8sEpNDJ`WW+!+tp&e05 zoTqEWeSrLzBJ=|w7T7Gw34BV<_ldGnAFMxR@!~FYZ+s(zLctzNgklY+|2n%mTDfKA zWmL@nLNxuAc8E=;tL7)9nx90g<|m}q7a6bC7a{MsB;1Qxp?Wviz-JJu=Z&a58XgE8w=3BDrZUC2xxJ>5QJ+!eq&z?`>hc#A92S zB2c0&#FyP_sw&4+O^Q|g7R1luN8#BXwuNlLwqPdX_s}HlWvW!3{Y{gw3YD7EUN3-N zjLm~o^rm^RHne#V(&j-vX!9VX&4V?f&4ZB294Te40=-cTV6(eWF9V{{*B% zyW0Ti(2hN+4(;v*^fwsvY1x0EgFLR?>h6yYq|X7}{W^}rEikW27ac~y0Mb81ahRn?gIRcy~7ad!9ow{N$G zPiW<>;bB2!wZE#m!P&f^UfARiYtloZ)oAnZEcPJWEgs(QX1jXIiRv;!s>{d&)n$Zq zkVg*bAdip^@>t6{$RkwhQMX+nepeZ&)Vmqbh2nRsfwX0k4b-=|j$a0YOrc=QEWu8$ zUiH00nr61ho-Z{%XJyg)>e02|KUpy0k zr{qv`vA2nMd+d=vBl+~bN4{3#k++`}C=?tuMQhxbT8&p_UECC7>(AoHvOW~{$c`z7 z5szz~njV?g1KCPi>=FoR32hE0 zWeMq_Y07;+))X#*DO{HGTR7ljd>Q|tL*;Y1L&f4P#|RLQ4ye_O9yg2TS?-+u$(R`* z8av-WnesQaMF`cV_7&jRrgl7_BJWIm_dNK!Thi`(^ZL5PWApm9K#At%>Sfcs#x%qq z5$E8Q16G#xH%H*3&Ur)}&8r1(37p%;;h#X#o}L4;sYA9OD)#~dzWhTwvQ$Nvkcuuz zQqd)(qD!`_?Mg@mgN3H(V%|h%2^iA5{Z_n^&E0QxeoUyTU|>wheyhVm6LDrJ)P*eD z#Em+8-iPJfx6{+Eg}*{q}$mDxEIv>*;UaZ6M<&u<2f)+(1?>oL?o{-(55^y&b^O zCog=j3Q&9C<%}hr)@4N_K6WfY((FrOV@KMKL>&-Jt#B5U^bmP);H#ZY{(Du9(gzesz9~Oxx?RU%eF-X`Hj=vyck9G=D(M6t@#m zzmv*ik4s3)Zu7R8GUT7Vy>n%ZAE%)(RLT7J(6HJk@44FZsN_o%e&mj$h%I;6QE1H) zQtq$>>U7&DLwZuWn4BJwn4BJg5qbp-lUZ}^n0a?o?S^MVh1!>iX=+y5CvT!8`IYKY zgsM{g3vjG`!cj?)sM9^$CvQvIeOIJ!NIWW@cLa(n(lPN{?`o<>*H=x5)qV%!bF_Lk zemg@&dRSQd5k+b&epafZLJKZ(aP@+El(u%cG1*&}7(Gn0hT61GW({jXRVN`;o#ce7 zPC}|WSsSW438{RMR;o@rW6h9%cI#Un<3DBIwmxUMcVfu@{7NUexQjtRTo1FF98GK6 z9ygar! zjLsQ?t>8IcUdAQm44yx4&ZRM|<-9Ir7Jogqd)7!^Ru&#F#=EOMivEEcP(1cwiv!vA&?AJ2!wTkp6vJ`|^3b88~bGp=mySh(UJ$S{(n3?n2oCK$$$0{zX*JzOd1*Ya^MxpIR;~S3C{Q)|Hs@T%RJ+S#}@|7$=MXl zzr6N=dtqO^2LFtEY3=lJFLq7MO)4IDUspdV)4B_Gzqh6iGh#O4q~eWRO<4DMKIYMV zdP%OO3^d?~*L(MFnzGxbx$D$revlz@KQ_9*_TpkJO5HmrvccA7(yQ&YVShRYHIctR z9S*W|lkH?cx==*>cQhncZ$qgS=xX@Y2y`2u7w}7a-@sSjWB4v0#oG#Kw&eCKAl+ok zg(zK&dL!`TQDntC3XrD96f{N?AWiwh0bUy*?fG%bPrenY=a6_>MDYwMK)Br&0fCz? zVX$4z`B%=!FmO*>ac4?Ac7E`6PhlM>kG$n;t zrXj+T(8tkUBFi}JQ3EbAd* zS)1EdEgw5pcM`RB%x;%U2ObJ*%yuPTglwie7j~T2+R1GQ6zR78u??ZKW8tbbIB9+A zg`KTySiQ{ZWJq&=v;W=-cNYG^tp%1|mRjj0BqYe~BEXfl&3_rfJyqQ88@ihWIsSNG zKSqG#g4T~hdY#Anl-}{}t1rY`-siO%f*$3%I{+?v-nP4s?9Bsta6-BsM(Rf2OT zdbEWbcb{JW_Pc@cJFytYOGd!T#61E>@E(C-u#YFbx1$9%r#;4{(=KOXofctu;4A5$ zn+RQh`1!@-wyoJe49`8 zDSaka?ZHm?DfFoT`W&FSf_DcXjr%2G*{N-vr*wk0 z@PoJ*b*?zCy#qTPR?b+sQXWZsIuwV3(-XQ6y8IrsV;Cq5R zJyvoVha)cCFT;`#&s%bPvqg1*jtdbPSR92Q3r2 zhXgsk3)*dezX}WQ?1FaK&bOzi2c6>D{*yhSwlwM=Dw{6+_VP)oETXcwN+=;Id(h6v zA3BD}1r+9adnNWsL5|P$xP)HEHA;2PT#wG^uE5T1=R#&`A6&p}t8EhRY$gjnfh0^9 z$w?fRD2v~Kr3*Wj2oklZm=W+zC=(V@i6bQC4Tz&Aq+d~x>(Ga6T4P%)wC5i z27xGNMAo~$R3x!w7fU&VUJjJl2G>1Ae_gXK25f% zb7Z6smvfID8%U6IN4MQ3m_^cq7PoWCv9nbWc@GGss1rZ;9uP_wyR$5Q3F+dy>B<{I z${S0C)fEg$HXXjlj&~+w9B`Y?^&tnGvu}OkK%y-|vF;L>}wX}c=Okw#3$W+eX}Dq$>F;mhJC3J&$j zAp*J0dG<+TBd2$lE?kpcWUgv5k9l@3UD%mjENsgzYR#U@KC*R5pErRY8IclVJ5pW!n#V^tku*TU0b?T6iP92iB zI(0}$HZVmySh*COU=*jTNAXkkS~R=wQe{d!l1%tfM{+ zB?RkbqT@e9?i>{ga)djVI)70x9d1}Ni}j(MD!;?9sge3CGMumPY9yq;%M_C@p%gdVgdp?waKzpKvlYNO zC`!}0*SM^D; z3uD^J?K?jgYNzIq@;>R_1#1>BT(Pk5b9#Bq98L+v_Y$v#L9MEakn$kjw=$%Fs#^bY zgI}v!J2^^ULt+81;=HkX*d?|kIG?U z^s(qgLb>~bYq2JlY#LUQd*B>w4#8NcA{ZQ1ZreP&qOlocvdpI0_Q~yWe?eL5*ItS} zOH*>&Yku;^8|&XH&AoE)4%|{+zV6pgH?6yOZqdUyOZZAoWqa!xpI@%DLyE@9mhssf3R`#^`M_CFZJPWp2BB_MtNDE!n?* z64IMrwQ(r63%|5?GQOV>yblA?f#I^ikGmFhAji36jqwbi9Aad=-vH7f;v0Z;h&T*d zr51l>yeWV*^h`h+dO09X@8bd9e+GUVk*eJ-Oerk&a`^5q`_cw@UlE`0;9Dkh`h#RY z#eUw!h`+zL8Q=Z9YXlBX+y<8_-Gf+q`8RC`4rBE$C56~IUyZ!evNWoCu`)4&0+Kjx zbckCoHjH-vW=V;|g>HeefUXfJt~19Zt_P^Wv5q)aZDqr_m@@e8Cqd*WjWk z8m1(Xf~6{!kg8Y`t16a|4sFN^9oi7mp$#iphc<*%<&Ylco$`*7PJtm<%8~VQES+QS zupARHK)`i3`fX$}yl&i!Q`$YHOg+yGrC(-7IHBH(pWZRsA<#&C??mcp?+f^H=)?j zOha3iveeC@Ot8a~TROA3ImOU~Tc#H`x8U7};#^k=*3EM7)ohgoGi+`a9SPNSddcxm zjQgMS&91SHy9Zx!84}AaFUdWU`jcu+Y%sH%%En_yS7%n&)efR=%WV8Z*NFFa%;CD4 z*^#wtJp3@<*EufO(Y33xVR_k_0l7!)mNV=Idpvh>N$Snmt%;`>cQ41SiN`uieR_q! zpTC+b$~Bj~@x;{Q@5{Y9ZhKJR*9Tv*MGKtz-wj5W3$|ux3DTvsl(9W4MmZTm%62@H2p99 zhHRNw*3>drD+jfVcRYro-ZOJuIhbCCknVlLqTt9KgaQ)L1o;@&)C{RWpu63dO^wpE z9iOzU0&EkAE$!!kG9Eh??Fg0w(k0AwfVK+W=D_c3fOg@R_U^-1x3B#KkS=Ea4bTrI zMlmE<(_?3&>2d3uLhNib6&iDz3Off)3>h4{sA-y&^_XJC?Lff z6@=CTQrf5;tQN@vN{L1&mRIWgc?*ySt`5X^h<7f&{k)6B=cD4YPJHeWpYMs!5AZGV zUcq;uHxhXa^6K&3#~Y9D{@x^fhj>%*J8PahAi#H}zPp*J2Z(BSc zk1eAwXq+(TRWt_f~wZ(Ab%wEwS1 z;$~{WzVaBTO*?V-7&?#vcx$7pb@qj;r4N&i1)4m)S`xC_lr^W?l#psuQbL#VN~9lR zNPOkOtXf?5^8G+;$$hKhIs7{}_kH=7$5q8<+_-h{h9i(#?&B4|KzK7uzQJ>vc$LX8 zMS$^{*|MQx0|Iqftm(lG6+7`4o&39$(3X!^FrTKG+c#9a2Edn~_4g0W?aavnBJR)J zAXyac{%O;ePgPtGq&aHTN&-#DWE1>=^$Pw;S?iGrJZ7R6GwR1HZfDe)l7U1;YCnTl z(=3yBKM6wKP0M@`G7{duMR;1g(LYz<4-Y{fuXqRmLZ8DwgOps8Q<((c4uAEQgf1|s z0|UR03mL|{)bXYrXS@eE-kU=267`0*8rpqH#RLp7rqt~I0m8j;58{uCp05u@6h<3{ zUlvtX@jV`GX#%lL-8Tw3CUscesKDCpX%%P8Lg)fhrolnx6JVTA0m`(c%zDBELMgke{0zkg_eFBiaXY?6B??J}X-nRlj_8RYsAJvKC{V9MbgKtS_DYTS^ z9sx*SMLHJHo%p4_MtpYxH|@<0pydI?VSt8yCV=h=plyKOkUV}1s1~VYynR4}ZnHiC z&|f6wlK{OYc%s{ZoAKJLC2%lVpr^Sa@x`;O18$L4I*>NHI zvutO3wxbnYTkG1^toX0N)(GsH816;u7RzX;`0Pqk^VxITJAgx`xH+MC;vhugK$bXL zryM-eMVBGNHB7F&(rItP{zV;#6KC_IR-xlilC_`DG0#5<<&6DDfylc*2*g3(%K}vZ z+9l9PKraczHuIuDCj#0j(1ZY*7KF0KG{)J0G?gWQH02e5G`CJbFGwnv0Q$W^n*a?& z(I`Fc8`?FswN>#2!rJOOXFX0P3~Q_6Pq}04o4DoxUWv4-M#r9PWW?HdA*x2#B)#Hy z4I^TF))HQo@hz+v_j+XWIr#U-tOIq<7S@=sjh(%;qy7A;=eo)!ERC#3f=dodtXD(A zuCW`sXxF4wxa}o=^eQ#dkG5b3=jA+*R0aSP{(;_h_z^0VyR)g(2YP>nA0g0z7W<0$jWQ7E0Q9Q(onjzu zj;zI6#7ub=Qin{TcXPX{)b>SO#?K_y)i_s$tmN{I*ClQI;d#!wT3kL7UD2LbOLrmR zUaXcrC6rTI2`S|)ADz9pg(3g!)za43py4zrkFJ*fHRRdJ;h>=xJi9c(M-CGlPFZ80 zHK@iuA>|57piWm(8B$=LdrznB+V!;Ebgz3(arc~(?m1<*Fl8RMd)geg+lI4rPmTLy z*LmZfagN)Ww;^&9OOD^>9Jia!<91KuxLwUGyKDFyId1o>+@s4pW=J{C2Te;#`{Lf_9PE}lYqx-hpB&@TMa zvN1~ihN6+bAbvD-)o(T+HF=i-QnU4ZKx%~U@ub~IA#E@cRolo~2zxqBH$vjkb~r(x zuy@hkwV@%=BaW`AjX#ES8460}a0dSUQ`iWd$8dVl2=~+m?NZ$zkU?yzjuoq26(Q}a zNSSt3gmkHnmbEU`5z^+%vKI^64wI5Iv^CjGIoK$Z~j`=1F@SWA>Rlsk?uutmcRIS)V6$BS#vti`!SN z>C7INXPS3kWcR*J^OD)B012rAj8F421PYM57BalhbJ$!MY6Cch$hD4bSi`S?v2_-1 zLKxISy8zn-igQolsr6^a{S~u>*^Xj-hvo1_2W~~VH}~h<+j3Oow%kKCTXm7=(cD|P zSMwbo$!(J?B<7>Jr=4Rak1*z)Haq0KPms4n!KY^HSsAo9l9?FP9J($*Om`9I+_&jzCyiV)yr^0WOgR;Q<~ui_URejC2bjG>2U82sy%U^BJ zOLif=fBT9h&21O8+M|TxhfAL6$MYGq39|T=tj5xHYscDFI}{-KDiDNJAXrekeqNc_ z5)A3x(C{p133uDi`dBk^hlV$W&FGwv1$}Ntx;C<>4M3j^8x_GkPCN)sVeiYL|GG>)7a3-*Hp9QPX?J1 zD#fa&Tk@koeJwIfJc}2jzYa-h(Fv8}-c>i13ew-3WQGUH5aJA#n@o$tfu0H^Jm?7_ z$%Tp_V?xRLi*O-0%pPL`H@_$o2qjq=WkR7;J{6=ws1z49xICDhJ)U*O;A7_mC<3#_U0m-?dQt$Xk{KF^#YypK6;F%fa9-&fiZX|)z9J=$T zAtdJyN>V#C$czxjrY^M&D)n>XHx4%DzpXIFiOVt5p@a}B#SQ{D?Xlzp+QMEY{?QvI?6Gj8eHMC?%m%uQ5`}ny{2DtrskAUEPVtk{cT( zd*^RkYe=<9RMkU)sv^`2?GRr6;#85_H1Z|?52bkkG`m3o&)irVFHz7Git%ld#HaF7yFTS;o43(7^Pr@qZ7 z?o&F>>*7U$1!^u&aFA;thFqUjW)Ld%nj_4ZEdQ$tEw| z$DG9N!M)Qb{V?sSi4!Wtl@G4;jRO^;PxdnP*RTYtsS_&ou8yR>G33$S6kh~qFAAm{ zj;NGZgK`ooEnuY;79I-Wjv`Adp=2*_`ly~0`F@ZHp;BD7mw3s-lxkFGkqqZL;jtZ6-a?cy<&qgF3j z^p`)sI_lguJa(k}#oxm+{&}hKy+}w>T+y~@)Z*2v5gD$LXZ}aEEt!2(6*dHLI%d=o zT+7_KmWj){Udlg}V8o4D(z>YYyozReqC<UojH5*+y~3&zfCv#`rn(M27|(RwJ=P zH@~8}hGTV(c?HLVPj!PqP@hqY)^Hz>IKlHr*gqrxGK^yo{;Rok0-|xHKBGGE5+?ql z>xW;;CpIxB?|H_wn7hweSV}f1fNMwH1{Ei z+z%2QH+O^M8tVxGB zQ4Mgo#9AT#_`n^SpgjxUkS+(uq5X&mPQS%tH-}~Av?$#Xo~4vqKGj*DuQ)z!{z?Se zvMZiT>5=d%MCnr|9pXeOJxXFN7k_-&A8DvFTh@0? z?nissSnkJ2EbfA`xJM^)A1*kqj2Rp!_Ys2Ah;M&r%S+lnb4#dqMwp~WFn50gaH!cH zx*MOsaa%sMtZG_%-vb{OTYX$@!@N}6u!V%q_JfQeIDxideqk&-b*wR6y?QLX)Q+;; z7?I${af0J=!{9jFI6lB(I??vdK85ahaD!G{Xt#`nZ?wH1pUC|L!EtjpI8N@Pf^^7< zC)SNXS7+&Y&j6!X7YN0D6*S+(S)Y>}pEm!~2(z&j&z1QPz^jnVFEHs42Qu&Igi49^ zEqqCjI-AGGOf2F=V^LEU%Ij+;7IC8Oi`qTqpDF(Mz>P|9mGTj7Uk1nFYHb83szo0* zxz`3<-D!M6EjoaeA&xrpPC%Ao^>z6}+oTYs$C-496Qz`rmGVC<{`kPvCMcy97NykS zIF!<|PWf4US;D9$nP_sa7fM~}iOcb*JN`8WIQ5&L^b ze(_H*cJPO|^GxpJn7iK}-Z$d+g&&w;`R8K}pOwRRI6iIu4}lfsJfl70;E=09_vM|4 z(3DS0fTj4^S-Gdf_`fr;h=W)cFj~b0_`~}kekq^5GxPf0ExRU!vEDYZh!f50B#Ctd zzRauU?uG?ntV#}s;D{5=>ty(ZdA;-V>X*V;A2P9sqf~#|_`oBUdn0^OKD9k_|LYl> zK(yu5ohBA>qPd>}pF+7mZekH98tYVvMLoub^5<_o1l4QvIw}n>IO3?^WaHy`S>x00 z__X<`k{~u?qK#9cv?{#u_&epZb#N5$)Fp?XGEOA3Vp?@|eN~MdQYKE?qtBS?DtY%& zec?K;2u?#KtZ7eD*1&HhajLQ06yQj#Dz*_DOLDKP6A7lwYwq>+Ro)d~zxoh+ zcO+$3G9gl+Ybuf8mW=*$X~>1yBo&T0%EL{@hrUWheSM|(bNr=wx%y`!d<*HHXH7c9 ziPq^PiN!j#H5o$hnpniq&@7o_ocgRu_}ZLp z@J{)xBUbVWONw?H$(#+ztg989MR2?d@u6nMmTmk}0`Vm+>$F5^$bdS@%b7i3EvwaZ zghi2mt<}T|5}d$lqHYai9T$z|*e$0a1T#y(=7^3?sW80*t6ZO{l$ji$i8DBk=AQ=t zl%K_yv_$)zVTP`0p3vpwJ{`Cz{|XZe|6oT5)sCC{4E!DKcMOh``-cRliC_FO%^#bm z<-i}_1e5!RBzO8OH9nz6+U)qW`3HkcDS|IOMF5Q!km^TQqmZGCF*&#M+-<{2m=O>W-E`hc}?5&=H622(`zFDC3l`oe7@@ z52wYMN7e#rTW_~Q(re!%x0|7(q9M; z+dF);y{nHa31><=H{q-F;*4*iE@%fvCBfi0bph4`XMv=X^1d_u2j2*5?n{QQvsf2C z-)cdF@FqTjk2tr7JsUnLABLLL&d9+xEIiBBPE8H;Asunj5zFcv_@sQ(F?e%-^QV_X zNqEuZP8`vzHMNzs!XJ~4qeWS+C|6DH;9+fLjl>ch;c9KAmPdWuaV5E-8ZsP}z$=(v zrQ``tpdpz?7>nba(7E+BAKoedA$)CpX$f5&wLoy(wqtOd`dS#^P=3C0%|~AdIaV|X zUT_Pw?Kpa45qwiVs#c^&o}*myYrfmo-0i5#4*w`x=!ldq~l1-dBBNE zi^-kRGJ1@}5*(G5(b@*p$CVaxL#3q}Q0Q!b%909BL|VdFs8KWGuR63Ei>+zERy`aGcy%3J&$g{+Po# z=?BZuf#45uFPPj{GI#$Tc%Opb^q-nw`KOMP_u_yf|IT-O+Whs1VN0lZu6?))Ug22g z-6f~q5@LVMq(hvj1=}vM?5Hg|lKQfVMI83a;RtcH#2SGwisYSn&GWOuyzI*t#EIth z5s8&QuVV%y5RN#}SRL?5`5AnR@jG+ZA7+GkU1DMpM>%tg@$tN@@p;(sY4iE?N{olB zLDT21k-Ru^EWvNvwlD2m8Mf1gYMHwsj*MJtY8$HL{Hg0xDW?q`pZW%Dn#S#XVXXRk z=__5IYJ|Etqw7bDd{Ck^uhI2&-Um>2^>J4P6%^7+r%P{=6{v(32X5Ah>x4{1&9@D z$lp%5;QKZey!6K5DjacCLyoSm_1F_C=Upr1Linb9ws9In{d_2?Su(Uf+#Eq@$1 zDSsrt_znHV1CtHM&~mFsSIZt4!I8FHJ({}M^VG*}JLH(Qozn!ver(%G!$WX_wqv=f zv6^fI`PbDFTi^peqgKicj+W5X5}yzpx9u1lr|o=FaI*ONp!K_7eeL+L?Hphf^e4S6 z+RnaUK0SW&JU)S&YLz%~B6@=6ab~KiwA+JG5%4c0$O0P~(`YFM2DK$6_rPm71I(}gn{NUJMTozJ# zqoMR#p_Et9bpr3;-{BKDzE-7h{NY$Sbe2B@;Uzc$e^`Pr z*6J_{AXgHu!`~_Y0emfgu1)ag(}Lsj$KW{pxn6Lx_)-#{yymXMLjH_2bX_m}8HbE$ z|F!>KknwRTWjadf8XGMCT1qJif)h~6w8B`lI78=B`Wbkqe1=;}uTN0=S;28BH8>8X zHwaE6zR9)zMTXKFgwoTHQ4R3E{sKOMyB0WwJ!b>INCE3`|$g7{cIeJvWL*m^N17GqAa2E zkQQg?EDwEn2~NO6ma?F+ zQfGM-rw;3J%ujvXy0}&HItO3670*q9!a?E0U1-Wo9JLeb>gvT#(7aqb;Wpqz?F3V1 z*a>x5A0+1lN9=?;tl812kK0mMLapUX1;c*aS{9t3mMvX*V>z|_MI@E-ci?O71TCRy zO=2qjm*BXyY;c@fzFly#_>xa=ywZUrEywOM9J`&h92sTb5yUD1q|U~A)x;tWVmW2L z6Fw=wRs1#1?Fq^JlHj;yHaJe1zbrTl@a>1+Ip1rA+OWA-4uu!om!-^vx{QyfR5<1N z3PMvpttlJ(%Zc*9&;*WK9)shQ=W7w1=q{9xo7}&a$o(#fb*_{9*AlsZJ(4p1z@1m5 zS=tx>g!=}5T0&A0-Pcr41h{V?_vpT+Z^Adaujw0!+`lC_F6{=#q5W>bAuavUI)B!A z%!flQ@u;EwZqn|51;wKTT=8do#JO7H+wckJpMU#{?`*$Y%0n$tU(Nml7i!~|7O4M0 z@((^pnXCV`^<#7-t~hR6{y)Hqj^9nnXv_6us%0KcaHK8QW5tI~ecZN8O0`v9AsF^! z+cHZgI6+$`wPCEBjUfNJ?cyHzr2NP6Rq7Z^YFTA<5+i&^aNN2uI8I%BS8;sqDlYam zop8@9VO?Yl$G$6d@igk96nL-xm1)zt9Qz*rR*6ahijHAhOgh9t>t^m|X7c+IYdpTx z2`5}yb|EF<8bUp4vz1A;i=uNQJFt{?>H8b`3#AI`;l-g zgA@nhua5V`6CamjERS-m-3H6QmSdDL!3j9Vv8>-&u^%Nk_L$(f95Xl$ z$Jqa-{4Bn-E63Ego*tF4nR~~vh>X=4jy*0MI~pktLv9D}mQ3++ImYrR$3AO=%eiGmyJ@3`~ul}FV-q>U) z{fSUoZDiw(yp%E>rSuj+p|g}CvL`qJrId{@)~#U_KyGXLDgI9R*Wqg^{Yiq-p9zjj zsljn5eNu3;_>$7cmrX;J`0^L_@*7H@6iQDrvP-zZn(LD@HP42rScLaN1GCp45v&->m^RI&( zTA3$4%EP?Oxcg=No$}q$#4af_W<^HVjv?Q1n>v2jx##SY`2&0kt>+$pIODJnW4=tM z0jI79;4hPoBhPp2?0rNH`2p1d~gEUmv;cx5Xa{f>7P5GP&vGuO$xSW4Q zaNK$~I1cAu6`Ur1@e6wp{Nc44x?WAx`=5y)*~R^8qTbQGf#c?GaGcy<6CBOGpEvoD zDMy65rQ78G8guvWM)4*Bd-Nb5Upnx44CgNB%XFmW!e_MOK>x~4Ze-j*+ zQiJ1A`j+4{@{9P}%6|woZ7IoR;SKkeQ2GQY9f!Zxl-qErcih`SU#4T~9cTSRAD0`% zQEqS?7&^-h>MOwsxM9=LSR5gQ&aL;i;jP@T_5N0Z8}A5?%MF9$aN}LUY2+92-+bZv z>qBlFas<5L-W6^<2W~XtuVMQ|xKUFtzD&n*qrvfUxj`JI>!*N1=W;`E0&X+{DU8Ls z51q@6_u!rKsqHN{-c4|0x8S(kFgOl3C1eF~4Pp>*x#0^HOx1G3^C@Wt zXA<#?1jpru!Ev}jqcP=YiH%>hUq0kWc)>9|+Aq@pOZgiS##nTzMDG0(xf>iO_q5_mG9gX82rKyVgFI%)6Jecrr1l!R83`vB(d zmqLHc1m5LC5Jj9@%S=b>>o+FU;Fy~|SVMvn)H2fwW6?GWomE{fkWj-k#0!leA`5!|OMVw11(@{!kQH9RRGbt6E zfKsLv#$q29I+s#*yD9%d1X@bV5|pwtiq@&YaVX`!E?r0CtkJFe&zKid`g23+V4sv$ zfYJ{jzl#n+6mc%4Oh+kY&l);QDchRh1e7wZFxJ~)6hJPe>}XPcCwwiXgA!bQ z8XSjGs%YI)F#szD&&_xqlWOo1mp)4W-OnebJdb`aJeC|{!x>s zAr5quV^JRH{SmMqr+t)i-6HjbqSezp>!Z zqK1!J`0C?I6zfYRialBAtVD6uM{oj(y4U(3CU_!WLUgV~Q7P%}EVe&7Euq1gL?1Ti zXxlM3jzqB`r2H(fNolk%Xf+%=2;tGbfTuX4b4>>&^TRJWG1NH67g!QaaM;R#Avq$r;ajzj5@f`bkK zBgp>VH_yKKj*!xy8%mG#Nof}--2uE)kFun=<6L@1+wze?Tdu*liHGxkg42X_iXda>)PH;5kn<%+OSax{pPauOoafBt z9A+)frIhI?rED{yvy@WC1Sg=BX@#)@!Ih{kr6Z(-u8a*&$k?%h<5FsH97>N99IdHh zZ^Mr7P7NuoGn5|ZlhRLu(%~q_Br;H(ODWS)N?G5bvy>vTyc`$KYcZ`b7U>C{OX=|l ziLUD%m!Nc{;JB0;9EZ{q1g8<1a5S-f{0U&b&2+7y^aP)j-iX510q<;9ggBQ{rlXWH z*U(u?S*L;%)G5;nV^u|CIb-Tk2uVe5y)8AtdEr3~XDcV-l3s3yw>v!Eq?1)TI1Z zq*VKOlMg!F>EBxnr42qQ{V^zg0eJm_hUiktbd=H$0ScX!-hJRDI028}i>C;FuHm!Oo^$6Zt-;#^9Zj#9eP z1}lzJr-Bnu%Cy2*9nn}0r5{8{%D)xZmeLawl%6CwE~N&?q4Z?IX_Qi>z3+YNOE9c$ zrsuFDfIHbIr7wZf58|)qs0_uqlrkNqw95u7jx&B2oPbiM6~_8#G?qhYBSKRC5@1_O zPfk#Jir~1E8XSkxQw1k$()mhR^($eDpD>i3>VwkAxL~}*+UVqdY9e>)n5e~QaGcyH z3J$~w+%5C2y6)ZkLq6Yaa-YcD{rAAgvaW;)8}b$~)=+fEt01SjA#(+XpK zE*i_>^CT(Z&w*|EJTXBjHB*#QgX2&-MQ~WU1CUnq-j&fK-~~6u7d|tVS@D@FvGzw; z3P0{2nnIOIkKX+3l8Yo#H7=NoQJ_v74{A+cO; zOb@uxV7NgX;YM9`ZLO?isgKJI>euK>mPu!JHDc*LVZk9c;4>O!#BD!}6=?-clFro# zv)s^hTyD%19JdV`9ETgT1g8n<_(8Xa{?Svm`QJ+t@UpA zFiZq}d$EUMsq#XgujSJ0>Yf)j9zX%&p+aI8fr z{ZC+9y)h@jvAF>^m=B%7aX5B{;8aRzu{VC#Ri9PaupDdIJB~$meT+X=lE)LTnFxuVW;!Fmu@4K5D`N)7 z;n-OYj_=&JY&mxM-f=7O2&j+Q?0B;A4C~@w* z&3s9R8*3;9Jf%KQ%7fmjuEv~FCyvq2=9GHq!@Vm^o#jy+-Ut->xO;LINM2cB|6lgr z1iq@`d>=oTKv=Dapr}-@8h5JM7og;310n$;35!;}T#_4dG33VNhNZO?6&HxKxK^um zt9G%rTC3H%6_>j2t$VeuwTiWv=bSnB+>?Zae(Ue!fAm}?Gtay;?>q0j z^Uj<(=P>Lweb{}j6tWIgsl>=0YzfcFj61CU*jHQfTUMem8C8*JhVNfkJXPG9!n7ynqMlUxD z<_44>3X6Er&(0|IT9U^GHZDAtq*6=1IYe#Q1d7+7zVFcym0)TM`F3~t_#9BPqb-HS z1%f9=X+klyWdzbxirIrLLMI1#wr`{9pa+Xf)LTFWBRyDLqA05rvj-_3)fc}&%nf!A zf*DINP7jhdx75wvQbrFhlNN3T+V&Gv3(X#E6^z+~8e{ZeLNH;_A*Wtn{V^^1LLW`$1HrSK2lHbGv@+E4J+t}#aKZGu^gU%v zF=|f<<_gro@1|Vx{*fQL9^*N>_7rOm-Gi>Czdo1FyaaO$b_*R^Mp{3bM7C>Uo9k~g>1 z9o|yL7+fVSG{>N7q1o@N1!MNR#u$=cBbX;qtNXk;`_lF<{tS5!)`OkI=?Gy>h&}i$ zC_aY2a=B=dV9tYIm-bNm8R{!G-stMq>6#8PunESgPI95-%=N7sY&kPgFpiwrg1}OS zoWFsh-nSgA@oD%;f-&W+F@~JE^P%n-vURaDk6h^Tb-Cv2n<2=@wqr87za^#2@%2q# z?I-(c*BGOAS~*qw5R8m}AKdbpcdq;ajK=_a*)vz}@fC7rS!+Y!BJ@6bnV!>STxLoz z`-|;S{q-9=TVb@<&Cx3ur@u(cEp@lIl+jL3CLt>{1CX8CW z5<`M@oaXej5IOy~=JXd_K1(n;B^|}-eRj6O7@P{m!>L>9es3v*({;%4a(bGN)6)fG za;h-~r)LPJURpK6+V78xrn|QHO3mpRA#yqbS~3T?SGfrw!Q_;56sHf_*$SgM<(L+X z!zpRGrGDovWpH{Xa8 zIsu$s0Mr_86i6^RB^|}-vv#(^XimA_5sbqrX}P6d^_DU?-GCe~r|W&3_6Wx0RAUTI z&lXHBYUMkW-hFVw7?;z-c#{a>><~HK51j6Yzkb+gH_GIcbQGs=*x4-Vd1I1b98O8g zE%lbSl)>pnTYZC*|Vl z9=>42hb$>pd(@P|~_1E7KbA#PqoGS(6^w$zQMerYcOBwxjF>D8{ zeaP<##_TVRG5YHg!E}JaaP-%qMJpk4yV7PYu}ebiuLLSO0l2PX?0mDoE)_aljghBk zuYO_FC2oI}DESbhy!R5kr+qYVD#i5PdH2J+AFk<8^6=H!w}MfU*KZV8DW>Gfmy-Oy z5OaemdBHf6CvR@4{cN?7qUNgYGHKy9q}!5LEi@&6xnNAmYm6cJD+IF%bVfnqHOC#e zk1P3SwdAh|QSuj|qSJvZJI-WfMJ|#g03-k2WTYfQD^beBgkb({U{r3k>Kx?Sbk_P( z9`U8@mM`RtQkVHsa@6*Qftl|~G40QfLqP<(jc5sHI`pu^&oZT%vGP=AU!+(^{$+O{I9-21^M>MpLO? zWvdi(G*MU8X!;B>H`t?ziGp!P6ZJK)lwrqyBrSXiXxnP57Mi1p_kz54@ifL5O+Rrk z97P{Iu-9Wsg7#Xt431s@S4sF(Zz|r|b$F}GDq=s=lK)94j8XX$j4w*{y=HRHU`mYb zQ4-r#W$Is3VuEobMp}WT42fMUoGt>|*6W}6W@_FK@k&f%42fOmU?{Q3_wN3kOYv#V z>2)D;`YUh>uyv+l2r-jW(oq><qF%9UfrjMx3G;2Ca0vMIHhOc29s04IGnOi14|j4-XJY(0ovyD zdLO6U3HEZTF$SkMIv78v`k_qg#t=DuQgixzMovjbae9EuCSoS1g7I(~Sjyn^m(s#E zgVP&*oZjScfrtc+F*v(G6Aa|oPzPUingO2NgEk$c149~^hH z)Gk(3fBlshHOug=T(n9m#q?5c5jv)SsOiwI;(h^32}apfEqaw=`VzMaov#Cp?vSA9 znAY#tf}y2G#KaiVxJ@t-{EkE21;2>y;Yy=NOXIc>`+XPK!Rf#q$Zd8B<__NNiVo75 zyY<2$H@bB0(sYP{RE=5Y4k^W59%`@mTM7TsrHJvCx>HJxM+wgO-lxk?Q^!dxV$_J( ztWzv2tW!d2!yaY%&g#EIfcDry5`yVn+$D9fzo;!G#ckcUIsIOSx3N(ph*AAs27jJA z|85GLe*A5ul;su_i5w|;)pwOfdt`k9Oo{a;lu{Ve-{8(!&~wn&YC6PtCAL{gQ4?HF z?buto6fr1eyf^G_DP@cA*}rpcuuJV*My~MOjIY!^Qfh+AwtleJOW1X^OD)!=h_N{> zlrQBeiJ7`_uh7BZ6vpD0r)rj9)#bWCfk=|H23a@E&=1S2|Dq)(Ko6w?|%Ds*l`t!hN$Y=KW2j|s+< zhQ=7ucw8`RL1zRw{_*b)yhGVj+ZX-ecKM=BoohN$ZHc9adv@%Lrhq)c;~{F)EKpp7 zzc%pplLXWHJt6Jc6X~?HTw6Wv$eAbiIChB9a@OyHGg9ylH*%~}Ovyhfl+E>prcBA> zd100kjFPv| zPE}uId!?#($ag|1!8mYWZJ0g2R13|%cup{8UucZc7taf33FvS( zzbg9g^DW1IU92Vce25Y=HQ@y*brVY14Se1=x?l9wt}#aKF9~KX=%AymGk;PD7ulxx z6;5;rFNLIbmeOYr{vf5yG5C_x@5LBj)J|g57%awn6d6G9~t^Be4>FGL{%6v62Ec&A2J0__`n4rBY1!ye^bY z`Dn_JPbt0<$Wnq4`IP3WzECNqeBKZ`&jD@AN6|6m^QK@-`DlzGpSJ|l0Xp1+-Feq> z7rM4(Zyv%&cq;_?gf4-~ai6mK6cmwQ+Lk{F9r|pXPq_#CmLsuJyp5KD7$vb%JgZ1Q zL8X}Td0Xh1mPFH`eDt%5f>H9(&nl`E(~^)cWl0XO2Z*%6_FLFW!8n$Lyt$?3c}p3V zg!g%}LgpTQUqs2!cO$`A>Bz zV$|Ht{RB!^*KVw!KM*>mMbcbw#Ni#|EF~B<;`DxkN-_0^y`%K!5W5*{l4qqL7)O67 z*}zhU{(LAcH1}y$3(XPtkzh>y(HKL2{^nq)H?yL5AEqQ`kGMY%On*Eh?z`o}wDq@8 z82a-vDALk=cRi|>U`mYbQ4+f=P-22{Bt}|+r3{JvT{xvhvkCvrH{$-`NW*TM#uyU& zSTJirhpUOFp7~3icf<{W(hk5zc}ComT4EoED6x+ru~n!qyT@*oIpY2)?J-B($L@&3 zJ_*MVF?z)5uT;1xe4>XsqEgIx=M$l9jsi^?qkzv7v6NtB6qMoq1%pa4`;-z>efkw! z^n$eK9VQCK=~Hs+mf}~7++fc5|B@Dt!Y{dGP%Sh^!M_D#jslG_`t&~zhJCr$H)mIQ zN5QTG>(f@%CiUAIQUCrY#6BGXiuBy~+lZFYB<2|fKZ=N8tZgAmECPzG zuV|CqDsxwj>|})wK>_B@Ka{Wfw>g|$q3AFH^MzsOLsDuIvWfNXly>S;#Bk-}zI&f* zVz;hy=P$g^t?OZ3iWqNQToVVq^Ya5;iWqOHp;Br*TF1Qt@2+fZC6W+`!T$(Jonl#G zopP~}k_a6P87ic}@nc$&VaQVV`nisqliKsrZH^@=!#ZUbq!Obn3E$!fa-J0B)7qGV z+`Qae=`(5zOED#1z7MNX%(SyenLTRZdsY^rYgQn{TV5A=)dH) zqD-8Uj^gwayForq1>@l~u#~|m_y4?aaGL1jbWev1yKNd{aJrXZmY`MCrYEl&v(n{s zzUFig~#)J-UXh=jd-wSU=HyT%x`^BbM&eP3{ft`>nJEu}i%O4iXrf;k%!_F7rJ;~G>!HDHA zz{;0FrI;S`(^GUz3(2!@UK^z`hJ5ySFw{eL9miT%*6n06pb;YK_3wP z4rzP|8vewaS6t}Iw?#`MPx}3j)NtUcueN1t`t$ihhpQWUr|bUSUYh5~rwpfSc&36F zEgyXcN~M_VodThwE4F^SuH|62Jy+>uV#Hg9%bzFbH#8k%wN)r|Y@5mFsdalG=Q8-% zl!{;|XV6jm2`a_ZXUa$Eb5o!`3&zoB$|$guq0dFq!duY}_Bn%Uq1l7Qf-!qgV~idw z5scE4Z0q|~PvNu%d&u?}4~6Il;4yku$IoiXmxv~8MT7T44IMvpG{JbLkL^(sn~#_q zY^$D)B*8cmBQ3YoB5x@}Vx`DY`_DF{#AgA@1Y=4}V+@H+5sWRdvhPj7KBUdb?lV=3 zrwFH?YEDo6k)3bq2I(kHkFgshg-uQcqA zY2oug+mNsNI4u{9$*IN|oJIt*7IcQKOS_l3z|jPOv3UYbzK>^5o4ewZdDszYQdP2*BC?c zH4cUncfCQ|{!AU1{b^NgQop;;QvcRS59Wd*d#Ct1rw0xD!}chNZ6L@Aw!~OQFpk6s z3oK;;SmP6IORRBV67yK>IxVqT zBC%Rf%mqu%n29j9-JdRc#PKh1=l-0Xy`oKqa=2Apw0`%kr-itr3{J9 z6;8W=Mnu9KpU(4My?4#1F^0tI9SkM5^gDr^ z3dZ4-v;s>RoE{}DG&!yJaY~QI%c;f~oHhvNRn+Q#i&3~1$p{U?>8arKMf^2^hvy}j zqq0%x*d8_CV$|S_%6zQxQP?6zjmkWI#=}j)-D9E7_9zVYiH#J~>s}yr73)?cio@r+ zy|YlanHc4D<0O%I-Ks9r0xT3drq`|83=4phXySDXMl1mC>`9F(#k2ryv+Ct@1AAF8 zPA^lAfu)RIrgxbY`UB8oG`FgSrUh6m7}El1jM2+S3+4*Y7z*i5E;(TruMKY>HF&Rk zgO>c!qAi!8!!JjD6K>9=E%ZR$w;0iHIoi>d0-S?oAVzC~eyhJqF?;Z9LdW!5G#&I{ z0p3H!(Ign@!2k8jM;-4WAxzh9*p;G{I6@tA5Y19_8952d%vQ1yw6H3@lYo38e`NR6HEv4=&zo9 z&4t$}{UKUjLyUi7((kvR-`nul+FLXAJNys^1HXl=r1l%zi&X z=$QSk>7d{FmN{yRV5Hv*i%O*>D#h$~@}>Iy48+`E_dEMcFiyXdH@8%ex0KQEZPLQ6 zK->MUT4?tB3c;9?*BC?c?Sct|4y*F^`^{SN?Y@3bN-5eVmSSl4^?Qe4%-S`^sQp9_ z#%pc^d-?RNXI-5?PS?JQwTC{1&UXSAzB`l7b0+cX{3=K1 zi}0K{12IbHi!lnQy(-1j`87hv)Ok$@I$x}x84--=e6fCJM5UNIPrj7Se;YA3*g8*J zCm2WP$(vj19B(N@=f5s3d>v?8=T!?$o&SblOv!7EA^DR8leyn-(vm;P*YBKrz2Cbz z$=C1S^3|>}M(rmH<_d5@Tle)lZg|V>_pQ42lcnGH7=^bp0(S==$dX{%y0t>bT%Vro z^m~ckNhU`1dx?H>Q>B>weu~gB`(4vPznADIHw7d8UZPK0suZ)|$(QQ)3lVdJ-S6x( z!8rX+-rQ1`cuN`meyX%^283YuyK14?@0=mMYY>ewB)?8Dxze_&82^AHd1GBkI*QZF5OaggDK%U$4yUB$mb%hg%HZ^LY2iwpA z%c;f~oSrF|%$%O5IXzQ2Ezq16J(!78(ovjVZ8u2RH8~ZGhf}xIkG!P}PS27Sa-ZLZ zoay6qy+ETF_w(e|B{-rtHAe=@tr%ik`PjO-NDd{LqueBSbF#5b7 z`&2L18*W2jYmeK+#K#cc$ZQqenoLyYXcI-`EJ2A3e z&WCZ4)w-r*+@;zibWDq+Yi}$-sY02*1Vf926t#|1DcUB;$p_9PS)r@Y9@}mxI;Pz? zS1_jJHO7$qd4dURzPvuth`C5cI8P*R)_%T}ItzJ-NI1{e?-%%L*BGOATGOmhJt$=1 z@_H%xy7miwwSQMiEk_Bv_6vQrU*xM@V~pA_7R*}E;ZquyJ@(Om6h&uG4|>%9`)Df? zT}^4P5CPrAnv09cMJNS|CnEI+Pi7jYY>yhJSvF&Ansc6?=kx^Qj8oEbOYP|`WsKAB z38&`(Z9^{hNsM!p*Y;|RA+bvZ6V`OR+VUOE>7~B@`o5Gp)2RJYU+tW2ytQkLQTyeB z$*e86>e?^&)qaJPYBg%V+*dniEpP1_W7K|?gP|23K4bGOUTt}OyR@Y%v7)0bo~|!1 zYc8%5Z8;AV+2_CJpE+5+d=2=@HNGJpQrG*!Rp53k+eVpDT7*l&S#^Cg3!Q_HY2>;#r zSc~S=_7gq=fBp9py5dbs+mcNucy0e4M=7>%7K!~C6c0qg9(+Vyf+;b!M@j5)ovSg1 z#029=jI;tv84~-Ia0-=mBzCh;Vz>AtrZI-ZZWT-zbSSahw;niDQM4s?^yux9SjM^X zcrCG8MPi>oV!U%Un-Ap8(!y(j zMnuBxK2Gm+xUk!%F$Sl131$fZJ7et<{^6`|yA(gwoZcmz7JySeTe9yTZEEIR`5U3L zKU%`v4VMnX)`H!#P4iU?iNRcHtiLu(DfTY0-e7|iwQJyI82$aOjI0^cQa#;NlBQk)pahN(r2 z?0w~z;9VaKZb~Wc)lzDdv%-|(-p#*&Q7PtAQTIw+nOC)O-DYCE(zs7bQ5uNoV8>3= zrHDZ(a^u`LL8aRhPm))+BL?g{Rs!d@$H^5BguVr?N6}w z&|Hirw(ugpd_#iS%cP_FYoX577{l@l#_46!3M^&V!zZPM>wrc?!V^ADpK`dc+omxF zr%wweEEI-VbB3SxEk)6uD^CG`;#~}_nsRJ?XL4C*Y(;oRqAlKa?3_eXXR<5Vk_sT5c(NU~Vu+%I}2t3y?_~3{U%H_V;G!_&T zl&Z6Hf}uqMoqRHCsT5Nh&kLOkkw@FZpy-%(;|0N(($E+~8ZQbajPi)2*^TG5G+tEF zF!cE)DRq@Dg@3FUeSPr(=D3r+?!$-w4uqd_vdR&(xMrO2vV$8yv z(G+D2x6vYz9udFEmG+#FsK%qn)$k5Ox@5JLpR^J%+wGS6s<)Iea^I5ntOXho32*pD?w z_KwCFz4NwUI`F#(?C4?FZ~c`^@xVoj^4lWS2Oytj;6i*giW4?z3=_P*-=Bpt3SlnC zj@Zw;uv$ZsRbC#QpF1leE*ddR!?(Kw>AWL!6besr{q@Fab{V{xTbCk6A+i<=Ir;In z=Ut(5By!lE*FQb~db^BeEz+fk@s`>mrN{-t`%es;>Xy1(mm{ zg)kib-`~jmUaUK{eBKxR83T$up>hdd=i-E{qwQ!|b2QCJNrayFk4j^G@mJxZ6eLLV zk%rQ`o`dt zMOJQFN}+X7T1tVncUnrmcur=oj3h{PI_9FF1wYd;)nLEx&G3ERbQq?Xx zB0AWyMOtFSKw`!lxBe!jGF#dnU5Xf#GBn}uQVKs3;y3>GMIuzVOP3@h zo}z2t=Bu6HtkBm{!mfRrulA5&%-S`^sC|fFHbI75;k+4Iz1F3e)U^-E65b6Pl_jOj zHPMhP?hsO=iuC*Rh*9IctW16BUZt2iHdN?PpUK51SJwVR(}70e^QoUbTWIMU)!!ZF0<$PQ!UlulxipfiuB&J4L@WXgFD!Lax2x+;B`Jp~gpFcm(`UV@>$u;~mpXDeyXB*7FIn4vz*mjx3y zFj+p#-hwgP-0f@6KEC#J`Y>U^G#PcB=)>$Qn8^m_K3{wG6UAdN~94MG`4a^%p%t3;wG%#QFVGb6I*%u*Sn-38T$Fbd> zk9?RzeRX}{!yG1wfQT8;nt7co^l`NaKV@|+-$y`QgrnQ!Ek55 zrgNtclPj3>4a^-rOrBuOF?gr1J^6w$_4#%mra&-97Z#Wvo%I7YqtBY36s+c>srY=(1-O>{8j5jxS#@f4DlASAJsYJ3pQpJx~ zBT*^+PdTQu|#K=Q9;4Nx&G|D2nv=LM2@alTwk#`at!{+ z%K&qmxuBvZviKM)8tv%rj5nbr+>x3YSSjG3TPuX4HT{E?1j33dBd9L7*9IP?8Yr#u z^Xp;6Y+1jdCB4?JS_pyklU`$MyfTrh>~1k0?w6m%P`Ix{a*MS2)e%c|Ov?NXy#(923+fRYRVTaNV2k>YTGJ7aCfZw)k%$(uG_@h#*3ua7 zO3jER+F;p?v6xnWZ$PvnI6JK^lv70k#1~wG?VTB%?d`?>;G$8S3yZ?U8y%rF*~uEz zEJPkUp&rSKQ>!A)|NYnw{9 zV^HVW67m}*J!)wnT-vV9^qPh~5ha-r_7s$feUpAaO`ffw(JJvTqV$m9=?+dEt16&} z^kb?k9r`uNuE7z7%@L1P4bmu11FcA|j63ujpfjn#*WixJ=whr1lot;-+)Z!q7%V6G zwT@VPcEOp&8{(Ni18szXW(y$7tZO3<>TVhS-ga{k3xW2Ncc9!x1 zIR1-gR32FoQRT~XDk|uDK4bU z5RR2@ZKfh(gnP-)DC$gvJiwA(DB6xeKN@C}$)Ez-CUeMD)A{Vdr%;QTn?jfPyh{&~3(HMVvjK^SpkxXzkUIXhBbP+nv= z-PXHI9bk68ZKC6yv99>wEHua}Kc`m4B^;C{_$L+Z&5M(rbGqA72|S8e$!Ai!BJxk* zw$6e|F_yXY6*VTMx>#3A3Pu`I@OD-Nm#4ACCJOAWvE-VYOx5yfNLq-v>9(Yes$Osy zQ-QgrP%)aFrAlA{8Bc+^o(Q2D(q07m)Z|Qtvf;%BQqoOD(dHC z>_lpC3hr!qQF7_>coU|?nele0W{NvLk@@f#lPl(SuUH!I)alsIbIl`UR!g53GiM^T z#>hCjqINbl!68O1><>Arku=>dxhUD$T#(!)6*Ud+01fPu78(okg^bWxVDRc-YrA- zt4*?!fs)|%m^1BjqcdW+gKf%l6+pHCGjk)2fngbhDVNE>bv3aR>evAbWNL%G73RN;szshU|)Z}Y4TysePb06RHZ-_T9jCUql)|diu%dIF=_((07VOPR zue0nBZAg4Q-aE-!%%MuP^p;t$9}4wTn=idUw2lyzvd?+1R5@~G6*&hb$-GcuuTd-6zm91)xr6QS{ z3xF)+WrxQl57(-%n`Y3^#W4DAnW|)aDwe=B%Nt`b2es{qR03-=s967qRW3}s`;;G% zb?%I|?ylB;(TL8C&Yh)~pM7r5ka$8!+nPT{Z2^{j7eL+NZ2)jkUMO z+p6GRV*c$;HFR(p-ybQ!Q5dYcR8)v(pzZ@Kn48p%Y3T0gNOtx^XS{ywfCz|#yS?=) z&v!vCCVIJJU@s;I&;l_!e@Gjy1RV(1@d+opgEa9Lg49GFF zCDlE$JqC5KeFB4=$JszvJwUrU*jDKNz|am{wwl8tuQ!zFHYVfwaU2$juax`GeVg{m zn%VSKE85p=Z#m}%Og{$^W-wHQ8#evJ+e_2hu4Ee>O+#5LIy+-)8WQa%7%M%9iQA_> z{bHRm(gO!{c#|* zZ;BzYU4@+SFc%Li>5~28Qx&9Gwxd26b8)BCqAT8M7i~=TV>*FLgZ|^r6*PIUHcU@! z*e!6|&^O;li3-W)*ZAmv%xe&ii#j%@!|cZ?9wrxw_IP3+#>V3_Jhk zmMna>K2N(~vO^~cCw z1=7p$lx+ms^u*maCwgWWl;^_Au@jf^SeNoCk%b$g830(wiWuFUsH%!c{p|W`LC4E; zs%mi^Y234sd#!34zr1KoJXKz(w<27}mHV`L#eMTG1AUPFH*--T&F{RF;dDxwBGN85Ud@FBCSGC1s?cE&_4dO1DlOHkf z$r}EF5#_jHZ+OLtZSOw4r5z#8*_p)Y%;Fpu5$7+X(K}{u*V%Ecm{T3;Za<+txvJgX z=L+hFg8uXaK?CgvxM$m=&l&Ym)97y}X6yv|KHJlfii)(R&`Q`u`rDFZ;K0C%$zJ#>(xCib*F*@7I$f7OIPpeb7`V1{v3Gro!E>s6dhxX z6Hm}>4!wt@?iq4Ft<^i=DndNwmD$b(>Dri1(=0k zWmd@b)yBIvYKzU6HIRlB1UIB0f`$|ppdtDc?tPm-V(!2a-~snibeO0JN3`$y*p^KtK*`O zzM`DtA&S7Rq)1fNzQ-*x(dvy9o6&Dl+{F%Vl}ti#$)M}Y;&dV9Rx(NWyp$5a8kI9NNZoQIMDG}JzX#rstE-+B zshK;oUQYYXO|~!PStckP*2i>P(wE6%Gg+*1Mr3wX-OP+yt)0URJIQ^F0S;UUG;Om& zIeuJ(c18khkJ@4yw9Y~%pCk7&7ovcBDYs2*SsFI%zdfTC2K&KI^n=AX>n+Ld z&Q2VLl$A%ue$w|o;NZ4Zj(?8rs}wV<)+hi z_{wd7ry%sLpIl#4T?f*ag=OD%bJ0JQv8Om^*;nGL{D0Ce!{xKx$InZ{T>nv8RuyZP zTk&gTS=_ffBOBCQxs`v8RKPUN^#eFtzDw^-+)NSSmI{ zUY}rWVtBny`@xR@DEhKDT56Cj#F07skzw;mma0TYYrK>1t?9G+0H|AiMnGEi_W2{5 zr;KI9UDZ5g1ekM;^W;$9Nc%yQj7Y-+?6Yy&XREHBi|18vj4`2}m%@2QN1XP?v~%t$ zW2Gh|_Tir(piEY2u8X^r3fSIoH>gk*Px8@4#sg>--Kk^)o}P`h*(*Apb?*<6#j**3 z4cdW{sH~YK7ARWt-yWL%n}s}m@VRM{^fshy+>ckC-LFp4OMH16!#zGwD~}`hn~Xk6 zkah@Rdy6~PDWhJS=7F=)_Me<11*K0Ml{GUXbE~Uo2MEdY2n$wUIB-8ATf=q0}L)t11heyja&Rir8+g;XT-`BIXHONzHENH3)|5+ z65QJ^KiY_yQN}wTlSdsK@VKF1*aTpDBT=ysrSx1{(bUwvq8q1~&@MbKuPCeSqkf*& zvUi@?3{7-Et#TO)*vjsY8N-?jcYLTg112K- zAw6z?&4)^?jCZaXs3h}jB`MEyeM>__^yt!0N7PT!ia{&7)hHX|Y zF!Uy{A<&OpeWwj46ZMVqexKAfs>Hgn9|!i8^~oC;cT!mQA-ga$Q<;W7Mqpne$BD}U zaBnuLPjLse41JI%ePBNegGE?6pe0-9!cBvWsI=<~uVI zO*VaaC9T*uNyzg(NZeu7)WA_*fyW)&{%bWkGi63cKW(OT{K|}AQ;8i1xo@QHAZJAC z=eq23{24K3y|zCa1Qb1601uS2QZp8QyyI`E0p1;9o;JzjoHH96#oC(a^#OWAPrV+a z1$)Z67{v+=ZX#Hl8DtJ{GX`T<=F+~0;a;Y5`4N;!{em^X&(<&-+SU!J2xj1Mc} zy&h?u;H{ZUDfLVgP9C`jzi^PqIn2e`**WZGls2Na?`l^+@G}qYLt5!94UVSps3(yf z(aOQz;jy25(3>dO|7uUBRKwg(PTM{S0%5t4Im_#irP$kHa{GOIrN%LH z9D1Jx^QvBDSt0Mn6Sd?kuab#j;p#f2 zAiByGvDMKoK7Kr?Bk6pALT%c}X7r$F!P@I4*F|cpq04empAL-u6uf>=pO22uNp#^& z#W)t4c3a$4vIYtw?F7H9H}IUBQ0^ZYudWWXph#ys3a8C{+f@?N;dbDiIg$qo3Ul#r zFy3XrmqBd@4f~1W?J9%5F4>Mc^s0q(W8SO^ydR-dsk2s@%G$`h>N*_QC@s(BYY6y` zIQ3$LPW2=rUZ-If(IcRpr`(N^16|fn`>TO7CsJEkX;bXNc3B)R=dfw$YOC;m$-26E zX<8^VG?cWw2;V#uH7zf~dtD(WdFv-yIG8tTv&WQXd*8S%XU6O*%DjxZ24&#dpSK;o zg;68k#K2XNo4PxCBIBY{Pi5$Az5X1Cc_$&)(s)h84yHGt3C-KS9W$kQY4$d$VQkFL zB^(AFn>y{yc!|>dcuYM!V;=YBD_HnCGm0$JlQrxttlOQ}?Cw~{V?fl>q~M&Z8+Alc zL21|sdAX&9`9-D0`ME|SqItQw#l^+^x1c1qjCo5&)rFq2rmeXma>|F6bt>N6&v1A% z-dvT!>pgX-#J_ih?Z5QDqsDr^dBW7LsrY_O*s@O4UoaYqw1_pf@^IsuCd73Nv8;=M z;WtdOmhd}~qpa}Q`X%N!cmR_xmX;%b5iW)huE^Nj&E^-Pm_7+tYze-xii-i{iHoGu z+ZXBQEU~N`aWV8p?~Wyw^*k@?2K;wqsZ=si=-dliqz@V3@-nFRcDPWFj1tA3L zh18p-2fHGDkA!7S#>J3@OK@rZ%kQxr2~4}jsrGTadHJ{vxKn|dwj2?JY+ONntOn*R zjSG_BlgKz1n5Avd*A=gfClvd^U60At~Wl;J;}1J!o?882leVYU{3lLZ28If!WjO`G(M_Bq9}j=;qb#K#Tjk1}B1ISux59p}%n8Tlvzjk41* zesMAM)*m+!bB4eI^=dU5Gy|Bs&Q!SG`lItK=qWCSKt7OnHZarH<6m4OV2LvI$DY7l zhWuM`F$DETA@W`YX8Z<$iCxR2S2rO$ADBOBTyNvNxCcDrVhG}+9(nb^T%mEalfp-u zo%}P>Zvy7hvk^fcF37&z0L*5M>#g30f!TATkP~{D>YV}thXd34Z5J0*?@7R%t#Lv1 zE&-Vff%ylnQQsjS!!z=WVP+K~|3+L4z43cLFwbgSP`w?pQ-xun_CX-Gd6n7cG?82-+rFCQR%D=@E}hX}$LTtV_X`h3eu;9>~m19@G* zyn!op0q5V$@8W&V=1R3uGbNF{H>v3FT@lCHx<83nPdJp*% z`B7Vh-sIN^%qEQsk{<0#!tmyS7zbW5?&w+~}kPqZF0&~8B%cS@FfWT$I+s5YF0rQ&11=UM`Z3{48yVRwZsa}q^BrreuzKaXempg%ZOyh#;y#i#O17_7_m|JmW z!%|AUOS`lupz5JrOb=_hj!Lsbw*vGA=v;ESLieUu*8}q#jSFhuT4X!~OzoBUM)Xzm zJ3|@uYFAXZJMs_3#o+jz8P*H4fT`EGA;8MGOdG#BNN)z_taMx&zdr!(Qees%L7+Yd z^~X1W>Cw0#e#fHx1;AW`>v~)vo8Pp08-cqS`6I7J1VQnUd0p{kV7{VpLG^|~qXd{m z2E9!Bw-&e)fZ1Z;g81DA%+A-K076i`oZt2UCV}frTv-A99s}G)N%zpn%Hp~eN(OMd?YOx=$VLCC_DsorL!F9+sv zjq8oy*Ma#^sBP$R)$Ld>oh$HBPn9zi#BToBcD(x(F9THm;z4`#msk zYFrQ>9GCBF%xChiwnJ&-lIx10KgT$_p0)NazY~D@hQ8*^!{LAN;NL1UXJrhV9wPz zr$5s47Zm@_mksNP(V*#yjHTo2<4s`q#h_#5))Ki+q} zEx@eQxS)E+g3MZt*(Cq!b$psWw}QY`$RG7&-}UYd%;6drRBt`Vlmc@WuG?@8v)40e z_11#G^T^-#>AveN0;Wdeg6ie?od?Wses5X(KLdWOBQomqS`hf^vsiyT*LS^70rQ&1 z1=YI*WVQe^`+3aQxIzJTgZ$o%{LfzKyWVjxTGoEJ7=r2zBX2S=b+{Jd3Ss8YWS^?G@b1o;zQ zw42!T$-Of8R`E9=Ad_oQvP_R{i}14 zR|Cv*8aD!e2l?3ty^A#_E`}gJ#v-pmV~&!4Gs`ay+#=-Pp|L~ocTl}g0`scI1=YI* z8Sesf92}jnp_%GDtuE!t_J2$ec%=V_b*`PZS9?26xmI{+|viH7Px1D*@qjS z2tn;T5_tu{e6tT6wmGeHfH~kpQuEQ{Hi?8;_$|{Ion%FDuHcC3ni&-f>Kf~6E2r$Y zqHASSM`vokuqSm+!@{chjcJMV>Z<2f%&BSEFH8=~VNDrItEL=_XEZxj#M%=vGuGL3 zY!hFnm@LXWc77ahz3GY{+oV1u(sek#V^(VII+k5JOg4ar?mq_c#{Ku5lW6Kpb|qU< z;e+QN5}t?GF|J5_9Y@2${KRg8U&gf-TO-CEJ(iU-%vMLVcE~4ACs{+r{(J(d?pjyd z*jQJC4^mXuR?Lmgn_pcse-E9DiLcd^?s(mBaS!sDb}$(ELAYH$2miDv8`?TSZJow4>Vd8pN)_9f(h75T%XRV#6j zrisN1Al2+>BDu7?h4fRPHgd(%Ej%dgRwZ!cK8E~nLK}{8^P#WZ z@f|oAD^SJ#XyFvMitQa)^&pW0(_1@m612v6+n*ZF@#eiiaUmKt-lbU4FgH(qa*ihO zcyza60yDlmdOzS+qjUChiD+x;K3>c5bunleICQ)*YPDkE1M8`HEv87mRiYHIvVAPe z`AFuJDOKG#Kfl8Fo|<$sLzY&8al_ClG1+hE=8SeE0LF~w1vnF^UE(V!F$`@!(3Q7* zCK+nXkI<#JfVzJYL}BQ@?jH3G`ANuMg8T_CIlOj%wm*CCghY&cBcZVS{1~NKMzq2pd z$=Uo9NXt8$JK2t`(q5fH6+I)Pin?z}q35y%qz%snH7lX0x2(|H;*^n14J$6>pHw*c zvml>;DjyNKdBqg#RjASstMQZ~_3oPxfuVPqK2FVH^INpZ7&i5tiIs5K;Ndu$&#Fei z3pA>dNiEvlj!BCK_EJ=37+C)YFKGxqMPC|*z^#ZBu16~j3eKG1G=iP_XQ+|csrEz8 zha&Gx5ZK>UvA{Rhv$Bn#V^l_yq)OUDfW!MG5HyB21!BLp!D$rxMBHmElHi>3&t2JL zEgi|OXzE`4S#<#R3&gKV=&`PyuS7FEHF4o%ZBaWfnu;w`?p6n07-5XG%yW47(8(^x zJ9v*iJm=pP?J7m0`4L{alW*>#c6YIu48yQ2k~x@Nv`2?CKZw13znl` zE1a#;?JYQEN*7*&(YYo&lr{Dl45w{EK;$X0Xd_;}u|qsyqo<5U4&0%}f~PALHmJIt z8`%HB73VjXmK7A_7jocC!(w$;f%1hpEp5qF(Kx>-OBq!_LzRq{VzJh_##yW>8M%TR z?0R9xvNvT4=A(WtRG`YjypNZ%lBPn0T+Rv`Afw#`7LB$i+oPSSR3a*$dr#3PVkcru)a?jj_Bf$y zU4@BcPa!I+@M&o^bCTW%6TmoKZ*w%hx+yLn>ewAw*afi08l}m@bh-r}!Q$^O83}rY zj>({zD?ok(yePJnZY7dx$>|q`kPJ`18imTCuiqDO^XD_+>oRMJq^evBFyvg55L zR>o-MhhTjVX=O{Ya}}QE@-R=Sy##?OskJ4SVIl4e$YLzp)qwn>m@0QHm&TfwmX?*a z&@j#a0?VN#UR2T&FDs)Q9(N|OFP=V>sGV=7Pni;(6YDx557{?j0y$KQMH>^% zYg%GWYKqG^L5F3{TMdCIFArRG%mUriJ{2xJnGb{Vb(a4KAe9|*8J$isC#fh3t5zVe(SkzL`D|Z9M>Lv5T}7?>nVd zN2wTe()L1*cG8R-sEm3gDs}B7^pMiErLpEH)h*FX(|NmNI@=)Y&yTO92A`{u!uJkd z`WBRy#hP34^C*YEe1YXqSXj`~QWh_u9IkSvkT0G-(>DTk1=_Wc6Np{%7D z3K63m9{2)}ivon==F*a{!+zd?anZG1Mo7TQw;1@w&-ABJ_ped+BW~S0gz*1z%Y_?< zr(x4XZ5--7kN$5Qatro7Oz`_CK?H7>jt8y{)80;6V9n8{SXYXv_h7zMsn}PLS(JMc zk0Dj>N$6C}pflhWbjH@uk$DjL%8{{4A-^`+B>>rkMx&G$`x9*H7Hp-drZ&q9wbfqQPmxoE&b(S# zhD@8=gEZVq{|8G%Tz}q)TYx3fm!+}J`YmmVwkuHgqhH1dDq6=+?4`IA8jlTJwG`sA z$3DK3R+>if630|x&9s6iuqf9fAV4Kot{cQ3=XruRVCtqwRbGqW-_4!ut!i>xvVEBx zfeGVw*sy3NRyVXjH$wsRn%8Kitkk$s{xF(hZj=vrMx760i$QF*>iWSQbmF4CGv1N} z&0nL3TJ0W^MQj@1N?7XtmS?WZgzKfNc)V&6Dtr%4LA?;=iQMPBBTH*!GW%;r>o$Jh&fm?5WqoM zS!r`gyl^QG!Dhj?8m$IuvMHv{wLI^r58u?+hTT2v;>E>L+#PVGc6JtxIbLAkfYlYWvT7C`ITHR*v(^}K=C>zaTbqfZX+M3JcrEj<8 zN`T~1Ac-@=>8DJ$lUDlnkheHYWCyDH6O01P!GF6dJqvISy$$`K78cTJ?JY^(&pQ^W z>VBR$O3GAFyxop?x$}v=QNvNnByi~*VaS{y7zfAU>2)Bv5xdbf2G3YfsNHCKRa{prmMTt>Fe19qH-SBqYMO}giw*C$GXM$i8>I;3*Sm(0t6dIu&mPJwz&~Ibu?EA zpMwhb#qgWq6_5(vtdBiOS3-@=9QZWqcMN0O@y|1`?6H4n!pQ@a~I6+SEQ{0 zX4k6?uu7#U^$JSmNhz;8mf`;BJlk1Y;G=_BcEmb%$ih!eFZ~s_QmMf% zHC3J4v34!WD=CWSwaDF>U7WSW7f%kQEzQliZCOJ9>?6lN`{K!=xF9#bIM%$BP79}y zk$8NqIl*TcIjP`f-qxrnP9rwRo-;u&Vc3myjwkX&b~lP;tEUI~d?U}$4_~Eb`O)~B z&o>U8QCnBTC${*Q<*;b|oEdWo?HCH^%2<>)2hT*Yskla4d@CknqpUqcc=3#+?X6>@ ztmZ3`U@hO)%75xNROf`7*F%pj>$LaU)@@#}a8b_(%dMSHe-tSj*5zD^e>T?T9DG)F z&cWMoh#oKD;Lm9fZ7bNkJoMquKYpsV=N$qTsN8j%Q#m~+bV6~&%Aqz05*ykR)FS*%L+>_lYGE=X^jzua2n zv~K*O`i*l(pk1sTVpde@fg3AL>8Z;Z)6#AD~#9_iIpMtDz5QX z6@K^0VyqdlAz*8~H6FhyiB;pbOz15_Oz}1ve`DJkSIEMQiO2ds#_v$;CX^p$J%r!k z*2nlAVNFDtk=B9u9c9hNuPOBn>}KI2^HT>9*@Uon-^aPQHklOpux@aAK&xX89@MxykmW*x)+> ztG%$?X$dE~!tmz9*dDYyKD=~IIMs@D^?<_RR+V}B}O=WRH4E67ezi0qn+|Nli9_IGQ5Kmw#k=EmT znlAaVs`UlA{vs*-VVN2u7679Pn zg__ZgD_gBRCLoDTPvIJcPkD94mc?t@n|DPr1s}#W!q$+TkoY9Jkq?;;Nx)btU8)CW zvXg{=#Tjj|3!j2$-Gq7E}Q%K9pP*`1@U3LP6|kpjDYw2TABM#lws2FO9Zd(6LeY7q1aQ$Lx)NhgtiQ zP2|&pFT{L4V`yJfbnFFC_)k5Rdg_1b4Vs$s!G zcoX48J)bOGe^SnP?NrSebK3o5*UucYF*$a_mkORfYmT*k!O-;!Myy{j=1NlRnLDEA z1$aJ_daSAUb`9xye(L+($*C{)Y+aeHDLkhCtr>CHy;JW8Wb5hwSXt0BXXs(~XT4Cr zaeTr228}pw1f0dgUg>#kxuuif=8SCU(G-?j%Pl+pz;LPjfp^Zwzf)gaIcMq%-L>ev zsrPgblXk6Lz3sEElI0=0fOM?RTVFF2&0aqTZrvF00l(<8yU&`n&8E4fYI(@16fHQk zXXVh-|IwY@Lw&S*zB#n#k)FGiGyI_V!r*27aU<>@3V*#iXY2z+S#YSvM~^@5YmPrP z_MV}(Kb3|2Zd}TbS|~B>2xwn}^Fd0|X5m+PF$u)FB<)1}c1r9#{PM4C>xcNAEwNwX z_ehET2EQE=`z?OUCH5+QxrWHLw&GWLO8;@v_JD>c+`)(`di0r8i6u^M5;4{0o;h39 zQzN@%V{7!>2y5zB*?~>Hw~TmRm>RpVmLKN&%0bU*GeH{8@HV z&XVqzHq1ez&Z^7F1uRz&*9k=9@5wzwu)@=;M*N+#04t{vSh_7CK!|X$6;{-%VJh&) z)Vpt|26P|1u`y>N7FzSqIyNVw5U?p+ZACUT=1fBqXJK_yht<~8JzFunW}U@UBY)YdNOd)-6b3z0akXV#e0AHu?l4SlL-mR?#d4EKZ< zHO$|(X%kw(ngAV(hRtHlJt5Y+H%Db(mgM?a4*e1TLyT zBjODDx_ic0<{HbJSAw zBBsp6cM(&Io}VH1Dg-^=x&<+{=y?G#wdh%a9JT2A0b*)UUym4T9B}XTqm)K_}w6}G(&Qo|M#L?^QiZts`XyfJwba>mc18Mhh3*?XD{j@v5p-u(av5JwxVd< zuoZPS{=pv9TKqE%7dC-tDpO)A+teP^@klgGWuw3k8$O_y$yjB4e>} z)&Y~*+B1ZW*}{E6J&ka`3?LZGjx8JUySOjM8kQ4#Q2CxcsIj)s#PO~S6iwunxUwxy zKq`%XwK9Sgh|QJU|9AGDb^>$C3{OK$8Q*z`Dc&vwH<|XHxCb!Ix*Na4t*!VSVeNu4 zBdvY#JIboU@96)_jf<;A=y~|{8f`Y70WI_d+nC$`_O&l?8A>ao{(Xtj_FO8lNlq*W zu}dUvGJd}&u~PhABe66~pI=g9EVjk5%r7WQU*6{z7L}wIEG+P&3JTIu1!V=Z(`JpM z(JA|)E$p0^_d`U51NxdZX0&y8wYv0WV*t%JspXJAg5@9l&9twgVU&W!;P4%O#BqGR8((&*JwAT%)ZQbxciZ>=&*ShFbe_W|K{Y z3{%=fb4sI^z4Pf$0*!ksG_VWgF311-Q`&KuH|P}zJB@OOrBQqQ?j4qT&mESr_8k_M z8;VODc{=@LluKWoL%(>;)VpO?qqJ~`Wr=Zz1@~7hOe4+MN$7w#z66s=o8$Ah!RKEB zpP%<$TG6_*P#(*RlVmPaZhwc&Wv$BXU*vWB>%DVXXnAN6CNa7otV#R*ZLD4V{<;|(`I^FZ3fYtBu866X z#Qum)k(N$F>{VRjtr_@LD~V-@sg=Yw#MBgaIM`HESOl?!QuY`4wWqLy5gTIt6Td^P zYfx&KbsK(%Td(66Uok|Pkus5uvWgJ@Kb^vUgGQNq@AlM$WC>`YC)oM+zkN+%zeZ^_ zh21JKPGMY@Wy=i*72_24D@o%NcC*Adg>9CYI|s;oRgmXjtdx}c=Bv^oV+&bLbfx)z zRDN+9`TUa7;)Q8b*pcXzFxtY-d1XIDR4`tgmwDkcN9`>)#5)u5F6=P7Rms!^PK?^^ zq_Td@W}LG|pb;rt=4yy@))=IParHH4aV)Aii!n84QS@rgVoc3h>=-p?F{b7$cAJ{B z7*lf=yI0LwjHx+`ov-FB#?+j}aiQic#zt9>yQICPV`|P~M{v%< zGEC+yQV7`EJ?*_h%vLAm)bTt3Y}+I;>XUp%ePSk~jx7~X?!}@X0*ZAo=Lh@E`DB>$ zQrORfVa^L3b6yB@elX1WWSH~Zbx*^RS94^^nxs_hc&^y-olpNcl3|}m_pBb#V+oCk z+`Yn1j%}SMlRE5jAz)n7nB`NQNZhF>!u#qYu>m%5OBU~_*X7jr?0!^z&lB6u<#Z+M zrb#gCN9e7by}6aM$7c^kv6plI@qiaPwmfpr2xB|v{-{3}%b|KS2lO65|A48!?z&Hl z78sKSD{yv&7~xhibs_Us@!`l(%br5Sl*O(_Oj+z>5K|Vr88KzCPen{w>~|1T7JD(I zuk18;N|o(i>7@P0N&B^v_9)8Q`$5#ZA=1X7a+774XzWnyO{5RAKEW?;fTHAZ>nQw= zw)h3C;TAWMM_X(0JJMQ*-%-}jC8b~YQ@y)I&qx)!%iiD?d zDXUCpPTj12R${J=Qr5P}ck{0xuO!`$7UY%YH>MfQd%@eDAW0toxE~@a7;pZ}Y&5In zY&h-;Hgw==j(!-!owYG+he;U9b4USuLR2Yb@EB7DkK8MR$CxsBl#McYjHx{#cK&FK zdqRvUV?+kW;;$jro+4`IWN@I}^GT_7n{mHMTR@h=21AJK2n|2NfBb?bW#qoHsKHVbW%hp z@^sQHqI6M35&kLZpt>dQ5u~u~ATx_fCzS&e=DzzR`3q)aBCO3MagrNz#&c5~W;LZ+ z1os%b;y8D-;aKeX!1-N&cFtN5f>nK~=Sh@32^;8gFbP(5^}3hzF)X^ssgYCHDeTax zjXA5eZM_mX>t0Gt#P)bk>j=F=z68~LLh4&~?^#Ymo7(vGuxg#I8bx+SD^KcCB&R+I zgDpfi<4##EQm+Qxp0jhV;6DrSZRd3oJxV9lAGHW~vprOV-}XQcbL z%+^v&qqkcoa*wN1QHq?8Sixr0ybkn@n{lVyw-yO~oo{*{7}G(gQB}sa9I?5QyBNRf zPFcc9TZ`C{xUyv*yH;Xce$K!(UVJ-szUeOfT_d?1gNpJ?h*e73oA_lt+13a6U4#pd z17VcCCux)ZKlZ)^u*%}ve{Sw2xg?PUiGYe4Au1|jR+ACD^0d@etG2eUPyWB(nQxizE`WgV z|9`I;_$KGhoH;Xd&dixJ%QqjO_2_8@>O4SNweyoZTD3m{NUQcT;AqO%I?yeEw7P#D zv~08dJU|)hb@%~wCDM;kcf-#T6FsQD26(J&2xO@}0`nA0w)zYF990X7*{T8l32HO^ zaq0&6dHprYaclMA>*?RvEfo8z}y+Bp){~}Q0U{YO{ zxQAI*QC*#gHEUMl8dce>vSh4Ow5k$Ep}QfJsVEDD^Be)~4m%2A{8>7HgRs54MB6Bi zw$iK3;#fiDWk)bp(LfKP2!+sx!QOs-toH3WqQb7MhdV-gxTAdZa7RcFca)wU?g(l7 zp0d^UJt1x1vkhqbo{+Zh*+R5^Pe|MM&r8?`;1kN00rP-_afl_9t$qdnB?jf!YA51jq&ICO}$cy$6uCM(+ZoRo0t; zY|HajKp9XnFHi{h`$zf98J9kQhjyh-66)-?RG9^`s~VK@OhnjnJg&irA0Ef)Jj6(Ve`KncCL9QT4H1eH}+7^}D1ysWM$ZB8&8KL?VW1h{? z>$|(>hkH8kE{B{XO6Z21E3@REItgvHJ3Nf9pvcaleUyum(*1;x?kB99?k9wFKVi*v zKOv;eLP|!Pg@kk)X7Mxe*ryj5!(&z@JO3J~KZ2uH?J3V%+09PQTw#th4ODeIsdu0s zB{1?LDFwbafxlNWfp%YX8F{>4>%!r!<4uy%>_g!b4t}wX>w{l}H0N1g?R*H+{eYam zJa9Z&Uj)jU^X$nQI?Lxh3rX{cMPP|;a5-;WmF~(Q^?97P`RaKH>PTNya!Y#DqOB~c zD(|W4>7*>TC(DvrO3RXvmL)l;ot7nIAWIz7i!YcGFRpz#(f|#dTiqOtX5mEJPA-_t zs(m^7r_eg+VRWR3jj7a=<{_*2!v`|T_JGdh_&cYJ3{PfCe|%X0ldC7Cw0c0t(W-)&4+FY=@~asK zEQ9rB2V*$2$>IDdCiJBo(`)}6sfafQYWE*{1*NzUftq^ORsKibMQXw;N1mC<9!K`#(N47E#3n4J3!jTpaq~Q zb7e}m?Ft84;6N7x(soBNApKr|Pc;M1Q1QkWw3&4AzLBLtF+IR9Hz?5>8H4mXr#wK~ zE}86vactMU?HoY0$RSe>@Ov#3dr3nQ@EY;_H4 z#YU8)c36;BNvu6hqzuJZwlz+cYBja{8XRvdh&Qpz=3{XPiX1E2kvzN(CaM8l`uaW5 zy!b4P2GIJ?gx0OWDssFz5T6(uAIE!S0a*CZ{Gu3=)jpATQ~3Nea;CgOp&Q~Fgy{y$ zl?6^j*x*itpCKpseX>50CF>Od)rat8wLgGRKOV*!vV9xW{vpI$h|F09JsJ?wtY_iq zGL)ZX6r8l9L0v19IFHs|g>B+j%ATVV-<8*j^Hy9Yv-eU&Aox8Q+Pc*q09iTcqA69cvUM9R|gfn+L~~UU=D|%+!mg%Mflnbk*TbF37)k= z$>FAUpH|#8kEMCx51SMy6!72|<0+5K$Rckn{=$D|a zIh!Lq>uT*-@N3tpwL8~CwC0@yNbBmQfV8geabnqEbnH8w*bf5wBc4n}?LJ3z`u%`3 zy;&2=Jj*IIijARSibgtY_G@4fj{9^edlMG)s&1s+-Y9cwn3@Lrd*G2xwG_9ImR zmc8tkx!3@r5_Y;11}jf>AS_cXB(FwCR7!U^jee=n%SGC?0#SFY5s0ev5+}D#ff6

    XhnH-;&N0)dD7ZbMR{f7$tPfyEJ!f+-hoWdKrzVD=Ut6{rfWVY7<-ttrkbu6 zSkqOi?6JN5Rw8@DH*pe64M2vZQSfY&TEP?23Z8t@3Z9Tw@Z_Ra@PxF2Cy%v)C!`fT zC7=~NA+6xqwzPsLq_qs0p^wXQnHDV*zpYn|a76#m*42K`J4XAPz=xz)jj|KwTkil0 zvXEDeKF6k~-EZI01sKQYMuxXAvpPN*a#Hni)Hz{-%ucG6KOsvjHe-~YR56C*E_Hjn zY4YLJXKdZ%*t#jPb%mH!0rzZ6b)H1kna|e%V(S92b?|f7t=Z?OOfyjCTI?KJLD8_) zP~rr76Jnt2XAcoSb$DG-|rWBN#Y;qn!x%~eaI zOy+#Gdm}lHl(Bb)Mll$SX5(x@9ihlytDAxmy!lr9YV>oo&vF&U^89ujLXhlqkU9GX zJPsv&73D3EH@|-`5Qk4~r!53@EozvlRsecjVs8Y*S56DmRfy58Cc`?|I2FIgsCn=M zibHC)+73TUagj9}i!^Nq zrqs3ZMMxW8tco_i2|6n}ryWG2|(#AymvHP`7Ei1pCN6$ahc&H|)4(gcX(cc$=)CnmgdWv?fP z_;;DhA>(Vh28XsgZ~{NFvy?u2yRNm)B>DKh5Bq{}lBrgYaPl--o>``oh6a_33j zD_Cl34kzN9K*j2whY~Rxtga>@UCl%hGv>cr#LE&GMAn0cBHWu@1{vQMPh`+`Zve$? z@Wd7~1*7XvD7Bawg9RU>*p>-^7MZ1<6K#fyJ8wob$?!RfX2Y zS^{e>_8bZ2`ogs+nLcguyg(c(br^>y9oFZB{Tev9ZZ%<+cmu+yfZl~?0Sqh4=}E=E z-qmmA;c!Q3S9KNJOD5Q1^`S}D0tC5}8wwSz2uGqr{cYWmamFa;4=vteH!Lz+H!MQB zVUg98L52#5Ey|cf*rG5!kH;MxqvmM(`!_h+P!xZGBvRX=+=PkX$yA(YX zeQF!?{eZMB`YAx#cKjM3Dy~d9wy*K_;?T0k7Co#L`Z`ceEA&V$%~vEHEzQ3Qlwej?mL%P(G^?t(B+=63B%CA5W%#?; z)!=W<(zNf^SOfwIcWY3D+OQ;~4NI0>8)o72im7o7(>G{5D!8L z2Vy}n)AW)-qWNEXs+s24bzjSZnUxq{u6aUbL<(dI-y~NS{VD#Ka{&skENY9}6s*6_?41gu_7AwO=*2YG z71;@S50!mg(LA}XXt7*Z)S7%C^gh5Wlq^d>$k50()#i~2X7A`t^#DL=iqDYcL0#q zmw$7@3eZS29uIkFdgXw0iWWec@+A&lFQ6mToD-$GdB|)z9`~H!;pXTkN;+!JNdhHm zPHdSZ29;ElC2orkqoCBB+^u-Gt2vEraj&UcQ{(-eVEWoRbXT$trC7BNC8TvI>!5Wg zA+1AsgQK3D6VjcPr8IRYW2~jsd>&BZ;iLHJ>5m_w`|$V?6>dK4-N~{Wy_@x(0?Gw) zrdm$~dD{&Sp;KR<2tPwEi1Evb=78+1jj?V5Ow`qLfSrYh&GPn9T|KM2ytK5ewBks0 zHD4j(>dMDp7iWZ8Y}HM9Xw^+fw+3>WF2h=OWz3OHm3eKYIaR(QVJ65Hfd(N9A*WAd z9^#g}Q{~iW2UA?!b@*Adajn;(X3-a*2$}p=)kme3cpq*YyVGQTkvI1}2-@LYH%00gL6@hqvp!UVc zc_WRv@z=ex>@o4p3RCRO*4_(F$4tR+`pm9n!Rx=Dcm0j1>PDP&)jKPiC?@Vxpo2Jh zR?HKqRL#_qSGS%6D64y{xBaCO33e-9WZ=(ZU0cf4Xa^p->`3N9Qg-5;aN1HBC ze5dwVfnpByIVbj2Kwp*EeE25_Jzm?RsZ;~fv2y_FvCA(fZO14!&rDew^(&fMS+e~X zR6ha56V3h!QjY-Adjmdy?ss%2ZL*W8VSd)6p@p_P~LYs2tGq zFABs;;{I5pis!_Z2cX9Ctm#zN|RjP#n9c zIJTfT{?ixVi#mZIJ0pqKTNDNj3dNu>7(^6`I2klAh>HrYJ|BnKLxI@j15@Is$DgeI zMPyujU;L4{ul6C-38>Jmpc?NDR9_v8o*m~wbcIVT_eIA*-5fZPTk}uiWX4#esShIf zZ@ll7)o3WbpR6u>u6BRk&H*qw-WI4Gf_A11RKbyi&)Q=Ky3y%m5q8{6pZ;eOdxe#FdnSl zRvgWZw*;%NEY7?Bi_B*s!}50ih;V-F%HnvCnJo{-^5Lb)CvRsA=*a8E-T2FLHhan$ zJWP6B&ODa0A;=%W0~xXGSbfkcsZ*-krBp2J&YPJdN`{Mcw_rTPaIo*qg9l$c9gIy& z2Q}sxRgA$6Kx|tvYR)Pi2`jTvy_oOCZ?go#&#@?>??uW+nEK+~j1h(|vdAtJ)*XX{ z^pI*4R|JC69t%Tb+j)bk-3=o=*IRV>vqnX+b<<<(X2hHF4~N?xTbCbOSAgS5T2sJ! z!g*7fWC6s<29A`$H9H>6$F>4hjebv+T4#X2I)R5GO+${8~Liho7A^b6NJ9w7d z0v?prfU$Bw)IpDQP&PLSJ=$H|Iqp4_&aFXvvyt80OCqTCTWL2d;tkn6rq zQnw*|qWT#8N$L~uC(FIcC#%l_K1F>2{uKFQ%4u@H`048V2suOj41S@kQk*GQUQCr2 zf2YX{{zdYN=UM8nz`=?#csE^MhCEkg0X|P&Q8{0o5BLH(qCZpB0KQO;;TOww8K zgp{cD@Jr`Vst)dItVw>eui)R2kYwr)q%Tr5fRPCv9n6hETSeOYnDc5diJm(Qxex(T@0PYh(3i@mH~iiQ)SxYr-*WWU+p` zs8w{@-IOadTJ6j6Uq*k5!9Io+`vrmh3vw9|Q#3{})?m^Fnq z#XS|pCFPYzI&n;QoPf;M4U3R&ST}(EP$|%^`Zxh&uxsgSw?0qN60Cg&H#uk2K8!iw z)BGEKBQ}2BKAc3xRHY>t&5ikNIPzM2e02j(CdYjC%k-8)<0^pGQZx|t2S!Eh*ye32tuUB_5m&;})k#CT49g?PGQHwJ<3I{YEX{gVoLlIkF8+ zgzp!*24t_rPeWA&lE#tqbTWzkKZ&yZ*W2&z4tG>ml$6MMA!EOrpIi!nQ}3OIz7cB1 zSFr7mFzJvMgxKiZ>{o{y6$NHMYJanF*D zW7UUI7R&vso=)iQE-5K5FYjT`yBX{_+&Z3pGf@P53*vO_z|iK7K3i_&zLpyyEjOFr zA{ZoMOqRNvZ0Gqwyjl={w)Tzq-?Ux(m}A#2({}BuM7#FQ=ui1di1Wc9-H)jPv`#)1 zkhU<-0;Da>^8slKv)I8S4sA)c6uyv`AwAtM-|$H8hly)y8uBS_z!?L;EO-zpyG6 z4eW2E>~zB!Y0Ks6>j?~4fwfD$p0hYNJ`ejoEzcI5|iy$kfKv@ymYzs*0Fvo zJfAyO^JK^B4DMK+5}V1N+^yOWh~reuMtlwjGq8-<^!VaH{Gr-jtb_6kFxYr1J1A?B zck|cfc$vKR(Y&2cpfK@vE?7p-_#WG1?DFE+5LWVJ!I(>W++2FG15vg0!RR}%2z`iU z($>Q)lP(PGuh&~qCjEO-?wdX>Gb*iaxo9H?y$pnC1xiF@%UEH94U z;%XEG1sU`JOFfa$HvuKp1go>yM#HjX9oA?AFY=w^T3>W7SJTt4qZ$=SvyPg!D$9fM z(%9wj(p5!P<;SrSbcP7YAzVvGTecE3Xh`!bV&!HsaPiz|UuJyGsxM zP<@sH;aZwjB~^g*hE}T+)(J>&Mg7AGYlcX5ihT}rGTO5a<8~Fdm8fE7!}p6xI7V#- zY_G&^1)Qg@hMy_7A!Nyij$o=FWUP8G{A{`BDo2s&3(48#`&YL^Evg~E1KKK6U$ zf~AWBwd0{)d`<}WPV88Bfrt=$i0(1mCf38PPp%KJk2CSLtbi(nKSmBUWuk4d^cTR- zmG5O{$w8)|e1a=S`dO~rEt)Nto8`zUxZI?6w?ZiD6Lh14dq;I=Wk*F%nY=}O_`#jR z(hZ1^Za`!xollnZ^}atE5Ug~)IqThp||0OV`OyU?;~GrQ6Gw2crlK zx`F8P4uY01eYcbI1PF6vE8$%1aGiW6aB{6JF5cr1RCVxk3R?d|5Sl~xLzq-o2Gn+Q7W_sCO=)hDIOuy#eyLuf$8 zg)y=>nkkl7R+8rDEQF1s4$rxxY9w4yU0hkxDHkyM!47LNfJ?9eaER|Mn{RZH`?^&S z(yhXs*Nu^R9b*pJD!k_xGx@royd$VpPxKc@(JEd=p6Oc!70DRI$z-P7)upZS(YDdq zG2Gh~!duaJJ$g2edCib3N9+S%T_xq!rKMq6);of>K^f?_K`3?GU<{UQ%k}gfYqT&i zbFplTWm+7BvDawXjPx8$R?P8>I!74@6fOY;;pLJ>sTTYl-IVDlFRdu)E~%6k*XrHT zz@9mh^SU(<(yf6U)J|{8Fb1t*FE(JXGKG_Ri`cmn7jO0DUy0I~U{T_vwR4*F!+woW zZY37|^sln`T2kCq+|yZJ!iD+{u)`Xgd8Y`+<`9B>gSKqQQ7s!nS~fO6ZG)dN>E9jX z;e1@r8^lr21GoXPAhJpp>!;&bELL7|G-Y38j=kAtUDG?g_ElWGIK>w^3-P;n%hyfg z^gUnJtS@_cYm0q#FD~i*D^_*oGf}yhx;G`}+p|Gy&VWLyN_eT?t(%KjJvOWdREsB5 z-c7C%Xcv51srdK>$>3VrKnvapUM}Me7J>KSOYnNX;o^PYB*KgIxF)y+_yw{7sJ9KM zZ)&6zQvtD+yRW?Ahd93a=4e4X(E3XW@r0NDmQsa49G7YZ^1kuL57#B!4O@nH;1VvC zMNmm~MZ()G?*mDay$(+%b)R;5x}(e+=+}3i*t5hBO~bS+)WV-!H@a4SwzCbfyyUum z^^K5z^^GOhuf7q|mjbe0`cgnb`oeqiTVHrjNVh*0j&xz8%c>G%vgCdmcY3&cH#yJK zd)}K&>^94|e-_afmp3pN9_qjyF8W@VFgK@|g&&@?Ic4uyc>?W@!t8WMA*2gxXJ!kN zG3h%>yIe}ZmpRZ?UPV`#l6U=Nkl?BGU0Lh|nN}w_fn~<}{F5u3>rWTt@7P}uYsw$# z$AziVd2U*&VwVPDmj+{(=33omSup-A&MNG~>$pFw{d4r(mR9@XtBp9$X~Q_Y$_q&Y z&Yh$A`*uFJrM>pq=n8a4=Y`p8w;p_RxNf7*PG-i%aAbK|kY~YH<;L3hGHvM1z3VQ$ zY2m>{${T%78Sqx^jQBMHJ*@9Mh@0I07QZ?We=NS&^IGjv*6HCujzSp=SXQH)B7e%g z8(!*;J`b_FdvkEs-8<@p?FKZ6CsV$9tf9~2x9A658mwv&09HlZfHgE-1_#geSKM7U0v1Oxy8os<@Jqq^$qRCb#<4Nl#=R1 zJen$@Y^nsUn^@XW43juvor{Mh@<-tLvtO7OWo&K+lV4~4rTTSy%14G8g3eqJ}TJKPyv zU&J+Ksgd6|j8Te8%5^g%;jIztCo~r5z)Z*dG+Rym?xe44+KjeS`BkCH@U2Ej2k`ut z0dO2&vD6MY0^DH-AXTrACWa1of&o0_{9vk?-5rq*D};IaeH=(w!ym7SKkKIdm4Sm) zTbZnAD+9;i@%z|2nb+^`J}}=+^*Tc6h~v$RQuh1KgwMRnzFvKqn~GoRqa%(tFRt^r zdHwU5(m%MV7FntET98>U_B+4tZ1_Z3Td`@In~Lv+&=JR*7YFWid2v^pjyRgb+|Rb1 zx27Df{JuK)O!V>xGQMi3!7jX&ia6ffWi89$s<);%N+XUq-c&RP{63C{l;y<-UTSvp z;yWmG#L?gsHb8NOR>-ABNUx7Osa7HjPg<`QyX?jKeO$jG$4}k;F)Z;?&P7Y`K1F#2 zP6qHq1Eq+NlH%ejxk%FqDXy-nz_iuCK}fl9RO28@-QkpnCDD}28DUT^D=XH01EFj& z_*|Tm%C6TNPKaHjRdxphzECbHD=Sxj!!M#{s+mJ>#~8;@pKc)l#o2uMghhuqURmTJ z#P8!+Yva1mudGzWK`J9J;-|~&RI(S&r8(OQQL2!1+#<^f6Th!gCs5D4{&_S$yBzPe zQjJHf4tv<4V~0%Atd#U#%9NSk$NJL!>78XK*=g|g3M&qK^l*%CNP`hEAo*R|uw&#q^-1g6;o>c~zC&KKIvZ@l%G&;oOSRruyK3bvFr=>T)`-c|gmAF!;a+c^Y!6C;= z%c?YG9WvACm8_}mUv~m>o!Kh|$LW=VuWD)qJA+$%0z;0NLjV!vl~)bStey-Ei~myNQdK~8B!`5Tc{xT69XG&Rc94V8JZYuUD*O^j28^L~G zC)$Lqdvys-DW4-arj#ulL(0 zAg`41rZd8ze@ZK>Dy2@u(XyzjC>ALjA*Gd46EkF%NZAdktl}~g&s|z{xVj@{Vl9L+ zLaODxbu*+wq^wh!Qa%ru?=nN|||SDSsD`>r5#Njw5CA z(M|P;n*@+4<@52|@8j~EEoEIoQ_7-?JR_`yV@UY|p+mizhkpz24gJ)Wa+n4H+yx?K zM5ukt?-~h&XG(b{etY%m1-6vSN-8TwUc|9vQB^8L+>i=b!nDqGh$)K;g|ewvEz010 z1+*wzvEYa-D$t_nbciVn)>O;lF~P7sTNZf;5FAGqtgV~s89RaeHDytZ5WkP{K?_Hh z(3C}q;Fvwm!ZBn)p7?$Dpao1utzI5~?~|@9er?I3RAligFz*K5v)5Z0dSpS3=k0N& zjx6vUap`fy(Xzm2#HGg>A!XIls>~2=C%7RMmfhlp;A7uXCe}ia^_OzGW;vO0K&h9> zcjPq=Gyv4Iwv9C%Q|_Ggc>ADL3&_2?Y?kyv!4bJvm+Ka#Lrl3dT+97gyD;+CmOEu4 zIF8)OSvS=S-c*L2N!{-EZDpUZaC8Yxxl=EBZ5s>6kULu}m2``o15>yvV~aE#m=1m`mNxVBNf|6TD9xh?Y*EB6NG?mG*4tpr~7 zd*O*Q`ylCPDZgyRS~%8BlM@`laimOIZmPd|QyG159%B5y?eH@!oQ9;D&KDe0$`+1M z(?-GJ+aLIzkh)`hVg2^%hJRYQ zuPjBXa+IHUumFd>5+T}Z(jlh2$PF#8e*kiw*((Ldkrz4QruwIw1d!P;7UH+x_X>Qg z`5+a`YW9mof@8|d!ZGA^k>Cu{N6Xy*jVbSO<@LBFuZvLM4BujuYyfz^Tj4ow%{T`{ z%Q5Rt%DV0cT@*le-Pu+J$EiE1yQwmfpX=XqU*e*_wsU4EULNUifwMCzncjp!xaDN7((i z?@3}M1a<-~G$W+4Ty(1uGK+SOiG$Bcs;N$h*;bb!)NQM4JDwc0a!1RYg*IP^c)^jj zI%^jDlpSKqi`>xi8jG5`&XyNjm*6<^B1ha*Io?!;ZfQYEKW=Mv+o~?1*;bbejwvq- z$B@?w!Ks7KtOo9nzu(nX<#`B#TcIE?yBD-Fgr47b29nsVWkphJp_cTHAQq01dz;`4 z!Y7>xEBdCp6u)TY-jZ1p9s8gm0H(brOHp2#(1g3&-HkTEV#%`4pgaoH+C39h#!OulF2c z-om~fcMAJ@J7;bHS;uWC(BN7{KHm+BLwLr2%s~L~6AMQXMx9AX4w@^B|{cL8oj-Sx2rNSS`Dv{6Y5$es|!ZC7Zhw}Sc=%b$&wBCruYuD#i zEB6h;=Lf(lS_3zJ5}r7d&!nUI+;7ENI0l~u$7xZdl{S^Z=U(9Xebh^Kxi%!#bfe&y zEy}_%YPv~q3N1QbK7Y-s>82z;_erXqRx13#m)R2e%s%AhvxQ^iPOjK|hEDYG`R7*d z{YkmA&H8<8MRwi$lX4$S%H6^-a=%<~cEcY7DQ7S4nx`q++W5a9ThYb=oU&*c8dyKn zvAM7bCoqQBF753a8W^1aWPc#Yh$u$*^{W0`e}@_rrC)KP-tv?x+fo62ZWL%{Qk4QX@r z@+7WufcDDN!ZElS5u9sLFAga`zxB0jS56J?$#Ju|7Oq?$k<4|mNXk~?fseoY8r zxZVVh%%u3qAsGvFh-qhT0giVpu;{ETMXFgc76=Z<0)%kYLMa_$j`&vy9ZvdaEz@Z_ zrZu<~pYF~(#Cl8_c$QD2_34P zsiRmz-J(8aN6TNcMG216qDU)kDx*cg_yd2qYHhcuZAmTaoq}WPC=18n;Z=ge7R9b} z#_f~VxD;QXf*`o7l3LW&2=!ViSJ^G95+}?h6>)Tn!lziIMd=W;MRB#k+oCKwXg?L@ zdQK!b(xNKLD}}NSFnd z!Eo1+8@@uYeGYzcCtEvH?xdsTe!z~FzqZ^t^A#LN?xf|Wdc~W{ko&t3qxYn2xnGx5 z(;b3i*3`l=YI?ok6v8JR@7T2VbOga&&zgE{0FFw2-(B$S+^8d7q7CwjY*Iw;!l9!`bbJvK1Vs{g9TMDxuXG z?I(_ue&6LjmxsHOc=&F?G24%YWAJc9a4rjQw`;BX(WlB`s-pVgx#FM;sPnv#yL=?A@KHmrBSacW9hX;T?By#;t)TkHKvHN91E^5NT=TR28dKOi_Q zf|I2lI_q1XbY*%^IfCInAT`B@Nfpdn_2#1z2+yo3>FAnrcH}x+rW^|d$Ehi4xv6N! zyUrZ-xD@I4nJY^lNUG_F1jnqYg=5t8Ho+-|&$po));{`wbWLr2co*t-Ec!6D9W|{A z8N%HrJiG~cu%kQ*U96qSLzYnU@LjgR1j*!~;5a-aEjQH--c&|w`7rSOzIBL40mR*w z#KVsWj>$s{$KWAt58Ze0SKarGPeTLQ6uYZ6<=dsEw<4H}g}a~Bq2AU)I=ZHu2fEI# zDaT8}acW9hZmRUH<)gs!`!*Ogy*;U>cL79bp0)Gtt{pz>bU-q_^Q&7ZX zX)UQo&yUm~L%2JIho1%y*-P$wS_0vjt%W7jJp2x7>pGi}6Yd2LZ_%3e z6CLWUDe35%KItv9rA03kI>2#iN?L9z&ca=1>Xwfq7^^*qM*?vlORDK71jnqYg=5qd zN)vQ0gYSc_70Qfj&v8F78T?Pn4Q&y*?Y=$hu*1rjt{rYwcvI5j0L zH`QcsDnq890-jfOhrv=BXsfA3mG z!MO}RW%~Ss&o;X?EnkFSxX(*XpF>&N@vG+FBoLliQ_|5jJzk!yY_ zf$+?ll8&zFL7yGZzjo^l0u~&nrljSj%1m2RC|}g{B2cwazLZqcdj!XoSbS~x~c?-iUv__%LMt$QN!ZnvhHD-jHLuhcXHUF}r-+Wfo(!ZT}1 zI=ZIy-ZERQcMReM$Ehi4xv3hxsf?O_9e7@wAP1U815TV(>&C4IeuODTM2|`)|7N~P1oAd^4FGWHhu|?Q&ZA%Q-!^$jGBHE zFOK{AZS~x~c(Jeuz5I*ZVcW3cLT~phFoq_rti%k-Z^!D{ewh4XLJ9vqP z?-L%Li99ACpz-%MhRH*gQ1ft-9W8%t9{TW0a2y_zR@zhs55EmOzi%N3*bVBwBp!Z8 za7-RrI0g^DD>!$-&jJsB7r%45mxl|Ek%wD1hc^!lCGzm~4rB=TUEv|WTJ%2r`t%DD z2+!Ob{T_bncky6ct6RT(_66USniegQYc1qV1#!6QD7RVw#_GQlg4-}~U#%Ttu0!6B zQ1^|4$^Z7y0*mrW97)DGYI06+unx(PQv9|i zI56>B4>>&r_cusSA&%}TxV}M%I3c|DK~6I35VNQ37s@l}<6%#+D6cF-stV~Tg2SGI zkV>JfLrf`?hllGag5yY;wN0DKkn$reo2RGf5}G}QOH$sR;=yTUp&u2TamdwfEf<@u zMQ|PyoCf$d&X^>e#|5X&z{yI&c|veP2F}HeFI&*e+OZubvn4Ep>ff|P;=cS3b#xwNP7tbvTCVc zy-1@q9uZoa>nWH|@@*C>|_?e7_=tDDtOXBXt??uIbgadZ?=_+!6aLW*&;S7?v}3yz`;-sXEu z1VW+S&4Z!2b4!k?+fml5+2_jYF0NmVu7#duQSKNX?p@zscdX>=>)Uak2h;=nMeMj1 z`ToIy;bS9Sx~PG2s5}ZbvJr=l{(ct8Hf{gWJ!GM1yNl~_U(V68uvpkuT-VYtUn{(M zb)n+<3+o!27qryPEt^}>JkZ|>Rk{gRugfQiq|H%U})fqV-p}KhME`IN}rWmR<~$b%RKKuGqYxMWhMJ>&eYmIZ*myIq9&K&)C3WTV8*KWh-EjEW zsDd9_3mE-BgbCv20bG+~SEF?hlkQ{7hb`1#%<7?zer;SpwYlNx?yGWaokjhj?TXD+ic~+Qr7jhn*H43qa7S%cri^iHMhRIdw#g5Bia`c&6HMr zNVOUrGR-w)u*hi;l)@lzOl=q$Ti8xRgU~QXJ)TLCjb7yFNs#Bwymc*U3*}x3hun`_ zQS8ZwU62)6wAvCrZah3*@;KJ!PI(^3svU>o*sZ_HGLnu-l@-?&vxeaI5j6W_)*R`( zjg*4+_*-eq$1r8qW1HP}os5f$<{e`tF>(LzszT}>`2T?%L(RQ?utwyX@MF|?Haq{P z38u8JEws3YGr-LlQhIR+|2Q$?2-WWMEEzv># zH`PTdRnk)57HS^o4%cyI0JcWj#jjQ6jYC5NLo2cTR99TW>F_a`OJdlB7PzxH*R1fa z%p4Y@G8KkiRnW^aiK~uWWVvEPN2D%Q!nTG+nRjtr;jpDENlC$8$2r2a(~`8S7uM`@ zZuoM%jT6EYYCUIvqZ+_ovi^Ue0i@SppvP^(*3jJEYcD&Dj!~my)aV%1(jq%c$6_)# z7*YoQCbX>9OgR1>w9UsaUqko&|5L+kNf=k zSWKwnUKj|~nK@x`-ch8mML0+w;l`MnYcGtBa@gXh!&nE9A9GQ*By-^R4k zN{%kQ2)Va^I6TDF=F$1x=={z+knk2Y<#8Er{@2a#MlIEZ!!1;ZqpK-(WWuqS0;9c6 z+o)bk6?@qCJF^c3Kiz!ec}cXJTX=FqvDN zDsr^Pj*jW}I5aw@AMe$tG(A>!n7s@0qXXvXfH^u~z8wRmZBV=GSEI{CqgySb6WIT6 zw_4_g7WH@GgPizWdB|DSAMLZFeRj0Z9``;A1C>YW=Y|@h+xmHuXLP5Li@f%XC;?c+ zw-((aPk^}%rq7Eu8mek^D={q#^^Az0hL(3ELXFmIDWmhB(fQBl{O35&f1t1ME~u-p zxIz!(YIM(hbQceA@Q?1|MFx($L4_`ta2Uz#fW`mQ_xD0eh6W;d!Ef})&FCu?qlWl;yXLv5qob@V(q?}8j%NqRe0l8$$Gb+`CN zr;?*n$I{cg11y)FGtU%4SmXXt{)D~+Qku%*R~9zGbIG7i0sJx^a86Pm{Z z)I-rO>t#T>7T$gr;s~$3JDzv8@Yc7sQe8IZmU=lldB~FfPkRm8sAl$s6|+hT4OdcJ zRbEay%5zAIJjw!7+f#PH!!>)RnSyNAME5!|(H zIex;Vh+mvCU3R|b zr4PLMeik(Tg!m6O3pu6bkviYc1LxZoUb=i=27!lw^L2cY@H*6Prpnd%CiJ(>$nN`y zpS4ow%XXVeU$Gy3$->c?!oNL2Sxpft(p{{t+$@eF#mHHhXx^#TL2N8b;&YhPiwI5FaEk^S%S-$Ut zax1dFBzY+LRsmLCWb43x{}gsq_o={b!E=kNJG% z2=MrU=x+n>4;HSjFUH>lJx+SBrJ|RhUnqt*fpw#czEb^`I7Yu+d&y{_Tl*{o(x+a#)sjU{v&u!SdY&ovY z`-7>bGBzo75*|9*8-ka@jwl08t%aw{2m2~PzC}pC3^>DycnN&|IPh)+&UsWwaG7}0 z@wo>$TP(bEd>%x^wZM59iu$U4rN*hel>K}>@SZ{Ze+)>rz)PR+@SsvV@X)2pHy?2$ z!1*YiPvh~~d`_q@RrnVfe>tfgx?P2Xk=ZZ)NOd^4ponz z0OxlWUb=b|gT|kMbH=q8Gx4O;S3d^cg^2fG2LSF+?O+mc&av>)f?2Y?@cP--Q?gRjLsC-+2(`DhM%XbfGYzEE+ zP#|r10%^vQRTIdN~+S)#E#ma=hWlQEa*Dq~som$A6&J}wXt#)3`+TloeaC1k0 zZ-)sDb*=4^_1cP(wJXAXVSGn#Ev~Q(cj0~cnFF00tJH*iieL<;sSxfo`YWfMxwN-y zXkd7tCsH_l#kqyc2Jz*U-YfBi$HI97n+JROl|r>z1@kY?2fDb$`U{W8<%612R7U=n zsMpnmC5u+BT+$e7Y@WZUzB#mP#r(z1g; z{A@rmCWVH>p$NXrG2F*{W*utd5dRLuXNBf%!D??8lb3;qnW5f+&S($mM?h`t=FVZh ziWiEUh!7Sn2j6iI;X8x;1m?+B*opYQ#OB_9;@PDofm&h1JQfi-kW;LA@QN-ebR-u6 zb3t)TAGXZ5FnTJZLp{Uznxf{#&p=^<(HOwM<0`HQQHxT4u#wC)xw@$d{!EKZR+hq@ymeyU#BZIYSbJ~#V9;9l1OQ~vVhQgh_{oS)K zi&#zMfrxUGB!dWv+Ud z;P7`QC?7ztJIAHm*5AVqpz@oXhMaUk=9~%qhftDJTzqSEtRLnr1+z=$tO3f`&}dh> zDD~0EfOLjFG(UsrB7Qk}MR+5Wvo|93NHwQ$&S@atj`B`)i7y-MxI7xxP2v7}I^lz)*J)esw`1oaQEyZ#}H!nAbBfgknI+QwGCn!vAKpg zTKd7}Nd^%ZU(KP$ei~py9GBOk>c&{)d{~R6ZbY0>YA3Fy#`z=}hpbCc0%OS13eM;= z?2j!_@kW14tKwH+2p-tn9NpX*9@2`w1gR$?^?7b3(l%DBYt$jhr!Xj2A9)h0Zl?!? zyUziI2@^3Tb}6Lp2-QHG0mRb7A;PvBus>uR9UR1vQiG(0NLqIIq)DIocn8u>M-68s zrcG#osS7=ag8wk2W(dB1XsBZw+v_8UdjO4QuS@#See+miQ;#`w40A<}Vl==)k^(vd z*O8#Gmem*sj9RutJNtUOF!*xdtOfIpfpb+yZ-lCrysh!_79Z+Hd*qjYjm~`t-oEDL zEo&)_c@;=+M~PZo-nNFjM7rLg(O|$4jH88fCRl`XNe;{slJ7*|3`jEK=60NAm3kzj z*&wRR>b~0 zg4~V%i@_0AL%7?k{W;qI4Z=1@`^6z`NQZ|wc-)dOcnm}q!7vr;E8P7!5Sqc_hup#( z3yY5>Z88&P96~%ZIx*dvcRg3uydFsO(tCE8nfG*5hPi9Y#2V ziA!l+YIV#Z;@`bPM3R;#=~F<#AgvSEBjRBcsm9IIP}E0cs?Wmw(C)Kw$mn`d~DaPr;I%p|l`e0I65bnoE zBQPBzi?^bk8l$jf2hGQ6oF*|BXi?k-T82eYKfG--rU65}T~5QB4y-{`?M#z97jJ;bDAZmrDB_bZfha61E-@fN1!!22rIp~f!BUt^OJTQltPj_Bbw%-+ zPqLJZxELD5U__ds=uTkH0sRlT89OC*#w*h*JeJs_>E%@@U^UoQ;udgTbT~4wSx*FD zsSS3l7kkne-NbaIw6>tl7{;@vu@n>Yq27)@PNXjaf-#ZyA~;iGJ4H8AJc+_w>K5kE z{76w_H)$G?%%SCb6{KufzE+38ceVSwhuJmPL%K%SOtvv@1kzU_*lXSV4qenk$EK(V z2TEh8Pgfi2*UL~FL%-tNwetoBx6xjqDKiN@#xP~(^$qkhsuEEfp!$m48Z`DtH?JJv zWM+04pfNy_0n3IkEtpX}hy1w_QZo2sPApu-z6=_`&^j_b!E78$6B>uznTx4LcXsmO z_&*6kFoqjsg1L#Fy>Q9p?`T`zB^M{!X<03O9pEF56Y3=wQvD@LWl&{1w?`w^Y#^y- z4pm+13xM=lluMTStcABza=5x1kDMqg)R@)nar?|(s)7(=gHOj7tV>R?cCCR$Dv*vwvl5;K}v zLvN%Z+O;VhIS+9+g1|JldX{ZNEv5tQ0fc>XA)2evH?>`oF!j|vSv1)QvNg&^`^rm` z!^K)O5@WbvH*e-r3KvRfG(3m$8Ab!8vwkQn^8lxgY(BDEfekCH_4DThwx*uJf#Fc( z9rzhP8IyLr-&0eAkJ7R=bVhreo7!h{Rdj~L65<9&Z)8|PvEW8!J`v=K1wnrZZa@<` zbV6#84Op$JdaDU*YKEc6hqh64v$3%?K?n?N!J2j7z!jk|mzml7b|G$}#Dzlr1O1_) zNTfG}-96Z4Tp#((DOevd@^&hI=wdHM(q`0mzLC_fuQRh5=Hh%Z%e?VmUMq-Q4jwEy z9>i?Ea0zxE6u>D$RQ7+|kwHo}hlBGO=z1qw`F4lGTf4&8&>X~O6g=R7ek0TT?lm8TO5f*s4b^~L_q?Y$b!9z+r*lFsI8wn#jvHZ zJ=jfy`(@CdEC~l>VDiX*IS{sj@?j@9o->{u(z8^aR(HHR*F{tK60g4 zfaHB3dxDgSWVN;OZxt{|MqW^X*iKUo=E}z*ht@tNZm-?$l-8!6XvhXcqCQE%Lc>!o54+% zJPw4UlA~nY$0mVTDgsTLBR$;GWdU}kC_oRaL~I;WvZsQJTC!+%p@E*zP)GlInL&Is zVbHPK*rEIDT#)=O5}Jd~5hb*hE0_QNfrc?oB+C(WHdPUedH{M%7ZrO2F#fe7qb1db zu5p?qaQbb64&qAb!>DSmU|FB_qXAz4MXtL5o4Y;sCZuM=`iRrq&{sC|3;>IIAn)!nr?J*Hs_w|)*cg$iLoj0rVhy^d1+I(Ta7I-{7< zLpfmbw23)jVyxvN8RL`Hv!v3&t}2tj!Z|BIY&D22mcnb5f7HaNjEBNK1EBdWNN9sC zAyHml7VF}qQe&y`SlBe8D#UQZ;~H#3W3|bFHbnjTxT8OhOE&EJOVB2C&&TS5X&!O> zpMgj{{trd_#WEDjiAPWT=#x3Z4XluL=(+sQ9CRI4Q^OMiqF^QgU1wuQu>s?t0JZBL zq|@5fj_mDbi+K*=y2aSxp?T05I0~?hCgs1Qg=&-Xuq{+tk+e&)@f%>Q9)?nB?YAtg zUXWZ4k~o>;*ceuWdyBLZTeLShn#CZp`aK!}#Q%0@Wwm_jjr$-6Js^qD`g;awldVOl zw#h`_YE?$|MjiHYl!pyybmCMD7vV^S%uYcVH7=a91SCgbc{Lh!#z3SkFE59Z6@@n* z)Hq@LCK}E(q2{$29L;Ox&DrOFLX(^%xV`%LPpHE>|HCedR&94tobsB1ka`52r7L3@ zq~0RTklJ!QpicQ5Smo*zvMK>vD5YXrDm;^Y-gsf;Qe=207}+F59mS}paw#)DB*F0@ z7eW2AwJ3N@_w~BZ^xWor7uHqJyt!Ci&Rrr;oiY+Kx^#VFi@HSgew(7ncNNVH34gAy69XpGE zcl>c{Yg>E#l~wWY6nzN4N16-bS<3}Qy!cZGTLRbb$=mrUMDAKyl)q7pEGe3D)5@YL z2eFEy)cy2!eE(qCp1*wQZ$DV1lLDnsM~}=enkn>f>9ph`Y>beJUKwmu&P`j3p^*5pQpdv}FXQNNrPyAU%w(7=%k{89VDw-01EdGP< zk=EW9GhY2<{L$7O|L%YF6D}1tGW=TDve5_Wuo<&5B<(0T{D9MBpGyAu8-0_}!R+yZqgd`;yu zPS_U#wd2WDdz`SJ0NRc|TcCaks1;A9`Yn9CnTN1H!(S$0ufbm;&`H47r8)(WE*1N} zhROlyQoRF^E>$ZaU8>c9G?h(G7+(g|rP|?yeF%^))!l$}sXh%zmuf$tg;JKs0W}Kr z?|>Qv`aPhz0<8ece~DiOY7L+t2s8{xOMwE>^|%$#Y)SDYK-B`>?}R-As7k_K0W?*p z`~#3KmEW&arNjmS>GI{^H&#*b_(c4E^?9TUsQclMRnNlDRy9Cpx%J4hg2uSKS3aP;z-ds z_Eu-FP9K(Zp_QDZv21LS{t7CTX~pQmT6>cAS?Ht707H|N0b4?*yrSjg0)T}$LvVud zVfF%tb%%ukXk_X22W8wDS$c~Ne8L9qwE+jm32|_oR2I%RK~}v;kAh)W&6KxNH8jZy zD|Dc99jMfSY8`0411)tRc6+=849e^@?C=G6T*nG!O2sb~mNdv>zIE!crf|u?`ceiJ zZpJovVP_csBUgmO{e>lkIDS}IS=ig(g)N+3To=>Q(e03(8EO_-Hz~w)V`|OaOc$fk zK(KRhW7#8NGvjfafds*$lz2&jmd#YbIY-qLZtfi(MmB{*`p|cGp>x)`@Eql-my-Gc zcgeuOrs$yTf!Wm6%$5eTY<3^8QLOiO|4 z8WjsfG4U1rOu67@ra(pTFA!)3d_I|~9RB$NQR|#1(0ur8Dw&F-#wLNrtFd;Gvx=6K zmX?&3Cj^yLB?na(mn33U7Z)c6RaI9f2UR5nl~p7MB^RQsEE%hGxyqs9aa=C+BXuHm z+nZ-P!N$pCkHE15K0LrzB)Yi(saKHQT=Ff3%t{I>Giq;Pl^M0S6IP#~eEEMzF-}y0 z$cEnGlT>CtW%?5cG23Z{!zUv6TC|5kL}d-?PLTm25tT!Djtu>TvZ1iG2y+xBP$JB1 z5iSLsgS$$!sI%2O08#uos@{UKMd)lCIcg<*LfNVdKATRC=m0|5Y72Z)%26Ej31zDo zd^WorHDW>8idHWhWsbVbg0j_@0kO&EsIOU2wha0lu5#4#;*%Z+_%iu*vIS+U>44a5 zbHw~7l&xwJwn)O}T2QuX2E+!OqgGf@Hhy6^g7DA8U!OW13}!s|sbnfp_S~v?Q~vq; zB9j*8UH=5a@#hvKhD}$tXUzloDz+{+-jo}MSzNm}Z$|)8)$59)6XVT=@$KdDAC&E( znfCekqqNdKN6eK)1!dpgm78A|e=*jSdmjgec+-@4^K{^!zc=1o6#s?)@84qZ`H%eQ zz^=UP$7-LxDQ{>>e0x#Za|_OYn%3#|qR7PfBR~4xb-&|qdf@(e({%p>FkG9aGksHG z?IU?Rd(be-_S8PM{gilnd3<}pNNz^i59@Y~-&Ig^(|DlO?!D^wD0X4Iy)fQXz5#U9 z^41lw8Z8rc=bmVewuE0i6{J8l-ky8@1F#&Yppq&!zo>A>8$MW@g?TsbM*yHH;7VMP zE7fa@rsQ3JKZ2{*P2cW6*i?iZr8FnUn^_wFBZ-Cik9gDM9d8_rRL9$kYJar7RC6%4 zwrKLMpY8h3^B;}x^Zz6MgT24b?}_h=Bh<^+!Wgn(Z7>&es)IaNEN|JE;nXN{UL0s? zs&PetRftoxTCki2IC9>-`%kFNRd_Phf5Lw!o&xn4t_(YM z>TJM1>3JDqvIV5CjS*8VC}V1_8U)S>(r3o0_W~X-rt*pEqkt!+CJ`R7P`aJwo z)YsvksrJDyQs0Mvj`|J!bCn;ZIbV&1e}NhY|6ElKzfR4DKT|cqFIJ1;mq?!|SE~S5 zC>pz!>Kgdfaw}7fqTMuG{S$tjItc$ADhLHRSLML3Q}Ys(=s1M3;WGB%nEwMGFu^>s>R^hl zt8)~aPhPg7CEJ&5qE7`(e^H-co*;AsG!MT06NxCen*LJErpx=z-j zK~C9AwNHFIi1_W%+Q+WGJia&9KRy0*tiR~G=d+Z$cH5YXc0Bq7r02802h@ruQ)c{?0=))*GoAv)5pbD=aqwLt&{=?V`8fC2 z<*RX^`G9o!mIBh{>j9+8!nwbua-9=)10Y?#+nq3~M!gDfA0S=6J%DtnPKRcB1HTGX zHK0BzRU05(s!IS-rDrP6_^SoF-U<5%pehOb0-z5I^cbMq1o|-`o!f5#X>Pm-NauSK zaBO4d4M2YNAW9KXKY>41{TzO_`V;&dQRmsphm^T$4E%9wD*Qav1b>Vg8R_Ok<1A7e zS^A(2{MZJ5YXKfKJ8-FkW+xnp7}P$Y(^3=Y*=i7go};qaY3LLOn&v=kiaM6;(NMhu zUF1L%m5wF5cj3uY-SF9EGF2~pJ#W>ck#*4QEzM0mDV0!2Kl@vV4DGom*&shH526qU zri-)VsUqpd=szg7c6K~jM#ov89?SG^(N^w1#;&)N~S;MC6$RmW!1)9M`M*1Cr;Q(ORExR zdI(CQRa#}tt}I$riSt3sN>cggaMJsqTc^>mPso(@v_ zdOAo*PY2mH^mLGro({6*=;BF2^mLGIQcnj7>FFR_tey@M z%2p4+XM4_393=>4t5@Jt=jEu^El5uXKPX|`4I-qcgCCMGP6r9;>EIm_#_1rTY}Eni zP6-QJknUX+{&a-<)R_hNBYAR)$e9RsjLKe;Y2rgNP5c?+F-_#G)R{iS`ps!#7NVSq zV7$GcE?%$;lfmo$0s3nAnd<(c=xNpc)1#BEY2=IcH1Y}90%b2@BDq~=j7{bKzhjcK z<6!Wb@&3Jf()iR5pWhYCe)PckBQt^{%if4T@S_)YEmhf%+_Y42>eW;RzAvj zzJ*%$(oI2-h;5&K)rpAT@#p``-kX3|S)A?T@5u=#A&C$rDk|zhqoPpE3L!yAAOs=- zLc-<(hmZsaganflK#Ph7lyFKv+uE;-U9`3J)9$TpwO?Do1zaj_{aTmSYBxoy)!JH@ zD!==Fo_XJQ&dE6^sQrG|^}l}q$u)B(Gxy9h%QMeBv%K${U5$S)|0kAI2t)p6MOg*m zW33jO7bmV3yT(DiI#@uMzgi5VN?a|D(beLZ&5NL~g#DFbXW^J=BbIJsupr(x`S4Z9OKeUVW>Rt#rjVZ{xS zbKnMK+ap8d;xMCmP;(gWw7|`gb;eQ7mGF<0S3u^=On;1QaEx*uMELQ}|G+)LA)lNm z=NYFse}g|POSQ310m^Z@!|jc*Qw{eVXC~Z2rylN^&UF&p1}(-sapf+?ETQthwisgr>tc*P9bzmnO{SA4LyR$5&f-{SVfK>PeYRHZ5z8oy^oraYi;8x_21oWkscXc4ba$R4uvx z-pn0)q9=3jW!l2SPn14B5Z&SIDwx*fMrR)yCU}M;+c9-julD>Xa?y(A_xKES-F2KI z*@+=J+Ic{HZE)`w9|aRxg!WXpL9D7di8sQ{#*33!S1QVRqOOf}`r$vuxj11Ry&a*P z@EN-p;T7qK-25|0)qj!kR{H05|WEyCmfUpTKG8(dF z+)@b+5B$_$F-u4_jzDh*hCPA=wQhoHO~57O9f-=1@Yu`=`2U;uKUlSYpGX`{*NNc zTIcFPGQz)$aI@6iUdSd^N|H(JI1rp*A9^3q^X>wSf}B{ikSE9E4rRkPhT|hPcXX_I z%;Mea3)VSH7Bk-k=Ps(`O7Hn%X= zJZ|^;@Q@jm?vbn@=_QNUYx`#wp%y&Gj{O=tqz9T9f1B0^_al&d5hhmdpAL@ym^4TK zz1ikmeR*WXMOWQ>GqS_VTZd~9|NH}1PqaJ5cQjn}6~nhc!Y0A}yZ9Ev)pJ;4xOrCK zT;qjNKhUtB!AHF#BpL~~1w#&3tB1t*2e_<6NL*cAzJvccM_@Q0S4}YrJ`EcU-x5hN z(F?1CPgj@JO?17t489GL3s?7Af)4opENQ<4-yzrn=LOF<4q6M#Q{c?;d>6o{ZSX6^ z;La{=z?lsMNmElH+--Ar5i$wL#+i8Nfda?7; zoLHKLAqStX0kh!YQndi`5L2Z1xCYcPu0u6!B7E$;kSu-GSM7z>d%pSby$KtV##;kl zfwRcGRIIzlG0!JE&Fwr+!6Rh=sNuPDil;%79}-Je&A2=!^Aa=R{KQ{WLX7)MmZZtl zpFxW|F6Pk8Ne$CH537s0=fnqga(*YiF>s$1Um;vFV@S?vej~mzxX*}hD%_{VHwW%p z;!9kmO)eg^vMMi65;SOKRbD=5WmR5oEnRe#RyOEtucW+mP{Oh)*2+i|mKRT%n=nzX z122z9B^vO%^E7zWSTATZ{d^?nb(8G{t1h!97t2XpKeA50%;JVL8J~}>=ivEld3RlR zPXU6tkHX;Ly)LV{YcfhFU6awLYch6@uF2@rH5t23*JSkRnv5N*Ycl$DO~!85H5q-n zCL>emnv6bOlaXa~O-7%t$)1xit^?`QH5u7W*JSkNI1j<4%*b^fF}@t7H{7ZI~eVV&C8E1E?9zDD!=N$(r8(8 z?5WZ{vA6Z4=OJr;pf2~uMVoSUHx~aL$^h_DWHlPf!s3D$PKpNl@|lrNV{-g#LrQy}Bu6@_5+%&dMHtPt`s^ zUfuD=rqbBF%<=nzPc`l?C~Y#A{bI|r`|r&g|7`5xb&h}kZ+LUe&B6Tc&l1A>4_=So zs;4*2t9q)h9+wlV?(Q2VW!kpo@O!;1PuOcTQ{*MqOVhRxUIz&%{l{I4u$N7+9XYFBA81ano`?Q5( zAN%jkzdPF~Xzr?tvtkMQD7m6`8e%^WtLv>|!L7#syxtpfy5KukeAmH8^(iFhqf;aW zRptuuQO{7^&*A%s;GTky#{(fzKq7*pAl9&B5Tm%U@M(T5rN&<1#jb@<)hQlUpu+QB zP2Aq*nBN5(5;iOcEQGxQcM}>O&+y#BzC7hB5>yN%cMs`%C;`rvboua25?{iUURqLS z-8<3QbV_k~ZNlKBu6H8x;Ki+ZGW>;#^%T8#9}lmgbDyP^@dvaKN}TdoB)-6IxIApb z7hdEU$uu2h4B*T|E6MiM36MT>M@7O;LJq7{j#CF8TQ=7@-}rPav#_L-;hZQ%CC1#@ z;8tA!o0%i8EkhVK=)%}SC^%fW187{en6ST&B9V8BcWh?}*F(6Jv6g|&>zt)c>w?~e zfsxy9BxHWxc#4A2{f7ew?`1&UgxLHdUL@EH1|N+TXuWYGo1oscj&l{*K!g#?}UtZPyy=Ba|ZbH@leK+7fL~Q;TH;=}J z_RWlJBs#bW>;cfB@!YMz-o_kM1D79g)nc5cYC<9`>0U&MQQhb`#Eq}ZLuql*B7jps zZZz@U#%Q_vP~h#M`MYOKnP}W`%U_Cc9-`?n!B+eil79LqdZgAyj*Yy)a?5yzvYu>P-Y;jy`Of~7A< zR*+4mWwlF&o9qy^Kv3)CKAA9xm2fRs*u_uoFaC?hNP`{ z=RSV8o{u;diN6c{7P8(bVztl}oRBk3FIkG^Lq@TjnLYkKOR;RG zV);_z?#zje=8{Qly(pHi#2#Ab`1ekRFOIo6m|s^3Jjf%us+XWx9!#NFx(RK?a;7Mj zb49Ui9;{f-SQqdJLa{tMUa|aWCT_s&U91Z?-GB5-mrk#AH~y4S;8L;VQyW7mma=Ii zxYbDUVHC^BNFQ>BRxA~lOtGAga;VD6$xd-=;8PWoJAxQWL#de80A{P0N2*3%E$Ju| zuN7bXgi}&lG3cDUw5+7KF=4oo`Kd;7j&AjbTii>8y-v)17=t5k1yUN7lFB0` zQM~fVo>k?MK2;uB0o^^JPnAcunJSO;>3C%knPb2xkBm7oY0T#YY-zkaq4KsgUh7wW zvcJGhc<`jMawwT>wM1H(jQSXv44>9>kW5C*|81F^c#VRx5{)R*c#Ype)-{SjEp$af zNCJPjl9_#@EkK{P0I8`_$;_BEk{K)fFqZvGpzIeIky@A6zb~Jw{)n#nb3MU)6Eha6 zY!?0ROE%A?Y(9uZ|HP*M=VUV_^ViW6$tCkyi2a(x&W5j8d|c3|WZnp$F6BQ7pDy{o z2A?j`zYm|v&!2d>J@Ba{eFi?&01v^ZOa6a)VO$O=?sWJxKQ19P1s5cm^MxL+13s0^ zL(1e^0sSB{`DRH+nS7i05@d2&$&|#cdEBxpO_a&KNK0X`0>7*LLHEIBvU{k!5}Ab} zktnob4nqo6cB~3!`cyEp7AlzOQ^9sB zDN`J-KSWOqHC*Qar^B@aJ{_*yBG=(cO;U&J*WuIQ^#k~HQ2n=u+Y6tn_`iWq2j5@d z)8YE27se-n6vw58=Eu!7O+oELW7orXgoE@BKtISJyCB8>F7w%h0*4}8wop8h@W?8j-szb7MVB5VB<8CMfw z?Nk$?Pg{_6Q=^9uj6n<57GgtwQ=Yd7#`bvW9)FLVX>)-rkedmbKEShhY;PS6cNk*W zGslTPQ5!u0p)`z@y*l~Nv9!?|_dR;4KNVD2Y2HwUPmKlgKknDo)yug<5a@F66uoc^ zHrKFUz&D?Fx()J}*C6z1gSds0qZnkt7&M3;%?-s=UJG%+=r+K!NUsJTh=V6XF6{*& zH{zM>9K_|pQqA~;&t%pYOOB{f+S-R`mLSGUV57V9t&QZi2g|AqLZ7w=%SDsnV!?wIJZxufyDi6A(oy~v(vvt7eWvOk*xnr@ z`_ZFgJn}4v?T!5{_Kuw4eJyssdnxB(oS43r>|8H)k0ByyAJzj|a{~BK+zBA4=X=ym zB7Y;^|Vs)IP8UkVIYc9_?G-b=IyR(g#LKwypNEp6!$FR8P)He3C1eL1+aWfQHlhyJo33@q{9VVp7tkK_xnyzk4` z%1&(ExDknAs$22F*NGi%i%u`bg*ILZnb^k9ec;U;FvuJa8PA|M&P=pE=9__-U?6Ke z$ER&3^40eyASjr8{1oH-Wq;4rn>BAnQ{SWsI$n|^gJ*6^)(NYEc5`$FMhr!wM!2nMlSo%NRbg0%(#e+#2V&ZABe!;+4 zxTID3!znBMRNqAi4KeYwvJm3a`q!^YUh-4%h7}Dl@wCW*!2o3^X}#Mv<0d~9ue#6> z6HjY6LQ>J1YElsspNhgJ7@$mHKmG0Y`_J}iU1w4e!?to9t{_~aA^W|Mu)+M*3h4+G z0RRa!FQoqRfivE7)Ok7LCe|XynUoGOyF)<+t!J9?o%}Pw=h7>uI;xKrx zha7WAy0VtsVYj#D2=RK&!m z5`L3Zh;kn8&IXIQ)w$ZFA|^f+S3|)7dyTYid-S(=X)2ilXH{1qP*zORJ0-=XMe^P& zW*3T+8|>*|fW1qzq4q*cZro(36BAFJQ>9P+g>UzoG7I%NN}U)(y=02q4mZ>-`NP>< zN1R(@tp$RepBn1K#8W?3Qn@MGzklD;eyZP@RKzIabra$^;e>pSlYBS>)7n2vlgpXOA0zn!DkS) zWc*b#u~RWJjuF)EOl;Q>&W?U6ju7A2^YTdu4hC*O-tPI3*1}-wn2Ix?@}U%g|B39i z=WZ&-mx#o{?b!TWp$c1@{zV@Y7TgHs{{8YJA1Yn3UwJ4q}ui(;FwKdo?fe8jW;ZmYKeb+H37;b??Dl0CN zM-c@hG79JSK=HX!q>3AHVT9<2TMM6W+!04!48!{JhdeDI0R+npdH$-g<};gV2=H*>E5Pl)5FRnM zY+*iH)5}b(!5B$P2_YCywlFV0)y?s#EZG8fK}~Oki>48C_8{3Z9^vt_#bB(OP7us> zbfI@Xb^EgEeobeXnof|KJ_O8mSZ6sM*X%SH{;wtZ%%G63$A#GKL+aW-x40R~ugeL; z@thLu7ti%1EuMjLY7t6|%8l~!a;GXG zq)c97XJbl*Q~VG-|0Gh>55eP4vP18O;OQqBy?zKDegY+%Iv!V&ny~IVy}aS|Ab37b zr{x$|?UZ@E`1J+L{1y+g`(TJs*@CB@2b>{u= ztoCWWU{Vp|)_sygB}H4_maAMz1_KwvWuoZGW1ls=0l7LEGh;PE1tW5GGUhlM4Y5ZP z%dey9r-E=Ddo&5g8%^X_Kh-`rf&AKXmD*-7z>~Vs2BRgk!-^;jKTg=^AIt3Jtd}pbpbB(;Qa^hN3DESGR4w>SFA)k5saRA}JM&J0R((N>2 z;^ronP}|U5t7s~_4F%)1A#?Xrjq{1XXSZP`{)cW17mY4v${>lvF(2QC24l71RKbvo zP&H>*&z~~=9A}$)P1Sl?^6)%KwF$0Eed-|U(*%=0S_1lK!+hDhLF^;CN zK^}{chdWpv&fR>RqEsFOu|rDaQ4uSoq(at2cF1H|SGgf2rKP16P9x|sBwl}Ji1y9{ z@cG8=oskFxU{Uq?&GO7;$2Lnd~J;GpS4eFiQg0ZE9!C1XB$HD}huReLW zUB`giJ9|Lk$a^Qbl=ztGojDGBCxRT00@YhKnu5nkb(Tk4tlN#2U$@1OSaw)^er8@N zQ(6364_q*?2yO-}&746kc0NMm`PpEs7Mm-WFkI$y?3JN!`8j^a)O0Ru8rNS9l4_et zg&#a2GYqahFVDmO@zf2*qRv%)FwjUBQoW%0+7&+a#|-uP($2g_$NF4J6-kUOH<*vM zvo}Z-W7a!tXTf-!$-Gjgvf6n8aKQiE*znm$M4voQBHRXPs&R@r(rt5bv ze8tc4ucoF8rKUTP$tAFnKFJD>J%cn!KK2Zl3&v}C)-7c!tL4et!NBL> zx)NJUX!F=&!PqjvV62v3BA77T!5rSq;RdsWE$?zKD=F_W2?nl#&+YdmgZdpy4wTTQ zZZH=03k0Ja4&5b=!#`@MUoeO|`7Ib&ZBf5q5cP`&Q8yTiI(2)O>+s!%FC33VZhgLN zs9&tqnab?WaiJZrrCjXs7;fSsRu|*iFAtb}7%F-KFYpT2F`sxn0mBAh2@kT`Q`4U{0H#8rcH&zP9?j3`%+NVV@+XB=ov9t8)zeBro z+vlLESIeOGStY4P(S@ZJ*W$JhFF_*A{T2*HWf^WtN^3Axd~38KB)&CFKB)U7%+%S4 z7mT#VB%G|#Xo%e!Z3qnpJ_*-t4b8`H4NQc<*sWnOR%?*of`KBqc;e0Z*~6=^*Vb@n zPeiW@WI2iaeT(_njgKD~7Fm_E1#;R$j zV3ap9oh`AEhx{BrW@_3gHGK{>JqPHmSHlrw*Od8aO*tp|#;s{4f&}B$lzI87DDiz` z*K`Ad-8H@)s8 zc1@X&)|B&vZ`_&=N04B=nldjx73Too*frgV;9%e`xNe_z531=Ug0X9AFjh@_1hWTj zCe|_sFE|+)yEzUUiC~x>sp;FO>5uT=;%g)jj$Kpcqcv3to_E^$er%PV-_JoJ~$E#a4isT8qu872Y;)jT3?`OK1*cXBwJiF zYZ-3C&2QPzzNDqIuf4IQqo=pJ1ozaOl-K4EljN426R|F>S@-SI-oNv*N_LqIw+QS! zlS5F-WD)Tf;XE>_@3|!qO9uqW)X@oqS%D!g$FXpe= zW?8-TQDoMU;35%xxi>O>dhzr^>?(A$M(`9o9*3{4T|B+8)&H<@b!|01i&vZ}o?wSOfNCJ>3lPo{7yLI>*TT`pA53yqVRJ zqT0FDwe!xO7e7R%mrgHtzp6F8oFDI+UcRb*dbxBBQrn~IQY z1zU&l^Qs#b)XgNo{dAWHWOPM+&CL30kAmb88S*lwn|bk^n!4)g6>g4mq<1c;!9~sw z+S*0D6I)zV-8iGxZ1+L+XQ{rnCFQw~|ef=CQ z)q=k0#=dBET}LNgy=TGdYXC7gbms@<1>q)g!TiMy4Uw61YUa9GHXr^8W2~G=SNIchLkT0s^`tAnURpl6*bHj+*V&(gAvMm%<&&%h+|4##D*rwffLxM6X3vzo;O`3Q$+PS0XH=Vd zcwNG-n=-#)=G;_(x|$htlmwr%F&XL06RU^L2z#na#aUXYG6ytX7%)R_wbEq)kVdeVm{Qs)3%-M%T4z=Ng3c?(Id0cBMb{* znub0!Ju<(qvlHsjhnq5H)_@(BU07XK3pob;C|L=7%_y>=eZz)sJXzotrFmm#NA$y$ zfRmOl;v&l+rd4ah!0^MnHhx%@tfU?_l-Vlj5Va)<-x*b%tR)uDm?h1{rW&$4i<9Qy zs-i=y;{OhoORetOx_EI~m>DanF-J77U<~omCA3`1QAdaoM9}x$2Y;()Ver)?dHl6{ zmMvTSA?40u?xTQU&mof|O(T?$#u*}r{YOTRFfApx=z9JGh)0+bR7u!~vcXTSSyiNv zqiUJ5I>ps~RypUESCoYok;)9pc~*m@^Cxdp(Ze ztgRwq_rRVD%wJ)TLgqnS@lv|}BTB@LhW!NMZ)E{sG{2%f_VE+L$H4vom`4nbTOrl? zMb-9oRpQ3N{sEXw?$E%b%WniQ=NMe7{LVri(|~C|g8aIHi4BooA@ch&F!vlmeh&k4 zFfl*tA_ePL0Q)X5M{~CchFhZ2E(tjH+Z15x4bHD``>MV*g|ex|^gn`K4$LU-Ou>X; zQ}Mw9U?K*WiVwCSq63(N+{J=nd4&(iFXjk|;iF)`cbVhd3riD(6`b`@5W~smzX#?e zgY)WMGjfbU4*Ut68EHt=u z?c5H`Kq4-ooq7EBMPRD7k!pIr+Pn>KV1uPeRo^h;KCulv153m5C2Qwv5Psh_TsgQ3 z9+-6P908`=-~zxVlWUC#zZ94U3@%;!y#UN#4bE%7gmzht{DN0wjKI>QE8pe7>^8Un zu*u37M)+rd`LV%e;QwUpvJK%60W-HB9vI?Mjq?aF-3FJ6uCxm<55T?v%PShm=w1jq zFC%{Tc2Z4G_ab1{8(b>7+Yr$Q%s+N$e(B`P&%g|ik|AJ%uu{Gxa^n?Xj=5G~rd)y$iU{BmROGjSMnBjXC`@yqb^eGkAbO z>YJeFKxKD+ig>xJ1pjbYZI^hx_-KS*^f@?|fnGOAFYZKqCvZ<1Y%cy+y*OUa*^PqN zeco}NxIr^KQEH{A&R`6j$V8a4n)l#EZw?z0g8 zD_EMe`~u9|1{VNU#!ThU%>FV(nV7_l~sp|162>le8Z+;sO`+SG5J0F#lUxp!r3E#!zOy5(w zdH6}iFSi17r@^J7%lYFTU|#<|-XQe@uK&$^nJ~`BgU*i;|9e;()>rsBLBFa+_$jyJ z${Q?=w#(r5JB+w50rSNl3QYDLQq|);EL!Jr;R=(g9@`MH6qsNC7<_#P*P*H9)z=Vz z2P{oGKKKnC`78!QcR$>hd-gck#I zrNN~ezn=o;t5$x=2W9o;Tq zK5pfgj9+$w)>nWz=YAoZmhLoQ<{Mlpy7|av88B-tTr#>5;Cg_0%;3`1_fNq5!^$ri zpEe@D!@w+f0DEz;A+&TdKFtB{6NtY7mWFf%mmsg0-*fa85HcE; zCL1}@Np1#ogA(wJ+Uxm}qtH6BqfaaDb`6btPPkMwO16N!sehwqL9GJxh=kZGd z-5tPn0P~84OC>il9>qQbEKMr9(U10L<$Kmx}H-M7#^k^A>y_HbF;yDe45a2T<+Wf%%cBcZt3Ug>wvk@;8N9t-EbQ)m;DN36E+Jit^F21 z&M7DMA>KB^_X*|O1i%5{YJaWBbp5*wn6(C%s(eMrrU#g>z&;3@>6S0aIDZuJPr}l8 z?U#VN9dUmF=Ef%l=Fh(gIM#R7)7TS$rSbAhsBbUgt^nq>I9zgm9`+3Q1ePXMee)4_ zs==HqzixlTuama|SC07a8Em?Cz7LrHF}QSee`hd%mEYua*Msgq5Wn&_@W7;_8wF;& z!KI`7afA7i{3fRhRnEB?@vXlVvT5mV2Ig9WOGWoNWb+ANE_oJX9oC!QlFT!2A^zCk zDP3=#NthR^5PhD(DAGweFKhwsW`j*NFZ>Ca+zrev&uMPy=7m$A$C?qACRKgOS5pk8 zUVf9e^Df{PApR+XP1nCK1M{xI1&}V89znWUzlQ^Jy!3bwOf|T4bn6UeiToy~dnssLjQIaC*mU(h2+UgsmyT|b%nCC~ev{MfLHr4bj~Q$_ zx?cw7I|i4I?wtnnfcz$>y9RV0LHwjYvxMo}`Fvn5G`Mth+YBZuzsc!xUbqbLFB@#S z`UYOWz8)-1I=Uwr%y{`tO}7~FHydm^x_1C`zrm%V`y9&jI56LT5og5*)62<9#4mxR z$%IX&M@&Na6$V2bO)CBQcHo{f*r4JDor`nIcn_GTUt&)B>a|qkx9Je(bXb~H^$jDg z6PS+~9NRCM9!q(3BQPKN3p_CC+PMapg$9?3F6HD!z^u1$$>>Ib>jUPX!KI`7E-**E z%+jT3#s^E@!zqB3QLo& zKe`R(O8HGb-mX9%I}jiIhh&$Q4~_@sEQ3o$H;inGfmvwfmy8c~0@n`A%N8zGeFJYm zzQEF?qMMJ7ItiHZZ{ke!EuIUR^MwRHn1DQDi2pGxO$b)Xm$06xMfmH$On#dvcbzhL z|8x=x)Cah`Vn}K-&w&q=)TP5db(upAc5?C6_mt^%= zhVcIY<^_Wz-zVe0A0hmN_b}JM(&WHOJ=lH{qE0n_N)MyXu$RN~BO%H9m-YA-;!l>E zrk5|pz|XfB9o-9o z`8@0$ut6t7=_brG?9Y1<{|i`}RP)j8hvI(M5&SRnQNld)34|}fd(d9syU<|L z_1inZkdN?VfjI;AT-a3m?JIyQNBpN?Y0}ZX1(+WjTspdYfq4w}8Q64m zpGW-k5ku2$2By{EQqc{g>>GgDZRMAYUpT+r1kBkZho*ZTF!Ky972Rs&w-lJq!2S@{ z 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�@XHU1r8_a0 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�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

    XiA_on3wDIy1#cARwMPiY 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 + +NAMESPACE_BEGIN(CryptoPP) + +template const T& AbstractGroup::Double(const Element &a) const +{ + return Add(a, a); +} + +template const T& AbstractGroup::Subtract(const Element &a, const Element &b) const +{ + // make copy of a in case Inverse() overwrites it + Element a1(a); + return Add(a1, Inverse(b)); +} + +template T& AbstractGroup::Accumulate(Element &a, const Element &b) const +{ + return a = Add(a, b); +} + +template T& AbstractGroup::Reduce(Element &a, const Element &b) const +{ + return a = Subtract(a, b); +} + +template const T& AbstractRing::Square(const Element &a) const +{ + return Multiply(a, a); +} + +template const T& AbstractRing::Divide(const Element &a, const Element &b) const +{ + // make copy of a in case MultiplicativeInverse() overwrites it + Element a1(a); + return Multiply(a1, MultiplicativeInverse(b)); +} + +template const T& AbstractEuclideanDomain::Mod(const Element &a, const Element &b) const +{ + Element q; + DivisionAlgorithm(result, q, a, b); + return result; +} + +template const T& AbstractEuclideanDomain::Gcd(const Element &a, const Element &b) const +{ + Element g[3]={b, a}; + unsigned int i0=0, i1=1, i2=2; + + while (!Equal(g[i1], Identity())) + { + g[i2] = Mod(g[i0], g[i1]); + unsigned int t = i0; i0 = i1; i1 = i2; i2 = t; + } + + return result = g[i0]; +} + +template const typename QuotientRing::Element& QuotientRing::MultiplicativeInverse(const Element &a) const +{ + Element g[3]={m_modulus, a}; +#ifdef __BCPLUSPLUS__ + // BC++50 workaround + Element v[3]; + v[0]=m_domain.Identity(); + v[1]=m_domain.MultiplicativeIdentity(); +#else + Element v[3]={m_domain.Identity(), m_domain.MultiplicativeIdentity()}; +#endif + Element y; + unsigned int i0=0, i1=1, i2=2; + + while (!Equal(g[i1], Identity())) + { + // y = g[i0] / g[i1]; + // g[i2] = g[i0] % g[i1]; + m_domain.DivisionAlgorithm(g[i2], y, g[i0], g[i1]); + // v[i2] = v[i0] - (v[i1] * y); + v[i2] = m_domain.Subtract(v[i0], m_domain.Multiply(v[i1], y)); + unsigned int t = i0; i0 = i1; i1 = i2; i2 = t; + } + + return m_domain.IsUnit(g[i0]) ? m_domain.Divide(v[i0], g[i0]) : m_domain.Identity(); +} + +template T AbstractGroup::ScalarMultiply(const Element &base, const Integer &exponent) const +{ + Element result; + SimultaneousMultiply(&result, base, &exponent, 1); + return result; +} + +template T AbstractGroup::CascadeScalarMultiply(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const +{ + const unsigned expLen = STDMAX(e1.BitCount(), e2.BitCount()); + if (expLen==0) + return Identity(); + + const unsigned w = (expLen <= 46 ? 1 : (expLen <= 260 ? 2 : 3)); + const unsigned tableSize = 1< powerTable(tableSize << w); + + powerTable[1] = x; + powerTable[tableSize] = y; + if (w==1) + powerTable[3] = Add(x,y); + else + { + powerTable[2] = Double(x); + powerTable[2*tableSize] = Double(y); + + unsigned i, j; + + for (i=3; i=0; i--) + { + power1 = 2*power1 + e1.GetBit(i); + power2 = 2*power2 + e2.GetBit(i); + + if (i==0 || 2*power1 >= tableSize || 2*power2 >= tableSize) + { + unsigned squaresBefore = prevPosition-i; + unsigned squaresAfter = 0; + prevPosition = i; + while ((power1 || power2) && power1%2 == 0 && power2%2==0) + { + power1 /= 2; + power2 /= 2; + squaresBefore--; + squaresAfter++; + } + if (firstTime) + { + result = powerTable[(power2< Element GeneralCascadeMultiplication(const AbstractGroup &group, Iterator begin, Iterator end) +{ + if (end-begin == 1) + return group.ScalarMultiply(begin->base, begin->exponent); + else if (end-begin == 2) + return group.CascadeScalarMultiply(begin->base, begin->exponent, (begin+1)->base, (begin+1)->exponent); + else + { + Integer q, t; + Iterator last = end; + --last; + + std::make_heap(begin, end); + std::pop_heap(begin, end); + + while (!!begin->exponent) + { + // last->exponent is largest exponent, begin->exponent is next largest + t = last->exponent; + Integer::Divide(last->exponent, q, t, begin->exponent); + + if (q == Integer::One()) + group.Accumulate(begin->base, last->base); // avoid overhead of ScalarMultiply() + else + group.Accumulate(begin->base, group.ScalarMultiply(last->base, q)); + + std::push_heap(begin, end); + std::pop_heap(begin, end); + } + + return group.ScalarMultiply(last->base, last->exponent); + } +} + +struct WindowSlider +{ + WindowSlider(const Integer &exp, bool fastNegate, unsigned int windowSizeIn=0) + : exp(exp), windowModulus(Integer::One()), windowSize(windowSizeIn), windowBegin(0), fastNegate(fastNegate), firstTime(true), finished(false) + { + if (windowSize == 0) + { + unsigned int expLen = exp.BitCount(); + windowSize = expLen <= 17 ? 1 : (expLen <= 24 ? 2 : (expLen <= 70 ? 3 : (expLen <= 197 ? 4 : (expLen <= 539 ? 5 : (expLen <= 1434 ? 6 : 7))))); + } + windowModulus <<= windowSize; + } + + void FindNextWindow() + { + unsigned int expLen = exp.WordCount() * WORD_BITS; + unsigned int skipCount = firstTime ? 0 : windowSize; + firstTime = false; + while (!exp.GetBit(skipCount)) + { + if (skipCount >= expLen) + { + finished = true; + return; + } + skipCount++; + } + + exp >>= skipCount; + windowBegin += skipCount; + expWindow = exp % (1 << windowSize); + + if (fastNegate && exp.GetBit(windowSize)) + { + negateNext = true; + expWindow = (1 << windowSize) - expWindow; + exp += windowModulus; + } + else + negateNext = false; + } + + Integer exp, windowModulus; + unsigned int windowSize, windowBegin, expWindow; + bool fastNegate, negateNext, firstTime, finished; +}; + +template +void AbstractGroup::SimultaneousMultiply(T *results, const T &base, const Integer *expBegin, unsigned int expCount) const +{ + std::vector > buckets(expCount); + std::vector exponents; + exponents.reserve(expCount); + unsigned int i; + + for (i=0; iNotNegative()); + exponents.push_back(WindowSlider(*expBegin++, InversionIsFast(), 0)); + exponents[i].FindNextWindow(); + buckets[i].resize(1<<(exponents[i].windowSize-1), Identity()); + } + + unsigned int expBitPosition = 0; + Element g = base; + bool notDone = true; + + while (notDone) + { + notDone = false; + for (i=0; i 1) + { + for (int j = buckets[i].size()-2; j >= 1; j--) + { + Accumulate(buckets[i][j], buckets[i][j+1]); + Accumulate(r, buckets[i][j]); + } + Accumulate(buckets[i][0], buckets[i][1]); + r = Add(Double(r), buckets[i][0]); + } + } +} + +template T AbstractRing::Exponentiate(const Element &base, const Integer &exponent) const +{ + Element result; + SimultaneousExponentiate(&result, base, &exponent, 1); + return result; +} + +template T AbstractRing::CascadeExponentiate(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const +{ + return MultiplicativeGroup().AbstractGroup::CascadeScalarMultiply(x, e1, y, e2); +} + +template Element GeneralCascadeExponentiation(const AbstractRing &ring, Iterator begin, Iterator end) +{ + return GeneralCascadeMultiplication(ring.MultiplicativeGroup(), begin, end); +} + +template +void AbstractRing::SimultaneousExponentiate(T *results, const T &base, const Integer *exponents, unsigned int expCount) const +{ + MultiplicativeGroup().AbstractGroup::SimultaneousMultiply(results, base, exponents, expCount); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/algebra.h b/stepmania/src/crypto51/algebra.h new file mode 100644 index 0000000000..bb36e59bd8 --- /dev/null +++ b/stepmania/src/crypto51/algebra.h @@ -0,0 +1,275 @@ +#ifndef CRYPTOPP_ALGEBRA_H +#define CRYPTOPP_ALGEBRA_H + +#include "config.h" + +NAMESPACE_BEGIN(CryptoPP) + +class Integer; + +// "const Element&" returned by member functions are references +// to internal data members. Since each object may have only +// one such data member for holding results, the following code +// will produce incorrect results: +// abcd = group.Add(group.Add(a,b), group.Add(c,d)); +// But this should be fine: +// abcd = group.Add(a, group.Add(b, group.Add(c,d)); + +//! Abstract Group +template class AbstractGroup +{ +public: + typedef T Element; + + virtual ~AbstractGroup() {} + + virtual bool Equal(const Element &a, const Element &b) const =0; + virtual const Element& Identity() const =0; + virtual const Element& Add(const Element &a, const Element &b) const =0; + virtual const Element& Inverse(const Element &a) const =0; + virtual bool InversionIsFast() const {return false;} + + virtual const Element& Double(const Element &a) const; + virtual const Element& Subtract(const Element &a, const Element &b) const; + virtual Element& Accumulate(Element &a, const Element &b) const; + virtual Element& Reduce(Element &a, const Element &b) const; + + virtual Element ScalarMultiply(const Element &a, const Integer &e) const; + virtual Element CascadeScalarMultiply(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const; + + virtual void SimultaneousMultiply(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const; +}; + +//! Abstract Ring +template class AbstractRing : public AbstractGroup +{ +public: + typedef T Element; + + AbstractRing() {m_mg.m_pRing = this;} + AbstractRing(const AbstractRing &source) {m_mg.m_pRing = this;} + AbstractRing& operator=(const AbstractRing &source) {return *this;} + + virtual bool IsUnit(const Element &a) const =0; + virtual const Element& MultiplicativeIdentity() const =0; + virtual const Element& Multiply(const Element &a, const Element &b) const =0; + virtual const Element& MultiplicativeInverse(const Element &a) const =0; + + virtual const Element& Square(const Element &a) const; + virtual const Element& Divide(const Element &a, const Element &b) const; + + virtual Element Exponentiate(const Element &a, const Integer &e) const; + virtual Element CascadeExponentiate(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const; + + virtual void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const; + + virtual const AbstractGroup& MultiplicativeGroup() const + {return m_mg;} + +private: + class MultiplicativeGroupT : public AbstractGroup + { + public: + const AbstractRing& GetRing() const + {return *m_pRing;} + + bool Equal(const Element &a, const Element &b) const + {return GetRing().Equal(a, b);} + + const Element& Identity() const + {return GetRing().MultiplicativeIdentity();} + + const Element& Add(const Element &a, const Element &b) const + {return GetRing().Multiply(a, b);} + + Element& Accumulate(Element &a, const Element &b) const + {return a = GetRing().Multiply(a, b);} + + const Element& Inverse(const Element &a) const + {return GetRing().MultiplicativeInverse(a);} + + const Element& Subtract(const Element &a, const Element &b) const + {return GetRing().Divide(a, b);} + + Element& Reduce(Element &a, const Element &b) const + {return a = GetRing().Divide(a, b);} + + const Element& Double(const Element &a) const + {return GetRing().Square(a);} + + Element ScalarMultiply(const Element &a, const Integer &e) const + {return GetRing().Exponentiate(a, e);} + + Element CascadeScalarMultiply(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const + {return GetRing().CascadeExponentiate(x, e1, y, e2);} + + void SimultaneousMultiply(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const + {GetRing().SimultaneousExponentiate(results, base, exponents, exponentsCount);} + + const AbstractRing *m_pRing; + }; + + MultiplicativeGroupT m_mg; +}; + +// ******************************************************** + +//! Base and Exponent +template +struct BaseAndExponent +{ +public: + BaseAndExponent() {} + BaseAndExponent(const T &base, const E &exponent) : base(base), exponent(exponent) {} + bool operator<(const BaseAndExponent &rhs) const {return exponent < rhs.exponent;} + T base; + E exponent; +}; + +// VC60 workaround: incomplete member template support +template + Element GeneralCascadeMultiplication(const AbstractGroup &group, Iterator begin, Iterator end); +template + Element GeneralCascadeExponentiation(const AbstractRing &ring, Iterator begin, Iterator end); + +// ******************************************************** + +//! Abstract Euclidean Domain +template class AbstractEuclideanDomain : public AbstractRing +{ +public: + typedef T Element; + + virtual void DivisionAlgorithm(Element &r, Element &q, const Element &a, const Element &d) const =0; + + virtual const Element& Mod(const Element &a, const Element &b) const =0; + virtual const Element& Gcd(const Element &a, const Element &b) const; + +protected: + mutable Element result; +}; + +// ******************************************************** + +//! EuclideanDomainOf +template class EuclideanDomainOf : public AbstractEuclideanDomain +{ +public: + typedef T Element; + + EuclideanDomainOf() {} + + bool Equal(const Element &a, const Element &b) const + {return a==b;} + + const Element& Identity() const + {return Element::Zero();} + + const Element& Add(const Element &a, const Element &b) const + {return result = a+b;} + + Element& Accumulate(Element &a, const Element &b) const + {return a+=b;} + + const Element& Inverse(const Element &a) const + {return result = -a;} + + const Element& Subtract(const Element &a, const Element &b) const + {return result = a-b;} + + Element& Reduce(Element &a, const Element &b) const + {return a-=b;} + + const Element& Double(const Element &a) const + {return result = a.Doubled();} + + const Element& MultiplicativeIdentity() const + {return Element::One();} + + const Element& Multiply(const Element &a, const Element &b) const + {return result = a*b;} + + const Element& Square(const Element &a) const + {return result = a.Squared();} + + bool IsUnit(const Element &a) const + {return a.IsUnit();} + + const Element& MultiplicativeInverse(const Element &a) const + {return result = a.MultiplicativeInverse();} + + const Element& Divide(const Element &a, const Element &b) const + {return result = a/b;} + + const Element& Mod(const Element &a, const Element &b) const + {return result = a%b;} + + void DivisionAlgorithm(Element &r, Element &q, const Element &a, const Element &d) const + {Element::Divide(r, q, a, d);} + +private: + mutable Element result; +}; + +//! Quotient Ring +template class QuotientRing : public AbstractRing +{ +public: + typedef T EuclideanDomain; + typedef typename T::Element Element; + + QuotientRing(const EuclideanDomain &domain, const Element &modulus) + : m_domain(domain), m_modulus(modulus) {} + + const EuclideanDomain & GetDomain() const + {return m_domain;} + + const Element& GetModulus() const + {return m_modulus;} + + bool Equal(const Element &a, const Element &b) const + {return m_domain.Equal(m_domain.Mod(m_domain.Subtract(a, b), m_modulus), m_domain.Identity());} + + const Element& Identity() const + {return m_domain.Identity();} + + const Element& Add(const Element &a, const Element &b) const + {return m_domain.Add(a, b);} + + Element& Accumulate(Element &a, const Element &b) const + {return m_domain.Accumulate(a, b);} + + const Element& Inverse(const Element &a) const + {return m_domain.Inverse(a);} + + const Element& Subtract(const Element &a, const Element &b) const + {return m_domain.Subtract(a, b);} + + Element& Reduce(Element &a, const Element &b) const + {return m_domain.Reduce(a, b);} + + const Element& Double(const Element &a) const + {return m_domain.Double(a);} + + bool IsUnit(const Element &a) const + {return m_domain.IsUnit(m_domain.Gcd(a, m_modulus));} + + const Element& MultiplicativeIdentity() const + {return m_domain.MultiplicativeIdentity();} + + const Element& Multiply(const Element &a, const Element &b) const + {return m_domain.Mod(m_domain.Multiply(a, b), m_modulus);} + + const Element& Square(const Element &a) const + {return m_domain.Mod(m_domain.Square(a), m_modulus);} + + const Element& MultiplicativeInverse(const Element &a) const; + +protected: + EuclideanDomain m_domain; + Element m_modulus; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/algparam.cpp b/stepmania/src/crypto51/algparam.cpp new file mode 100644 index 0000000000..1f49db6f9c --- /dev/null +++ b/stepmania/src/crypto51/algparam.cpp @@ -0,0 +1,10 @@ +// algparam.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "algparam.h" + +NAMESPACE_BEGIN(CryptoPP) + +bool (*AssignIntToInteger)(const std::type_info &valueType, void *pInteger, const void *pInt) = NULL; + +NAMESPACE_END diff --git a/stepmania/src/crypto51/algparam.h b/stepmania/src/crypto51/algparam.h new file mode 100644 index 0000000000..999998d88f --- /dev/null +++ b/stepmania/src/crypto51/algparam.h @@ -0,0 +1,325 @@ +#ifndef CRYPTOPP_ALGPARAM_H +#define CRYPTOPP_ALGPARAM_H + +#include "cryptlib.h" +#include "smartptr.h" +#include "secblock.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! used to pass byte array input as part of a NameValuePairs object +/*! the deepCopy option is used when the NameValuePairs object can't + keep a copy of the data available */ +class ConstByteArrayParameter +{ +public: + ConstByteArrayParameter(const char *data = NULL, bool deepCopy = false) + { + Assign((const byte *)data, data ? strlen(data) : 0, deepCopy); + } + ConstByteArrayParameter(const byte *data, unsigned int size, bool deepCopy = false) + { + Assign(data, size, deepCopy); + } + template ConstByteArrayParameter(const T &string, bool deepCopy = false) + { + CRYPTOPP_COMPILE_ASSERT(sizeof(string[0])==1); + Assign((const byte *)string.data(), string.size(), deepCopy); + } + + void Assign(const byte *data, unsigned int size, bool deepCopy) + { + if (deepCopy) + m_block.Assign(data, size); + else + { + m_data = data; + m_size = size; + } + m_deepCopy = deepCopy; + } + + const byte *begin() const {return m_deepCopy ? m_block.begin() : m_data;} + const byte *end() const {return m_deepCopy ? m_block.end() : m_data + m_size;} + unsigned int size() const {return m_deepCopy ? m_block.size() : m_size;} + +private: + bool m_deepCopy; + const byte *m_data; + unsigned int m_size; + SecByteBlock m_block; +}; + +class ByteArrayParameter +{ +public: + ByteArrayParameter(byte *data = NULL, unsigned int size = 0) + : m_data(data), m_size(size) {} + ByteArrayParameter(SecByteBlock &block) + : m_data(block.begin()), m_size(block.size()) {} + + byte *begin() const {return m_data;} + byte *end() const {return m_data + m_size;} + unsigned int size() const {return m_size;} + +private: + byte *m_data; + unsigned int m_size; +}; + +class CombinedNameValuePairs : public NameValuePairs +{ +public: + CombinedNameValuePairs(const NameValuePairs &pairs1, const NameValuePairs &pairs2) + : m_pairs1(pairs1), m_pairs2(pairs2) {} + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + if (strcmp(name, "ValueNames") == 0) + return m_pairs1.GetVoidValue(name, valueType, pValue) && m_pairs2.GetVoidValue(name, valueType, pValue); + else + return m_pairs1.GetVoidValue(name, valueType, pValue) || m_pairs2.GetVoidValue(name, valueType, pValue); + } + + const NameValuePairs &m_pairs1, &m_pairs2; +}; + +template +class GetValueHelperClass +{ +public: + GetValueHelperClass(const T *pObject, const char *name, const std::type_info &valueType, void *pValue, const NameValuePairs *searchFirst) + : m_pObject(pObject), m_name(name), m_valueType(&valueType), m_pValue(pValue), m_found(false), m_getValueNames(false) + { + if (strcmp(m_name, "ValueNames") == 0) + { + m_found = m_getValueNames = true; + NameValuePairs::ThrowIfTypeMismatch(m_name, typeid(std::string), *m_valueType); + if (searchFirst) + searchFirst->GetVoidValue(m_name, valueType, pValue); + if (typeid(T) != typeid(BASE)) + pObject->BASE::GetVoidValue(m_name, valueType, pValue); + ((*reinterpret_cast(m_pValue) += "ThisPointer:") += typeid(T).name()) += ';'; + } + + if (!m_found && strncmp(m_name, "ThisPointer:", 12) == 0 && strcmp(m_name+12, typeid(T).name()) == 0) + { + NameValuePairs::ThrowIfTypeMismatch(m_name, typeid(T *), *m_valueType); + *reinterpret_cast(pValue) = pObject; + m_found = true; + return; + } + + if (!m_found && searchFirst) + m_found = searchFirst->GetVoidValue(m_name, valueType, pValue); + + if (!m_found && typeid(T) != typeid(BASE)) + m_found = pObject->BASE::GetVoidValue(m_name, valueType, pValue); + } + + operator bool() const {return m_found;} + + template + GetValueHelperClass & operator()(const char *name, const R & (T::*pm)() const) + { + if (m_getValueNames) + (*reinterpret_cast(m_pValue) += name) += ";"; + if (!m_found && strcmp(name, m_name) == 0) + { + NameValuePairs::ThrowIfTypeMismatch(name, typeid(R), *m_valueType); + *reinterpret_cast(m_pValue) = (m_pObject->*pm)(); + m_found = true; + } + return *this; + } + + GetValueHelperClass &Assignable() + { + if (m_getValueNames) + ((*reinterpret_cast(m_pValue) += "ThisObject:") += typeid(T).name()) += ';'; + if (!m_found && strncmp(m_name, "ThisObject:", 11) == 0 && strcmp(m_name+11, typeid(T).name()) == 0) + { + NameValuePairs::ThrowIfTypeMismatch(m_name, typeid(T), *m_valueType); + *reinterpret_cast(m_pValue) = *m_pObject; + m_found = true; + } + return *this; + } + +private: + const T *m_pObject; + const char *m_name; + const std::type_info *m_valueType; + void *m_pValue; + bool m_found, m_getValueNames; +}; + +template +GetValueHelperClass GetValueHelper(const T *pObject, const char *name, const std::type_info &valueType, void *pValue, const NameValuePairs *searchFirst=NULL, BASE *dummy=NULL) +{ + return GetValueHelperClass(pObject, name, valueType, pValue, searchFirst); +} + +template +GetValueHelperClass GetValueHelper(const T *pObject, const char *name, const std::type_info &valueType, void *pValue, const NameValuePairs *searchFirst=NULL) +{ + return GetValueHelperClass(pObject, name, valueType, pValue, searchFirst); +} + +// ******************************************************** + +template +R Hack_DefaultValueFromConstReferenceType(const R &) +{ + return R(); +} + +template +bool Hack_GetValueIntoConstReference(const NameValuePairs &source, const char *name, const R &value) +{ + return source.GetValue(name, const_cast(value)); +} + +template +class AssignFromHelperClass +{ +public: + AssignFromHelperClass(T *pObject, const NameValuePairs &source) + : m_pObject(pObject), m_source(source), m_done(false) + { + if (source.GetThisObject(*pObject)) + m_done = true; + else if (typeid(BASE) != typeid(T)) + pObject->BASE::AssignFrom(source); + } + + template + AssignFromHelperClass & operator()(const char *name, void (T::*pm)(R)) // VC60 workaround: "const R &" here causes compiler error + { + if (!m_done) + { + R value = Hack_DefaultValueFromConstReferenceType(reinterpret_cast(*(int *)NULL)); + if (!Hack_GetValueIntoConstReference(m_source, name, value)) + throw InvalidArgument(std::string(typeid(T).name()) + ": Missing required parameter '" + name + "'"); + (m_pObject->*pm)(value); + } + return *this; + } + + template + AssignFromHelperClass & operator()(const char *name1, const char *name2, void (T::*pm)(R, S)) // VC60 workaround: "const R &" here causes compiler error + { + if (!m_done) + { + R value1 = Hack_DefaultValueFromConstReferenceType(reinterpret_cast(*(int *)NULL)); + if (!Hack_GetValueIntoConstReference(m_source, name1, value1)) + throw InvalidArgument(std::string(typeid(T).name()) + ": Missing required parameter '" + name1 + "'"); + S value2 = Hack_DefaultValueFromConstReferenceType(reinterpret_cast(*(int *)NULL)); + if (!Hack_GetValueIntoConstReference(m_source, name2, value2)) + throw InvalidArgument(std::string(typeid(T).name()) + ": Missing required parameter '" + name2 + "'"); + (m_pObject->*pm)(value1, value2); + } + return *this; + } + +private: + T *m_pObject; + const NameValuePairs &m_source; + bool m_done; +}; + +template +AssignFromHelperClass AssignFromHelper(T *pObject, const NameValuePairs &source, BASE *dummy=NULL) +{ + return AssignFromHelperClass(pObject, source); +} + +template +AssignFromHelperClass AssignFromHelper(T *pObject, const NameValuePairs &source) +{ + return AssignFromHelperClass(pObject, source); +} + +// ******************************************************** + +// This should allow the linker to discard Integer code if not needed. +extern bool (*AssignIntToInteger)(const std::type_info &valueType, void *pInteger, const void *pInt); + +const std::type_info & IntegerTypeId(); + +template +class AlgorithmParameters : public NameValuePairs +{ +public: + AlgorithmParameters(const BASE &base, const char *name, const T &value) + : m_base(base), m_name(name), m_value(value) +#ifndef NDEBUG + , m_used(false) +#endif + {} + +#ifndef NDEBUG + AlgorithmParameters(const AlgorithmParameters ©) + : m_base(copy.m_base), m_name(copy.m_name), m_value(copy.m_value), m_used(false) + { + copy.m_used = true; + } + + // TODO: revisit after implementing some tracing mechanism, this won't work because of exceptions +// ~AlgorithmParameters() {assert(m_used);} // use assert here because we don't want to throw out of a destructor +#endif + + template + AlgorithmParameters, R> operator()(const char *name, const R &value) const + { + return AlgorithmParameters, R>(*this, name, value); + } + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + if (strcmp(name, "ValueNames") == 0) + { + ThrowIfTypeMismatch(name, typeid(std::string), valueType); + m_base.GetVoidValue(name, valueType, pValue); + (*reinterpret_cast(pValue) += m_name) += ";"; + return true; + } + else if (strcmp(name, m_name) == 0) + { + // special case for retrieving an Integer parameter when an int was passed in + if (!(AssignIntToInteger != NULL && typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value))) + { + ThrowIfTypeMismatch(name, typeid(T), valueType); + *reinterpret_cast(pValue) = m_value; + } +#ifndef NDEBUG + m_used = true; +#endif + return true; + } + else + return m_base.GetVoidValue(name, valueType, pValue); + } + +private: + BASE m_base; + const char *m_name; + T m_value; +#ifndef NDEBUG + mutable bool m_used; +#endif +}; + +template +AlgorithmParameters MakeParameters(const char *name, const T &value) +{ + return AlgorithmParameters(g_nullNameValuePairs, name, value); +} + +#define CRYPTOPP_GET_FUNCTION_ENTRY(name) (Name::name(), &ThisClass::Get##name) +#define CRYPTOPP_SET_FUNCTION_ENTRY(name) (Name::name(), &ThisClass::Set##name) +#define CRYPTOPP_SET_FUNCTION_ENTRY2(name1, name2) (Name::name1(), Name::name2(), &ThisClass::Set##name1##And##name2) + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/argnames.h b/stepmania/src/crypto51/argnames.h new file mode 100644 index 0000000000..ed227eedc2 --- /dev/null +++ b/stepmania/src/crypto51/argnames.h @@ -0,0 +1,54 @@ +#ifndef CRYPTOPP_ARGNAMES_H +#define CRYPTOPP_ARGNAMES_H + +#include "cryptlib.h" + +NAMESPACE_BEGIN(CryptoPP) + +DOCUMENTED_NAMESPACE_BEGIN(Name) + +#define CRYPTOPP_DEFINE_NAME_STRING(name) inline const char *name() {return #name;} + +CRYPTOPP_DEFINE_NAME_STRING(ValueNames) //!< string, a list of value names with a semicolon (';') after each name +CRYPTOPP_DEFINE_NAME_STRING(Version) //!< int +CRYPTOPP_DEFINE_NAME_STRING(Seed) //!< ConstByteArrayParameter +CRYPTOPP_DEFINE_NAME_STRING(Key) //!< ConstByteArrayParameter +CRYPTOPP_DEFINE_NAME_STRING(IV) //!< const byte * +CRYPTOPP_DEFINE_NAME_STRING(StolenIV) //!< byte * +CRYPTOPP_DEFINE_NAME_STRING(Rounds) //!< int +CRYPTOPP_DEFINE_NAME_STRING(FeedbackSize) //!< int +CRYPTOPP_DEFINE_NAME_STRING(WordSize) //!< int, in bytes +CRYPTOPP_DEFINE_NAME_STRING(BlockSize) //!< int, in bytes +CRYPTOPP_DEFINE_NAME_STRING(EffectiveKeyLength) //!< int, in bits +CRYPTOPP_DEFINE_NAME_STRING(KeySize) //!< int, in bits +CRYPTOPP_DEFINE_NAME_STRING(ModulusSize) //!< int, in bits +CRYPTOPP_DEFINE_NAME_STRING(SubgroupOrderSize) //!< int, in bits +CRYPTOPP_DEFINE_NAME_STRING(PrivateExponentSize)//!< int, in bits +CRYPTOPP_DEFINE_NAME_STRING(Modulus) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(PublicExponent) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(PrivateExponent) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(PublicElement) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(SubgroupOrder) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(Cofactor) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(SubgroupGenerator) //!< Integer, ECP::Point, or EC2N::Point +CRYPTOPP_DEFINE_NAME_STRING(Curve) //!< ECP or EC2N +CRYPTOPP_DEFINE_NAME_STRING(GroupOID) //!< OID +CRYPTOPP_DEFINE_NAME_STRING(Prime1) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(Prime2) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(ModPrime1PrivateExponent) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(ModPrime2PrivateExponent) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(MultiplicativeInverseOfPrime2ModPrime1) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(QuadraticResidueModPrime1) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(QuadraticResidueModPrime2) //!< Integer +CRYPTOPP_DEFINE_NAME_STRING(PutMessage) //!< bool +CRYPTOPP_DEFINE_NAME_STRING(HashVerificationFilterFlags) //!< word32 +CRYPTOPP_DEFINE_NAME_STRING(SignatureVerificationFilterFlags) //!< word32 +CRYPTOPP_DEFINE_NAME_STRING(InputBuffer) //!< ConstByteArrayParameter +CRYPTOPP_DEFINE_NAME_STRING(OutputBuffer) //!< ByteArrayParameter +CRYPTOPP_DEFINE_NAME_STRING(XMACC_Counter) //!< word32 + +DOCUMENTED_NAMESPACE_END + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/asn.cpp b/stepmania/src/crypto51/asn.cpp new file mode 100644 index 0000000000..262a430406 --- /dev/null +++ b/stepmania/src/crypto51/asn.cpp @@ -0,0 +1,556 @@ +// asn.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "asn.h" + +#include +#include + +NAMESPACE_BEGIN(CryptoPP) +USING_NAMESPACE(std) + +/// DER Length +unsigned int DERLengthEncode(BufferedTransformation &bt, unsigned int length) +{ + unsigned int i=0; + if (length <= 0x7f) + { + bt.Put(byte(length)); + i++; + } + else + { + bt.Put(byte(BytePrecision(length) | 0x80)); + i++; + for (int j=BytePrecision(length); j; --j) + { + bt.Put(byte(length >> (j-1)*8)); + i++; + } + } + return i; +} + +bool BERLengthDecode(BufferedTransformation &bt, unsigned int &length, bool &definiteLength) +{ + byte b; + + if (!bt.Get(b)) + return false; + + if (!(b & 0x80)) + { + definiteLength = true; + length = b; + } + else + { + unsigned int lengthBytes = b & 0x7f; + + if (lengthBytes == 0) + { + definiteLength = false; + return true; + } + + definiteLength = true; + length = 0; + while (lengthBytes--) + { + if (length >> (8*(sizeof(length)-1))) + BERDecodeError(); // length about to overflow + + if (!bt.Get(b)) + return false; + + length = (length << 8) | b; + } + } + return true; +} + +bool BERLengthDecode(BufferedTransformation &bt, unsigned int &length) +{ + bool definiteLength; + if (!BERLengthDecode(bt, length, definiteLength)) + BERDecodeError(); + return definiteLength; +} + +void DEREncodeNull(BufferedTransformation &out) +{ + out.Put(TAG_NULL); + out.Put(0); +} + +void BERDecodeNull(BufferedTransformation &in) +{ + byte b; + if (!in.Get(b) || b != TAG_NULL) + BERDecodeError(); + unsigned int length; + if (!BERLengthDecode(in, length) || length != 0) + BERDecodeError(); +} + +/// ASN Strings +unsigned int DEREncodeOctetString(BufferedTransformation &bt, const byte *str, unsigned int strLen) +{ + bt.Put(OCTET_STRING); + unsigned int lengthBytes = DERLengthEncode(bt, strLen); + bt.Put(str, strLen); + return 1+lengthBytes+strLen; +} + +unsigned int DEREncodeOctetString(BufferedTransformation &bt, const SecByteBlock &str) +{ + return DEREncodeOctetString(bt, str.begin(), str.size()); +} + +unsigned int BERDecodeOctetString(BufferedTransformation &bt, SecByteBlock &str) +{ + byte b; + if (!bt.Get(b) || b != OCTET_STRING) + BERDecodeError(); + + unsigned int bc; + if (!BERLengthDecode(bt, bc)) + BERDecodeError(); + + str.resize(bc); + if (bc != bt.Get(str, bc)) + BERDecodeError(); + return bc; +} + +unsigned int BERDecodeOctetString(BufferedTransformation &bt, BufferedTransformation &str) +{ + byte b; + if (!bt.Get(b) || b != OCTET_STRING) + BERDecodeError(); + + unsigned int bc; + if (!BERLengthDecode(bt, bc)) + BERDecodeError(); + + bt.TransferTo(str, bc); + return bc; +} + +unsigned int DEREncodeTextString(BufferedTransformation &bt, const std::string &str, byte asnTag) +{ + bt.Put(asnTag); + unsigned int lengthBytes = DERLengthEncode(bt, str.size()); + bt.Put((const byte *)str.data(), str.size()); + return 1+lengthBytes+str.size(); +} + +unsigned int BERDecodeTextString(BufferedTransformation &bt, std::string &str, byte asnTag) +{ + byte b; + if (!bt.Get(b) || b != asnTag) + BERDecodeError(); + + unsigned int bc; + if (!BERLengthDecode(bt, bc)) + BERDecodeError(); + + SecByteBlock temp(bc); + if (bc != bt.Get(temp, bc)) + BERDecodeError(); + str.assign((char *)temp.begin(), bc); + return bc; +} + +/// ASN BitString +unsigned int DEREncodeBitString(BufferedTransformation &bt, const byte *str, unsigned int strLen, unsigned int unusedBits) +{ + bt.Put(BIT_STRING); + unsigned int lengthBytes = DERLengthEncode(bt, strLen+1); + bt.Put((byte)unusedBits); + bt.Put(str, strLen); + return 2+lengthBytes+strLen; +} + +unsigned int BERDecodeBitString(BufferedTransformation &bt, SecByteBlock &str, unsigned int &unusedBits) +{ + byte b; + if (!bt.Get(b) || b != BIT_STRING) + BERDecodeError(); + + unsigned int bc; + if (!BERLengthDecode(bt, bc)) + BERDecodeError(); + + byte unused; + if (!bt.Get(unused)) + BERDecodeError(); + unusedBits = unused; + str.resize(bc-1); + if ((bc-1) != bt.Get(str, bc-1)) + BERDecodeError(); + return bc-1; +} + +void OID::EncodeValue(BufferedTransformation &bt, unsigned long v) +{ + for (unsigned int i=RoundUpToMultipleOf(STDMAX(7U,BitPrecision(v)), 7U)-7; i != 0; i-=7) + bt.Put((byte)(0x80 | ((v >> i) & 0x7f))); + bt.Put((byte)(v & 0x7f)); +} + +unsigned int OID::DecodeValue(BufferedTransformation &bt, unsigned long &v) +{ + byte b; + unsigned int i=0; + v = 0; + while (true) + { + if (!bt.Get(b)) + BERDecodeError(); + i++; + v <<= 7; + v += b & 0x7f; + if (!(b & 0x80)) + return i; + } +} + +void OID::DEREncode(BufferedTransformation &bt) const +{ + assert(m_values.size() >= 2); + ByteQueue temp; + temp.Put(byte(m_values[0] * 40 + m_values[1])); + for (unsigned int i=2; i 0) + { + unsigned long v; + unsigned int valueLen = DecodeValue(bt, v); + if (valueLen > length) + BERDecodeError(); + m_values.push_back(v); + length -= valueLen; + } +} + +void OID::BERDecodeAndCheck(BufferedTransformation &bt) const +{ + OID oid(bt); + if (*this != oid) + BERDecodeError(); +} + +inline BufferedTransformation & EncodedObjectFilter::CurrentTarget() +{ + if (m_flags & PUT_OBJECTS) + return *AttachedTransformation(); + else + return TheBitBucket(); +} + +void EncodedObjectFilter::Put(const byte *inString, unsigned int length) +{ + if (m_nCurrentObject == m_nObjects) + { + AttachedTransformation()->Put(inString, length); + return; + } + + LazyPutter lazyPutter(m_queue, inString, length); + + while (m_queue.AnyRetrievable()) + { + switch (m_state) + { + case IDENTIFIER: + if (!m_queue.Get(m_id)) + return; + m_queue.TransferTo(CurrentTarget(), 1); + m_state = LENGTH; // fall through + case LENGTH: + { + byte b; + if (m_level > 0 && m_id == 0 && m_queue.Peek(b) && b == 0) + { + m_queue.TransferTo(CurrentTarget(), 1); + m_level--; + m_state = IDENTIFIER; + break; + } + ByteQueue::Walker walker(m_queue); + bool definiteLength; + if (!BERLengthDecode(walker, m_lengthRemaining, definiteLength)) + return; + m_queue.TransferTo(CurrentTarget(), walker.GetCurrentPosition()); + if (!((m_id & CONSTRUCTED) || definiteLength)) + BERDecodeError(); + if (!definiteLength) + { + if (!(m_id & CONSTRUCTED)) + BERDecodeError(); + m_level++; + m_state = IDENTIFIER; + break; + } + m_state = BODY; // fall through + } + case BODY: + m_lengthRemaining -= m_queue.TransferTo(CurrentTarget(), m_lengthRemaining); + + if (m_lengthRemaining == 0) + m_state = IDENTIFIER; + } + + if (m_state == IDENTIFIER && m_level == 0) + { + // just finished processing a level 0 object + ++m_nCurrentObject; + + if (m_flags & PUT_MESSANGE_END_AFTER_EACH_OBJECT) + AttachedTransformation()->MessageEnd(); + + if (m_nCurrentObject == m_nObjects) + { + if (m_flags & PUT_MESSANGE_END_AFTER_ALL_OBJECTS) + AttachedTransformation()->MessageEnd(); + + if (m_flags & PUT_MESSANGE_SERIES_END_AFTER_ALL_OBJECTS) + AttachedTransformation()->MessageSeriesEnd(); + + m_queue.TransferAllTo(*AttachedTransformation()); + return; + } + } + } +} + +BERGeneralDecoder::BERGeneralDecoder(BufferedTransformation &inQueue, byte asnTag) + : m_inQueue(inQueue), m_finished(false) +{ + byte b; + if (!m_inQueue.Get(b) || b != asnTag) + BERDecodeError(); + + m_definiteLength = BERLengthDecode(m_inQueue, m_length); +} + +BERGeneralDecoder::BERGeneralDecoder(BERGeneralDecoder &inQueue, byte asnTag) + : m_inQueue(inQueue), m_finished(false) +{ + byte b; + if (!m_inQueue.Get(b) || b != asnTag) + BERDecodeError(); + + m_definiteLength = BERLengthDecode(m_inQueue, m_length); + if (!m_definiteLength && !(asnTag & CONSTRUCTED)) + BERDecodeError(); // cannot be primitive have indefinite length +} + +BERGeneralDecoder::~BERGeneralDecoder() +{ + try // avoid throwing in constructor + { + if (!m_finished) + MessageEnd(); + } + catch (...) + { + } +} + +bool BERGeneralDecoder::EndReached() const +{ + if (m_definiteLength) + return m_length == 0; + else + { // check end-of-content octets + word16 i; + return (m_inQueue.PeekWord16(i)==2 && i==0); + } +} + +byte BERGeneralDecoder::PeekByte() const +{ + byte b; + if (!Peek(b)) + BERDecodeError(); + return b; +} + +void BERGeneralDecoder::CheckByte(byte check) +{ + byte b; + if (!Get(b) || b != check) + BERDecodeError(); +} + +void BERGeneralDecoder::MessageEnd() +{ + m_finished = true; + if (m_definiteLength) + { + if (m_length != 0) + BERDecodeError(); + } + else + { // remove end-of-content octets + word16 i; + if (m_inQueue.GetWord16(i) != 2 || i != 0) + BERDecodeError(); + } +} + +unsigned int BERGeneralDecoder::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + if (m_definiteLength && transferBytes > m_length) + transferBytes = m_length; + unsigned int blockedBytes = m_inQueue.TransferTo2(target, transferBytes, channel, blocking); + ReduceLength(transferBytes); + return blockedBytes; +} + +unsigned int BERGeneralDecoder::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + if (m_definiteLength) + end = STDMIN((unsigned long)m_length, end); + return m_inQueue.CopyRangeTo2(target, begin, end, channel, blocking); +} + +unsigned int BERGeneralDecoder::ReduceLength(unsigned int delta) +{ + if (m_definiteLength) + { + if (m_length < delta) + BERDecodeError(); + m_length -= delta; + } + return delta; +} + +DERGeneralEncoder::DERGeneralEncoder(BufferedTransformation &outQueue, byte asnTag) + : m_outQueue(outQueue), m_finished(false), m_asnTag(asnTag) +{ +} + +DERGeneralEncoder::DERGeneralEncoder(DERGeneralEncoder &outQueue, byte asnTag) + : m_outQueue(outQueue), m_finished(false), m_asnTag(asnTag) +{ +} + +DERGeneralEncoder::~DERGeneralEncoder() +{ + try // avoid throwing in constructor + { + if (!m_finished) + MessageEnd(); + } + catch (...) + { + } +} + +void DERGeneralEncoder::MessageEnd() +{ + m_finished = true; + unsigned int length = (unsigned int)CurrentSize(); + m_outQueue.Put(m_asnTag); + DERLengthEncode(m_outQueue, length); + TransferTo(m_outQueue); +} + +// ************************************************************* + +void X509PublicKey::BERDecode(BufferedTransformation &bt) +{ + BERSequenceDecoder subjectPublicKeyInfo(bt); + BERSequenceDecoder algorithm(subjectPublicKeyInfo); + GetAlgorithmID().BERDecodeAndCheck(algorithm); + bool parametersPresent = algorithm.EndReached() ? false : BERDecodeAlgorithmParameters(algorithm); + algorithm.MessageEnd(); + + BERGeneralDecoder subjectPublicKey(subjectPublicKeyInfo, BIT_STRING); + subjectPublicKey.CheckByte(0); // unused bits + BERDecodeKey2(subjectPublicKey, parametersPresent, subjectPublicKey.RemainingLength()); + subjectPublicKey.MessageEnd(); + subjectPublicKeyInfo.MessageEnd(); +} + +void X509PublicKey::DEREncode(BufferedTransformation &bt) const +{ + DERSequenceEncoder subjectPublicKeyInfo(bt); + + DERSequenceEncoder algorithm(subjectPublicKeyInfo); + GetAlgorithmID().DEREncode(algorithm); + DEREncodeAlgorithmParameters(algorithm); + algorithm.MessageEnd(); + + DERGeneralEncoder subjectPublicKey(subjectPublicKeyInfo, BIT_STRING); + subjectPublicKey.Put(0); // unused bits + DEREncodeKey(subjectPublicKey); + subjectPublicKey.MessageEnd(); + + subjectPublicKeyInfo.MessageEnd(); +} + +void PKCS8PrivateKey::BERDecode(BufferedTransformation &bt) +{ + BERSequenceDecoder privateKeyInfo(bt); + word32 version; + BERDecodeUnsigned(privateKeyInfo, version, INTEGER, 0, 0); // check version + + BERSequenceDecoder algorithm(privateKeyInfo); + GetAlgorithmID().BERDecodeAndCheck(algorithm); + bool parametersPresent = BERDecodeAlgorithmParameters(algorithm); + algorithm.MessageEnd(); + + BERGeneralDecoder octetString(privateKeyInfo, OCTET_STRING); + BERDecodeKey2(octetString, parametersPresent, privateKeyInfo.RemainingLength()); + octetString.MessageEnd(); + + BERDecodeOptionalAttributes(privateKeyInfo); + privateKeyInfo.MessageEnd(); +} + +void PKCS8PrivateKey::DEREncode(BufferedTransformation &bt) const +{ + DERSequenceEncoder privateKeyInfo(bt); + DEREncodeUnsigned(privateKeyInfo, 0); // version + + DERSequenceEncoder algorithm(privateKeyInfo); + GetAlgorithmID().DEREncode(algorithm); + DEREncodeAlgorithmParameters(algorithm); + algorithm.MessageEnd(); + + DERGeneralEncoder octetString(privateKeyInfo, OCTET_STRING); + DEREncodeKey(octetString); + octetString.MessageEnd(); + + DEREncodeOptionalAttributes(privateKeyInfo); + privateKeyInfo.MessageEnd(); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/asn.h b/stepmania/src/crypto51/asn.h new file mode 100644 index 0000000000..b3fba6acee --- /dev/null +++ b/stepmania/src/crypto51/asn.h @@ -0,0 +1,346 @@ +#ifndef CRYPTOPP_ASN_H +#define CRYPTOPP_ASN_H + +#include "filters.h" +#include "queue.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +// these tags and flags are not complete +enum ASNTag +{ + BOOLEAN = 0x01, + INTEGER = 0x02, + BIT_STRING = 0x03, + OCTET_STRING = 0x04, + TAG_NULL = 0x05, + OBJECT_IDENTIFIER = 0x06, + OBJECT_DESCRIPTOR = 0x07, + EXTERNAL = 0x08, + REAL = 0x09, + ENUMERATED = 0x0a, + UTF8_STRING = 0x0c, + SEQUENCE = 0x10, + SET = 0x11, + NUMERIC_STRING = 0x12, + PRINTABLE_STRING = 0x13, + T61_STRING = 0x14, + VIDEOTEXT_STRING = 0x15, + IA5_STRING = 0x16, + UTC_TIME = 0x17, + GENERALIZED_TIME = 0x18, + GRAPHIC_STRING = 0x19, + VISIBLE_STRING = 0x1a, + GENERAL_STRING = 0x1b +}; + +enum ASNIdFlag +{ + UNIVERSAL = 0x00, +// DATA = 0x01, +// HEADER = 0x02, + CONSTRUCTED = 0x20, + APPLICATION = 0x40, + CONTEXT_SPECIFIC = 0x80, + PRIVATE = 0xc0 +}; + +inline void BERDecodeError() {throw BERDecodeErr();} + +class UnknownOID : public BERDecodeErr +{ +public: + UnknownOID() : BERDecodeErr("BER decode error: unknown object identifier") {} + UnknownOID(const char *err) : BERDecodeErr(err) {} +}; + +// unsigned int DERLengthEncode(unsigned int length, byte *output=0); +unsigned int DERLengthEncode(BufferedTransformation &out, unsigned int length); +// returns false if indefinite length +bool BERLengthDecode(BufferedTransformation &in, unsigned int &length); + +void DEREncodeNull(BufferedTransformation &out); +void BERDecodeNull(BufferedTransformation &in); + +unsigned int DEREncodeOctetString(BufferedTransformation &out, const byte *str, unsigned int strLen); +unsigned int DEREncodeOctetString(BufferedTransformation &out, const SecByteBlock &str); +unsigned int BERDecodeOctetString(BufferedTransformation &in, SecByteBlock &str); +unsigned int BERDecodeOctetString(BufferedTransformation &in, BufferedTransformation &str); + +// for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING +unsigned int DEREncodeTextString(BufferedTransformation &out, const std::string &str, byte asnTag); +unsigned int BERDecodeTextString(BufferedTransformation &in, std::string &str, byte asnTag); + +unsigned int DEREncodeBitString(BufferedTransformation &out, const byte *str, unsigned int strLen, unsigned int unusedBits=0); +unsigned int BERDecodeBitString(BufferedTransformation &in, SecByteBlock &str, unsigned int &unusedBits); + +//! Object Identifier +class OID +{ +public: + OID() {} + OID(unsigned long v) : m_values(1, v) {} + OID(BufferedTransformation &bt) {BERDecode(bt);} + + inline OID & operator+=(unsigned long rhs) {m_values.push_back(rhs); return *this;} + + void DEREncode(BufferedTransformation &bt) const; + void BERDecode(BufferedTransformation &bt); + + // throw BERDecodeErr() if decoded value doesn't equal this OID + void BERDecodeAndCheck(BufferedTransformation &bt) const; + + std::vector m_values; + +private: + static void EncodeValue(BufferedTransformation &bt, unsigned long v); + static unsigned int DecodeValue(BufferedTransformation &bt, unsigned long &v); +}; + +class EncodedObjectFilter : public Filter +{ +public: + enum Flag {PUT_OBJECTS=1, PUT_MESSANGE_END_AFTER_EACH_OBJECT=2, PUT_MESSANGE_END_AFTER_ALL_OBJECTS=4, PUT_MESSANGE_SERIES_END_AFTER_ALL_OBJECTS=8}; + EncodedObjectFilter(BufferedTransformation *attachment = NULL, unsigned int nObjects = 1, word32 flags = 0); + + void Put(const byte *inString, unsigned int length); + + unsigned int GetNumberOfCompletedObjects() const {return m_nCurrentObject;} + unsigned long GetPositionOfObject(unsigned int i) const {return m_positions[i];} + +private: + BufferedTransformation & CurrentTarget(); + + word32 m_flags; + unsigned int m_nObjects, m_nCurrentObject, m_level; + std::vector m_positions; + ByteQueue m_queue; + enum State {IDENTIFIER, LENGTH, BODY, TAIL, ALL_DONE} m_state; + byte m_id; + unsigned int m_lengthRemaining; +}; + +//! BER General Decoder +class BERGeneralDecoder : public Store +{ +public: + explicit BERGeneralDecoder(BufferedTransformation &inQueue, byte asnTag); + explicit BERGeneralDecoder(BERGeneralDecoder &inQueue, byte asnTag); + ~BERGeneralDecoder(); + + bool IsDefiniteLength() const {return m_definiteLength;} + unsigned int RemainingLength() const {assert(m_definiteLength); return m_length;} + bool EndReached() const; + byte PeekByte() const; + void CheckByte(byte b); + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + + // call this to denote end of sequence + void MessageEnd(); + +protected: + BufferedTransformation &m_inQueue; + bool m_finished, m_definiteLength; + unsigned int m_length; + +private: + void StoreInitialize(const NameValuePairs ¶meters) {assert(false);} + unsigned int ReduceLength(unsigned int delta); +}; + +//! DER General Encoder +class DERGeneralEncoder : public ByteQueue +{ +public: + explicit DERGeneralEncoder(BufferedTransformation &outQueue, byte asnTag = SEQUENCE | CONSTRUCTED); + explicit DERGeneralEncoder(DERGeneralEncoder &outQueue, byte asnTag = SEQUENCE | CONSTRUCTED); + ~DERGeneralEncoder(); + + // call this to denote end of sequence + void MessageEnd(); + +private: + BufferedTransformation &m_outQueue; + bool m_finished; + + byte m_asnTag; +}; + +//! BER Sequence Decoder +class BERSequenceDecoder : public BERGeneralDecoder +{ +public: + explicit BERSequenceDecoder(BufferedTransformation &inQueue, byte asnTag = SEQUENCE | CONSTRUCTED) + : BERGeneralDecoder(inQueue, asnTag) {} + explicit BERSequenceDecoder(BERSequenceDecoder &inQueue, byte asnTag = SEQUENCE | CONSTRUCTED) + : BERGeneralDecoder(inQueue, asnTag) {} +}; + +//! DER Sequence Encoder +class DERSequenceEncoder : public DERGeneralEncoder +{ +public: + explicit DERSequenceEncoder(BufferedTransformation &outQueue, byte asnTag = SEQUENCE | CONSTRUCTED) + : DERGeneralEncoder(outQueue, asnTag) {} + explicit DERSequenceEncoder(DERSequenceEncoder &outQueue, byte asnTag = SEQUENCE | CONSTRUCTED) + : DERGeneralEncoder(outQueue, asnTag) {} +}; + +//! BER Set Decoder +class BERSetDecoder : public BERGeneralDecoder +{ +public: + explicit BERSetDecoder(BufferedTransformation &inQueue, byte asnTag = SET | CONSTRUCTED) + : BERGeneralDecoder(inQueue, asnTag) {} + explicit BERSetDecoder(BERSetDecoder &inQueue, byte asnTag = SET | CONSTRUCTED) + : BERGeneralDecoder(inQueue, asnTag) {} +}; + +//! DER Set Encoder +class DERSetEncoder : public DERGeneralEncoder +{ +public: + explicit DERSetEncoder(BufferedTransformation &outQueue, byte asnTag = SET | CONSTRUCTED) + : DERGeneralEncoder(outQueue, asnTag) {} + explicit DERSetEncoder(DERSetEncoder &outQueue, byte asnTag = SET | CONSTRUCTED) + : DERGeneralEncoder(outQueue, asnTag) {} +}; + +template +class ASNOptional : public member_ptr +{ +public: + void BERDecode(BERSequenceDecoder &seqDecoder, byte tag, byte mask = ~CONSTRUCTED) + { + byte b; + if (seqDecoder.Peek(b) && (b & mask) == tag) + reset(new T(seqDecoder)); + } + void DEREncode(BufferedTransformation &out) + { + if (get() != NULL) + get()->DEREncode(out); + } +}; + +//! . +class ASN1Key : public ASN1CryptoMaterial +{ +public: + virtual OID GetAlgorithmID() const =0; + virtual bool BERDecodeAlgorithmParameters(BufferedTransformation &bt) + {BERDecodeNull(bt); return false;} + virtual bool DEREncodeAlgorithmParameters(BufferedTransformation &bt) const + {DEREncodeNull(bt); return false;} // see RFC 2459, section 7.3.1 + // one of the following two should be overriden + //! decode subjectPublicKey part of subjectPublicKeyInfo, or privateKey part of privateKeyInfo, without the BIT STRING or OCTET STRING header + virtual void BERDecodeKey(BufferedTransformation &bt) {assert(false);} + virtual void BERDecodeKey2(BufferedTransformation &bt, bool parametersPresent, unsigned int size) + {BERDecodeKey(bt);} + //! encode subjectPublicKey part of subjectPublicKeyInfo, or privateKey part of privateKeyInfo, without the BIT STRING or OCTET STRING header + virtual void DEREncodeKey(BufferedTransformation &bt) const =0; +}; + +//! encodes/decodes subjectPublicKeyInfo +class X509PublicKey : virtual public ASN1Key, public PublicKey +{ +public: + void BERDecode(BufferedTransformation &bt); + void DEREncode(BufferedTransformation &bt) const; +}; + +//! encodes/decodes privateKeyInfo +class PKCS8PrivateKey : virtual public ASN1Key, public PrivateKey +{ +public: + void BERDecode(BufferedTransformation &bt); + void DEREncode(BufferedTransformation &bt) const; + + virtual void BERDecodeOptionalAttributes(BufferedTransformation &bt) + {} // TODO: skip optional attributes if present + virtual void DEREncodeOptionalAttributes(BufferedTransformation &bt) const + {} +}; + +// ******************************************************** + +//! DER Encode Unsigned +/*! for INTEGER, BOOLEAN, and ENUM */ +template +unsigned int DEREncodeUnsigned(BufferedTransformation &out, T w, byte asnTag = INTEGER) +{ + byte buf[sizeof(w)+1]; + unsigned int bc; + if (asnTag == BOOLEAN) + { + buf[sizeof(w)] = w ? 0xff : 0; + bc = 1; + } + else + { + buf[0] = 0; + for (unsigned int i=0; i> (sizeof(w)-1-i)*8); + bc = sizeof(w); + while (bc > 1 && buf[sizeof(w)+1-bc] == 0) + --bc; + if (buf[sizeof(w)+1-bc] & 0x80) + ++bc; + } + out.Put(asnTag); + unsigned int lengthBytes = DERLengthEncode(out, bc); + out.Put(buf+sizeof(w)+1-bc, bc); + return 1+lengthBytes+bc; +} + +//! BER Decode Unsigned +// VC60 workaround: std::numeric_limits::max conflicts with MFC max macro +// CW41 workaround: std::numeric_limits::max causes a template error +template +void BERDecodeUnsigned(BufferedTransformation &in, T &w, byte asnTag = INTEGER, + T minValue = 0, T maxValue = 0xffffffff) +{ + byte b; + if (!in.Get(b) || b != asnTag) + BERDecodeError(); + + unsigned int bc; + BERLengthDecode(in, bc); + + SecByteBlock buf(bc); + + if (bc != in.Get(buf, bc)) + BERDecodeError(); + + const byte *ptr = buf; + while (bc > sizeof(w) && *ptr == 0) + { + bc--; + ptr++; + } + if (bc > sizeof(w)) + BERDecodeError(); + + w = 0; + for (unsigned int i=0; i maxValue) + BERDecodeError(); +} + +inline bool operator==(const ::CryptoPP::OID &lhs, const ::CryptoPP::OID &rhs) + {return lhs.m_values == rhs.m_values;} +inline bool operator!=(const ::CryptoPP::OID &lhs, const ::CryptoPP::OID &rhs) + {return lhs.m_values != rhs.m_values;} +inline bool operator<(const ::CryptoPP::OID &lhs, const ::CryptoPP::OID &rhs) + {return std::lexicographical_compare(lhs.m_values.begin(), lhs.m_values.end(), rhs.m_values.begin(), rhs.m_values.end());} +inline ::CryptoPP::OID operator+(const ::CryptoPP::OID &lhs, unsigned long rhs) + {return ::CryptoPP::OID(lhs)+=rhs;} + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/basecode.cpp b/stepmania/src/crypto51/basecode.cpp new file mode 100644 index 0000000000..1e81ece478 --- /dev/null +++ b/stepmania/src/crypto51/basecode.cpp @@ -0,0 +1,228 @@ +// basecode.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "basecode.h" +#include "fltrimpl.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +void BaseN_Encoder::IsolatedInitialize(const NameValuePairs ¶meters) +{ + parameters.GetRequiredParameter("BaseN_Encoder", "EncodingLookupArray", m_alphabet); + + parameters.GetRequiredIntParameter("BaseN_Encoder", "Log2Base", m_bitsPerChar); + if (m_bitsPerChar <= 0 || m_bitsPerChar >= 8) + throw InvalidArgument("BaseN_Encoder: Log2Base must be between 1 and 7 inclusive"); + + byte padding; + bool pad; + if (parameters.GetValue("PaddingByte", padding)) + pad = parameters.GetValueWithDefault("Pad", true); + else + pad = false; + m_padding = pad ? padding : -1; + + m_bytePos = m_bitPos = 0; + + int i = 8; + while (i%m_bitsPerChar != 0) + i += 8; + m_outputBlockSize = i/m_bitsPerChar; + + m_outBuf.New(m_outputBlockSize); +} + +unsigned int BaseN_Encoder::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + FILTER_BEGIN; + while (m_inputPosition < length) + { + if (m_bytePos == 0) + memset(m_outBuf, 0, m_outputBlockSize); + + { + unsigned int b = begin[m_inputPosition++], bitsLeftInSource = 8; + while (true) + { + assert(m_bitPos < m_bitsPerChar); + unsigned int bitsLeftInTarget = m_bitsPerChar-m_bitPos; + m_outBuf[m_bytePos] |= b >> (8-bitsLeftInTarget); + if (bitsLeftInSource >= bitsLeftInTarget) + { + m_bitPos = 0; + ++m_bytePos; + bitsLeftInSource -= bitsLeftInTarget; + if (bitsLeftInSource == 0) + break; + b <<= bitsLeftInTarget; + b &= 0xff; + } + else + { + m_bitPos += bitsLeftInSource; + break; + } + } + } + + assert(m_bytePos <= m_outputBlockSize); + if (m_bytePos == m_outputBlockSize) + { + int i; + for (i=0; i 0) + ++m_bytePos; + + int i; + for (i=0; i 0) + { + memset(m_outBuf+m_bytePos, m_padding, m_outputBlockSize-m_bytePos); + m_bytePos = m_outputBlockSize; + } + FILTER_OUTPUT(2, m_outBuf, m_bytePos, messageEnd); + m_bytePos = m_bitPos = 0; + } + FILTER_END_NO_MESSAGE_END; +} + +void BaseN_Decoder::IsolatedInitialize(const NameValuePairs ¶meters) +{ + parameters.GetRequiredParameter("BaseN_Decoder", "DecodingLookupArray", m_lookup); + + parameters.GetRequiredIntParameter("BaseN_Decoder", "Log2Base", m_bitsPerChar); + if (m_bitsPerChar <= 0 || m_bitsPerChar >= 8) + throw InvalidArgument("BaseN_Decoder: Log2Base must be between 1 and 7 inclusive"); + + m_bytePos = m_bitPos = 0; + + int i = m_bitsPerChar; + while (i%8 != 0) + i += m_bitsPerChar; + m_outputBlockSize = i/8; + + m_outBuf.New(m_outputBlockSize); +} + +unsigned int BaseN_Decoder::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + FILTER_BEGIN; + while (m_inputPosition < length) + { + unsigned int value; + value = m_lookup[begin[m_inputPosition++]]; + if (value >= 256) + continue; + + if (m_bytePos == 0 && m_bitPos == 0) + memset(m_outBuf, 0, m_outputBlockSize); + + { + int newBitPos = m_bitPos + m_bitsPerChar; + if (newBitPos <= 8) + m_outBuf[m_bytePos] |= value << (8-newBitPos); + else + { + m_outBuf[m_bytePos] |= value >> (newBitPos-8); + m_outBuf[m_bytePos+1] |= value << (16-newBitPos); + } + + m_bitPos = newBitPos; + while (m_bitPos >= 8) + { + m_bitPos -= 8; + ++m_bytePos; + } + } + + if (m_bytePos == m_outputBlockSize) + { + FILTER_OUTPUT(1, m_outBuf, m_outputBlockSize, 0); + m_bytePos = m_bitPos = 0; + } + } + if (messageEnd) + { + FILTER_OUTPUT(2, m_outBuf, m_bytePos, messageEnd); + m_bytePos = m_bitPos = 0; + } + FILTER_END_NO_MESSAGE_END; +} + +void BaseN_Decoder::InitializeDecodingLookupArray(int *lookup, const byte *alphabet, unsigned int base, bool caseInsensitive) +{ + std::fill(lookup, lookup+256, -1); + + for (unsigned int i=0; i +{ +public: + BaseN_Encoder(BufferedTransformation *attachment=NULL) + : Unflushable(attachment) {} + + BaseN_Encoder(const byte *alphabet, int log2base, BufferedTransformation *attachment=NULL, int padding=-1) + : Unflushable(attachment) + { + IsolatedInitialize(MakeParameters("EncodingLookupArray", alphabet) + ("Log2Base", log2base) + ("Pad", padding != -1) + ("PaddingByte", byte(padding))); + } + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + +private: + const byte *m_alphabet; + int m_padding, m_bitsPerChar, m_outputBlockSize; + int m_bytePos, m_bitPos; + SecByteBlock m_outBuf; +}; + +class BaseN_Decoder : public Unflushable +{ +public: + BaseN_Decoder(BufferedTransformation *attachment=NULL) + : Unflushable(attachment) {} + + BaseN_Decoder(const int *lookup, int log2base, BufferedTransformation *attachment=NULL) + : Unflushable(attachment) + { + IsolatedInitialize(MakeParameters("DecodingLookupArray", lookup)("Log2Base", log2base)); + } + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + + static void InitializeDecodingLookupArray(int *lookup, const byte *alphabet, unsigned int log2base, bool caseInsensitive); + +private: + const int *m_lookup; + int m_padding, m_bitsPerChar, m_outputBlockSize; + int m_bytePos, m_bitPos; + SecByteBlock m_outBuf; +}; + +class Grouper : public Bufferless +{ +public: + Grouper(BufferedTransformation *attachment=NULL) + : Bufferless(attachment) {} + + Grouper(int groupSize, const std::string &separator, const std::string &terminator, BufferedTransformation *attachment=NULL) + : Bufferless(attachment) + { + IsolatedInitialize(MakeParameters("GroupSize", groupSize) + ("Separator", ConstByteArrayParameter(separator)) + ("Terminator", ConstByteArrayParameter(terminator))); + } + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + +private: + SecByteBlock m_separator, m_terminator; + unsigned int m_groupSize, m_counter; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/channels.cpp b/stepmania/src/crypto51/channels.cpp new file mode 100644 index 0000000000..d13bcf429a --- /dev/null +++ b/stepmania/src/crypto51/channels.cpp @@ -0,0 +1,282 @@ +// channels.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "channels.h" + +NAMESPACE_BEGIN(CryptoPP) +USING_NAMESPACE(std) + +#if 0 +void MessageSwitch::AddDefaultRoute(BufferedTransformation &destination, const std::string &channel) +{ + m_defaultRoutes.push_back(Route(&destination, channel)); +} + +void MessageSwitch::AddRoute(unsigned int begin, unsigned int end, BufferedTransformation &destination, const std::string &channel) +{ + RangeRoute route(begin, end, Route(&destination, channel)); + RouteList::iterator it = upper_bound(m_routes.begin(), m_routes.end(), route); + m_routes.insert(it, route); +} + +/* +class MessageRouteIterator +{ +public: + typedef MessageSwitch::RouteList::const_iterator RouteIterator; + typedef MessageSwitch::DefaultRouteList::const_iterator DefaultIterator; + + bool m_useDefault; + RouteIterator m_itRouteCurrent, m_itRouteEnd; + DefaultIterator m_itDefaultCurrent, m_itDefaultEnd; + + MessageRouteIterator(MessageSwitch &ms, const std::string &channel) + : m_channel(channel) + { + pair range = cs.m_routeMap.equal_range(channel); + if (range.first == range.second) + { + m_useDefault = true; + m_itListCurrent = cs.m_defaultRoutes.begin(); + m_itListEnd = cs.m_defaultRoutes.end(); + } + else + { + m_useDefault = false; + m_itMapCurrent = range.first; + m_itMapEnd = range.second; + } + } + + bool End() const + { + return m_useDefault ? m_itListCurrent == m_itListEnd : m_itMapCurrent == m_itMapEnd; + } + + void Next() + { + if (m_useDefault) + ++m_itListCurrent; + else + ++m_itMapCurrent; + } + + BufferedTransformation & Destination() + { + return m_useDefault ? *m_itListCurrent->first : *m_itMapCurrent->second.first; + } + + const std::string & Message() + { + if (m_useDefault) + return m_itListCurrent->second.get() ? *m_itListCurrent->second.get() : m_channel; + else + return m_itMapCurrent->second.second; + } +}; + +void MessageSwitch::Put(byte inByte); +void MessageSwitch::Put(const byte *inString, unsigned int length); + +void MessageSwitch::Flush(bool completeFlush, int propagation=-1); +void MessageSwitch::MessageEnd(int propagation=-1); +void MessageSwitch::PutMessageEnd(const byte *inString, unsigned int length, int propagation=-1); +void MessageSwitch::MessageSeriesEnd(int propagation=-1); +*/ +#endif + +class ChannelRouteIterator +{ +public: + typedef ChannelSwitch::RouteMap::const_iterator MapIterator; + typedef ChannelSwitch::DefaultRouteList::const_iterator ListIterator; + + const std::string m_channel; + bool m_useDefault; + MapIterator m_itMapCurrent, m_itMapEnd; + ListIterator m_itListCurrent, m_itListEnd; + + ChannelRouteIterator(ChannelSwitch &cs, const std::string &channel) + : m_channel(channel) + { + pair range = cs.m_routeMap.equal_range(channel); + if (range.first == range.second) + { + m_useDefault = true; + m_itListCurrent = cs.m_defaultRoutes.begin(); + m_itListEnd = cs.m_defaultRoutes.end(); + } + else + { + m_useDefault = false; + m_itMapCurrent = range.first; + m_itMapEnd = range.second; + } + } + + bool End() const + { + return m_useDefault ? m_itListCurrent == m_itListEnd : m_itMapCurrent == m_itMapEnd; + } + + void Next() + { + if (m_useDefault) + ++m_itListCurrent; + else + ++m_itMapCurrent; + } + + BufferedTransformation & Destination() + { + return m_useDefault ? *m_itListCurrent->first : *m_itMapCurrent->second.first; + } + + const std::string & Channel() + { + if (m_useDefault) + return m_itListCurrent->second.get() ? *m_itListCurrent->second.get() : m_channel; + else + return m_itMapCurrent->second.second; + } +}; + +unsigned int ChannelSwitch::ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + if (!blocking) + throw BlockingInputOnly("ChannelSwitch"); + + ChannelRouteIterator it(*this, channel); + while (!it.End()) + { + it.Destination().ChannelPut2(it.Channel(), begin, length, messageEnd, blocking); + it.Next(); + } + return 0; +} + +void ChannelSwitch::ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters/* =g_nullNameValuePairs */, int propagation/* =-1 */) +{ + if (channel.empty()) + { + m_routeMap.clear(); + m_defaultRoutes.clear(); + } + + ChannelRouteIterator it(*this, channel); + while (!it.End()) + { + it.Destination().ChannelInitialize(it.Channel(), parameters, propagation); + it.Next(); + } +} + +bool ChannelSwitch::ChannelFlush(const std::string &channel, bool completeFlush, int propagation, bool blocking) +{ + if (!blocking) + throw BlockingInputOnly("ChannelSwitch"); + + ChannelRouteIterator it(*this, channel); + while (!it.End()) + { + it.Destination().ChannelFlush(it.Channel(), completeFlush, propagation, blocking); + it.Next(); + } + return false; +} + +bool ChannelSwitch::ChannelMessageSeriesEnd(const std::string &channel, int propagation, bool blocking) +{ + if (!blocking) + throw BlockingInputOnly("ChannelSwitch"); + + ChannelRouteIterator it(*this, channel); + while (!it.End()) + { + it.Destination().ChannelMessageSeriesEnd(it.Channel(), propagation); + it.Next(); + } + return false; +} + +byte * ChannelSwitch::ChannelCreatePutSpace(const std::string &channel, unsigned int &size) +{ + ChannelRouteIterator it(*this, channel); + if (!it.End()) + { + BufferedTransformation &target = it.Destination(); + it.Next(); + if (it.End()) // there is only one target channel + return target.ChannelCreatePutSpace(it.Channel(), size); + } + size = 0; + return NULL; +} + +unsigned int ChannelSwitch::ChannelPutModifiable2(const std::string &channel, byte *inString, unsigned int length, int messageEnd, bool blocking) +{ + if (!blocking) + throw BlockingInputOnly("ChannelSwitch"); + + ChannelRouteIterator it(*this, channel); + if (!it.End()) + { + BufferedTransformation &target = it.Destination(); + const std::string &targetChannel = it.Channel(); + it.Next(); + if (it.End()) // there is only one target channel + return target.ChannelPutModifiable2(targetChannel, inString, length, messageEnd, blocking); + } + ChannelPut2(channel, inString, length, messageEnd, blocking); + return false; +} + +void ChannelSwitch::AddDefaultRoute(BufferedTransformation &destination) +{ + m_defaultRoutes.push_back(DefaultRoute(&destination, value_ptr(NULL))); +} + +void ChannelSwitch::RemoveDefaultRoute(BufferedTransformation &destination) +{ + for (DefaultRouteList::iterator it = m_defaultRoutes.begin(); it != m_defaultRoutes.end(); ++it) + if (it->first == &destination && !it->second.get()) + { + m_defaultRoutes.erase(it); + break; + } +} + +void ChannelSwitch::AddDefaultRoute(BufferedTransformation &destination, const std::string &outChannel) +{ + m_defaultRoutes.push_back(DefaultRoute(&destination, outChannel)); +} + +void ChannelSwitch::RemoveDefaultRoute(BufferedTransformation &destination, const std::string &outChannel) +{ + for (DefaultRouteList::iterator it = m_defaultRoutes.begin(); it != m_defaultRoutes.end(); ++it) + if (it->first == &destination && (it->second.get() && *it->second == outChannel)) + { + m_defaultRoutes.erase(it); + break; + } +} + +void ChannelSwitch::AddRoute(const std::string &inChannel, BufferedTransformation &destination, const std::string &outChannel) +{ + m_routeMap.insert(RouteMap::value_type(inChannel, Route(&destination, outChannel))); +} + +void ChannelSwitch::RemoveRoute(const std::string &inChannel, BufferedTransformation &destination, const std::string &outChannel) +{ + typedef ChannelSwitch::RouteMap::iterator MapIterator; + pair range = m_routeMap.equal_range(inChannel); + + for (MapIterator it = range.first; it != range.second; ++it) + if (it->second.first == &destination && it->second.second == outChannel) + { + m_routeMap.erase(it); + break; + } +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/channels.h b/stepmania/src/crypto51/channels.h new file mode 100644 index 0000000000..4b12ce6877 --- /dev/null +++ b/stepmania/src/crypto51/channels.h @@ -0,0 +1,91 @@ +#ifndef CRYPTOPP_CHANNELS_H +#define CRYPTOPP_CHANNELS_H + +#include "simple.h" +#include "smartptr.h" +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +#if 0 +//! Route input on default channel to different and/or multiple channels based on message sequence number +class MessageSwitch : public Sink +{ +public: + void AddDefaultRoute(BufferedTransformation &destination, const std::string &channel); + void AddRoute(unsigned int begin, unsigned int end, BufferedTransformation &destination, const std::string &channel); + + void Put(byte inByte); + void Put(const byte *inString, unsigned int length); + + void Flush(bool completeFlush, int propagation=-1); + void MessageEnd(int propagation=-1); + void PutMessageEnd(const byte *inString, unsigned int length, int propagation=-1); + void MessageSeriesEnd(int propagation=-1); + +private: + typedef std::pair Route; + struct RangeRoute + { + RangeRoute(unsigned int begin, unsigned int end, const Route &route) + : begin(begin), end(end), route(route) {} + bool operator<(const RangeRoute &rhs) const {return begin < rhs.begin;} + unsigned int begin, end; + Route route; + }; + + typedef std::list RouteList; + typedef std::list DefaultRouteList; + + RouteList m_routes; + DefaultRouteList m_defaultRoutes; + unsigned int m_nCurrentMessage; +}; +#endif + +//! Route input to different and/or multiple channels based on channel ID +class ChannelSwitch : public Multichannel +{ +public: + ChannelSwitch() {} + ChannelSwitch(BufferedTransformation &destination) + { + AddDefaultRoute(destination); + } + ChannelSwitch(BufferedTransformation &destination, const std::string &outChannel) + { + AddDefaultRoute(destination, outChannel); + } + + unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking); + unsigned int ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking); + + void ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1); + bool ChannelFlush(const std::string &channel, bool completeFlush, int propagation=-1, bool blocking=true); + bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true); + + byte * ChannelCreatePutSpace(const std::string &channel, unsigned int &size); + + void AddDefaultRoute(BufferedTransformation &destination); + void RemoveDefaultRoute(BufferedTransformation &destination); + void AddDefaultRoute(BufferedTransformation &destination, const std::string &outChannel); + void RemoveDefaultRoute(BufferedTransformation &destination, const std::string &outChannel); + void AddRoute(const std::string &inChannel, BufferedTransformation &destination, const std::string &outChannel); + void RemoveRoute(const std::string &inChannel, BufferedTransformation &destination, const std::string &outChannel); + +private: + typedef std::pair Route; + typedef std::multimap RouteMap; + RouteMap m_routeMap; + + typedef std::pair > DefaultRoute; + typedef std::list DefaultRouteList; + DefaultRouteList m_defaultRoutes; + + friend class ChannelRouteIterator; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/config.h b/stepmania/src/crypto51/config.h new file mode 100644 index 0000000000..f27910c4eb --- /dev/null +++ b/stepmania/src/crypto51/config.h @@ -0,0 +1,247 @@ +#ifndef CRYPTOPP_CONFIG_H +#define CRYPTOPP_CONFIG_H + +// ***************** Important Settings ******************** + +// define this if running on a big-endian CPU +#if !defined(IS_LITTLE_ENDIAN) && (defined(__BIG_ENDIAN__) || defined(__sparc) || defined(__sparc__) || defined(__hppa__) || defined(__mips__) || (defined(__MWERKS__) && !defined(__INTEL__))) +# define IS_BIG_ENDIAN +#endif + +// define this if running on a little-endian CPU +// big endian will be assumed if IS_LITTLE_ENDIAN is not defined +#ifndef IS_BIG_ENDIAN +# define IS_LITTLE_ENDIAN +#endif + +// define this if you want to disable all OS-dependent features, +// such as sockets and OS-provided random number generators +// #define NO_OS_DEPENDENCE + +// Define this to use features provided by Microsoft's CryptoAPI. +// Currently the only feature used is random number generation. +// This macro will be ignored if NO_OS_DEPENDENCE is defined. +#define USE_MS_CRYPTOAPI + +// Define this to 1 to enforce the requirement in FIPS 186-2 Change Notice 1 that only 1024 bit moduli be used +#ifndef DSA_1024_BIT_MODULUS_ONLY +# define DSA_1024_BIT_MODULUS_ONLY 1 +#endif + +// ***************** Less Important Settings *************** + +// define this to retain (as much as possible) old deprecated function and class names +// #define CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + +#define GZIP_OS_CODE 0 + +// Try this if your CPU has 256K internal cache or a slow multiply instruction +// and you want a (possibly) faster IDEA implementation using log tables +// #define IDEA_LARGECACHE + +// Try this if you have a large cache or your CPU is slow manipulating +// individual bytes. +// #define DIAMOND_USE_PERMTABLE + +// Define this if, for the linear congruential RNG, you want to use +// the original constants as specified in S.K. Park and K.W. Miller's +// CACM paper. +// #define LCRNG_ORIGINAL_NUMBERS + +// choose which style of sockets to wrap (mostly useful for cygwin which has both) +#define PREFER_BERKELEY_STYLE_SOCKETS +// #define PREFER_WINDOWS_STYLE_SOCKETS + +// ***************** Important Settings Again ******************** +// But the defaults should be ok. + +// namespace support is now required +#ifdef NO_NAMESPACE +# error namespace support is now required +#endif + +// Define this to workaround a Microsoft CryptoAPI bug where +// each call to CryptAcquireContext causes a 100 KB memory leak. +// Defining this will cause Crypto++ to make only one call to CryptAcquireContext. +#define WORKAROUND_MS_BUG_Q258000 + +// Avoid putting "CryptoPP::" in front of everything in Doxygen output +#ifdef CRYPTOPP_DOXYGEN_PROCESSING +# define CryptoPP +# define NAMESPACE_BEGIN(x) +# define NAMESPACE_END +#else +# define NAMESPACE_BEGIN(x) namespace x { +# define NAMESPACE_END } +#endif +#define ANONYMOUS_NAMESPACE_BEGIN namespace { +#define USING_NAMESPACE(x) using namespace x; +#define DOCUMENTED_NAMESPACE_BEGIN(x) namespace x { +#define DOCUMENTED_NAMESPACE_END } + +// What is the type of the third parameter to bind? +// For Unix, the new standard is ::socklen_t (typically unsigned int), and the old standard is int. +// Unfortunately there is no way to tell whether or not socklen_t is defined. +// To work around this, TYPE_OF_SOCKLEN_T is a macro so that you can change it from the makefile. +#ifndef TYPE_OF_SOCKLEN_T +# if defined(_WIN32) || defined(__CYGWIN__) || defined(__MACH__) +# define TYPE_OF_SOCKLEN_T int +# else +# define TYPE_OF_SOCKLEN_T ::socklen_t +# endif +#endif + +#if defined(__CYGWIN__) && defined(PREFER_WINDOWS_STYLE_SOCKETS) +# define __USE_W32_SOCKETS +#endif + +typedef unsigned char byte; // moved outside namespace for Borland C++Builder 5 + +NAMESPACE_BEGIN(CryptoPP) + +typedef unsigned short word16; +#if defined(__alpha) && !defined(_MSC_VER) + typedef unsigned int word32; +#else + typedef unsigned long word32; +#endif + +#if defined(__GNUC__) || defined(__MWERKS__) +# define WORD64_AVAILABLE + typedef unsigned long long word64; +# define W64LIT(x) x##LL +#elif defined(_MSC_VER) || defined(__BCPLUSPLUS__) +# define WORD64_AVAILABLE + typedef unsigned __int64 word64; +# define W64LIT(x) x##ui64 +#endif + +// defined this if your CPU is not 64-bit +#if defined(WORD64_AVAILABLE) && !defined(__alpha) +# define SLOW_WORD64 +#endif + +// word should have the same size as your CPU registers +// dword should be twice as big as word + +#if (defined(__GNUC__) && !defined(__alpha)) || defined(__MWERKS__) + typedef unsigned long word; + typedef unsigned long long dword; +#elif defined(_MSC_VER) || defined(__BCPLUSPLUS__) + typedef unsigned __int32 word; + typedef unsigned __int64 dword; +#else + typedef unsigned int word; + typedef unsigned long dword; +#endif + +const unsigned int WORD_SIZE = sizeof(word); +const unsigned int WORD_BITS = WORD_SIZE * 8; + +#define LOW_WORD(x) (word)(x) + +union dword_union +{ + dword_union (const dword &dw) : dw(dw) {} + dword dw; + word w[2]; +}; + +#ifdef IS_LITTLE_ENDIAN +# define HIGH_WORD(x) (dword_union(x).w[1]) +#else +# define HIGH_WORD(x) (dword_union(x).w[0]) +#endif + +// if the above HIGH_WORD macro doesn't work (if you are not sure, compile it +// and run the validation tests), try this: +// #define HIGH_WORD(x) (word)((x)>>WORD_BITS) + +#if defined(_MSC_VER) || defined(__BCPLUSPLUS__) +# define INTEL_INTRINSICS +# define FAST_ROTATE +#elif defined(__MWERKS__) && TARGET_CPU_PPC +# define PPC_INTRINSICS +# define FAST_ROTATE +#elif defined(__GNUC__) && defined(__i386__) + // GCC does peephole optimizations which should result in using rotate instructions +# define FAST_ROTATE +#endif + +NAMESPACE_END + +// VC60 workaround: it doesn't allow typename in some places +#if defined(_MSC_VER) && (_MSC_VER < 1300) +#define CPP_TYPENAME +#else +#define CPP_TYPENAME typename +#endif + +#ifdef _MSC_VER + // 4250: dominance + // 4660: explicitly instantiating a class that's already implicitly instantiated + // 4661: no suitable definition provided for explicit template instantiation request + // 4786: identifer was truncated in debug information + // 4355: 'this' : used in base member initializer list +# pragma warning(disable: 4250 4660 4661 4786 4355) +#endif + +// ***************** determine availability of OS features ******************** + +#ifndef NO_OS_DEPENDENCE + +#if defined(_WIN32) || defined(__CYGWIN__) +#define CRYPTOPP_WIN32_AVAILABLE +#endif + +#if defined(__unix__) || defined(__MACH__) +#define CRYPTOPP_UNIX_AVAILABLE +#endif + +#if defined(WORD64_AVAILABLE) && (defined(CRYPTOPP_WIN32_AVAILABLE) || defined(CRYPTOPP_UNIX_AVAILABLE) || defined(macintosh)) +# define HIGHRES_TIMER_AVAILABLE +#endif + +#ifdef CRYPTOPP_UNIX_AVAILABLE +# define HAS_BERKELEY_STYLE_SOCKETS +#endif + +#ifdef CRYPTOPP_WIN32_AVAILABLE +# define HAS_WINDOWS_STYLE_SOCKETS +#endif + +#if defined(HIGHRES_TIMER_AVAILABLE) && (defined(HAS_BERKELEY_STYLE_SOCKETS) || defined(HAS_WINDOWS_STYLE_SOCKETS)) +# define SOCKETS_AVAILABLE +#endif + +#if defined(HAS_WINDOWS_STYLE_SOCKETS) && (!defined(HAS_BERKELEY_STYLE_SOCKETS) || defined(PREFER_WINDOWS_STYLE_SOCKETS)) +# define USE_WINDOWS_STYLE_SOCKETS +#else +# define USE_BERKELEY_STYLE_SOCKETS +#endif + +#if defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(USE_BERKELEY_STYLE_SOCKETS) +# define WINDOWS_PIPES_AVAILABLE +#endif + +#if defined(CRYPTOPP_WIN32_AVAILABLE) && defined(USE_MS_CRYPTOAPI) +# define NONBLOCKING_RNG_AVAILABLE +# define OS_RNG_AVAILABLE +#endif + +#ifdef CRYPTOPP_UNIX_AVAILABLE +# define NONBLOCKING_RNG_AVAILABLE +# define BLOCKING_RNG_AVAILABLE +# define OS_RNG_AVAILABLE +# define HAS_PTHREADS +# define THREADS_AVAILABLE +#endif + +#ifdef CRYPTOPP_WIN32_AVAILABLE +# define HAS_WINTHREADS +# define THREADS_AVAILABLE +#endif + +#endif // NO_OS_DEPENDENCE + +#endif diff --git a/stepmania/src/crypto51/cryptest.dsp b/stepmania/src/crypto51/cryptest.dsp new file mode 100644 index 0000000000..f926f35d98 --- /dev/null +++ b/stepmania/src/crypto51/cryptest.dsp @@ -0,0 +1,388 @@ +# Microsoft Developer Studio Project File - Name="cryptest" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 60000 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=cryptest - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "cryptest.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "cryptest.mak" CFG="cryptest - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "cryptest - Win32 FIPS 140 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "cryptest - Win32 FIPS 140 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "cryptest - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "cryptest - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "cryptest - Win32 FIPS 140 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "cryptest___Win32_FIPS_140_Release" +# PROP BASE Intermediate_Dir "cryptest___Win32_FIPS_140_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "CT_FIPS_140_Release" +# PROP Intermediate_Dir "CT_FIPS_140_Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /G5 /Gz /MT /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm200 /c +# ADD CPP /nologo /G5 /Gz /MT /W3 /GX /Zi /O2 /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /YX /FD /Zm200 /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /OPT:NOWIN98 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /OPT:NOWIN98 +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=echo This configuration is used to build a static binary for FIPS 140 evaluation by a testing laboratory. echo Crypto++ users should not build this configuration directly. +# End Special Build Tool + +!ELSEIF "$(CFG)" == "cryptest - Win32 FIPS 140 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "cryptest___Win32_FIPS_140_Debug" +# PROP BASE Intermediate_Dir "cryptest___Win32_FIPS_140_Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "CT_FIPS_140_Debug" +# PROP Intermediate_Dir "CT_FIPS_140_Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm200 /c +# ADD CPP /nologo /G5 /Gz /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /YX /FD /Zm200 /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /OPT:NOWIN98 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /OPT:NOWIN98 +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=echo This configuration is used to build a static binary for FIPS 140 evaluation by a testing laboratory. echo Crypto++ users should not build this configuration directly. +# End Special Build Tool + +!ELSEIF "$(CFG)" == "cryptest - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "cryptes0" +# PROP BASE Intermediate_Dir "cryptes0" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "CTRelease" +# PROP Intermediate_Dir "CTRelease" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm200 /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /OPT:NOWIN98 + +!ELSEIF "$(CFG)" == "cryptest - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "cryptes1" +# PROP BASE Intermediate_Dir "cryptes1" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "CTDebug" +# PROP Intermediate_Dir "CTDebug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /Zm200 /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /OPT:NOWIN98 + +!ENDIF + +# Begin Target + +# Name "cryptest - Win32 FIPS 140 Release" +# Name "cryptest - Win32 FIPS 140 Debug" +# Name "cryptest - Win32 Release" +# Name "cryptest - Win32 Debug" +# Begin Group "Test Data" + +# PROP Default_Filter ".dat" +# Begin Source File + +SOURCE=.\3desval.dat +# End Source File +# Begin Source File + +SOURCE=.\3wayval.dat +# End Source File +# Begin Source File + +SOURCE=.\cast128v.dat +# End Source File +# Begin Source File + +SOURCE=.\cast256v.dat +# End Source File +# Begin Source File + +SOURCE=.\descert.dat +# End Source File +# Begin Source File + +SOURCE=.\dh1024.dat +# End Source File +# Begin Source File + +SOURCE=.\dh2048.dat +# End Source File +# Begin Source File + +SOURCE=.\diamond.dat +# End Source File +# Begin Source File + +SOURCE=.\digest.dat +# End Source File +# Begin Source File + +SOURCE=.\dsa1024.dat +# End Source File +# Begin Source File + +SOURCE=.\dsa1024b.dat +# End Source File +# Begin Source File + +SOURCE=.\dsa512.dat +# End Source File +# Begin Source File + +SOURCE=.\elgc1024.dat +# End Source File +# Begin Source File + +SOURCE=.\esig1023.dat +# End Source File +# Begin Source File + +SOURCE=.\esig1536.dat +# End Source File +# Begin Source File + +SOURCE=.\esig2046.dat +# End Source File +# Begin Source File + +SOURCE=.\gostval.dat +# End Source File +# Begin Source File + +SOURCE=.\havalcer.dat +# End Source File +# Begin Source File + +SOURCE=.\ideaval.dat +# End Source File +# Begin Source File + +SOURCE=.\luc1024.dat +# End Source File +# Begin Source File + +SOURCE=.\luc2048.dat +# End Source File +# Begin Source File + +SOURCE=.\lucc1024.dat +# End Source File +# Begin Source File + +SOURCE=.\lucc512.dat +# End Source File +# Begin Source File + +SOURCE=.\lucd1024.dat +# End Source File +# Begin Source File + +SOURCE=.\lucd512.dat +# End Source File +# Begin Source File + +SOURCE=.\lucs1024.dat +# End Source File +# Begin Source File + +SOURCE=.\lucs512.dat +# End Source File +# Begin Source File + +SOURCE=.\marsval.dat +# End Source File +# Begin Source File + +SOURCE=.\mqv1024.dat +# End Source File +# Begin Source File + +SOURCE=.\mqv2048.dat +# End Source File +# Begin Source File + +SOURCE=.\nr1024.dat +# End Source File +# Begin Source File + +SOURCE=.\nr2048.dat +# End Source File +# Begin Source File + +SOURCE=.\rabi1024.dat +# End Source File +# Begin Source File + +SOURCE=.\rabi2048.dat +# End Source File +# Begin Source File + +SOURCE=.\rc2val.dat +# End Source File +# Begin Source File + +SOURCE=.\rc5val.dat +# End Source File +# Begin Source File + +SOURCE=.\rc6val.dat +# End Source File +# Begin Source File + +SOURCE=.\rijndael.dat +# End Source File +# Begin Source File + +SOURCE=.\rsa1024.dat +# End Source File +# Begin Source File + +SOURCE=.\rsa2048.dat +# End Source File +# Begin Source File + +SOURCE=.\rsa400pb.dat +# End Source File +# Begin Source File + +SOURCE=.\rsa400pv.dat +# End Source File +# Begin Source File + +SOURCE=.\rsa512a.dat +# End Source File +# Begin Source File + +SOURCE=.\rw1024.dat +# End Source File +# Begin Source File + +SOURCE=.\rw2048.dat +# End Source File +# Begin Source File + +SOURCE=.\saferval.dat +# End Source File +# Begin Source File + +SOURCE=.\serpentv.dat +# End Source File +# Begin Source File + +SOURCE=.\sharkval.dat +# End Source File +# Begin Source File + +SOURCE=.\skipjack.dat +# End Source File +# Begin Source File + +SOURCE=.\squareva.dat +# End Source File +# Begin Source File + +SOURCE=.\twofishv.dat +# End Source File +# Begin Source File + +SOURCE=.\usage.dat +# End Source File +# Begin Source File + +SOURCE=.\xtrdh171.dat +# End Source File +# Begin Source File + +SOURCE=.\xtrdh342.dat +# End Source File +# End Group +# Begin Group "Source Code" + +# PROP Default_Filter ".cpp;.h" +# Begin Source File + +SOURCE=.\bench.h +# End Source File +# Begin Source File + +SOURCE=.\factory.h +# End Source File +# Begin Source File + +SOURCE=.\test.cpp +# End Source File +# Begin Source File + +SOURCE=.\validate.h +# End Source File +# End Group +# End Target +# End Project diff --git a/stepmania/src/crypto51/cryptest.dsw b/stepmania/src/crypto51/cryptest.dsw new file mode 100644 index 0000000000..bce8473e35 --- /dev/null +++ b/stepmania/src/crypto51/cryptest.dsw @@ -0,0 +1,44 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "cryptest"=.\cryptest.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name cryptlib + End Project Dependency +}}} + +############################################################################### + +Project: "cryptlib"=.\cryptlib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/stepmania/src/crypto51/cryptlib.cpp b/stepmania/src/crypto51/cryptlib.cpp new file mode 100644 index 0000000000..e3fe2d5f9d --- /dev/null +++ b/stepmania/src/crypto51/cryptlib.cpp @@ -0,0 +1,687 @@ +// cryptlib.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "cryptlib.h" +#include "misc.h" +#include "filters.h" +#include "algparam.h" +#include "fips140.h" +#include "argnames.h" + +#include + +NAMESPACE_BEGIN(CryptoPP) + +CRYPTOPP_COMPILE_ASSERT(sizeof(byte) == 1); +CRYPTOPP_COMPILE_ASSERT(sizeof(word16) == 2); +CRYPTOPP_COMPILE_ASSERT(sizeof(word32) == 4); +#ifdef WORD64_AVAILABLE +CRYPTOPP_COMPILE_ASSERT(sizeof(word64) == 8); +#endif +CRYPTOPP_COMPILE_ASSERT(sizeof(dword) == 2*sizeof(word)); + +const std::string BufferedTransformation::NULL_CHANNEL; +const NullNameValuePairs g_nullNameValuePairs; + +BufferedTransformation & TheBitBucket() +{ + static BitBucket bitBucket; + return bitBucket; +} + +Algorithm::Algorithm(bool checkSelfTestStatus) +{ + if (checkSelfTestStatus && FIPS_140_2_ComplianceEnabled()) + { + if (GetPowerUpSelfTestStatus() == POWER_UP_SELF_TEST_NOT_DONE && !PowerUpSelfTestInProgressOnThisThread()) + throw SelfTestFailure("Cryptographic algorithms are disabled before the power-up self tests are performed."); + + if (GetPowerUpSelfTestStatus() == POWER_UP_SELF_TEST_FAILED) + throw SelfTestFailure("Cryptographic algorithms are disabled after power-up a self test failed."); + } +} + +void SimpleKeyingInterface::SetKeyWithRounds(const byte *key, unsigned int length, int rounds) +{ + SetKey(key, length, MakeParameters(Name::Rounds(), rounds)); +} + +void SimpleKeyingInterface::SetKeyWithIV(const byte *key, unsigned int length, const byte *iv) +{ + SetKey(key, length, MakeParameters(Name::IV(), iv)); +} + +void SimpleKeyingInterface::ThrowIfInvalidKeyLength(const Algorithm &algorithm, unsigned int length) +{ + if (!IsValidKeyLength(length)) + throw InvalidKeyLength(algorithm.AlgorithmName(), length); +} + +void BlockTransformation::ProcessAndXorMultipleBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, unsigned int numberOfBlocks) const +{ + unsigned int blockSize = BlockSize(); + while (numberOfBlocks--) + { + ProcessAndXorBlock(inBlocks, xorBlocks, outBlocks); + inBlocks += blockSize; + outBlocks += blockSize; + if (xorBlocks) + xorBlocks += blockSize; + } +} + +void StreamTransformation::ProcessLastBlock(byte *outString, const byte *inString, unsigned int length) +{ + assert(MinLastBlockSize() == 0); // this function should be overriden otherwise + + if (length == MandatoryBlockSize()) + ProcessData(outString, inString, length); + else if (length != 0) + throw NotImplemented("StreamTransformation: this object does't support a special last block"); +} + +unsigned int RandomNumberGenerator::GenerateBit() +{ + return Parity(GenerateByte()); +} + +void RandomNumberGenerator::GenerateBlock(byte *output, unsigned int size) +{ + while (size--) + *output++ = GenerateByte(); +} + +word32 RandomNumberGenerator::GenerateWord32(word32 min, word32 max) +{ + word32 range = max-min; + const int maxBytes = BytePrecision(range); + const int maxBits = BitPrecision(range); + + word32 value; + + do + { + value = 0; + for (int i=0; i range); + + return value+min; +} + +void RandomNumberGenerator::DiscardBytes(unsigned int n) +{ + while (n--) + GenerateByte(); +} + +RandomNumberGenerator & NullRNG() +{ + class NullRNG : public RandomNumberGenerator + { + public: + std::string AlgorithmName() const {return "NullRNG";} + byte GenerateByte() {throw NotImplemented("NullRNG: NullRNG should only be passed to functions that don't need to generate random bytes");} + }; + + static NullRNG s_nullRNG; + return s_nullRNG; +} + +bool HashTransformation::TruncatedVerify(const byte *digestIn, unsigned int digestLength) +{ + ThrowIfInvalidTruncatedSize(digestLength); + SecByteBlock digest(digestLength); + TruncatedFinal(digest, digestLength); + return memcmp(digest, digestIn, digestLength) == 0; +} + +void HashTransformation::ThrowIfInvalidTruncatedSize(unsigned int size) const +{ + if (size > DigestSize()) + throw InvalidArgument("HashTransformation: can't truncate a " + IntToString(DigestSize()) + " byte digest to " + IntToString(size) + " bytes"); +} + +unsigned int BufferedTransformation::GetMaxWaitObjectCount() const +{ + const BufferedTransformation *t = AttachedTransformation(); + return t ? t->GetMaxWaitObjectCount() : 0; +} + +void BufferedTransformation::GetWaitObjects(WaitObjectContainer &container) +{ + BufferedTransformation *t = AttachedTransformation(); + if (t) + t->GetWaitObjects(container); +} + +void BufferedTransformation::Initialize(const NameValuePairs ¶meters, int propagation) +{ + assert(!AttachedTransformation()); + IsolatedInitialize(parameters); +} + +bool BufferedTransformation::Flush(bool hardFlush, int propagation, bool blocking) +{ + assert(!AttachedTransformation()); + return IsolatedFlush(hardFlush, blocking); +} + +bool BufferedTransformation::MessageSeriesEnd(int propagation, bool blocking) +{ + assert(!AttachedTransformation()); + return IsolatedMessageSeriesEnd(blocking); +} + +byte * BufferedTransformation::ChannelCreatePutSpace(const std::string &channel, unsigned int &size) +{ + if (channel.empty()) + return CreatePutSpace(size); + else + throw NoChannelSupport(); +} + +unsigned int BufferedTransformation::ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + if (channel.empty()) + return Put2(begin, length, messageEnd, blocking); + else + throw NoChannelSupport(); +} + +unsigned int BufferedTransformation::ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + if (channel.empty()) + return PutModifiable2(begin, length, messageEnd, blocking); + else + return ChannelPut2(channel, begin, length, messageEnd, blocking); +} + +void BufferedTransformation::ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters, int propagation) +{ + if (channel.empty()) + Initialize(parameters, propagation); + else + throw NoChannelSupport(); +} + +bool BufferedTransformation::ChannelFlush(const std::string &channel, bool completeFlush, int propagation, bool blocking) +{ + if (channel.empty()) + return Flush(completeFlush, propagation, blocking); + else + throw NoChannelSupport(); +} + +bool BufferedTransformation::ChannelMessageSeriesEnd(const std::string &channel, int propagation, bool blocking) +{ + if (channel.empty()) + return MessageSeriesEnd(propagation, blocking); + else + throw NoChannelSupport(); +} + +unsigned long BufferedTransformation::MaxRetrievable() const +{ + if (AttachedTransformation()) + return AttachedTransformation()->MaxRetrievable(); + else + return CopyTo(TheBitBucket()); +} + +bool BufferedTransformation::AnyRetrievable() const +{ + if (AttachedTransformation()) + return AttachedTransformation()->AnyRetrievable(); + else + { + byte b; + return Peek(b) != 0; + } +} + +unsigned int BufferedTransformation::Get(byte &outByte) +{ + if (AttachedTransformation()) + return AttachedTransformation()->Get(outByte); + else + return Get(&outByte, 1); +} + +unsigned int BufferedTransformation::Get(byte *outString, unsigned int getMax) +{ + if (AttachedTransformation()) + return AttachedTransformation()->Get(outString, getMax); + else + { + ArraySink arraySink(outString, getMax); + return TransferTo(arraySink, getMax); + } +} + +unsigned int BufferedTransformation::Peek(byte &outByte) const +{ + if (AttachedTransformation()) + return AttachedTransformation()->Peek(outByte); + else + return Peek(&outByte, 1); +} + +unsigned int BufferedTransformation::Peek(byte *outString, unsigned int peekMax) const +{ + if (AttachedTransformation()) + return AttachedTransformation()->Peek(outString, peekMax); + else + { + ArraySink arraySink(outString, peekMax); + return CopyTo(arraySink, peekMax); + } +} + +unsigned long BufferedTransformation::Skip(unsigned long skipMax) +{ + if (AttachedTransformation()) + return AttachedTransformation()->Skip(skipMax); + else + return TransferTo(TheBitBucket(), skipMax); +} + +unsigned long BufferedTransformation::TotalBytesRetrievable() const +{ + if (AttachedTransformation()) + return AttachedTransformation()->TotalBytesRetrievable(); + else + return MaxRetrievable(); +} + +unsigned int BufferedTransformation::NumberOfMessages() const +{ + if (AttachedTransformation()) + return AttachedTransformation()->NumberOfMessages(); + else + return CopyMessagesTo(TheBitBucket()); +} + +bool BufferedTransformation::AnyMessages() const +{ + if (AttachedTransformation()) + return AttachedTransformation()->AnyMessages(); + else + return NumberOfMessages() != 0; +} + +bool BufferedTransformation::GetNextMessage() +{ + if (AttachedTransformation()) + return AttachedTransformation()->GetNextMessage(); + else + { + assert(!AnyMessages()); + return false; + } +} + +unsigned int BufferedTransformation::SkipMessages(unsigned int count) +{ + if (AttachedTransformation()) + return AttachedTransformation()->SkipMessages(count); + else + return TransferMessagesTo(TheBitBucket(), count); +} + +unsigned int BufferedTransformation::TransferMessagesTo2(BufferedTransformation &target, unsigned int &messageCount, const std::string &channel, bool blocking) +{ + if (AttachedTransformation()) + return AttachedTransformation()->TransferMessagesTo2(target, messageCount, channel, blocking); + else + { + unsigned int maxMessages = messageCount; + for (messageCount=0; messageCount < maxMessages && AnyMessages(); messageCount++) + { + unsigned int blockedBytes; + unsigned long transferedBytes; + + while (AnyRetrievable()) + { + transferedBytes = ULONG_MAX; + blockedBytes = TransferTo2(target, transferedBytes, channel, blocking); + if (blockedBytes > 0) + return blockedBytes; + } + + if (target.ChannelMessageEnd(channel, GetAutoSignalPropagation(), blocking)) + return 1; + + bool result = GetNextMessage(); + assert(result); + } + return 0; + } +} + +unsigned int BufferedTransformation::CopyMessagesTo(BufferedTransformation &target, unsigned int count, const std::string &channel) const +{ + if (AttachedTransformation()) + return AttachedTransformation()->CopyMessagesTo(target, count, channel); + else + return 0; +} + +void BufferedTransformation::SkipAll() +{ + if (AttachedTransformation()) + AttachedTransformation()->SkipAll(); + else + { + while (SkipMessages()) {} + while (Skip()) {} + } +} + +unsigned int BufferedTransformation::TransferAllTo2(BufferedTransformation &target, const std::string &channel, bool blocking) +{ + if (AttachedTransformation()) + return AttachedTransformation()->TransferAllTo2(target, channel, blocking); + else + { + assert(!NumberOfMessageSeries()); + + unsigned int messageCount; + do + { + messageCount = UINT_MAX; + unsigned int blockedBytes = TransferMessagesTo2(target, messageCount, channel, blocking); + if (blockedBytes) + return blockedBytes; + } + while (messageCount != 0); + + unsigned long byteCount; + do + { + byteCount = ULONG_MAX; + unsigned int blockedBytes = TransferTo2(target, byteCount, channel, blocking); + if (blockedBytes) + return blockedBytes; + } + while (byteCount != 0); + + return 0; + } +} + +void BufferedTransformation::CopyAllTo(BufferedTransformation &target, const std::string &channel) const +{ + if (AttachedTransformation()) + AttachedTransformation()->CopyAllTo(target, channel); + else + { + assert(!NumberOfMessageSeries()); + while (CopyMessagesTo(target, UINT_MAX, channel)) {} + } +} + +void BufferedTransformation::SetRetrievalChannel(const std::string &channel) +{ + if (AttachedTransformation()) + AttachedTransformation()->SetRetrievalChannel(channel); +} + +unsigned int BufferedTransformation::ChannelPutWord16(const std::string &channel, word16 value, ByteOrder order, bool blocking) +{ + FixedSizeSecBlock buf; + PutWord(false, order, buf, value); + return ChannelPut(channel, buf, 2, blocking); +} + +unsigned int BufferedTransformation::ChannelPutWord32(const std::string &channel, word32 value, ByteOrder order, bool blocking) +{ + FixedSizeSecBlock buf; + PutWord(false, order, buf, value); + return ChannelPut(channel, buf, 4, blocking); +} + +unsigned int BufferedTransformation::PutWord16(word16 value, ByteOrder order, bool blocking) +{ + return ChannelPutWord16(NULL_CHANNEL, value, order, blocking); +} + +unsigned int BufferedTransformation::PutWord32(word32 value, ByteOrder order, bool blocking) +{ + return ChannelPutWord32(NULL_CHANNEL, value, order, blocking); +} + +unsigned int BufferedTransformation::PeekWord16(word16 &value, ByteOrder order) +{ + byte buf[2] = {0, 0}; + unsigned int len = Peek(buf, 2); + + if (order) + value = (buf[0] << 8) | buf[1]; + else + value = (buf[1] << 8) | buf[0]; + + return len; +} + +unsigned int BufferedTransformation::PeekWord32(word32 &value, ByteOrder order) +{ + byte buf[4] = {0, 0, 0, 0}; + unsigned int len = Peek(buf, 4); + + if (order) + value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf [3]; + else + value = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf [0]; + + return len; +} + +unsigned int BufferedTransformation::GetWord16(word16 &value, ByteOrder order) +{ + return Skip(PeekWord16(value, order)); +} + +unsigned int BufferedTransformation::GetWord32(word32 &value, ByteOrder order) +{ + return Skip(PeekWord32(value, order)); +} + +void BufferedTransformation::Attach(BufferedTransformation *newOut) +{ + if (AttachedTransformation() && AttachedTransformation()->Attachable()) + AttachedTransformation()->Attach(newOut); + else + Detach(newOut); +} + +void GeneratableCryptoMaterial::GenerateRandomWithKeySize(RandomNumberGenerator &rng, unsigned int keySize) +{ + GenerateRandom(rng, MakeParameters("KeySize", (int)keySize)); +} + +BufferedTransformation * PK_Encryptor::CreateEncryptionFilter(RandomNumberGenerator &rng, BufferedTransformation *attachment) const +{ + struct EncryptionFilter : public Unflushable + { + // VC60 complains if this function is missing + EncryptionFilter(const EncryptionFilter &x) : Unflushable(NULL), m_rng(x.m_rng), m_encryptor(x.m_encryptor) {} + + EncryptionFilter(RandomNumberGenerator &rng, const PK_Encryptor &encryptor, BufferedTransformation *attachment) + : Unflushable(attachment), m_rng(rng), m_encryptor(encryptor) + { + } + + bool IsolatedMessageEnd(bool blocking) + { + switch (m_continueAt) + { + case 0: + { + unsigned int plaintextLength = m_inQueue.CurrentSize(); + m_ciphertextLength = m_encryptor.CiphertextLength(plaintextLength); + + SecByteBlock plaintext(plaintextLength); + m_inQueue.Get(plaintext, plaintextLength); + m_ciphertext.resize(m_ciphertextLength); + m_encryptor.Encrypt(m_rng, plaintext, plaintextLength, m_ciphertext); + } + + case 1: + if (!Output(1, m_ciphertext, m_ciphertextLength, 0, blocking)) + return false; + }; + return true; + } + + RandomNumberGenerator &m_rng; + const PK_Encryptor &m_encryptor; + unsigned int m_ciphertextLength; + SecByteBlock m_ciphertext; + }; + + return new EncryptionFilter(rng, *this, attachment); +} + +BufferedTransformation * PK_Decryptor::CreateDecryptionFilter(RandomNumberGenerator &rng, BufferedTransformation *attachment) const +{ + struct DecryptionFilter : public Unflushable + { + // VC60 complains if this function is missing + DecryptionFilter(const DecryptionFilter &x) : Unflushable(NULL), m_rng(x.m_rng), m_decryptor(x.m_decryptor) {} + + DecryptionFilter(RandomNumberGenerator &rng, const PK_Decryptor &decryptor, BufferedTransformation *attachment) + : Unflushable(attachment), m_rng(rng), m_decryptor(decryptor) + { + } + + bool IsolatedMessageEnd(bool blocking) + { + switch (m_continueAt) + { + case 0: + { + unsigned int ciphertextLength = m_inQueue.CurrentSize(); + unsigned int maxPlaintextLength = m_decryptor.MaxPlaintextLength(ciphertextLength); + + SecByteBlock ciphertext(ciphertextLength); + m_inQueue.Get(ciphertext, ciphertextLength); + m_plaintext.resize(maxPlaintextLength); + m_result = m_decryptor.Decrypt(m_rng, ciphertext, ciphertextLength, m_plaintext); + if (!m_result.isValidCoding) + throw InvalidCiphertext(m_decryptor.AlgorithmName() + ": invalid ciphertext"); + } + + case 1: + if (!Output(1, m_plaintext, m_result.messageLength, 0, blocking)) + return false; + } + return true; + } + + RandomNumberGenerator &m_rng; + const PK_Decryptor &m_decryptor; + SecByteBlock m_plaintext; + DecodingResult m_result; + }; + + return new DecryptionFilter(rng, *this, attachment); +} + +unsigned int PK_FixedLengthCryptoSystem::MaxPlaintextLength(unsigned int cipherTextLength) const +{ + if (cipherTextLength == FixedCiphertextLength()) + return FixedMaxPlaintextLength(); + else + return 0; +} + +unsigned int PK_FixedLengthCryptoSystem::CiphertextLength(unsigned int plainTextLength) const +{ + if (plainTextLength <= FixedMaxPlaintextLength()) + return FixedCiphertextLength(); + else + return 0; +} + +DecodingResult PK_FixedLengthDecryptor::Decrypt(RandomNumberGenerator &rng, const byte *cipherText, unsigned int cipherTextLength, byte *plainText) const +{ + if (cipherTextLength != FixedCiphertextLength()) + return DecodingResult(); + + return FixedLengthDecrypt(rng, cipherText, plainText); +} + +unsigned int PK_Signer::Sign(RandomNumberGenerator &rng, PK_MessageAccumulator *messageAccumulator, byte *signature) const +{ + std::auto_ptr m(messageAccumulator); + return SignAndRestart(rng, *m, signature, false); +} + +unsigned int PK_Signer::SignMessage(RandomNumberGenerator &rng, const byte *message, unsigned int messageLen, byte *signature) const +{ + std::auto_ptr m(NewSignatureAccumulator(rng)); + m->Update(message, messageLen); + return SignAndRestart(rng, *m, signature, false); +} + +unsigned int PK_Signer::SignMessageWithRecovery(RandomNumberGenerator &rng, const byte *recoverableMessage, unsigned int recoverableMessageLength, + const byte *nonrecoverableMessage, unsigned int nonrecoverableMessageLength, byte *signature) const +{ + std::auto_ptr m(NewSignatureAccumulator(rng)); + InputRecoverableMessage(*m, recoverableMessage, recoverableMessageLength); + m->Update(nonrecoverableMessage, nonrecoverableMessageLength); + return SignAndRestart(rng, *m, signature, false); +} + +bool PK_Verifier::Verify(PK_MessageAccumulator *messageAccumulator) const +{ + std::auto_ptr m(messageAccumulator); + return VerifyAndRestart(*m); +} + +bool PK_Verifier::VerifyMessage(const byte *message, unsigned int messageLen, const byte *signature, unsigned int signatureLength) const +{ + std::auto_ptr m(NewVerificationAccumulator()); + InputSignature(*m, signature, signatureLength); + m->Update(message, messageLen); + return VerifyAndRestart(*m); +} + +DecodingResult PK_Verifier::Recover(byte *recoveredMessage, PK_MessageAccumulator *messageAccumulator) const +{ + std::auto_ptr m(messageAccumulator); + return RecoverAndRestart(recoveredMessage, *m); +} + +DecodingResult PK_Verifier::RecoverMessage(byte *recoveredMessage, + const byte *nonrecoverableMessage, unsigned int nonrecoverableMessageLength, + const byte *signature, unsigned int signatureLength) const +{ + std::auto_ptr m(NewVerificationAccumulator()); + InputSignature(*m, signature, signatureLength); + m->Update(nonrecoverableMessage, nonrecoverableMessageLength); + return RecoverAndRestart(recoveredMessage, *m); +} + +void SimpleKeyAgreementDomain::GenerateKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const +{ + GeneratePrivateKey(rng, privateKey); + GeneratePublicKey(rng, privateKey, publicKey); +} + +void AuthenticatedKeyAgreementDomain::GenerateStaticKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const +{ + GenerateStaticPrivateKey(rng, privateKey); + GenerateStaticPublicKey(rng, privateKey, publicKey); +} + +void AuthenticatedKeyAgreementDomain::GenerateEphemeralKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const +{ + GenerateEphemeralPrivateKey(rng, privateKey); + GenerateEphemeralPublicKey(rng, privateKey, publicKey); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/cryptlib.dsp b/stepmania/src/crypto51/cryptlib.dsp new file mode 100644 index 0000000000..e9f7c8731c --- /dev/null +++ b/stepmania/src/crypto51/cryptlib.dsp @@ -0,0 +1,746 @@ +# Microsoft Developer Studio Project File - Name="cryptlib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 60000 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=cryptlib - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "cryptlib.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "cryptlib.mak" CFG="cryptlib - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "cryptlib - Win32 FIPS 140 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "cryptlib - Win32 FIPS 140 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "cryptlib - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "cryptlib - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "cryptlib - Win32 FIPS 140 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "cryptlib___Win32_FIPS_140_Release" +# PROP BASE Intermediate_Dir "cryptlib___Win32_FIPS_140_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "FIPS_140_Release" +# PROP Intermediate_Dir "FIPS_140_Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /G5 /Gz /MT /W3 /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /Yu"pch.h" /FD /c +# ADD CPP /nologo /G5 /Gz /MT /W3 /GX /Zi /O2 /D "NDEBUG" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /D "WIN32" /D CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2=1 /Yu"pch.h" /Fd"FIPS_140_Release/cryptopp" /FD /c +# ADD BASE RSC /l 0x409 +# ADD RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"FIPS_140_Release\cryptopp.lib" + +!ELSEIF "$(CFG)" == "cryptlib - Win32 FIPS 140 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "cryptlib___Win32_FIPS_140_Debug" +# PROP BASE Intermediate_Dir "cryptlib___Win32_FIPS_140_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "FIPS_140_Debug" +# PROP Intermediate_Dir "FIPS_140_Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /Yu"pch.h" /FD /c +# ADD CPP /nologo /G5 /Gz /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /D "WIN32" /D CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2=1 /Yu"pch.h" /Fd"FIPS_140_Debug/cryptopp" /FD /c +# ADD BASE RSC /l 0x409 +# ADD RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"FIPS_140_Debug\cryptopp.lib" + +!ELSEIF "$(CFG)" == "cryptlib - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "cryptlib" +# PROP BASE Intermediate_Dir "cryptlib" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /YX"pch.h" /FD /c +# ADD BASE RSC /l 0x409 +# ADD RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "cryptlib - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "cryptli0" +# PROP BASE Intermediate_Dir "cryptli0" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /YX"pch.h" /FD /c +# ADD BASE RSC /l 0x409 +# ADD RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "cryptlib - Win32 FIPS 140 Release" +# Name "cryptlib - Win32 FIPS 140 Debug" +# Name "cryptlib - Win32 Release" +# Name "cryptlib - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter ".cpp" +# Begin Source File + +SOURCE=.\algebra.cpp +# End Source File +# Begin Source File + +SOURCE=.\algparam.cpp +# End Source File +# Begin Source File + +SOURCE=.\asn.cpp +# End Source File +# Begin Source File + +SOURCE=.\basecode.cpp +# End Source File +# Begin Source File + +SOURCE=.\channels.cpp +# End Source File +# Begin Source File + +SOURCE=.\cryptlib.cpp +# End Source File +# Begin Source File + +SOURCE=.\des.cpp +# End Source File +# Begin Source File + +SOURCE=.\dessp.cpp +# End Source File +# Begin Source File + +SOURCE=.\eprecomp.cpp +# End Source File +# Begin Source File + +SOURCE=.\files.cpp +# End Source File +# Begin Source File + +SOURCE=.\filters.cpp +# End Source File +# Begin Source File + +SOURCE=.\fips140.cpp +# End Source File +# Begin Source File + +SOURCE=.\hex.cpp +# End Source File +# Begin Source File + +SOURCE=.\integer.cpp +# End Source File +# Begin Source File + +SOURCE=.\iterhash.cpp +# End Source File +# Begin Source File + +SOURCE=.\md5.cpp +# End Source File +# Begin Source File + +SOURCE=.\misc.cpp +# End Source File +# Begin Source File + +SOURCE=.\modes.cpp +# End Source File +# Begin Source File + +SOURCE=.\mqueue.cpp +# End Source File +# Begin Source File + +SOURCE=.\nbtheory.cpp +# End Source File +# Begin Source File + +SOURCE=.\oaep.cpp +# End Source File +# Begin Source File + +SOURCE=.\osrng.cpp +# End Source File +# Begin Source File + +SOURCE=.\pkcspad.cpp +# End Source File +# Begin Source File + +SOURCE=.\polynomi.cpp +# End Source File +# Begin Source File + +SOURCE=.\pssr.cpp +# End Source File +# Begin Source File + +SOURCE=.\pubkey.cpp +# End Source File +# Begin Source File + +SOURCE=.\queue.cpp +# End Source File +# Begin Source File + +SOURCE=.\randpool.cpp +# End Source File +# Begin Source File + +SOURCE=.\rsa.cpp +# End Source File +# Begin Source File + +SOURCE=.\sha.cpp +# End Source File +# Begin Source File + +SOURCE=.\strciphr.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter ".;.h" +# Begin Source File + +SOURCE=.\3way.h +# End Source File +# Begin Source File + +SOURCE=.\adler32.h +# End Source File +# Begin Source File + +SOURCE=.\aes.h +# End Source File +# Begin Source File + +SOURCE=.\algebra.h +# End Source File +# Begin Source File + +SOURCE=.\algparam.h +# End Source File +# Begin Source File + +SOURCE=.\arc4.h +# End Source File +# Begin Source File + +SOURCE=.\argnames.h +# End Source File +# Begin Source File + +SOURCE=.\asn.h +# End Source File +# Begin Source File + +SOURCE=.\base64.h +# End Source File +# Begin Source File + +SOURCE=.\basecode.h +# End Source File +# Begin Source File + +SOURCE=.\blowfish.h +# End Source File +# Begin Source File + +SOURCE=.\blumshub.h +# End Source File +# Begin Source File + +SOURCE=.\cast.h +# End Source File +# Begin Source File + +SOURCE=.\cbcmac.h +# End Source File +# Begin Source File + +SOURCE=.\channels.h +# End Source File +# Begin Source File + +SOURCE=.\config.h +# End Source File +# Begin Source File + +SOURCE=.\crc.h +# End Source File +# Begin Source File + +SOURCE=.\cryptlib.h +# End Source File +# Begin Source File + +SOURCE=.\default.h +# End Source File +# Begin Source File + +SOURCE=.\des.h +# End Source File +# Begin Source File + +SOURCE=.\dh.h +# End Source File +# Begin Source File + +SOURCE=.\dh2.h +# End Source File +# Begin Source File + +SOURCE=.\diamond.h +# End Source File +# Begin Source File + +SOURCE=.\dmac.h +# End Source File +# Begin Source File + +SOURCE=.\dsa.h +# End Source File +# Begin Source File + +SOURCE=.\ec2n.h +# End Source File +# Begin Source File + +SOURCE=.\eccrypto.h +# End Source File +# Begin Source File + +SOURCE=.\ecp.h +# End Source File +# Begin Source File + +SOURCE=.\elgamal.h +# End Source File +# Begin Source File + +SOURCE=.\eprecomp.h +# End Source File +# Begin Source File + +SOURCE=.\esign.h +# End Source File +# Begin Source File + +SOURCE=.\files.h +# End Source File +# Begin Source File + +SOURCE=.\filters.h +# End Source File +# Begin Source File + +SOURCE=.\fips140.h +# End Source File +# Begin Source File + +SOURCE=.\fltrimpl.h +# End Source File +# Begin Source File + +SOURCE=.\gf256.h +# End Source File +# Begin Source File + +SOURCE=.\gf2_32.h +# End Source File +# Begin Source File + +SOURCE=.\gf2n.h +# End Source File +# Begin Source File + +SOURCE=.\gfpcrypt.h +# End Source File +# Begin Source File + +SOURCE=.\gost.h +# End Source File +# Begin Source File + +SOURCE=.\gzip.h +# End Source File +# Begin Source File + +SOURCE=.\haval.h +# End Source File +# Begin Source File + +SOURCE=.\hex.h +# End Source File +# Begin Source File + +SOURCE=.\hmac.h +# End Source File +# Begin Source File + +SOURCE=.\hrtimer.h +# End Source File +# Begin Source File + +SOURCE=.\ida.h +# End Source File +# Begin Source File + +SOURCE=.\idea.h +# End Source File +# Begin Source File + +SOURCE=.\integer.h +# End Source File +# Begin Source File + +SOURCE=.\iterhash.h +# End Source File +# Begin Source File + +SOURCE=.\lubyrack.h +# End Source File +# Begin Source File + +SOURCE=.\luc.h +# End Source File +# Begin Source File + +SOURCE=.\mars.h +# End Source File +# Begin Source File + +SOURCE=.\md2.h +# End Source File +# Begin Source File + +SOURCE=.\md4.h +# End Source File +# Begin Source File + +SOURCE=.\md5.h +# End Source File +# Begin Source File + +SOURCE=.\md5mac.h +# End Source File +# Begin Source File + +SOURCE=.\mdc.h +# End Source File +# Begin Source File + +SOURCE=.\misc.h +# End Source File +# Begin Source File + +SOURCE=.\modarith.h +# End Source File +# Begin Source File + +SOURCE=.\modes.h +# End Source File +# Begin Source File + +SOURCE=.\modexppc.h +# End Source File +# Begin Source File + +SOURCE=.\mqueue.h +# End Source File +# Begin Source File + +SOURCE=.\mqv.h +# End Source File +# Begin Source File + +SOURCE=.\nbtheory.h +# End Source File +# Begin Source File + +SOURCE=.\network.h +# End Source File +# Begin Source File + +SOURCE=.\nr.h +# End Source File +# Begin Source File + +SOURCE=.\oaep.h +# End Source File +# Begin Source File + +SOURCE=.\oids.h +# End Source File +# Begin Source File + +SOURCE=.\osrng.h +# End Source File +# Begin Source File + +SOURCE=.\panama.h +# End Source File +# Begin Source File + +SOURCE=.\pch.h +# End Source File +# Begin Source File + +SOURCE=.\pkcspad.h +# End Source File +# Begin Source File + +SOURCE=.\polynomi.h +# End Source File +# Begin Source File + +SOURCE=.\pssr.h +# End Source File +# Begin Source File + +SOURCE=.\pubkey.h +# End Source File +# Begin Source File + +SOURCE=.\pwdbased.h +# End Source File +# Begin Source File + +SOURCE=.\queue.h +# End Source File +# Begin Source File + +SOURCE=.\rabin.h +# End Source File +# Begin Source File + +SOURCE=.\randpool.h +# End Source File +# Begin Source File + +SOURCE=.\rc2.h +# End Source File +# Begin Source File + +SOURCE=.\rc5.h +# End Source File +# Begin Source File + +SOURCE=.\rc6.h +# End Source File +# Begin Source File + +SOURCE=.\rijndael.h +# End Source File +# Begin Source File + +SOURCE=.\ripemd.h +# End Source File +# Begin Source File + +SOURCE=.\rng.h +# End Source File +# Begin Source File + +SOURCE=.\rsa.h +# End Source File +# Begin Source File + +SOURCE=.\rw.h +# End Source File +# Begin Source File + +SOURCE=.\safer.h +# End Source File +# Begin Source File + +SOURCE=.\seal.h +# End Source File +# Begin Source File + +SOURCE=.\secblock.h +# End Source File +# Begin Source File + +SOURCE=.\seckey.h +# End Source File +# Begin Source File + +SOURCE=.\serpent.h +# End Source File +# Begin Source File + +SOURCE=.\sha.h +# End Source File +# Begin Source File + +SOURCE=.\shark.h +# End Source File +# Begin Source File + +SOURCE=.\simple.h +# End Source File +# Begin Source File + +SOURCE=.\skipjack.h +# End Source File +# Begin Source File + +SOURCE=.\smartptr.h +# End Source File +# Begin Source File + +SOURCE=.\socketft.h +# End Source File +# Begin Source File + +SOURCE=.\square.h +# End Source File +# Begin Source File + +SOURCE=.\strciphr.h +# End Source File +# Begin Source File + +SOURCE=.\tea.h +# End Source File +# Begin Source File + +SOURCE=.\tiger.h +# End Source File +# Begin Source File + +SOURCE=.\trdlocal.h +# End Source File +# Begin Source File + +SOURCE=.\trunhash.h +# End Source File +# Begin Source File + +SOURCE=.\twofish.h +# End Source File +# Begin Source File + +SOURCE=.\wait.h +# End Source File +# Begin Source File + +SOURCE=.\wake.h +# End Source File +# Begin Source File + +SOURCE=.\winpipes.h +# End Source File +# Begin Source File + +SOURCE=.\words.h +# End Source File +# Begin Source File + +SOURCE=.\xormac.h +# End Source File +# Begin Source File + +SOURCE=.\xtr.h +# End Source File +# Begin Source File + +SOURCE=.\xtrcrypt.h +# End Source File +# Begin Source File + +SOURCE=.\zdeflate.h +# End Source File +# Begin Source File + +SOURCE=.\zinflate.h +# End Source File +# Begin Source File + +SOURCE=.\zlib.h +# End Source File +# End Group +# Begin Group "Miscellaneous" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Doxyfile +# End Source File +# Begin Source File + +SOURCE=.\GNUmakefile +# End Source File +# Begin Source File + +SOURCE=.\license.txt +# End Source File +# Begin Source File + +SOURCE=.\readme.txt +# End Source File +# End Group +# End Target +# End Project diff --git a/stepmania/src/crypto51/cryptlib.h b/stepmania/src/crypto51/cryptlib.h new file mode 100644 index 0000000000..27783971cf --- /dev/null +++ b/stepmania/src/crypto51/cryptlib.h @@ -0,0 +1,1564 @@ +// cryptlib.h - written and placed in the public domain by Wei Dai +/*! \file + This file contains the declarations for the abstract base + classes that provide a uniform interface to this library. +*/ + +/*! \mainpage Crypto++TM Library 5.1 Reference Manual +

    +
    Abstract Base Classes
    + cryptlib.h +
    Symmetric Ciphers
    + SymmetricCipherDocumentation +
    Hash Functions
    + HAVAL, MD2, MD4, MD5, PanamaHash, RIPEMD160, SHA, SHA256, SHA384, SHA512, Tiger +
    Non-Cryptographic Checksums
    + CRC32, Adler32 +
    Message Authentication Codes
    + #MD5MAC, XMACC, HMAC, CBC_MAC, DMAC, PanamaMAC +
    Random Number Generators
    + NullRNG(), LC_RNG, RandomPool, BlockingRng, NonblockingRng, AutoSeededRandomPool, AutoSeededX917RNG +
    Public Key Cryptosystems
    + DLIES, ECIES, LUCES, RSAES, RabinES, LUC_IES +
    Public Key Signature Schemes
    + DSA, GDSA, ECDSA, NR, ECNR, LUCSS, RSASS, RabinSS, RWSS, ESIGN +
    Key Agreement
    + #DH, DH2, #MQV, ECDH, ECMQV, XTR_DH +
    Algebraic Structures
    + Integer, PolynomialMod2, PolynomialOver, RingOfPolynomialsOver, + ModularArithmetic, MontgomeryRepresentation, GFP2_ONB, + GF2NP, GF256, GF2_32, EC2N, ECP +
    Secret Sharing and Information Dispersal
    + SecretSharing, SecretRecovery, InformationDispersal, InformationRecovery +
    Compression
    + Deflator, Inflator, Gzip, Gunzip, ZlibCompressor, ZlibDecompressor +
    Input Source Classes
    + StringSource, FileSource, SocketSource, WindowsPipeSource, RandomNumberSource +
    Output Sink Classes
    + StringSinkTemplate, ArraySink, FileSink, SocketSink, WindowsPipeSink +
    Filter Wrappers
    + StreamTransformationFilter, HashFilter, HashVerificationFilter, SignerFilter, SignatureVerificationFilter +
    Binary to Text Encoders and Decoders
    + HexEncoder, HexDecoder, Base64Encoder, Base64Decoder +
    Wrappers for OS features
    + Timer, Socket, WindowsHandle, ThreadLocalStorage +
    FIPS 140 related
    + fips140.h +
    + +

    This reference manual is a work in progress. Some classes are still lacking detailed descriptions. +

    Click here to download a zip archive containing this manual. +

    Thanks to Ryan Phillips for providing the Doxygen configuration file +and getting me started with this manual. +*/ + +#ifndef CRYPTOPP_CRYPTLIB_H +#define CRYPTOPP_CRYPTLIB_H + +#include "config.h" +#include +#include +#include +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +// forward declarations +class Integer; + +//! used to specify a direction for a cipher to operate in (encrypt or decrypt) +enum CipherDir {ENCRYPTION, DECRYPTION}; + +//! used to represent infinite time +const unsigned long INFINITE_TIME = ULONG_MAX; + +// VC60 workaround: using enums as template parameters causes problems +template +struct EnumToType +{ + static ENUM_TYPE ToEnum() {return (ENUM_TYPE)VALUE;} +}; + +enum ByteOrder {LITTLE_ENDIAN_ORDER = 0, BIG_ENDIAN_ORDER = 1}; +typedef EnumToType LittleEndian; +typedef EnumToType BigEndian; + +//! base class for all exceptions thrown by Crypto++ +class Exception : public std::exception +{ +public: + //! error types + enum ErrorType { + //! a method is not implemented + NOT_IMPLEMENTED, + //! invalid function argument + INVALID_ARGUMENT, + //! BufferedTransformation received a Flush(true) signal but can't flush buffers + CANNOT_FLUSH, + //! data integerity check (such as CRC or MAC) failed + DATA_INTEGRITY_CHECK_FAILED, + //! received input data that doesn't conform to expected format + INVALID_DATA_FORMAT, + //! error reading from input device or writing to output device + IO_ERROR, + //! some error not belong to any of the above categories + OTHER_ERROR + }; + + explicit Exception(ErrorType errorType, const std::string &s) : m_errorType(errorType), m_what(s) {} + virtual ~Exception() throw() {} + const char *what() const throw() {return (m_what.c_str());} + const std::string &GetWhat() const {return m_what;} + void SetWhat(const std::string &s) {m_what = s;} + ErrorType GetErrorType() const {return m_errorType;} + void SetErrorType(ErrorType errorType) {m_errorType = errorType;} + +private: + ErrorType m_errorType; + std::string m_what; +}; + +//! exception thrown when an invalid argument is detected +class InvalidArgument : public Exception +{ +public: + explicit InvalidArgument(const std::string &s) : Exception(INVALID_ARGUMENT, s) {} +}; + +//! exception thrown by decryption filters when trying to decrypt an invalid ciphertext +class InvalidDataFormat : public Exception +{ +public: + explicit InvalidDataFormat(const std::string &s) : Exception(INVALID_DATA_FORMAT, s) {} +}; + +//! exception thrown by decryption filters when trying to decrypt an invalid ciphertext +class InvalidCiphertext : public InvalidDataFormat +{ +public: + explicit InvalidCiphertext(const std::string &s) : InvalidDataFormat(s) {} +}; + +//! exception thrown by a class if a non-implemented method is called +class NotImplemented : public Exception +{ +public: + explicit NotImplemented(const std::string &s) : Exception(NOT_IMPLEMENTED, s) {} +}; + +//! exception thrown by a class when Flush(true) is called but it can't completely flush its buffers +class CannotFlush : public Exception +{ +public: + explicit CannotFlush(const std::string &s) : Exception(CANNOT_FLUSH, s) {} +}; + +//! error reported by the operating system +class OS_Error : public Exception +{ +public: + OS_Error(ErrorType errorType, const std::string s, const std::string& operation, int errorCode) + : Exception(errorType, s), m_operation(operation), m_errorCode(errorCode) {} + ~OS_Error() throw() {} + + // the operating system API that reported the error + const std::string & GetOperation() const {return m_operation;} + // the error code return by the operating system + int GetErrorCode() const {return m_errorCode;} + +protected: + std::string m_operation; + int m_errorCode; +}; + +//! used to return decoding results +struct DecodingResult +{ + explicit DecodingResult() : isValidCoding(false), messageLength(0) {} + explicit DecodingResult(unsigned int len) : isValidCoding(true), messageLength(len) {} + + bool operator==(const DecodingResult &rhs) const {return isValidCoding == rhs.isValidCoding && messageLength == rhs.messageLength;} + bool operator!=(const DecodingResult &rhs) const {return !operator==(rhs);} + + bool isValidCoding; + unsigned int messageLength; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + operator unsigned int() const {return isValidCoding ? messageLength : 0;} +#endif +}; + +//! interface for retrieving values given their names +/*! This class is used to safely pass a variable number of arbitrarily typed arguments to functions + and to read values from keys and crypto parameters. + To get a value, you need to know the name and the type of the value. + Call GetValueNames() on a NameValuePairs object to obtain a list of value names that it supports. + Then look at the Name namespace documentation to see what the type of each value is, or + alternatively, call GetIntValue() with the value name, and if the type is not int, a + ValueTypeMismatch exception will be thrown and you can get the actual type from the exception object. +*/ +class NameValuePairs +{ +public: + virtual ~NameValuePairs() {} + + //! exception thrown when trying to retrieve a value using a different type than expected + class ValueTypeMismatch : public InvalidArgument + { + public: + ValueTypeMismatch(std::string name, const std::type_info &stored, const std::type_info &retrieving) + : InvalidArgument("NameValuePairs: type mismatch for '" + name + "', stored '" + stored.name() + "', trying to retrieve '" + retrieving.name() + "'") + , m_stored(stored), m_retrieving(retrieving) {} + + const std::type_info & GetStoredTypeInfo() const {return m_stored;} + const std::type_info & GetRetrievingTypeInfo() const {return m_retrieving;} + + private: + const std::type_info &m_stored; + const std::type_info &m_retrieving; + }; + + //! get a copy of this object or a subobject of it + template + bool GetThisObject(T &object) const + { + return GetValue((std::string("ThisObject:")+typeid(T).name()).c_str(), object); + } + + //! get a pointer to this object, as a pointer to T + template + bool GetThisPointer(T *&p) const + { + return GetValue((std::string("ThisPointer:")+typeid(T).name()).c_str(), p); + } + + //! get a named value, returns true if the name exists + template + bool GetValue(const char *name, T &value) const + { + return GetVoidValue(name, typeid(T), &value); + } + + //! get a named value, returns the default if the name doesn't exist + template + T GetValueWithDefault(const char *name, T defaultValue) const + { + GetValue(name, defaultValue); + return defaultValue; + } + + //! get a list of value names that can be retrieved + std::string GetValueNames() const + {std::string result; GetValue("ValueNames", result); return result;} + + //! get a named value with type int + /*! used to ensure we don't accidentally try to get an unsigned int + or some other type when we mean int (which is the most common case) */ + bool GetIntValue(const char *name, int &value) const + {return GetValue(name, value);} + + //! get a named value with type int, with default + int GetIntValueWithDefault(const char *name, int defaultValue) const + {return GetValueWithDefault(name, defaultValue);} + + //! used by derived classes to check for type mismatch + static void ThrowIfTypeMismatch(const char *name, const std::type_info &stored, const std::type_info &retrieving) + {if (stored != retrieving) throw ValueTypeMismatch(name, stored, retrieving);} + + template + void GetRequiredParameter(const char *className, const char *name, T &value) const + { + if (!GetValue(name, value)) + throw InvalidArgument(std::string(className) + ": missing required parameter '" + name + "'"); + } + + void GetRequiredIntParameter(const char *className, const char *name, int &value) const + { + if (!GetIntValue(name, value)) + throw InvalidArgument(std::string(className) + ": missing required parameter '" + name + "'"); + } + + //! to be implemented by derived classes, users should use one of the above functions instead + virtual bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const =0; +}; + +//! namespace containing value name definitions +/*! value names, types and semantics: + + ThisObject:ClassName (ClassName, copy of this object or a subobject) + ThisPointer:ClassName (const ClassName *, pointer to this object or a subobject) +*/ +DOCUMENTED_NAMESPACE_BEGIN(Name) +// more names defined in argnames.h +DOCUMENTED_NAMESPACE_END + +//! . +class NullNameValuePairs : public NameValuePairs +{ +public: + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const {return false;} +}; + +//! . +extern const NullNameValuePairs g_nullNameValuePairs; + +// ******************************************************** + +//! interface for cloning objects, this is not implemented by most classes yet +class Clonable +{ +public: + virtual ~Clonable() {} + //! this is not implemented by most classes yet + virtual Clonable* Clone() const {throw NotImplemented("Clone() is not implemented yet.");} // TODO: make this =0 +}; + +//! interface for all crypto algorithms + +class Algorithm : public Clonable +{ +public: + /*! When FIPS 140-2 compliance is enabled and checkSelfTestStatus == true, + this constructor throws SelfTestFailure if the self test hasn't been run or fails. */ + Algorithm(bool checkSelfTestStatus = true); + //! returns name of this algorithm, not universally implemented yet + virtual std::string AlgorithmName() const {return "unknown";} +}; + +//! keying interface for crypto algorithms that take byte strings as keys + +class SimpleKeyingInterface +{ +public: + //! returns smallest valid key length in bytes */ + virtual unsigned int MinKeyLength() const =0; + //! returns largest valid key length in bytes */ + virtual unsigned int MaxKeyLength() const =0; + //! returns default (recommended) key length in bytes */ + virtual unsigned int DefaultKeyLength() const =0; + + //! returns the smallest valid key length in bytes that is >= min(n, GetMaxKeyLength()) + virtual unsigned int GetValidKeyLength(unsigned int n) const =0; + + //! returns whether n is a valid key length + virtual bool IsValidKeyLength(unsigned int n) const + {return n == GetValidKeyLength(n);} + + //! set or reset the key of this object + /*! \param params is used to specify Rounds, BlockSize, etc */ + virtual void SetKey(const byte *key, unsigned int length, const NameValuePairs ¶ms = g_nullNameValuePairs) =0; + + //! calls SetKey() with an NameValuePairs object that just specifies "Rounds" + void SetKeyWithRounds(const byte *key, unsigned int length, int rounds); + + //! calls SetKey() with an NameValuePairs object that just specifies "IV" + void SetKeyWithIV(const byte *key, unsigned int length, const byte *iv); + + enum IV_Requirement {STRUCTURED_IV = 0, RANDOM_IV, UNPREDICTABLE_RANDOM_IV, INTERNALLY_GENERATED_IV, NOT_RESYNCHRONIZABLE}; + //! returns the minimal requirement for secure IVs + virtual IV_Requirement IVRequirement() const =0; + + //! returns whether this object can be resynchronized (i.e. supports initialization vectors) + /*! If this function returns true, and no IV is passed to SetKey() and CanUseStructuredIVs()==true, an IV of all 0's will be assumed. */ + bool IsResynchronizable() const {return IVRequirement() < NOT_RESYNCHRONIZABLE;} + //! returns whether this object can use random IVs (in addition to ones returned by GetNextIV) + bool CanUseRandomIVs() const {return IVRequirement() <= UNPREDICTABLE_RANDOM_IV;} + //! returns whether this object can use random but possibly predictable IVs (in addition to ones returned by GetNextIV) + bool CanUsePredictableIVs() const {return IVRequirement() <= RANDOM_IV;} + //! returns whether this object can use structured IVs, for example a counter (in addition to ones returned by GetNextIV) + bool CanUseStructuredIVs() const {return IVRequirement() <= STRUCTURED_IV;} + + //! returns size of IVs used by this object + virtual unsigned int IVSize() const {throw NotImplemented("SimpleKeyingInterface: this object doesn't support resynchronization");} + //! resynchronize with an IV + virtual void Resynchronize(const byte *IV) {throw NotImplemented("SimpleKeyingInterface: this object doesn't support resynchronization");} + //! get a secure IV for the next message + /*! This method should be called after you finish encrypting one message and are ready to start the next one. + After calling it, you must call SetKey() or Resynchronize() before using this object again. + This method is not implemented on decryption objects. */ + virtual void GetNextIV(byte *IV) {throw NotImplemented("SimpleKeyingInterface: this object doesn't support GetNextIV()");} + +protected: + void ThrowIfInvalidKeyLength(const Algorithm &algorithm, unsigned int length); + + inline void AssertValidKeyLength(unsigned int length) const + { + assert(IsValidKeyLength(length)); + } +}; + +//! interface for the data processing part of block ciphers + +/*! Classes derived from BlockTransformation are block ciphers + in ECB mode (for example the DES::Encryption class), which are stateless, + and they can make assumptions about the memory alignment of their inputs and outputs. + These classes should not be used directly, but only in combination with + a mode class (see CipherModeDocumentation in modes.h). +*/ +class BlockTransformation : public Algorithm +{ +public: + //! encrypt or decrypt inBlock, xor with xorBlock, and write to outBlock + virtual void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const =0; + + //! encrypt or decrypt one block + /*! \pre size of inBlock and outBlock == BlockSize() */ + void ProcessBlock(const byte *inBlock, byte *outBlock) const + {ProcessAndXorBlock(inBlock, NULL, outBlock);} + + //! encrypt or decrypt one block in place + void ProcessBlock(byte *inoutBlock) const + {ProcessAndXorBlock(inoutBlock, NULL, inoutBlock);} + + //! block size of the cipher in bytes + virtual unsigned int BlockSize() const =0; + + //! block pointers must be divisible by this + virtual unsigned int BlockAlignment() const {return 4;} + + //! returns true if this is a permutation (i.e. there is an inverse transformation) + virtual bool IsPermutation() const {return true;} + + //! returns true if this is an encryption object + virtual bool IsForwardTransformation() const =0; + + //! return number of blocks that can be processed in parallel, for bit-slicing implementations + virtual unsigned int OptimalNumberOfParallelBlocks() const {return 1;} + + //! encrypt or decrypt multiple blocks, for bit-slicing implementations + virtual void ProcessAndXorMultipleBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, unsigned int numberOfBlocks) const; +}; + +//! interface for the data processing part of stream ciphers + +class StreamTransformation : public Algorithm +{ +public: + //! return a reference to this object, + /*! This function is useful for passing a temporary StreamTransformation object to a + function that takes a non-const reference. */ + StreamTransformation& Ref() {return *this;} + + //! returns block size, if input must be processed in blocks, otherwise 1 + virtual unsigned int MandatoryBlockSize() const {return 1;} + + //! returns the input block size that is most efficient for this cipher + /*! \note optimal input length is n * OptimalBlockSize() - GetOptimalBlockSizeUsed() for any n > 0 */ + virtual unsigned int OptimalBlockSize() const {return MandatoryBlockSize();} + //! returns how much of the current block is used up + virtual unsigned int GetOptimalBlockSizeUsed() const {return 0;} + + //! returns how input should be aligned for optimal performance + virtual unsigned int OptimalDataAlignment() const {return 1;} + + //! encrypt or decrypt an array of bytes of specified length + /*! \note either inString == outString, or they don't overlap */ + virtual void ProcessData(byte *outString, const byte *inString, unsigned int length) =0; + + //! for ciphers where the last block of data is special, encrypt or decrypt the last block of data + /*! For now the only use of this function is for CBC-CTS mode. */ + virtual void ProcessLastBlock(byte *outString, const byte *inString, unsigned int length); + //! returns the minimum size of the last block, 0 indicating the last block is not special + virtual unsigned int MinLastBlockSize() const {return 0;} + + //! same as ProcessData(inoutString, inoutString, length) + inline void ProcessString(byte *inoutString, unsigned int length) + {ProcessData(inoutString, inoutString, length);} + //! same as ProcessData(outString, inString, length) + inline void ProcessString(byte *outString, const byte *inString, unsigned int length) + {ProcessData(outString, inString, length);} + //! implemented as {ProcessData(&input, &input, 1); return input;} + inline byte ProcessByte(byte input) + {ProcessData(&input, &input, 1); return input;} + + //! returns whether this cipher supports random access + virtual bool IsRandomAccess() const =0; + //! for random access ciphers, seek to an absolute position + virtual void Seek(dword n) + { + assert(!IsRandomAccess()); + throw NotImplemented("StreamTransformation: this object doesn't support random access"); + } + + //! returns whether this transformation is self-inverting (e.g. xor with a keystream) + virtual bool IsSelfInverting() const =0; + //! returns whether this is an encryption object + virtual bool IsForwardTransformation() const =0; +}; + +//! interface for hash functions and data processing part of MACs + +/*! HashTransformation objects are stateful. They are created in an initial state, + change state as Update() is called, and return to the initial + state when Final() is called. This interface allows a large message to + be hashed in pieces by calling Update() on each piece followed by + calling Final(). +*/ +class HashTransformation : public Algorithm +{ +public: + //! process more input + virtual void Update(const byte *input, unsigned int length) =0; + + //! request space to write input into + virtual byte * CreateUpdateSpace(unsigned int &size) {size=0; return NULL;} + + //! compute hash for current message, then restart for a new message + /*! \pre size of digest == DigestSize(). */ + virtual void Final(byte *digest) + {TruncatedFinal(digest, DigestSize());} + + //! discard the current state, and restart with a new message + virtual void Restart() + {TruncatedFinal(NULL, 0);} + + //! size of the hash returned by Final() + virtual unsigned int DigestSize() const =0; + + //! input to Update() should have length a multiple of this for optimal speed + virtual unsigned int OptimalBlockSize() const {return 1;} + + //! returns how input should be aligned for optimal performance + virtual unsigned int OptimalDataAlignment() const {return 1;} + + //! use this if your input is in one piece and you don't want to call Update() and Final() separately + virtual void CalculateDigest(byte *digest, const byte *input, unsigned int length) + {Update(input, length); Final(digest);} + + //! verify that digest is a valid digest for the current message, then reinitialize the object + /*! Default implementation is to call Final() and do a bitwise comparison + between its output and digest. */ + virtual bool Verify(const byte *digest) + {return TruncatedVerify(digest, DigestSize());} + + //! use this if your input is in one piece and you don't want to call Update() and Verify() separately + virtual bool VerifyDigest(const byte *digest, const byte *input, unsigned int length) + {Update(input, length); return Verify(digest);} + + //! truncated version of Final() + virtual void TruncatedFinal(byte *digest, unsigned int digestSize) =0; + + //! truncated version of CalculateDigest() + virtual void CalculateTruncatedDigest(byte *digest, unsigned int digestSize, const byte *input, unsigned int length) + {Update(input, length); TruncatedFinal(digest, digestSize);} + + //! truncated version of Verify() + virtual bool TruncatedVerify(const byte *digest, unsigned int digestLength); + + //! truncated version of VerifyDigest() + virtual bool VerifyTruncatedDigest(const byte *digest, unsigned int digestLength, const byte *input, unsigned int length) + {Update(input, length); return TruncatedVerify(digest, digestLength);} + +protected: + void ThrowIfInvalidTruncatedSize(unsigned int size) const; +}; + +//! . +template +class SimpleKeyedTransformation : public T, public SimpleKeyingInterface +{ +public: + void ThrowIfInvalidKeyLength(unsigned int length) + {SimpleKeyingInterface::ThrowIfInvalidKeyLength(*this, length);} +}; + +//! . +typedef HashTransformation HashFunction; +#ifdef CRYPTOPP_DOXYGEN_PROCESSING +//! These objects usually should not be used directly. See BlockTransformation for more details. +class BlockCipher : public BlockTransformation, public SimpleKeyingInterface {}; +//! interface for stream ciphers +class SymmetricCipher : public StreamTransformation, public SimpleKeyingInterface {}; +//! interface for message authentication codes +class MessageAuthenticationCode : public HashTransformation, public SimpleKeyingInterface {}; +#else +typedef SimpleKeyedTransformation BlockCipher; +typedef SimpleKeyedTransformation SymmetricCipher; +typedef SimpleKeyedTransformation MessageAuthenticationCode; +#endif + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY +typedef SymmetricCipher StreamCipher; +#endif + +//! interface for random number generators +/*! All return values are uniformly distributed over the range specified. +*/ +class RandomNumberGenerator : public Algorithm +{ +public: + //! generate new random byte and return it + virtual byte GenerateByte() =0; + + //! generate new random bit and return it + /*! Default implementation is to call GenerateByte() and return its parity. */ + virtual unsigned int GenerateBit(); + + //! generate a random 32 bit word in the range min to max, inclusive + virtual word32 GenerateWord32(word32 a=0, word32 b=0xffffffffL); + + //! generate random array of bytes + /*! Default implementation is to call GenerateByte() size times. */ + virtual void GenerateBlock(byte *output, unsigned int size); + + //! generate and discard n bytes + /*! Default implementation is to call GenerateByte() n times. */ + virtual void DiscardBytes(unsigned int n); + + //! randomly shuffle the specified array, resulting permutation is uniformly distributed + template void Shuffle(IT begin, IT end) + { + for (; begin != end; ++begin) + std::iter_swap(begin, begin + GenerateWord32(0, end-begin-1)); + } + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + byte GetByte() {return GenerateByte();} + unsigned int GetBit() {return GenerateBit();} + word32 GetLong(word32 a=0, word32 b=0xffffffffL) {return GenerateWord32(a, b);} + word16 GetShort(word16 a=0, word16 b=0xffff) {return (word16)GenerateWord32(a, b);} + void GetBlock(byte *output, unsigned int size) {GenerateBlock(output, size);} +#endif +}; + +//! returns a reference that can be passed to functions that ask for a RNG but doesn't actually use it +RandomNumberGenerator & NullRNG(); + +class WaitObjectContainer; + +//! interface for objects that you can wait for + +class Waitable +{ +public: + //! maximum number of wait objects that this object can return + virtual unsigned int GetMaxWaitObjectCount() const =0; + //! put wait objects into container + virtual void GetWaitObjects(WaitObjectContainer &container) =0; + //! wait on this object + /*! same as creating an empty container, calling GetWaitObjects(), and calling Wait() on the container */ + bool Wait(unsigned long milliseconds); +}; + +//! interface for buffered transformations + +/*! BufferedTransformation is a generalization of BlockTransformation, + StreamTransformation, and HashTransformation. + + A buffered transformation is an object that takes a stream of bytes + as input (this may be done in stages), does some computation on them, and + then places the result into an internal buffer for later retrieval. Any + partial result already in the output buffer is not modified by further + input. + + If a method takes a "blocking" parameter, and you + pass "false" for it, the method will return before all input has been processed if + the input cannot be processed without waiting (for network buffers to become available, for example). + In this case the method will return true + or a non-zero integer value. When this happens you must continue to call the method with the same + parameters until it returns false or zero, before calling any other method on it or + attached BufferedTransformation. The integer return value in this case is approximately + the number of bytes left to be processed, and can be used to implement a progress bar. + + For functions that take a "propagation" parameter, propagation != 0 means pass on the signal to attached + BufferedTransformation objects, with propagation decremented at each step until it reaches 0. + -1 means unlimited propagation. + + \nosubgrouping +*/ +class BufferedTransformation : public Algorithm, public Waitable +{ +public: + // placed up here for CW8 + static const std::string NULL_CHANNEL; // the empty string "" + + BufferedTransformation() : Algorithm(false) {} + + //! return a reference to this object + /*! This function is useful for passing a temporary BufferedTransformation object to a + function that takes a non-const reference. */ + BufferedTransformation& Ref() {return *this;} + + //! \name INPUT + //@{ + //! input a byte for processing + unsigned int Put(byte inByte, bool blocking=true) + {return Put(&inByte, 1, blocking);} + //! input multiple bytes + unsigned int Put(const byte *inString, unsigned int length, bool blocking=true) + {return Put2(inString, length, 0, blocking);} + + //! input a 16-bit word + unsigned int PutWord16(word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true); + //! input a 32-bit word + unsigned int PutWord32(word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true); + + //! request space which can be written into by the caller, and then used as input to Put() + /*! \param size is requested size (as a hint) for input, and size of the returned space for output */ + /*! \note The purpose of this method is to help avoid doing extra memory allocations. */ + virtual byte * CreatePutSpace(unsigned int &size) {size=0; return NULL;} + + virtual bool CanModifyInput() const {return false;} + + //! input multiple bytes that may be modified by callee + unsigned int PutModifiable(byte *inString, unsigned int length, bool blocking=true) + {return PutModifiable2(inString, length, 0, blocking);} + + bool MessageEnd(int propagation=-1, bool blocking=true) + {return !!Put2(NULL, 0, propagation < 0 ? -1 : propagation+1, blocking);} + unsigned int PutMessageEnd(const byte *inString, unsigned int length, int propagation=-1, bool blocking=true) + {return Put2(inString, length, propagation < 0 ? -1 : propagation+1, blocking);} + + //! input multiple bytes for blocking or non-blocking processing + /*! \param messageEnd means how many filters to signal MessageEnd to, including this one */ + virtual unsigned int Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) =0; + //! input multiple bytes that may be modified by callee for blocking or non-blocking processing + /*! \param messageEnd means how many filters to signal MessageEnd to, including this one */ + virtual unsigned int PutModifiable2(byte *inString, unsigned int length, int messageEnd, bool blocking) + {return Put2(inString, length, messageEnd, blocking);} + + //! thrown by objects that have not implemented nonblocking input processing + struct BlockingInputOnly : public NotImplemented + {BlockingInputOnly(const std::string &s) : NotImplemented(s + ": Nonblocking input is not implemented by this object.") {}}; + //@} + + //! \name WAITING + //@{ + unsigned int GetMaxWaitObjectCount() const; + void GetWaitObjects(WaitObjectContainer &container); + //@} + + //! \name SIGNALS + //@{ + virtual void IsolatedInitialize(const NameValuePairs ¶meters) {throw NotImplemented("BufferedTransformation: this object can't be reinitialized");} + virtual bool IsolatedFlush(bool hardFlush, bool blocking) =0; + virtual bool IsolatedMessageSeriesEnd(bool blocking) {return false;} + + //! initialize or reinitialize this object + virtual void Initialize(const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1); + //! flush buffered input and/or output + /*! \param hardFlush is used to indicate whether all data should be flushed + \note Hard flushes must be used with care. It means try to process and output everything, even if + there may not be enough data to complete the action. For example, hard flushing a HexDecoder would + cause an error if you do it after inputing an odd number of hex encoded characters. + For some types of filters, for example ZlibDecompressor, hard flushes can only + be done at "synchronization points". These synchronization points are positions in the data + stream that are created by hard flushes on the corresponding reverse filters, in this + example ZlibCompressor. This is useful when zlib compressed data is moved across a + network in packets and compression state is preserved across packets, as in the ssh2 protocol. + */ + virtual bool Flush(bool hardFlush, int propagation=-1, bool blocking=true); + //! mark end of a series of messages + /*! There should be a MessageEnd immediately before MessageSeriesEnd. */ + virtual bool MessageSeriesEnd(int propagation=-1, bool blocking=true); + + //! set propagation of automatically generated and transfered signals + /*! propagation == 0 means do not automaticly generate signals */ + virtual void SetAutoSignalPropagation(int propagation) {} + + //! + virtual int GetAutoSignalPropagation() const {return 0;} +public: + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + void Close() {MessageEnd();} +#endif + //@} + + //! \name RETRIEVAL OF ONE MESSAGE + //@{ + //! returns number of bytes that is currently ready for retrieval + /*! All retrieval functions return the actual number of bytes + retrieved, which is the lesser of the request number and + MaxRetrievable(). */ + virtual unsigned long MaxRetrievable() const; + + //! returns whether any bytes are currently ready for retrieval + virtual bool AnyRetrievable() const; + + //! try to retrieve a single byte + virtual unsigned int Get(byte &outByte); + //! try to retrieve multiple bytes + virtual unsigned int Get(byte *outString, unsigned int getMax); + + //! peek at the next byte without removing it from the output buffer + virtual unsigned int Peek(byte &outByte) const; + //! peek at multiple bytes without removing them from the output buffer + virtual unsigned int Peek(byte *outString, unsigned int peekMax) const; + + //! try to retrieve a 16-bit word + unsigned int GetWord16(word16 &value, ByteOrder order=BIG_ENDIAN_ORDER); + //! try to retrieve a 32-bit word + unsigned int GetWord32(word32 &value, ByteOrder order=BIG_ENDIAN_ORDER); + + //! try to peek at a 16-bit word + unsigned int PeekWord16(word16 &value, ByteOrder order=BIG_ENDIAN_ORDER); + //! try to peek at a 32-bit word + unsigned int PeekWord32(word32 &value, ByteOrder order=BIG_ENDIAN_ORDER); + + //! move transferMax bytes of the buffered output to target as input + unsigned long TransferTo(BufferedTransformation &target, unsigned long transferMax=ULONG_MAX, const std::string &channel=NULL_CHANNEL) + {TransferTo2(target, transferMax, channel); return transferMax;} + + //! discard skipMax bytes from the output buffer + virtual unsigned long Skip(unsigned long skipMax=ULONG_MAX); + + //! copy copyMax bytes of the buffered output to target as input + unsigned long CopyTo(BufferedTransformation &target, unsigned long copyMax=ULONG_MAX, const std::string &channel=NULL_CHANNEL) const + {return CopyRangeTo(target, 0, copyMax, channel);} + + //! copy copyMax bytes of the buffered output, starting at position (relative to current position), to target as input + unsigned long CopyRangeTo(BufferedTransformation &target, unsigned long position, unsigned long copyMax=ULONG_MAX, const std::string &channel=NULL_CHANNEL) const + {unsigned long i = position; CopyRangeTo2(target, i, i+copyMax, channel); return i-position;} + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + unsigned long MaxRetrieveable() const {return MaxRetrievable();} +#endif + //@} + + //! \name RETRIEVAL OF MULTIPLE MESSAGES + //@{ + //! + virtual unsigned long TotalBytesRetrievable() const; + //! number of times MessageEnd() has been received minus messages retrieved or skipped + virtual unsigned int NumberOfMessages() const; + //! returns true if NumberOfMessages() > 0 + virtual bool AnyMessages() const; + //! start retrieving the next message + /*! + Returns false if no more messages exist or this message + is not completely retrieved. + */ + virtual bool GetNextMessage(); + //! skip count number of messages + virtual unsigned int SkipMessages(unsigned int count=UINT_MAX); + //! + unsigned int TransferMessagesTo(BufferedTransformation &target, unsigned int count=UINT_MAX, const std::string &channel=NULL_CHANNEL) + {TransferMessagesTo2(target, count, channel); return count;} + //! + unsigned int CopyMessagesTo(BufferedTransformation &target, unsigned int count=UINT_MAX, const std::string &channel=NULL_CHANNEL) const; + + //! + virtual void SkipAll(); + //! + void TransferAllTo(BufferedTransformation &target, const std::string &channel=NULL_CHANNEL) + {TransferAllTo2(target, channel);} + //! + void CopyAllTo(BufferedTransformation &target, const std::string &channel=NULL_CHANNEL) const; + + virtual bool GetNextMessageSeries() {return false;} + virtual unsigned int NumberOfMessagesInThisSeries() const {return NumberOfMessages();} + virtual unsigned int NumberOfMessageSeries() const {return 0;} + //@} + + //! \name NON-BLOCKING TRANSFER OF OUTPUT + //@{ + //! . + virtual unsigned int TransferTo2(BufferedTransformation &target, unsigned long &byteCount, const std::string &channel=NULL_CHANNEL, bool blocking=true) =0; + virtual unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const =0; + unsigned int TransferMessagesTo2(BufferedTransformation &target, unsigned int &messageCount, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int TransferAllTo2(BufferedTransformation &target, const std::string &channel=NULL_CHANNEL, bool blocking=true); + //@} + + //! \name CHANNELS + //@{ + struct NoChannelSupport : public NotImplemented + {NoChannelSupport() : NotImplemented("BufferedTransformation: this object doesn't support multiple channels") {}}; + + unsigned int ChannelPut(const std::string &channel, byte inByte, bool blocking=true) + {return ChannelPut(channel, &inByte, 1, blocking);} + unsigned int ChannelPut(const std::string &channel, const byte *inString, unsigned int length, bool blocking=true) + {return ChannelPut2(channel, inString, length, 0, blocking);} + + unsigned int ChannelPutModifiable(const std::string &channel, byte *inString, unsigned int length, bool blocking=true) + {return ChannelPutModifiable2(channel, inString, length, 0, blocking);} + + unsigned int ChannelPutWord16(const std::string &channel, word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true); + unsigned int ChannelPutWord32(const std::string &channel, word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true); + + bool ChannelMessageEnd(const std::string &channel, int propagation=-1, bool blocking=true) + {return !!ChannelPut2(channel, NULL, 0, propagation < 0 ? -1 : propagation+1, blocking);} + unsigned int ChannelPutMessageEnd(const std::string &channel, const byte *inString, unsigned int length, int propagation=-1, bool blocking=true) + {return ChannelPut2(channel, inString, length, propagation < 0 ? -1 : propagation+1, blocking);} + + virtual byte * ChannelCreatePutSpace(const std::string &channel, unsigned int &size); + + virtual unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking); + virtual unsigned int ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking); + + virtual void ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1); + virtual bool ChannelFlush(const std::string &channel, bool hardFlush, int propagation=-1, bool blocking=true); + virtual bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true); + + virtual void SetRetrievalChannel(const std::string &channel); + //@} + + //! \name ATTACHMENT + /*! Some BufferedTransformation objects (e.g. Filter objects) + allow other BufferedTransformation objects to be attached. When + this is done, the first object instead of buffering its output, + sents that output to the attached object as input. The entire + attachment chain is deleted when the anchor object is destructed. + */ + //@{ + //! returns whether this object allows attachment + virtual bool Attachable() {return false;} + //! returns the object immediately attached to this object or NULL for no attachment + virtual BufferedTransformation *AttachedTransformation() {assert(!Attachable()); return 0;} + //! + virtual const BufferedTransformation *AttachedTransformation() const + {return const_cast(this)->AttachedTransformation();} + //! delete the current attachment chain and replace it with newAttachment + virtual void Detach(BufferedTransformation *newAttachment = 0) + {assert(!Attachable()); throw NotImplemented("BufferedTransformation: this object is not attachable");} + //! add newAttachment to the end of attachment chain + virtual void Attach(BufferedTransformation *newAttachment); + //@} + +protected: + static int DecrementPropagation(int propagation) + {return propagation != 0 ? propagation - 1 : 0;} +}; + +//! returns a reference to a BufferedTransformation object that discards all input +BufferedTransformation & TheBitBucket(); + +//! interface for crypto material, such as public and private keys, and crypto parameters + +class CryptoMaterial : public NameValuePairs +{ +public: + //! exception thrown when invalid crypto material is detected + class InvalidMaterial : public InvalidDataFormat + { + public: + explicit InvalidMaterial(const std::string &s) : InvalidDataFormat(s) {} + }; + + //! assign values from source to this object + /*! \note This function can be used to create a public key from a private key. */ + virtual void AssignFrom(const NameValuePairs &source) =0; + + //! check this object for errors + /*! \param level denotes the level of thoroughness: + 0 - using this object won't cause a crash or exception (rng is ignored) + 1 - this object will probably function (encrypt, sign, etc.) correctly (but may not check for weak keys and such) + 2 - make sure this object will function correctly, and do reasonable security checks + 3 - do checks that may take a long time + \return true if the tests pass */ + virtual bool Validate(RandomNumberGenerator &rng, unsigned int level) const =0; + + //! throws InvalidMaterial if this object fails Validate() test + virtual void ThrowIfInvalid(RandomNumberGenerator &rng, unsigned int level) const + {if (!Validate(rng, level)) throw InvalidMaterial("CryptoMaterial: this object contains invalid values");} + +// virtual std::vector GetSupportedFormats(bool includeSaveOnly=false, bool includeLoadOnly=false); + + //! save key into a BufferedTransformation + virtual void Save(BufferedTransformation &bt) const + {throw NotImplemented("CryptoMaterial: this object does not support saving");} + + //! load key from a BufferedTransformation + /*! \throws KeyingErr if decode fails + \note Generally does not check that the key is valid. + Call ValidateKey() or ThrowIfInvalidKey() to check that. */ + virtual void Load(BufferedTransformation &bt) + {throw NotImplemented("CryptoMaterial: this object does not support loading");} + + //! \return whether this object supports precomputation + virtual bool SupportsPrecomputation() const {return false;} + //! do precomputation + /*! The exact semantics of Precompute() is varies, but + typically it means calculate a table of n objects + that can be used later to speed up computation. */ + virtual void Precompute(unsigned int n) + {assert(!SupportsPrecomputation()); throw NotImplemented("CryptoMaterial: this object does not support precomputation");} + //! retrieve previously saved precomputation + virtual void LoadPrecomputation(BufferedTransformation &storedPrecomputation) + {assert(!SupportsPrecomputation()); throw NotImplemented("CryptoMaterial: this object does not support precomputation");} + //! save precomputation for later use + virtual void SavePrecomputation(BufferedTransformation &storedPrecomputation) const + {assert(!SupportsPrecomputation()); throw NotImplemented("CryptoMaterial: this object does not support precomputation");} + + // for internal library use + void DoQuickSanityCheck() const {ThrowIfInvalid(NullRNG(), 0);} +}; + +//! interface for generatable crypto material, such as private keys and crypto parameters + +class GeneratableCryptoMaterial : virtual public CryptoMaterial +{ +public: + //! generate a random key or crypto parameters + /*! \throws KeyingErr if algorithm parameters are invalid, or if a key can't be generated + (e.g., if this is a public key object) */ + virtual void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs ¶ms = g_nullNameValuePairs) + {throw NotImplemented("GeneratableCryptoMaterial: this object does not support key/parameter generation");} + + //! calls the above function with a NameValuePairs object that just specifies "KeySize" + void GenerateRandomWithKeySize(RandomNumberGenerator &rng, unsigned int keySize); +}; + +//! interface for public keys + +class PublicKey : virtual public CryptoMaterial +{ +}; + +//! interface for private keys + +class PrivateKey : public GeneratableCryptoMaterial +{ +}; + +//! interface for crypto prameters + +class CryptoParameters : public GeneratableCryptoMaterial +{ +}; + +//! interface for asymmetric algorithms + +class AsymmetricAlgorithm : public Algorithm +{ +public: + //! returns a reference to the crypto material used by this object + virtual CryptoMaterial & AccessMaterial() =0; + //! returns a const reference to the crypto material used by this object + virtual const CryptoMaterial & GetMaterial() const =0; + + //! for backwards compatibility, calls AccessMaterial().Load(bt) + void BERDecode(BufferedTransformation &bt) + {AccessMaterial().Load(bt);} + //! for backwards compatibility, calls GetMaterial().Save(bt) + void DEREncode(BufferedTransformation &bt) const + {GetMaterial().Save(bt);} +}; + +//! interface for asymmetric algorithms using public keys + +class PublicKeyAlgorithm : public AsymmetricAlgorithm +{ +public: + // VC60 workaround: no co-variant return type + CryptoMaterial & AccessMaterial() {return AccessPublicKey();} + const CryptoMaterial & GetMaterial() const {return GetPublicKey();} + + virtual PublicKey & AccessPublicKey() =0; + virtual const PublicKey & GetPublicKey() const {return const_cast(this)->AccessPublicKey();} +}; + +//! interface for asymmetric algorithms using private keys + +class PrivateKeyAlgorithm : public AsymmetricAlgorithm +{ +public: + CryptoMaterial & AccessMaterial() {return AccessPrivateKey();} + const CryptoMaterial & GetMaterial() const {return GetPrivateKey();} + + virtual PrivateKey & AccessPrivateKey() =0; + virtual const PrivateKey & GetPrivateKey() const {return const_cast(this)->AccessPrivateKey();} +}; + +//! interface for key agreement algorithms + +class KeyAgreementAlgorithm : public AsymmetricAlgorithm +{ +public: + CryptoMaterial & AccessMaterial() {return AccessCryptoParameters();} + const CryptoMaterial & GetMaterial() const {return GetCryptoParameters();} + + virtual CryptoParameters & AccessCryptoParameters() =0; + virtual const CryptoParameters & GetCryptoParameters() const {return const_cast(this)->AccessCryptoParameters();} +}; + +//! interface for public-key encryptors and decryptors + +/*! This class provides an interface common to encryptors and decryptors + for querying their plaintext and ciphertext lengths. +*/ +class PK_CryptoSystem +{ +public: + virtual ~PK_CryptoSystem() {} + + //! maximum length of plaintext for a given ciphertext length + /*! \note This function returns 0 if cipherTextLength is not valid (too long or too short). */ + virtual unsigned int MaxPlaintextLength(unsigned int cipherTextLength) const =0; + + //! calculate length of ciphertext given length of plaintext + /*! \note This function returns 0 if plainTextLength is not valid (too long). */ + virtual unsigned int CiphertextLength(unsigned int plainTextLength) const =0; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + unsigned int MaxPlainTextLength(unsigned int cipherTextLength) const {return MaxPlaintextLength(cipherTextLength);} + unsigned int CipherTextLength(unsigned int plainTextLength) const {return CiphertextLength(plainTextLength);} +#endif +}; + +//! interface for public-key encryptors + +class PK_Encryptor : virtual public PK_CryptoSystem, public PublicKeyAlgorithm +{ +public: + //! . + class InvalidPlaintextLength : public Exception + { + public: + InvalidPlaintextLength() : Exception(OTHER_ERROR, "PK_Encryptor: invalid plaintext length") {} + }; + + //! encrypt a byte string + /*! \pre CipherTextLength(plainTextLength) != 0 (i.e., plainText isn't too long) + \pre size of cipherText == CipherTextLength(plainTextLength) + */ + virtual void Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText) const =0; + + //! create a new encryption filter + /*! \note caller is responsible for deleting the returned pointer + */ + virtual BufferedTransformation * CreateEncryptionFilter(RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL) const; +}; + +//! interface for public-key decryptors + +class PK_Decryptor : virtual public PK_CryptoSystem, public PrivateKeyAlgorithm +{ +public: + //! decrypt a byte string, and return the length of plaintext + /*! \pre size of plainText == MaxPlainTextLength(cipherTextLength) bytes. + \return the actual length of the plaintext, or 0 if decryption fails. + */ + virtual DecodingResult Decrypt(RandomNumberGenerator &rng, const byte *cipherText, unsigned int cipherTextLength, byte *plainText) const =0; + + //! create a new decryption filter + /*! \note caller is responsible for deleting the returned pointer + */ + virtual BufferedTransformation * CreateDecryptionFilter(RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL) const; +}; + +//! interface for encryptors and decryptors with fixed length ciphertext + +/*! A simplified interface is provided for crypto systems (such + as RSA) whose ciphertext length and maximum plaintext length + depend only on the key. +*/ +class PK_FixedLengthCryptoSystem : virtual public PK_CryptoSystem +{ +public: + //! + virtual unsigned int FixedMaxPlaintextLength() const =0; + //! + virtual unsigned int FixedCiphertextLength() const =0; + + unsigned int MaxPlaintextLength(unsigned int cipherTextLength) const; + unsigned int CiphertextLength(unsigned int plainTextLength) const; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + unsigned int MaxPlainTextLength(unsigned int cipherTextLength) const {return MaxPlaintextLength(cipherTextLength);} + unsigned int CipherTextLength(unsigned int plainTextLength) const {return CiphertextLength(plainTextLength);} + unsigned int MaxPlainTextLength() const {return FixedMaxPlaintextLength();} + unsigned int CipherTextLength() const {return FixedCiphertextLength();} +#endif +}; + +//! interface for encryptors with fixed length ciphertext + +class PK_FixedLengthEncryptor : public PK_Encryptor, virtual public PK_FixedLengthCryptoSystem +{ +}; + +//! interface for decryptors with fixed length ciphertext + +class PK_FixedLengthDecryptor : public PK_Decryptor, virtual public PK_FixedLengthCryptoSystem +{ +public: + //! decrypt a byte string, and return the length of plaintext + /*! \pre length of cipherText == CipherTextLength() + \pre size of plainText == MaxPlainTextLength() + \return the actual length of the plaintext, or 0 if decryption fails. + */ + virtual DecodingResult FixedLengthDecrypt(RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const =0; + + DecodingResult Decrypt(RandomNumberGenerator &rng, const byte *cipherText, unsigned int cipherTextLength, byte *plainText) const; +}; + +//! interface for public-key signers and verifiers + +/*! This class provides an interface common to signers and verifiers + for querying scheme properties. +*/ +class PK_SignatureScheme +{ +public: + //! invalid key exception, may be thrown by any function in this class if the private or public key has a length that can't be used + class InvalidKeyLength : public Exception + { + public: + InvalidKeyLength(const std::string &message) : Exception(OTHER_ERROR, message) {} + }; + + //! key too short exception, may be thrown by any function in this class if the private or public key is too short to sign or verify anything + class KeyTooShort : public InvalidKeyLength + { + public: + KeyTooShort() : InvalidKeyLength("PK_Signer: key too short for this signature scheme") {} + }; + + virtual ~PK_SignatureScheme() {} + + //! signature length if it only depends on the key, otherwise 0 + virtual unsigned int SignatureLength() const =0; + + //! maximum signature length produced for a given length of recoverable message part + virtual unsigned int MaxSignatureLength(unsigned int recoverablePartLength = 0) const {return SignatureLength();} + + //! length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery + virtual unsigned int MaxRecoverableLength() const =0; + + //! length of longest message that can be recovered from a signature of given length, or 0 if this signature scheme does not support message recovery + virtual unsigned int MaxRecoverableLengthFromSignatureLength(unsigned int signatureLength) const =0; + + //! requires a random number generator to sign + /*! if this returns false, NullRNG() can be passed to functions that take RandomNumberGenerator & */ + virtual bool IsProbabilistic() const =0; + + //! whether or not a non-recoverable message part can be signed + virtual bool AllowNonrecoverablePart() const =0; + + //! if this function returns true, during verification you must input the signature before the message, otherwise you can input it at anytime */ + virtual bool SignatureUpfront() const {return false;} + + //! whether you must input the recoverable part before the non-recoverable part during signing + virtual bool RecoverablePartFirst() const =0; +}; + +//! interface for accumulating messages to be signed or verified +/*! Only Update() should be called + on this class. No other functions inherited from HashTransformation should be called. +*/ +class PK_MessageAccumulator : public HashTransformation +{ +public: + //! should not be called on PK_MessageAccumulator + unsigned int DigestSize() const + {throw NotImplemented("PK_MessageAccumulator: DigestSize() should not be called");} + //! should not be called on PK_MessageAccumulator + void TruncatedFinal(byte *digest, unsigned int digestSize) + {throw NotImplemented("PK_MessageAccumulator: TruncatedFinal() should not be called");} +}; + +//! interface for public-key signers + +class PK_Signer : virtual public PK_SignatureScheme, public PrivateKeyAlgorithm +{ +public: + //! create a new HashTransformation to accumulate the message to be signed + virtual PK_MessageAccumulator * NewSignatureAccumulator(RandomNumberGenerator &rng = NullRNG()) const =0; + + virtual void InputRecoverableMessage(PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, unsigned int recoverableMessageLength) const =0; + + //! sign and delete messageAccumulator (even in case of exception thrown) + /*! \pre size of signature == MaxSignatureLength() + \return actual signature length + */ + virtual unsigned int Sign(RandomNumberGenerator &rng, PK_MessageAccumulator *messageAccumulator, byte *signature) const; + + //! sign and restart messageAccumulator + /*! \pre size of signature == MaxSignatureLength() + \return actual signature length + */ + virtual unsigned int SignAndRestart(RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart=true) const =0; + + //! sign a message + /*! \pre size of signature == MaxSignatureLength() + \return actual signature length + */ + virtual unsigned int SignMessage(RandomNumberGenerator &rng, const byte *message, unsigned int messageLen, byte *signature) const; + + //! sign a recoverable message + /*! \pre size of signature == MaxSignatureLength(recoverableMessageLength) + \return actual signature length + */ + virtual unsigned int SignMessageWithRecovery(RandomNumberGenerator &rng, const byte *recoverableMessage, unsigned int recoverableMessageLength, + const byte *nonrecoverableMessage, unsigned int nonrecoverableMessageLength, byte *signature) const; +}; + +//! interface for public-key signature verifiers +/*! The Recover* functions throw NotImplemented if the signature scheme does not support + message recovery. + The Verify* functions throw InvalidDataFormat if the scheme does support message + recovery and the signature contains a non-empty recoverable message part. The + Recovery* functions should be used in that case. +*/ +class PK_Verifier : virtual public PK_SignatureScheme, public PublicKeyAlgorithm +{ +public: + //! create a new HashTransformation to accumulate the message to be verified + virtual PK_MessageAccumulator * NewVerificationAccumulator() const =0; + + //! input signature into a message accumulator + virtual void InputSignature(PK_MessageAccumulator &messageAccumulator, const byte *signature, unsigned int signatureLength) const =0; + + //! check whether messageAccumulator contains a valid signature and message, and delete messageAccumulator (even in case of exception thrown) + virtual bool Verify(PK_MessageAccumulator *messageAccumulator) const; + + //! check whether messageAccumulator contains a valid signature and message, and restart messageAccumulator + virtual bool VerifyAndRestart(PK_MessageAccumulator &messageAccumulator) const =0; + + //! check whether input signature is a valid signature for input message + virtual bool VerifyMessage(const byte *message, unsigned int messageLen, + const byte *signature, unsigned int signatureLength) const; + + //! recover a message from its signature + /*! \pre size of recoveredMessage == MaxRecoverableLengthFromSignatureLength(signatureLength) + */ + virtual DecodingResult Recover(byte *recoveredMessage, PK_MessageAccumulator *messageAccumulator) const; + + //! recover a message from its signature + /*! \pre size of recoveredMessage == MaxRecoverableLengthFromSignatureLength(signatureLength) + */ + virtual DecodingResult RecoverAndRestart(byte *recoveredMessage, PK_MessageAccumulator &messageAccumulator) const =0; + + //! recover a message from its signature + /*! \pre size of recoveredMessage == MaxRecoverableLengthFromSignatureLength(signatureLength) + */ + virtual DecodingResult RecoverMessage(byte *recoveredMessage, + const byte *nonrecoverableMessage, unsigned int nonrecoverableMessageLength, + const byte *signature, unsigned int signatureLength) const; +}; + +//! interface for domains of simple key agreement protocols + +/*! A key agreement domain is a set of parameters that must be shared + by two parties in a key agreement protocol, along with the algorithms + for generating key pairs and deriving agreed values. +*/ +class SimpleKeyAgreementDomain : public KeyAgreementAlgorithm +{ +public: + //! return length of agreed value produced + virtual unsigned int AgreedValueLength() const =0; + //! return length of private keys in this domain + virtual unsigned int PrivateKeyLength() const =0; + //! return length of public keys in this domain + virtual unsigned int PublicKeyLength() const =0; + //! generate private key + /*! \pre size of privateKey == PrivateKeyLength() */ + virtual void GeneratePrivateKey(RandomNumberGenerator &rng, byte *privateKey) const =0; + //! generate public key + /*! \pre size of publicKey == PublicKeyLength() */ + virtual void GeneratePublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const =0; + //! generate private/public key pair + /*! \note equivalent to calling GeneratePrivateKey() and then GeneratePublicKey() */ + virtual void GenerateKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const; + //! derive agreed value from your private key and couterparty's public key, return false in case of failure + /*! \note If you have previously validated the public key, use validateOtherPublicKey=false to save time. + /*! \pre size of agreedValue == AgreedValueLength() + \pre length of privateKey == PrivateKeyLength() + \pre length of otherPublicKey == PublicKeyLength() + */ + virtual bool Agree(byte *agreedValue, const byte *privateKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const =0; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + bool ValidateDomainParameters(RandomNumberGenerator &rng) const + {return GetCryptoParameters().Validate(rng, 2);} +#endif +}; + +//! interface for domains of authenticated key agreement protocols + +/*! In an authenticated key agreement protocol, each party has two + key pairs. The long-lived key pair is called the static key pair, + and the short-lived key pair is called the ephemeral key pair. +*/ +class AuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm +{ +public: + //! return length of agreed value produced + virtual unsigned int AgreedValueLength() const =0; + + //! return length of static private keys in this domain + virtual unsigned int StaticPrivateKeyLength() const =0; + //! return length of static public keys in this domain + virtual unsigned int StaticPublicKeyLength() const =0; + //! generate static private key + /*! \pre size of privateKey == PrivateStaticKeyLength() */ + virtual void GenerateStaticPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const =0; + //! generate static public key + /*! \pre size of publicKey == PublicStaticKeyLength() */ + virtual void GenerateStaticPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const =0; + //! generate private/public key pair + /*! \note equivalent to calling GenerateStaticPrivateKey() and then GenerateStaticPublicKey() */ + virtual void GenerateStaticKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const; + + //! return length of ephemeral private keys in this domain + virtual unsigned int EphemeralPrivateKeyLength() const =0; + //! return length of ephemeral public keys in this domain + virtual unsigned int EphemeralPublicKeyLength() const =0; + //! generate ephemeral private key + /*! \pre size of privateKey == PrivateEphemeralKeyLength() */ + virtual void GenerateEphemeralPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const =0; + //! generate ephemeral public key + /*! \pre size of publicKey == PublicEphemeralKeyLength() */ + virtual void GenerateEphemeralPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const =0; + //! generate private/public key pair + /*! \note equivalent to calling GenerateEphemeralPrivateKey() and then GenerateEphemeralPublicKey() */ + virtual void GenerateEphemeralKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const; + + //! derive agreed value from your private keys and couterparty's public keys, return false in case of failure + /*! \note The ephemeral public key will always be validated. + If you have previously validated the static public key, use validateStaticOtherPublicKey=false to save time. + \pre size of agreedValue == AgreedValueLength() + \pre length of staticPrivateKey == StaticPrivateKeyLength() + \pre length of ephemeralPrivateKey == EphemeralPrivateKeyLength() + \pre length of staticOtherPublicKey == StaticPublicKeyLength() + \pre length of ephemeralOtherPublicKey == EphemeralPublicKeyLength() + */ + virtual bool Agree(byte *agreedValue, + const byte *staticPrivateKey, const byte *ephemeralPrivateKey, + const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, + bool validateStaticOtherPublicKey=true) const =0; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY + bool ValidateDomainParameters(RandomNumberGenerator &rng) const + {return GetCryptoParameters().Validate(rng, 2);} +#endif +}; + +// interface for password authenticated key agreement protocols, not implemented yet +#if 0 +//! interface for protocol sessions +/*! The methods should be called in the following order: + + InitializeSession(rng, parameters); // or call initialize method in derived class + while (true) + { + if (OutgoingMessageAvailable()) + { + length = GetOutgoingMessageLength(); + GetOutgoingMessage(message); + ; // send outgoing message + } + + if (LastMessageProcessed()) + break; + + ; // receive incoming message + ProcessIncomingMessage(message); + } + ; // call methods in derived class to obtain result of protocol session +*/ +class ProtocolSession +{ +public: + //! exception thrown when an invalid protocol message is processed + class ProtocolError : public Exception + { + public: + ProtocolError(ErrorType errorType, const std::string &s) : Exception(errorType, s) {} + }; + + //! exception thrown when a function is called unexpectedly + /*! for example calling ProcessIncomingMessage() when ProcessedLastMessage() == true */ + class UnexpectedMethodCall : public Exception + { + public: + UnexpectedMethodCall(const std::string &s) : Exception(OTHER_ERROR, s) {} + }; + + ProtocolSession() : m_rng(NULL), m_throwOnProtocolError(true), m_validState(false) {} + virtual ~ProtocolSession() {} + + virtual void InitializeSession(RandomNumberGenerator &rng, const NameValuePairs ¶meters) =0; + + bool GetThrowOnProtocolError() const {return m_throwOnProtocolError;} + void SetThrowOnProtocolError(bool throwOnProtocolError) {m_throwOnProtocolError = throwOnProtocolError;} + + bool HasValidState() const {return m_validState;} + + virtual bool OutgoingMessageAvailable() const =0; + virtual unsigned int GetOutgoingMessageLength() const =0; + virtual void GetOutgoingMessage(byte *message) =0; + + virtual bool LastMessageProcessed() const =0; + virtual void ProcessIncomingMessage(const byte *message, unsigned int messageLength) =0; + +protected: + void HandleProtocolError(Exception::ErrorType errorType, const std::string &s) const; + void CheckAndHandleInvalidState() const; + void SetValidState(bool valid) {m_validState = valid;} + + RandomNumberGenerator *m_rng; + +private: + bool m_throwOnProtocolError, m_validState; +}; + +class KeyAgreementSession : public ProtocolSession +{ +public: + virtual unsigned int GetAgreedValueLength() const =0; + virtual void GetAgreedValue(byte *agreedValue) const =0; +}; + +class PasswordAuthenticatedKeyAgreementSession : public KeyAgreementSession +{ +public: + void InitializePasswordAuthenticatedKeyAgreementSession(RandomNumberGenerator &rng, + const byte *myId, unsigned int myIdLength, + const byte *counterPartyId, unsigned int counterPartyIdLength, + const byte *passwordOrVerifier, unsigned int passwordOrVerifierLength); +}; + +class PasswordAuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm +{ +public: + //! return whether the domain parameters stored in this object are valid + virtual bool ValidateDomainParameters(RandomNumberGenerator &rng) const + {return GetCryptoParameters().Validate(rng, 2);} + + virtual unsigned int GetPasswordVerifierLength(const byte *password, unsigned int passwordLength) const =0; + virtual void GeneratePasswordVerifier(RandomNumberGenerator &rng, const byte *userId, unsigned int userIdLength, const byte *password, unsigned int passwordLength, byte *verifier) const =0; + + enum RoleFlags {CLIENT=1, SERVER=2, INITIATOR=4, RESPONDER=8}; + + virtual bool IsValidRole(unsigned int role) =0; + virtual PasswordAuthenticatedKeyAgreementSession * CreateProtocolSession(unsigned int role) const =0; +}; +#endif + +//! BER Decode Exception Class, may be thrown during an ASN1 BER decode operation +class BERDecodeErr : public InvalidArgument +{ +public: + BERDecodeErr() : InvalidArgument("BER decode error") {} + BERDecodeErr(const std::string &s) : InvalidArgument(s) {} +}; + +//! interface for encoding and decoding ASN1 objects +class ASN1Object +{ +public: + virtual ~ASN1Object() {} + //! decode this object from a BufferedTransformation, using BER (Basic Encoding Rules) + virtual void BERDecode(BufferedTransformation &bt) =0; + //! encode this object into a BufferedTransformation, using DER (Distinguished Encoding Rules) + virtual void DEREncode(BufferedTransformation &bt) const =0; + //! encode this object into a BufferedTransformation, using BER + /*! this may be useful if DEREncode() would be too inefficient */ + virtual void BEREncode(BufferedTransformation &bt) const {DEREncode(bt);} +}; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY +typedef PK_SignatureScheme PK_SignatureSystem +typedef PK_SignatureSchemeWithRecovery PK_SignatureSystemWithRecovery +typedef SimpleKeyAgreementDomain PK_SimpleKeyAgreementDomain +typedef AuthenticatedKeyAgreementDomain PK_AuthenticatedKeyAgreementDomain +typedef WithPrecomputation PK_WithPrecomputation +#endif + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/default.h b/stepmania/src/crypto51/default.h new file mode 100644 index 0000000000..ce3739ddfc --- /dev/null +++ b/stepmania/src/crypto51/default.h @@ -0,0 +1,104 @@ +#ifndef CRYPTOPP_DEFAULT_H +#define CRYPTOPP_DEFAULT_H + +#include "sha.h" +#include "hmac.h" +#include "des.h" +#include "filters.h" +#include "modes.h" + +NAMESPACE_BEGIN(CryptoPP) + +typedef DES_EDE2 Default_BlockCipher; +typedef SHA DefaultHashModule; +typedef HMAC DefaultMAC; + +//! Password-Based Encryptor using DES-EDE2 +class DefaultEncryptor : public ProxyFilter +{ +public: + DefaultEncryptor(const char *passphrase, BufferedTransformation *attachment = NULL); + DefaultEncryptor(const byte *passphrase, unsigned int passphraseLength, BufferedTransformation *attachment = NULL); + +protected: + void FirstPut(const byte *); + void LastPut(const byte *inString, unsigned int length); + +private: + SecByteBlock m_passphrase; + CBC_Mode::Encryption m_cipher; +}; + +//! Password-Based Decryptor using DES-EDE2 +class DefaultDecryptor : public ProxyFilter +{ +public: + DefaultDecryptor(const char *passphrase, BufferedTransformation *attachment = NULL, bool throwException=true); + DefaultDecryptor(const byte *passphrase, unsigned int passphraseLength, BufferedTransformation *attachment = NULL, bool throwException=true); + + class Err : public Exception + { + public: + Err(const std::string &s) + : Exception(DATA_INTEGRITY_CHECK_FAILED, s) {} + }; + class KeyBadErr : public Err {public: KeyBadErr() : Err("DefaultDecryptor: cannot decrypt message with this passphrase") {}}; + + enum State {WAITING_FOR_KEYCHECK, KEY_GOOD, KEY_BAD}; + State CurrentState() const {return m_state;} + +protected: + void FirstPut(const byte *inString); + void LastPut(const byte *inString, unsigned int length); + + State m_state; + +private: + void CheckKey(const byte *salt, const byte *keyCheck); + + SecByteBlock m_passphrase; + CBC_Mode::Decryption m_cipher; + member_ptr m_decryptor; + bool m_throwException; +}; + +//! Password-Based Encryptor using DES-EDE2 and HMAC/SHA-1 +class DefaultEncryptorWithMAC : public ProxyFilter +{ +public: + DefaultEncryptorWithMAC(const char *passphrase, BufferedTransformation *attachment = NULL); + DefaultEncryptorWithMAC(const byte *passphrase, unsigned int passphraseLength, BufferedTransformation *attachment = NULL); + +protected: + void FirstPut(const byte *inString) {} + void LastPut(const byte *inString, unsigned int length); + +private: + member_ptr m_mac; +}; + +//! Password-Based Decryptor using DES-EDE2 and HMAC/SHA-1 +class DefaultDecryptorWithMAC : public ProxyFilter +{ +public: + class MACBadErr : public DefaultDecryptor::Err {public: MACBadErr() : DefaultDecryptor::Err("DefaultDecryptorWithMAC: MAC check failed") {}}; + + DefaultDecryptorWithMAC(const char *passphrase, BufferedTransformation *attachment = NULL, bool throwException=true); + DefaultDecryptorWithMAC(const byte *passphrase, unsigned int passphraseLength, BufferedTransformation *attachment = NULL, bool throwException=true); + + DefaultDecryptor::State CurrentState() const; + bool CheckLastMAC() const; + +protected: + void FirstPut(const byte *inString) {} + void LastPut(const byte *inString, unsigned int length); + +private: + member_ptr m_mac; + HashVerifier *m_hashVerifier; + bool m_throwException; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/des.cpp b/stepmania/src/crypto51/des.cpp new file mode 100644 index 0000000000..b3a58e5059 --- /dev/null +++ b/stepmania/src/crypto51/des.cpp @@ -0,0 +1,464 @@ +// des.cpp - modified by Wei Dai from Phil Karn's des.c +// The original code and all modifications are in the public domain. + +/* + * This is a major rewrite of my old public domain DES code written + * circa 1987, which in turn borrowed heavily from Jim Gillogly's 1977 + * public domain code. I pretty much kept my key scheduling code, but + * the actual encrypt/decrypt routines are taken from from Richard + * Outerbridge's DES code as printed in Schneier's "Applied Cryptography." + * + * This code is in the public domain. I would appreciate bug reports and + * enhancements. + * + * Phil Karn KA9Q, karn@unix.ka9q.ampr.org, August 1994. + */ + +#include "pch.h" +#include "misc.h" +#include "des.h" + +NAMESPACE_BEGIN(CryptoPP) + +static inline bool CheckParity(byte b) +{ + unsigned int a = b ^ (b >> 4); + return ((a ^ (a>>1) ^ (a>>2) ^ (a>>3)) & 1) == 1; +} + +bool DES::CheckKeyParityBits(const byte *key) +{ + for (unsigned int i=0; i<8; i++) + if (!CheckParity(key[i])) + return false; + return true; +} + +void DES::CorrectKeyParityBits(byte *key) +{ + for (unsigned int i=0; i<8; i++) + if (!CheckParity(key[i])) + key[i] ^= 1; +} + +/* Tables defined in the Data Encryption Standard documents + * Three of these tables, the initial permutation, the final + * permutation and the expansion operator, are regular enough that + * for speed, we hard-code them. They're here for reference only. + * Also, the S and P boxes are used by a separate program, gensp.c, + * to build the combined SP box, Spbox[]. They're also here just + * for reference. + */ +#ifdef notdef +/* initial permutation IP */ +static byte ip[] = { + 58, 50, 42, 34, 26, 18, 10, 2, + 60, 52, 44, 36, 28, 20, 12, 4, + 62, 54, 46, 38, 30, 22, 14, 6, + 64, 56, 48, 40, 32, 24, 16, 8, + 57, 49, 41, 33, 25, 17, 9, 1, + 59, 51, 43, 35, 27, 19, 11, 3, + 61, 53, 45, 37, 29, 21, 13, 5, + 63, 55, 47, 39, 31, 23, 15, 7 +}; + +/* final permutation IP^-1 */ +static byte fp[] = { + 40, 8, 48, 16, 56, 24, 64, 32, + 39, 7, 47, 15, 55, 23, 63, 31, + 38, 6, 46, 14, 54, 22, 62, 30, + 37, 5, 45, 13, 53, 21, 61, 29, + 36, 4, 44, 12, 52, 20, 60, 28, + 35, 3, 43, 11, 51, 19, 59, 27, + 34, 2, 42, 10, 50, 18, 58, 26, + 33, 1, 41, 9, 49, 17, 57, 25 +}; +/* expansion operation matrix */ +static byte ei[] = { + 32, 1, 2, 3, 4, 5, + 4, 5, 6, 7, 8, 9, + 8, 9, 10, 11, 12, 13, + 12, 13, 14, 15, 16, 17, + 16, 17, 18, 19, 20, 21, + 20, 21, 22, 23, 24, 25, + 24, 25, 26, 27, 28, 29, + 28, 29, 30, 31, 32, 1 +}; +/* The (in)famous S-boxes */ +static byte sbox[8][64] = { + /* S1 */ + 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, + 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, + 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, + 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13, + + /* S2 */ + 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, + 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, + 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, + 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9, + + /* S3 */ + 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, + 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, + 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, + 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12, + + /* S4 */ + 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, + 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9, + 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, + 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14, + + /* S5 */ + 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9, + 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6, + 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14, + 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3, + + /* S6 */ + 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11, + 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, + 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6, + 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13, + + /* S7 */ + 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, + 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, + 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, + 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12, + + /* S8 */ + 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, + 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, + 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8, + 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 +}; + +/* 32-bit permutation function P used on the output of the S-boxes */ +static byte p32i[] = { + 16, 7, 20, 21, + 29, 12, 28, 17, + 1, 15, 23, 26, + 5, 18, 31, 10, + 2, 8, 24, 14, + 32, 27, 3, 9, + 19, 13, 30, 6, + 22, 11, 4, 25 +}; +#endif + +/* permuted choice table (key) */ +static const byte pc1[] = { + 57, 49, 41, 33, 25, 17, 9, + 1, 58, 50, 42, 34, 26, 18, + 10, 2, 59, 51, 43, 35, 27, + 19, 11, 3, 60, 52, 44, 36, + + 63, 55, 47, 39, 31, 23, 15, + 7, 62, 54, 46, 38, 30, 22, + 14, 6, 61, 53, 45, 37, 29, + 21, 13, 5, 28, 20, 12, 4 +}; + +/* number left rotations of pc1 */ +static const byte totrot[] = { + 1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 +}; + +/* permuted choice key (table) */ +static const byte pc2[] = { + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 +}; + +/* End of DES-defined tables */ + +/* bit 0 is left-most in byte */ +static const int bytebit[] = { + 0200,0100,040,020,010,04,02,01 +}; + +/* Set key (initialize key schedule array) */ +void DES::Base::UncheckedSetKey(CipherDir dir, const byte *key, unsigned int length) +{ + AssertValidKeyLength(length); + + SecByteBlock buffer(56+56+8); + byte *const pc1m=buffer; /* place to modify pc1 into */ + byte *const pcr=pc1m+56; /* place to rotate pc1 into */ + byte *const ks=pcr+56; + register int i,j,l; + int m; + + for (j=0; j<56; j++) { /* convert pc1 to bits of key */ + l=pc1[j]-1; /* integer bit location */ + m = l & 07; /* find bit */ + pc1m[j]=(key[l>>3] & /* find which key byte l is in */ + bytebit[m]) /* and which bit of that byte */ + ? 1 : 0; /* and store 1-bit result */ + } + for (i=0; i<16; i++) { /* key chunk for each iteration */ + memset(ks,0,8); /* Clear key schedule */ + for (j=0; j<56; j++) /* rotate pc1 the right amount */ + pcr[j] = pc1m[(l=j+totrot[i])<(j<28? 28 : 56) ? l: l-28]; + /* rotate left and right halves independently */ + for (j=0; j<48; j++){ /* select bits individually */ + /* check bit that goes to ks[j] */ + if (pcr[pc2[j]-1]){ + /* mask it in if it's there */ + l= j % 6; + ks[j/6] |= bytebit[l] >> 2; + } + } + /* Now convert to odd/even interleaved form for use in F */ + k[2*i] = ((word32)ks[0] << 24) + | ((word32)ks[2] << 16) + | ((word32)ks[4] << 8) + | ((word32)ks[6]); + k[2*i+1] = ((word32)ks[1] << 24) + | ((word32)ks[3] << 16) + | ((word32)ks[5] << 8) + | ((word32)ks[7]); + } + + if (dir==DECRYPTION) // reverse key schedule order + for (i=0; i<16; i+=2) + { + std::swap(k[i], k[32-2-i]); + std::swap(k[i+1], k[32-1-i]); + } +} + +// Richard Outerbridge's initial permutation algorithm +/* +inline void IPERM(word32 &left, word32 &right) +{ + word32 work; + + work = ((left >> 4) ^ right) & 0x0f0f0f0f; + right ^= work; + left ^= work << 4; + work = ((left >> 16) ^ right) & 0xffff; + right ^= work; + left ^= work << 16; + work = ((right >> 2) ^ left) & 0x33333333; + left ^= work; + right ^= (work << 2); + work = ((right >> 8) ^ left) & 0xff00ff; + left ^= work; + right ^= (work << 8); + right = rotl(right, 1); + work = (left ^ right) & 0xaaaaaaaa; + left ^= work; + right ^= work; + left = rotl(left, 1); +} +inline void FPERM(word32 &left, word32 &right) +{ + word32 work; + + right = rotr(right, 1); + work = (left ^ right) & 0xaaaaaaaa; + left ^= work; + right ^= work; + left = rotr(left, 1); + work = ((left >> 8) ^ right) & 0xff00ff; + right ^= work; + left ^= work << 8; + work = ((left >> 2) ^ right) & 0x33333333; + right ^= work; + left ^= work << 2; + work = ((right >> 16) ^ left) & 0xffff; + left ^= work; + right ^= work << 16; + work = ((right >> 4) ^ left) & 0x0f0f0f0f; + left ^= work; + right ^= work << 4; +} +*/ + +// Wei Dai's modification to Richard Outerbridge's initial permutation +// algorithm, this one is faster if you have access to rotate instructions +// (like in MSVC) +static inline void IPERM(word32 &left, word32 &right) +{ + word32 work; + + right = rotlFixed(right, 4U); + work = (left ^ right) & 0xf0f0f0f0; + left ^= work; + right = rotrFixed(right^work, 20U); + work = (left ^ right) & 0xffff0000; + left ^= work; + right = rotrFixed(right^work, 18U); + work = (left ^ right) & 0x33333333; + left ^= work; + right = rotrFixed(right^work, 6U); + work = (left ^ right) & 0x00ff00ff; + left ^= work; + right = rotlFixed(right^work, 9U); + work = (left ^ right) & 0xaaaaaaaa; + left = rotlFixed(left^work, 1U); + right ^= work; +} + +static inline void FPERM(word32 &left, word32 &right) +{ + word32 work; + + right = rotrFixed(right, 1U); + work = (left ^ right) & 0xaaaaaaaa; + right ^= work; + left = rotrFixed(left^work, 9U); + work = (left ^ right) & 0x00ff00ff; + right ^= work; + left = rotlFixed(left^work, 6U); + work = (left ^ right) & 0x33333333; + right ^= work; + left = rotlFixed(left^work, 18U); + work = (left ^ right) & 0xffff0000; + right ^= work; + left = rotlFixed(left^work, 20U); + work = (left ^ right) & 0xf0f0f0f0; + right ^= work; + left = rotrFixed(left^work, 4U); +} + +void DES::Base::RawProcessBlock(word32 &l_, word32 &r_) const +{ + word32 l = l_, r = r_; + const word32 *kptr=k; + + for (unsigned i=0; i<8; i++) + { + word32 work = rotrFixed(r, 4U) ^ kptr[4*i+0]; + l ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = r ^ kptr[4*i+1]; + l ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + + work = rotrFixed(l, 4U) ^ kptr[4*i+2]; + r ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = l ^ kptr[4*i+3]; + r ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + } + + l_ = l; r_ = r; +} + +typedef BlockGetAndPut Block; + +// Encrypt or decrypt a block of data in ECB mode +void DES::Base::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const +{ + word32 l,r; + Block::Get(inBlock)(l)(r); + IPERM(l,r); + + const word32 *kptr=k; + + for (unsigned i=0; i<8; i++) + { + word32 work = rotrFixed(r, 4U) ^ kptr[4*i+0]; + l ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = r ^ kptr[4*i+1]; + l ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + + work = rotrFixed(l, 4U) ^ kptr[4*i+2]; + r ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = l ^ kptr[4*i+3]; + r ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + } + + FPERM(l,r); + Block::Put(xorBlock, outBlock)(r)(l); +} + +void DES_EDE2::Base::UncheckedSetKey(CipherDir dir, const byte *key, unsigned int length) +{ + AssertValidKeyLength(length); + + m_des1.UncheckedSetKey(dir, key); + m_des2.UncheckedSetKey(ReverseCipherDir(dir), key+8); +} + +void DES_EDE2::Base::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const +{ + word32 l,r; + Block::Get(inBlock)(l)(r); + IPERM(l,r); + m_des1.RawProcessBlock(l, r); + m_des2.RawProcessBlock(r, l); + m_des1.RawProcessBlock(l, r); + FPERM(l,r); + Block::Put(xorBlock, outBlock)(r)(l); +} + +void DES_EDE3::Base::UncheckedSetKey(CipherDir dir, const byte *key, unsigned int length) +{ + AssertValidKeyLength(length); + + m_des1.UncheckedSetKey(dir, key+(dir==ENCRYPTION?0:2*8)); + m_des2.UncheckedSetKey(ReverseCipherDir(dir), key+8); + m_des3.UncheckedSetKey(dir, key+(dir==DECRYPTION?0:2*8)); +} + +void DES_EDE3::Base::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const +{ + word32 l,r; + Block::Get(inBlock)(l)(r); + IPERM(l,r); + m_des1.RawProcessBlock(l, r); + m_des2.RawProcessBlock(r, l); + m_des3.RawProcessBlock(l, r); + FPERM(l,r); + Block::Put(xorBlock, outBlock)(r)(l); +} + +void DES_XEX3::Base::UncheckedSetKey(CipherDir dir, const byte *key, unsigned int length) +{ + AssertValidKeyLength(length); + + memcpy(m_x1, key+(dir==ENCRYPTION?0:2*8), BLOCKSIZE); + m_des.UncheckedSetKey(dir, key+8); + memcpy(m_x3, key+(dir==DECRYPTION?0:2*8), BLOCKSIZE); +} + +void DES_XEX3::Base::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const +{ + xorbuf(outBlock, inBlock, m_x1, BLOCKSIZE); + m_des.ProcessAndXorBlock(outBlock, xorBlock, outBlock); + xorbuf(outBlock, m_x3, BLOCKSIZE); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/des.h b/stepmania/src/crypto51/des.h new file mode 100644 index 0000000000..65b4d33b42 --- /dev/null +++ b/stepmania/src/crypto51/des.h @@ -0,0 +1,133 @@ +#ifndef CRYPTOPP_DES_H +#define CRYPTOPP_DES_H + +/** \file +*/ + +#include "seckey.h" +#include "secblock.h" + +NAMESPACE_BEGIN(CryptoPP) + +struct DES_Info : public FixedBlockSize<8>, public FixedKeyLength<8> +{ + static const char *StaticAlgorithmName() {return "DES";} +}; + +/// DES +/*! The DES implementation in Crypto++ ignores the parity bits + (the least significant bits of each byte) in the key. However + you can use CheckKeyParityBits() and CorrectKeyParityBits() to + check or correct the parity bits if you wish. */ +class DES : public DES_Info, public BlockCipherDocumentation +{ + class Base : public BlockCipherBaseTemplate + { + public: + void UncheckedSetKey(CipherDir direction, const byte *userKey, unsigned int length = 8); + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; + + // exposed for faster Triple-DES + void RawProcessBlock(word32 &l, word32 &r) const; + + protected: + static const word32 Spbox[8][64]; + + FixedSizeSecBlock k; + }; + +public: + //! check DES key parity bits + static bool CheckKeyParityBits(const byte *key); + //! correct DES key parity bits + static void CorrectKeyParityBits(byte *key); + + typedef BlockCipherTemplate Encryption; + typedef BlockCipherTemplate Decryption; +}; + +struct DES_EDE2_Info : public FixedBlockSize<8>, public FixedKeyLength<16> +{ + static const char *StaticAlgorithmName() {return "DES-EDE2";} +}; + +/// DES-EDE2 +class DES_EDE2 : public DES_EDE2_Info, public BlockCipherDocumentation +{ + class Base : public BlockCipherBaseTemplate + { + public: + void UncheckedSetKey(CipherDir direction, const byte *userKey, unsigned int length); + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; + + protected: + DES::Encryption m_des1, m_des2; + }; + +public: + typedef BlockCipherTemplate Encryption; + typedef BlockCipherTemplate Decryption; +}; + +struct DES_EDE3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> +{ + static const char *StaticAlgorithmName() {return "DES-EDE3";} +}; + +/// DES-EDE3 +class DES_EDE3 : public DES_EDE3_Info, public BlockCipherDocumentation +{ + class Base : public BlockCipherBaseTemplate + { + public: + void UncheckedSetKey(CipherDir dir, const byte *key, unsigned int length); + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; + + protected: + DES::Encryption m_des1, m_des2, m_des3; + }; + +public: + typedef BlockCipherTemplate Encryption; + typedef BlockCipherTemplate Decryption; +}; + +struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> +{ + static const char *StaticAlgorithmName() {return "DES-XEX3";} +}; + +/// DES-XEX3, AKA DESX +class DES_XEX3 : public DES_XEX3_Info, public BlockCipherDocumentation +{ + class Base : public BlockCipherBaseTemplate + { + public: + void UncheckedSetKey(CipherDir dir, const byte *key, unsigned int length); + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; + + protected: + FixedSizeSecBlock m_x1, m_x3; + DES::Encryption m_des; + }; + +public: + typedef BlockCipherTemplate Encryption; + typedef BlockCipherTemplate Decryption; +}; + +typedef DES::Encryption DESEncryption; +typedef DES::Decryption DESDecryption; + +typedef DES_EDE2::Encryption DES_EDE2_Encryption; +typedef DES_EDE2::Decryption DES_EDE2_Decryption; + +typedef DES_EDE3::Encryption DES_EDE3_Encryption; +typedef DES_EDE3::Decryption DES_EDE3_Decryption; + +typedef DES_XEX3::Encryption DES_XEX3_Encryption; +typedef DES_XEX3::Decryption DES_XEX3_Decryption; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/descert.dat b/stepmania/src/crypto51/descert.dat new file mode 100644 index 0000000000..5d3ddc7d38 --- /dev/null +++ b/stepmania/src/crypto51/descert.dat @@ -0,0 +1,171 @@ +0101010101010101 95F8A5E5DD31D900 8000000000000000 +0101010101010101 DD7F121CA5015619 4000000000000000 +0101010101010101 2E8653104F3834EA 2000000000000000 +0101010101010101 4BD388FF6CD81D4F 1000000000000000 +0101010101010101 20B9E767B2FB1456 0800000000000000 +0101010101010101 55579380D77138EF 0400000000000000 +0101010101010101 6CC5DEFAAF04512F 0200000000000000 +0101010101010101 0D9F279BA5D87260 0100000000000000 +0101010101010101 D9031B0271BD5A0A 0080000000000000 +0101010101010101 424250B37C3DD951 0040000000000000 +0101010101010101 B8061B7ECD9A21E5 0020000000000000 +0101010101010101 F15D0F286B65BD28 0010000000000000 +0101010101010101 ADD0CC8D6E5DEBA1 0008000000000000 +0101010101010101 E6D5F82752AD63D1 0004000000000000 +0101010101010101 ECBFE3BD3F591A5E 0002000000000000 +0101010101010101 F356834379D165CD 0001000000000000 +0101010101010101 2B9F982F20037FA9 0000800000000000 +0101010101010101 889DE068A16F0BE6 0000400000000000 +0101010101010101 E19E275D846A1298 0000200000000000 +0101010101010101 329A8ED523D71AEC 0000100000000000 +0101010101010101 E7FCE22557D23C97 0000080000000000 +0101010101010101 12A9F5817FF2D65D 0000040000000000 +0101010101010101 A484C3AD38DC9C19 0000020000000000 +0101010101010101 FBE00A8A1EF8AD72 0000010000000000 +0101010101010101 750D079407521363 0000008000000000 +0101010101010101 64FEED9C724C2FAF 0000004000000000 +0101010101010101 F02B263B328E2B60 0000002000000000 +0101010101010101 9D64555A9A10B852 0000001000000000 +0101010101010101 D106FF0BED5255D7 0000000800000000 +0101010101010101 E1652C6B138C64A5 0000000400000000 +0101010101010101 E428581186EC8F46 0000000200000000 +0101010101010101 AEB5F5EDE22D1A36 0000000100000000 +0101010101010101 E943D7568AEC0C5C 0000000080000000 +0101010101010101 DF98C8276F54B04B 0000000040000000 +0101010101010101 B160E4680F6C696F 0000000020000000 +0101010101010101 FA0752B07D9C4AB8 0000000010000000 +0101010101010101 CA3A2B036DBC8502 0000000008000000 +0101010101010101 5E0905517BB59BCF 0000000004000000 +0101010101010101 814EEB3B91D90726 0000000002000000 +0101010101010101 4D49DB1532919C9F 0000000001000000 +0101010101010101 25EB5FC3F8CF0621 0000000000800000 +0101010101010101 AB6A20C0620D1C6F 0000000000400000 +0101010101010101 79E90DBC98F92CCA 0000000000200000 +0101010101010101 866ECEDD8072BB0E 0000000000100000 +0101010101010101 8B54536F2F3E64A8 0000000000080000 +0101010101010101 EA51D3975595B86B 0000000000040000 +0101010101010101 CAFFC6AC4542DE31 0000000000020000 +0101010101010101 8DD45A2DDF90796C 0000000000010000 +0101010101010101 1029D55E880EC2D0 0000000000008000 +0101010101010101 5D86CB23639DBEA9 0000000000004000 +0101010101010101 1D1CA853AE7C0C5F 0000000000002000 +0101010101010101 CE332329248F3228 0000000000001000 +0101010101010101 8405D1ABE24FB942 0000000000000800 +0101010101010101 E643D78090CA4207 0000000000000400 +0101010101010101 48221B9937748A23 0000000000000200 +0101010101010101 DD7C0BBD61FAFD54 0000000000000100 +0101010101010101 2FBC291A570DB5C4 0000000000000080 +0101010101010101 E07C30D7E4E26E12 0000000000000040 +0101010101010101 0953E2258E8E90A1 0000000000000020 +0101010101010101 5B711BC4CEEBF2EE 0000000000000010 +0101010101010101 CC083F1E6D9E85F6 0000000000000008 +0101010101010101 D2FD8867D50D2DFE 0000000000000004 +0101010101010101 06E7EA22CE92708F 0000000000000002 +0101010101010101 166B40B44ABA4BD6 0000000000000001 +8001010101010101 0000000000000000 95A8D72813DAA94D +4001010101010101 0000000000000000 0EEC1487DD8C26D5 +2001010101010101 0000000000000000 7AD16FFB79C45926 +1001010101010101 0000000000000000 D3746294CA6A6CF3 +0801010101010101 0000000000000000 809F5F873C1FD761 +0401010101010101 0000000000000000 C02FAFFEC989D1FC +0201010101010101 0000000000000000 4615AA1D33E72F10 +0180010101010101 0000000000000000 2055123350C00858 +0140010101010101 0000000000000000 DF3B99D6577397C8 +0120010101010101 0000000000000000 31FE17369B5288C9 +0110010101010101 0000000000000000 DFDD3CC64DAE1642 +0108010101010101 0000000000000000 178C83CE2B399D94 +0104010101010101 0000000000000000 50F636324A9B7F80 +0102010101010101 0000000000000000 A8468EE3BC18F06D +0101800101010101 0000000000000000 A2DC9E92FD3CDE92 +0101400101010101 0000000000000000 CAC09F797D031287 +0101200101010101 0000000000000000 90BA680B22AEB525 +0101100101010101 0000000000000000 CE7A24F350E280B6 +0101080101010101 0000000000000000 882BFF0AA01A0B87 +0101040101010101 0000000000000000 25610288924511C2 +0101020101010101 0000000000000000 C71516C29C75D170 +0101018001010101 0000000000000000 5199C29A52C9F059 +0101014001010101 0000000000000000 C22F0A294A71F29F +0101012001010101 0000000000000000 EE371483714C02EA +0101011001010101 0000000000000000 A81FBD448F9E522F +0101010801010101 0000000000000000 4F644C92E192DFED +0101010401010101 0000000000000000 1AFA9A66A6DF92AE +0101010201010101 0000000000000000 B3C1CC715CB879D8 +0101010180010101 0000000000000000 19D032E64AB0BD8B +0101010140010101 0000000000000000 3CFAA7A7DC8720DC +0101010120010101 0000000000000000 B7265F7F447AC6F3 +0101010110010101 0000000000000000 9DB73B3C0D163F54 +0101010108010101 0000000000000000 8181B65BABF4A975 +0101010104010101 0000000000000000 93C9B64042EAA240 +0101010102010101 0000000000000000 5570530829705592 +0101010101800101 0000000000000000 8638809E878787A0 +0101010101400101 0000000000000000 41B9A79AF79AC208 +0101010101200101 0000000000000000 7A9BE42F2009A892 +0101010101100101 0000000000000000 29038D56BA6D2745 +0101010101080101 0000000000000000 5495C6ABF1E5DF51 +0101010101040101 0000000000000000 AE13DBD561488933 +0101010101020101 0000000000000000 024D1FFA8904E389 +0101010101018001 0000000000000000 D1399712F99BF02E +0101010101014001 0000000000000000 14C1D7C1CFFEC79E +0101010101012001 0000000000000000 1DE5279DAE3BED6F +0101010101011001 0000000000000000 E941A33F85501303 +0101010101010801 0000000000000000 DA99DBBC9A03F379 +0101010101010401 0000000000000000 B7FC92F91D8E92E9 +0101010101010201 0000000000000000 AE8E5CAA3CA04E85 +0101010101010180 0000000000000000 9CC62DF43B6EED74 +0101010101010140 0000000000000000 D863DBB5C59A91A0 +0101010101010120 0000000000000000 A1AB2190545B91D7 +0101010101010110 0000000000000000 0875041E64C570F7 +0101010101010108 0000000000000000 5A594528BEBEF1CC +0101010101010104 0000000000000000 FCDB3291DE21F0C0 +0101010101010102 0000000000000000 869EFD7F9F265A09 +1046913489980131 0000000000000000 88D55E54F54C97B4 +1007103489988020 0000000000000000 0C0CC00C83EA48FD +10071034C8980120 0000000000000000 83BC8EF3A6570183 +1046103489988020 0000000000000000 DF725DCAD94EA2E9 +1086911519190101 0000000000000000 E652B53B550BE8B0 +1086911519580101 0000000000000000 AF527120C485CBB0 +5107B01519580101 0000000000000000 0F04CE393DB926D5 +1007B01519190101 0000000000000000 C9F00FFC74079067 +3107915498080101 0000000000000000 7CFD82A593252B4E +3107919498080101 0000000000000000 CB49A2F9E91363E3 +10079115B9080140 0000000000000000 00B588BE70D23F56 +3107911598090140 0000000000000000 406A9A6AB43399AE +1007D01589980101 0000000000000000 6CB773611DCA9ADA +9107911589980101 0000000000000000 67FD21C17DBB5D70 +9107D01589190101 0000000000000000 9592CB4110430787 +1007D01598980120 0000000000000000 A6B7FF68A318DDD3 +1007940498190101 0000000000000000 4D102196C914CA16 +0107910491190401 0000000000000000 2DFA9F4573594965 +0107910491190101 0000000000000000 B46604816C0E0774 +0107940491190401 0000000000000000 6E7E6221A4F34E87 +19079210981A0101 0000000000000000 AA85E74643233199 +1007911998190801 0000000000000000 2E5A19DB4D1962D6 +10079119981A0801 0000000000000000 23A866A809D30894 +1007921098190101 0000000000000000 D812D961F017D320 +100791159819010B 0000000000000000 055605816E58608F +1004801598190101 0000000000000000 ABD88E8B1B7716F1 +1004801598190102 0000000000000000 537AC95BE69DA1E1 +1004801598190108 0000000000000000 AED0F6AE3C25CDD8 +1002911598100104 0000000000000000 B3E35A5EE53E7B8D +1002911598190104 0000000000000000 61C79C71921A2EF8 +1002911598100201 0000000000000000 E2F5728F0995013C +1002911698100101 0000000000000000 1AEAC39A61F0A464 +7CA110454A1A6E57 01A1D6D039776742 690F5B0D9A26939B +0131D9619DC1376E 5CD54CA83DEF57DA 7A389D10354BD271 +07A1133E4A0B2686 0248D43806F67172 868EBB51CAB4599A +3849674C2602319E 51454B582DDF440A 7178876E01F19B2A +04B915BA43FEB5B6 42FD443059577FA2 AF37FB421F8C4095 +0113B970FD34F2CE 059B5E0851CF143A 86A560F10EC6D85B +0170F175468FB5E6 0756D8E0774761D2 0CD3DA020021DC09 +43297FAD38E373FE 762514B829BF486A EA676B2CB7DB2B7A +07A7137045DA2A16 3BDD119049372802 DFD64A815CAF1A0F +04689104C2FD3B2F 26955F6835AF609A 5C513C9C4886C088 +37D06BB516CB7546 164D5E404F275232 0A2AEEAE3FF4AB77 +1F08260D1AC2465E 6B056E18759F5CCA EF1BF03E5DFA575A +584023641ABA6176 004BD6EF09176062 88BF0DB6D70DEE56 +025816164629B007 480D39006EE762F2 A1F9915541020B56 +49793EBC79B3258F 437540C8698F3CFA 6FBF1CAFCFFD0556 +4FB05E1515AB73A7 072D43A077075292 2F22E49BAB7CA1AC +49E95D6D4CA229BF 02FE55778117F12A 5A6B612CC26CCE4A +018310DC409B26D6 1D9D5C5018F728C2 5F4C038ED12B2E41 +1C587F1C13924FEF 305532286D6F295A 63FAC0D034D9F793 diff --git a/stepmania/src/crypto51/dessp.cpp b/stepmania/src/crypto51/dessp.cpp new file mode 100644 index 0000000000..1f7a9510c1 --- /dev/null +++ b/stepmania/src/crypto51/dessp.cpp @@ -0,0 +1,90 @@ +// This file is mostly generated by Phil Karn's gensp.c + +#include "pch.h" +#include "des.h" + +NAMESPACE_BEGIN(CryptoPP) + +// VC60 workaround: gives a C4786 warning without this function +// when runtime lib is set to multithread debug DLL +// even though warning 4786 is disabled! +void DES_VC60Workaround() +{ +} + +const word32 DES::Base::Spbox[8][64] = { +{ +0x01010400,0x00000000,0x00010000,0x01010404, 0x01010004,0x00010404,0x00000004,0x00010000, +0x00000400,0x01010400,0x01010404,0x00000400, 0x01000404,0x01010004,0x01000000,0x00000004, +0x00000404,0x01000400,0x01000400,0x00010400, 0x00010400,0x01010000,0x01010000,0x01000404, +0x00010004,0x01000004,0x01000004,0x00010004, 0x00000000,0x00000404,0x00010404,0x01000000, +0x00010000,0x01010404,0x00000004,0x01010000, 0x01010400,0x01000000,0x01000000,0x00000400, +0x01010004,0x00010000,0x00010400,0x01000004, 0x00000400,0x00000004,0x01000404,0x00010404, +0x01010404,0x00010004,0x01010000,0x01000404, 0x01000004,0x00000404,0x00010404,0x01010400, +0x00000404,0x01000400,0x01000400,0x00000000, 0x00010004,0x00010400,0x00000000,0x01010004}, +{ +0x80108020,0x80008000,0x00008000,0x00108020, 0x00100000,0x00000020,0x80100020,0x80008020, +0x80000020,0x80108020,0x80108000,0x80000000, 0x80008000,0x00100000,0x00000020,0x80100020, +0x00108000,0x00100020,0x80008020,0x00000000, 0x80000000,0x00008000,0x00108020,0x80100000, +0x00100020,0x80000020,0x00000000,0x00108000, 0x00008020,0x80108000,0x80100000,0x00008020, +0x00000000,0x00108020,0x80100020,0x00100000, 0x80008020,0x80100000,0x80108000,0x00008000, +0x80100000,0x80008000,0x00000020,0x80108020, 0x00108020,0x00000020,0x00008000,0x80000000, +0x00008020,0x80108000,0x00100000,0x80000020, 0x00100020,0x80008020,0x80000020,0x00100020, +0x00108000,0x00000000,0x80008000,0x00008020, 0x80000000,0x80100020,0x80108020,0x00108000}, +{ +0x00000208,0x08020200,0x00000000,0x08020008, 0x08000200,0x00000000,0x00020208,0x08000200, +0x00020008,0x08000008,0x08000008,0x00020000, 0x08020208,0x00020008,0x08020000,0x00000208, +0x08000000,0x00000008,0x08020200,0x00000200, 0x00020200,0x08020000,0x08020008,0x00020208, +0x08000208,0x00020200,0x00020000,0x08000208, 0x00000008,0x08020208,0x00000200,0x08000000, +0x08020200,0x08000000,0x00020008,0x00000208, 0x00020000,0x08020200,0x08000200,0x00000000, +0x00000200,0x00020008,0x08020208,0x08000200, 0x08000008,0x00000200,0x00000000,0x08020008, +0x08000208,0x00020000,0x08000000,0x08020208, 0x00000008,0x00020208,0x00020200,0x08000008, +0x08020000,0x08000208,0x00000208,0x08020000, 0x00020208,0x00000008,0x08020008,0x00020200}, +{ +0x00802001,0x00002081,0x00002081,0x00000080, 0x00802080,0x00800081,0x00800001,0x00002001, +0x00000000,0x00802000,0x00802000,0x00802081, 0x00000081,0x00000000,0x00800080,0x00800001, +0x00000001,0x00002000,0x00800000,0x00802001, 0x00000080,0x00800000,0x00002001,0x00002080, +0x00800081,0x00000001,0x00002080,0x00800080, 0x00002000,0x00802080,0x00802081,0x00000081, +0x00800080,0x00800001,0x00802000,0x00802081, 0x00000081,0x00000000,0x00000000,0x00802000, +0x00002080,0x00800080,0x00800081,0x00000001, 0x00802001,0x00002081,0x00002081,0x00000080, +0x00802081,0x00000081,0x00000001,0x00002000, 0x00800001,0x00002001,0x00802080,0x00800081, +0x00002001,0x00002080,0x00800000,0x00802001, 0x00000080,0x00800000,0x00002000,0x00802080}, +{ +0x00000100,0x02080100,0x02080000,0x42000100, 0x00080000,0x00000100,0x40000000,0x02080000, +0x40080100,0x00080000,0x02000100,0x40080100, 0x42000100,0x42080000,0x00080100,0x40000000, +0x02000000,0x40080000,0x40080000,0x00000000, 0x40000100,0x42080100,0x42080100,0x02000100, +0x42080000,0x40000100,0x00000000,0x42000000, 0x02080100,0x02000000,0x42000000,0x00080100, +0x00080000,0x42000100,0x00000100,0x02000000, 0x40000000,0x02080000,0x42000100,0x40080100, +0x02000100,0x40000000,0x42080000,0x02080100, 0x40080100,0x00000100,0x02000000,0x42080000, +0x42080100,0x00080100,0x42000000,0x42080100, 0x02080000,0x00000000,0x40080000,0x42000000, +0x00080100,0x02000100,0x40000100,0x00080000, 0x00000000,0x40080000,0x02080100,0x40000100}, +{ +0x20000010,0x20400000,0x00004000,0x20404010, 0x20400000,0x00000010,0x20404010,0x00400000, +0x20004000,0x00404010,0x00400000,0x20000010, 0x00400010,0x20004000,0x20000000,0x00004010, +0x00000000,0x00400010,0x20004010,0x00004000, 0x00404000,0x20004010,0x00000010,0x20400010, +0x20400010,0x00000000,0x00404010,0x20404000, 0x00004010,0x00404000,0x20404000,0x20000000, +0x20004000,0x00000010,0x20400010,0x00404000, 0x20404010,0x00400000,0x00004010,0x20000010, +0x00400000,0x20004000,0x20000000,0x00004010, 0x20000010,0x20404010,0x00404000,0x20400000, +0x00404010,0x20404000,0x00000000,0x20400010, 0x00000010,0x00004000,0x20400000,0x00404010, +0x00004000,0x00400010,0x20004010,0x00000000, 0x20404000,0x20000000,0x00400010,0x20004010}, +{ +0x00200000,0x04200002,0x04000802,0x00000000, 0x00000800,0x04000802,0x00200802,0x04200800, +0x04200802,0x00200000,0x00000000,0x04000002, 0x00000002,0x04000000,0x04200002,0x00000802, +0x04000800,0x00200802,0x00200002,0x04000800, 0x04000002,0x04200000,0x04200800,0x00200002, +0x04200000,0x00000800,0x00000802,0x04200802, 0x00200800,0x00000002,0x04000000,0x00200800, +0x04000000,0x00200800,0x00200000,0x04000802, 0x04000802,0x04200002,0x04200002,0x00000002, +0x00200002,0x04000000,0x04000800,0x00200000, 0x04200800,0x00000802,0x00200802,0x04200800, +0x00000802,0x04000002,0x04200802,0x04200000, 0x00200800,0x00000000,0x00000002,0x04200802, +0x00000000,0x00200802,0x04200000,0x00000800, 0x04000002,0x04000800,0x00000800,0x00200002}, +{ +0x10001040,0x00001000,0x00040000,0x10041040, 0x10000000,0x10001040,0x00000040,0x10000000, +0x00040040,0x10040000,0x10041040,0x00041000, 0x10041000,0x00041040,0x00001000,0x00000040, +0x10040000,0x10000040,0x10001000,0x00001040, 0x00041000,0x00040040,0x10040040,0x10041000, +0x00001040,0x00000000,0x00000000,0x10040040, 0x10000040,0x10001000,0x00041040,0x00040000, +0x00041040,0x00040000,0x10041000,0x00001000, 0x00000040,0x10040040,0x00001000,0x00041040, +0x10001000,0x00000040,0x10000040,0x10040000, 0x10040040,0x10000000,0x00040000,0x10001040, +0x00000000,0x10041040,0x00040040,0x10000040, 0x10040000,0x10001000,0x10001040,0x00000000, +0x10041040,0x00041000,0x00041000,0x00001040, 0x00001040,0x00040040,0x10000000,0x10041000} +}; + +NAMESPACE_END diff --git a/stepmania/src/crypto51/eprecomp.cpp b/stepmania/src/crypto51/eprecomp.cpp new file mode 100644 index 0000000000..f9878b9043 --- /dev/null +++ b/stepmania/src/crypto51/eprecomp.cpp @@ -0,0 +1,107 @@ +// eprecomp.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "eprecomp.h" +#include "asn.h" + +NAMESPACE_BEGIN(CryptoPP) + +template void DL_FixedBasePrecomputationImpl::SetBase(const DL_GroupPrecomputation &group, const Element &i_base) +{ + m_base = group.NeedConversions() ? group.ConvertIn(i_base) : i_base; + + if (m_bases.empty() || !(m_base == m_bases[0])) + { + m_bases.resize(1); + m_bases[0] = m_base; + } + + if (group.NeedConversions()) + m_base = i_base; +} + +template void DL_FixedBasePrecomputationImpl::Precompute(const DL_GroupPrecomputation &group, unsigned int maxExpBits, unsigned int storage) +{ + assert(m_bases.size() > 0); + assert(storage <= maxExpBits); + + if (storage > 1) + { + m_windowSize = (maxExpBits+storage-1)/storage; + m_exponentBase = Integer::Power2(m_windowSize); + } + + m_bases.resize(storage); + for (unsigned i=1; i void DL_FixedBasePrecomputationImpl::Load(const DL_GroupPrecomputation &group, BufferedTransformation &bt) +{ + BERSequenceDecoder seq(bt); + word32 version; + BERDecodeUnsigned(seq, version, INTEGER, 1, 1); + m_exponentBase.BERDecode(seq); + m_windowSize = m_exponentBase.BitCount() - 1; + m_bases.clear(); + while (!seq.EndReached()) + m_bases.push_back(group.BERDecodeElement(seq)); + if (!m_bases.empty() && group.NeedConversions()) + m_base = group.ConvertOut(m_bases[0]); + seq.MessageEnd(); +} + +template void DL_FixedBasePrecomputationImpl::Save(const DL_GroupPrecomputation &group, BufferedTransformation &bt) const +{ + DERSequenceEncoder seq(bt); + DEREncodeUnsigned(seq, 1); // version + m_exponentBase.DEREncode(seq); + for (unsigned i=0; i void DL_FixedBasePrecomputationImpl::PrepareCascade(const DL_GroupPrecomputation &i_group, std::vector > &eb, const Integer &exponent) const +{ + const AbstractGroup &group = i_group.GetGroup(); + + Integer r, q, e = exponent; + bool fastNegate = group.InversionIsFast() && m_windowSize > 1; + unsigned int i; + + for (i=0; i+1(group.Inverse(m_bases[i]), m_exponentBase - r)); + } + else + eb.push_back(BaseAndExponent(m_bases[i], r)); + } + eb.push_back(BaseAndExponent(m_bases[i], e)); +} + +template T DL_FixedBasePrecomputationImpl::Exponentiate(const DL_GroupPrecomputation &group, const Integer &exponent) const +{ + std::vector > eb; // array of segments of the exponent and precalculated bases + eb.reserve(m_bases.size()); + PrepareCascade(group, eb, exponent); + return group.ConvertOut(GeneralCascadeMultiplication(group.GetGroup(), eb.begin(), eb.end())); +} + +template T + DL_FixedBasePrecomputationImpl::CascadeExponentiate(const DL_GroupPrecomputation &group, const Integer &exponent, + const DL_FixedBasePrecomputation &i_pc2, const Integer &exponent2) const +{ + std::vector > eb; // array of segments of the exponent and precalculated bases + const DL_FixedBasePrecomputationImpl &pc2 = static_cast &>(i_pc2); + eb.reserve(m_bases.size() + pc2.m_bases.size()); + PrepareCascade(group, eb, exponent); + pc2.PrepareCascade(group, eb, exponent2); + return group.ConvertOut(GeneralCascadeMultiplication(group.GetGroup(), eb.begin(), eb.end())); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/eprecomp.h b/stepmania/src/crypto51/eprecomp.h new file mode 100644 index 0000000000..ae38c9c7bc --- /dev/null +++ b/stepmania/src/crypto51/eprecomp.h @@ -0,0 +1,69 @@ +#ifndef CRYPTOPP_EPRECOMP_H +#define CRYPTOPP_EPRECOMP_H + +#include "integer.h" +#include "algebra.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +template +class DL_GroupPrecomputation +{ +public: + typedef T Element; + + virtual bool NeedConversions() const {return false;} + virtual Element ConvertIn(const Element &v) const {return v;} + virtual Element ConvertOut(const Element &v) const {return v;} + virtual const AbstractGroup & GetGroup() const =0; + virtual Element BERDecodeElement(BufferedTransformation &bt) const =0; + virtual void DEREncodeElement(BufferedTransformation &bt, const Element &P) const =0; +}; + +template +class DL_FixedBasePrecomputation +{ +public: + typedef T Element; + + virtual bool IsInitialized() const =0; + virtual void SetBase(const DL_GroupPrecomputation &group, const Element &base) =0; + virtual const Element & GetBase(const DL_GroupPrecomputation &group) const =0; + virtual void Precompute(const DL_GroupPrecomputation &group, unsigned int maxExpBits, unsigned int storage) =0; + virtual void Load(const DL_GroupPrecomputation &group, BufferedTransformation &storedPrecomputation) =0; + virtual void Save(const DL_GroupPrecomputation &group, BufferedTransformation &storedPrecomputation) const =0; + virtual Element Exponentiate(const DL_GroupPrecomputation &group, const Integer &exponent) const =0; + virtual Element CascadeExponentiate(const DL_GroupPrecomputation &group, const Integer &exponent, const DL_FixedBasePrecomputation &pc2, const Integer &exponent2) const =0; +}; + +template +class DL_FixedBasePrecomputationImpl : public DL_FixedBasePrecomputation +{ +public: + typedef T Element; + + // DL_FixedBasePrecomputation + bool IsInitialized() const + {return !m_bases.empty();} + void SetBase(const DL_GroupPrecomputation &group, const Element &base); + const Element & GetBase(const DL_GroupPrecomputation &group) const + {return group.NeedConversions() ? m_base : m_bases[0];} + void Precompute(const DL_GroupPrecomputation &group, unsigned int maxExpBits, unsigned int storage); + void Load(const DL_GroupPrecomputation &group, BufferedTransformation &storedPrecomputation); + void Save(const DL_GroupPrecomputation &group, BufferedTransformation &storedPrecomputation) const; + Element Exponentiate(const DL_GroupPrecomputation &group, const Integer &exponent) const; + Element CascadeExponentiate(const DL_GroupPrecomputation &group, const Integer &exponent, const DL_FixedBasePrecomputation &pc2, const Integer &exponent2) const; + +private: + void PrepareCascade(const DL_GroupPrecomputation &group, std::vector > &eb, const Integer &exponent) const; + + Element m_base; + unsigned int m_windowSize; + Integer m_exponentBase; // what base to represent the exponent in + std::vector m_bases; // precalculated bases +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/files.cpp b/stepmania/src/crypto51/files.cpp new file mode 100644 index 0000000000..2b42010ac8 --- /dev/null +++ b/stepmania/src/crypto51/files.cpp @@ -0,0 +1,186 @@ +// files.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "files.h" + +NAMESPACE_BEGIN(CryptoPP) + +using namespace std; + +void Files_TestInstantiations() +{ + FileStore f0; + FileSource f1; + FileSink f2; +} + +void FileStore::StoreInitialize(const NameValuePairs ¶meters) +{ + const char *fileName; + if (parameters.GetValue("InputFileName", fileName)) + { + ios::openmode binary = parameters.GetValueWithDefault("InputBinaryMode", true) ? ios::binary : ios::openmode(0); + m_file.open(fileName, ios::in | binary); + if (!m_file) + throw OpenErr(fileName); + m_stream = &m_file; + } + else + { + m_stream = NULL; + parameters.GetValue("InputStreamPointer", m_stream); + } + m_waiting = false; +} + +unsigned long FileStore::MaxRetrievable() const +{ + if (!m_stream) + return 0; + + streampos current = m_stream->tellg(); + streampos end = m_stream->seekg(0, ios::end).tellg(); + m_stream->seekg(current); + return end-current; +} + +unsigned int FileStore::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + if (!m_stream) + { + transferBytes = 0; + return 0; + } + + unsigned long size=transferBytes; + transferBytes = 0; + + if (m_waiting) + goto output; + + while (size && m_stream->good()) + { + { + unsigned int spaceSize = 1024; + m_space = HelpCreatePutSpace(target, channel, 1, (unsigned int)STDMIN(size, (unsigned long)UINT_MAX), spaceSize); + + m_stream->read((char *)m_space, STDMIN(size, (unsigned long)spaceSize)); + } + m_len = m_stream->gcount(); + unsigned int blockedBytes; +output: + blockedBytes = target.ChannelPutModifiable2(channel, m_space, m_len, 0, blocking); + m_waiting = blockedBytes > 0; + if (m_waiting) + return blockedBytes; + size -= m_len; + transferBytes += m_len; + } + + if (!m_stream->good() && !m_stream->eof()) + throw ReadErr(); + + return 0; +} + +unsigned int FileStore::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + if (!m_stream) + return 0; + + if (begin == 0 && end == 1) + { + int result = m_stream->peek(); + if (result == EOF) // GCC workaround: 2.95.2 doesn't have char_traits::eof() + return 0; + else + { + unsigned int blockedBytes = target.ChannelPut(channel, byte(result), blocking); + begin += 1-blockedBytes; + return blockedBytes; + } + } + + // TODO: figure out what happens on cin + streampos current = m_stream->tellg(); + streampos endPosition = m_stream->seekg(0, ios::end).tellg(); + streampos newPosition = current + (streamoff)begin; + + if (newPosition >= endPosition) + { + m_stream->seekg(current); + return 0; // don't try to seek beyond the end of file + } + m_stream->seekg(newPosition); + unsigned long total = 0; + try + { + assert(!m_waiting); + unsigned long copyMax = end-begin; + unsigned int blockedBytes = const_cast(this)->TransferTo2(target, copyMax, channel, blocking); + begin += copyMax; + if (blockedBytes) + { + const_cast(this)->m_waiting = false; + return blockedBytes; + } + } + catch(...) + { + m_stream->clear(); + m_stream->seekg(current); + throw; + } + m_stream->clear(); + m_stream->seekg(current); + + return 0; +} + +void FileSink::IsolatedInitialize(const NameValuePairs ¶meters) +{ + const char *fileName; + if (parameters.GetValue("OutputFileName", fileName)) + { + ios::openmode binary = parameters.GetValueWithDefault("OutputBinaryMode", true) ? ios::binary : ios::openmode(0); + m_file.open(fileName, ios::out | ios::trunc | binary); + if (!m_file) + throw OpenErr(fileName); + m_stream = &m_file; + } + else + { + m_stream = NULL; + parameters.GetValue("OutputStreamPointer", m_stream); + } +} + +bool FileSink::IsolatedFlush(bool hardFlush, bool blocking) +{ + if (!m_stream) + throw Err("FileSink: output stream not opened"); + + m_stream->flush(); + if (!m_stream->good()) + throw WriteErr(); + + return false; +} + +unsigned int FileSink::Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) +{ + if (!m_stream) + throw Err("FileSink: output stream not opened"); + + m_stream->write((const char *)inString, length); + + if (messageEnd) + m_stream->flush(); + + if (!m_stream->good()) + throw WriteErr(); + + return 0; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/files.h b/stepmania/src/crypto51/files.h new file mode 100644 index 0000000000..2c0c52d9db --- /dev/null +++ b/stepmania/src/crypto51/files.h @@ -0,0 +1,95 @@ +#ifndef CRYPTOPP_FILES_H +#define CRYPTOPP_FILES_H + +#include "cryptlib.h" +#include "filters.h" + +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +//! . +class FileStore : public Store, private FilterPutSpaceHelper +{ +public: + class Err : public Exception + { + public: + Err(const std::string &s) : Exception(IO_ERROR, s) {} + }; + class OpenErr : public Err {public: OpenErr(const std::string &filename) : Err("FileStore: error opening file for reading: " + filename) {}}; + class ReadErr : public Err {public: ReadErr() : Err("FileStore: error reading file") {}}; + + FileStore() : m_stream(NULL) {} + FileStore(std::istream &in) + {StoreInitialize(MakeParameters("InputStreamPointer", &in));} + FileStore(const char *filename) + {StoreInitialize(MakeParameters("InputFileName", filename));} + + std::istream* GetStream() {return m_stream;} + + unsigned long MaxRetrievable() const; + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + +private: + void StoreInitialize(const NameValuePairs ¶meters); + + std::ifstream m_file; + std::istream *m_stream; + byte *m_space; + unsigned int m_len; + bool m_waiting; +}; + +//! . +class FileSource : public SourceTemplate +{ +public: + typedef FileStore::Err Err; + typedef FileStore::OpenErr OpenErr; + typedef FileStore::ReadErr ReadErr; + + FileSource(BufferedTransformation *attachment = NULL) + : SourceTemplate(attachment) {} + FileSource(std::istream &in, bool pumpAll, BufferedTransformation *attachment = NULL) + : SourceTemplate(attachment) {SourceInitialize(pumpAll, MakeParameters("InputStreamPointer", &in));} + FileSource(const char *filename, bool pumpAll, BufferedTransformation *attachment = NULL, bool binary=true) + : SourceTemplate(attachment) {SourceInitialize(pumpAll, MakeParameters("InputFileName", filename)("InputBinaryMode", binary));} + + std::istream* GetStream() {return m_store.GetStream();} +}; + +//! . +class FileSink : public Sink +{ +public: + class Err : public Exception + { + public: + Err(const std::string &s) : Exception(IO_ERROR, s) {} + }; + class OpenErr : public Err {public: OpenErr(const std::string &filename) : Err("FileSink: error opening file for writing: " + filename) {}}; + class WriteErr : public Err {public: WriteErr() : Err("FileSink: error writing file") {}}; + + FileSink() : m_stream(NULL) {} + FileSink(std::ostream &out) + {IsolatedInitialize(MakeParameters("OutputStreamPointer", &out));} + FileSink(const char *filename, bool binary=true) + {IsolatedInitialize(MakeParameters("OutputFileName", filename)("OutputBinaryMode", binary));} + + std::ostream* GetStream() {return m_stream;} + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking); + bool IsolatedFlush(bool hardFlush, bool blocking); + +private: + std::ofstream m_file; + std::ostream *m_stream; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/filters.cpp b/stepmania/src/crypto51/filters.cpp new file mode 100644 index 0000000000..64c2a37dca --- /dev/null +++ b/stepmania/src/crypto51/filters.cpp @@ -0,0 +1,897 @@ +// filters.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "filters.h" +#include "mqueue.h" +#include "fltrimpl.h" +#include "argnames.h" +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +Filter::Filter(BufferedTransformation *attachment) + : m_attachment(attachment), m_continueAt(0) +{ +} + +BufferedTransformation * Filter::NewDefaultAttachment() const +{ + return new MessageQueue; +} + +BufferedTransformation * Filter::AttachedTransformation() +{ + if (m_attachment.get() == NULL) + m_attachment.reset(NewDefaultAttachment()); + return m_attachment.get(); +} + +const BufferedTransformation *Filter::AttachedTransformation() const +{ + if (m_attachment.get() == NULL) + const_cast(this)->m_attachment.reset(NewDefaultAttachment()); + return m_attachment.get(); +} + +void Filter::Detach(BufferedTransformation *newOut) +{ + m_attachment.reset(newOut); + NotifyAttachmentChange(); +} + +void Filter::Insert(Filter *filter) +{ + filter->m_attachment.reset(m_attachment.release()); + m_attachment.reset(filter); + NotifyAttachmentChange(); +} + +unsigned int Filter::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + return AttachedTransformation()->CopyRangeTo2(target, begin, end, channel, blocking); +} + +unsigned int Filter::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + return AttachedTransformation()->TransferTo2(target, transferBytes, channel, blocking); +} + +void Filter::Initialize(const NameValuePairs ¶meters, int propagation) +{ + m_continueAt = 0; + IsolatedInitialize(parameters); + PropagateInitialize(parameters, propagation); +} + +bool Filter::Flush(bool hardFlush, int propagation, bool blocking) +{ + switch (m_continueAt) + { + case 0: + if (IsolatedFlush(hardFlush, blocking)) + return true; + case 1: + if (OutputFlush(1, hardFlush, propagation, blocking)) + return true; + } + return false; +} + +bool Filter::MessageSeriesEnd(int propagation, bool blocking) +{ + switch (m_continueAt) + { + case 0: + if (IsolatedMessageSeriesEnd(blocking)) + return true; + case 1: + if (ShouldPropagateMessageSeriesEnd() && OutputMessageSeriesEnd(1, propagation, blocking)) + return true; + } + return false; +} + +void Filter::PropagateInitialize(const NameValuePairs ¶meters, int propagation, const std::string &channel) +{ + if (propagation) + AttachedTransformation()->ChannelInitialize(channel, parameters, propagation-1); +} + +unsigned int Filter::Output(int outputSite, const byte *inString, unsigned int length, int messageEnd, bool blocking, const std::string &channel) +{ + if (messageEnd) + messageEnd--; + unsigned int result = AttachedTransformation()->Put2(inString, length, messageEnd, blocking); + m_continueAt = result ? outputSite : 0; + return result; +} + +bool Filter::OutputFlush(int outputSite, bool hardFlush, int propagation, bool blocking, const std::string &channel) +{ + if (propagation && AttachedTransformation()->ChannelFlush(channel, hardFlush, propagation-1, blocking)) + { + m_continueAt = outputSite; + return true; + } + m_continueAt = 0; + return false; +} + +bool Filter::OutputMessageSeriesEnd(int outputSite, int propagation, bool blocking, const std::string &channel) +{ + if (propagation && AttachedTransformation()->ChannelMessageSeriesEnd(channel, propagation-1, blocking)) + { + m_continueAt = outputSite; + return true; + } + m_continueAt = 0; + return false; +} + +// ************************************************************* + +unsigned int MeterFilter::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + if (m_transparent) + { + FILTER_BEGIN; + m_currentMessageBytes += length; + m_totalBytes += length; + + if (messageEnd) + { + m_currentMessageBytes = 0; + m_currentSeriesMessages++; + m_totalMessages++; + } + + FILTER_OUTPUT(1, begin, length, messageEnd); + FILTER_END_NO_MESSAGE_END; + } + return 0; +} + +bool MeterFilter::IsolatedMessageSeriesEnd(bool blocking) +{ + m_currentMessageBytes = 0; + m_currentSeriesMessages = 0; + m_totalMessageSeries++; + return false; +} + +// ************************************************************* + +void FilterWithBufferedInput::BlockQueue::ResetQueue(unsigned int blockSize, unsigned int maxBlocks) +{ + m_buffer.New(blockSize * maxBlocks); + m_blockSize = blockSize; + m_maxBlocks = maxBlocks; + m_size = 0; + m_begin = m_buffer; +} + +byte *FilterWithBufferedInput::BlockQueue::GetBlock() +{ + if (m_size >= m_blockSize) + { + byte *ptr = m_begin; + if ((m_begin+=m_blockSize) == m_buffer.end()) + m_begin = m_buffer; + m_size -= m_blockSize; + return ptr; + } + else + return NULL; +} + +byte *FilterWithBufferedInput::BlockQueue::GetContigousBlocks(unsigned int &numberOfBytes) +{ + numberOfBytes = STDMIN(numberOfBytes, STDMIN((unsigned int)(m_buffer.end()-m_begin), m_size)); + byte *ptr = m_begin; + m_begin += numberOfBytes; + m_size -= numberOfBytes; + if (m_size == 0 || m_begin == m_buffer.end()) + m_begin = m_buffer; + return ptr; +} + +unsigned int FilterWithBufferedInput::BlockQueue::GetAll(byte *outString) +{ + unsigned int size = m_size; + unsigned int numberOfBytes = m_maxBlocks*m_blockSize; + const byte *ptr = GetContigousBlocks(numberOfBytes); + memcpy(outString, ptr, numberOfBytes); + memcpy(outString+numberOfBytes, m_begin, m_size); + m_size = 0; + return size; +} + +void FilterWithBufferedInput::BlockQueue::Put(const byte *inString, unsigned int length) +{ + assert(m_size + length <= m_buffer.size()); + byte *end = (m_size < (unsigned int)(m_buffer.end()-m_begin)) ? m_begin + m_size : m_begin + m_size - m_buffer.size(); + unsigned int len = STDMIN(length, (unsigned int)(m_buffer.end()-end)); + memcpy(end, inString, len); + if (len < length) + memcpy(m_buffer, inString+len, length-len); + m_size += length; +} + +FilterWithBufferedInput::FilterWithBufferedInput(BufferedTransformation *attachment) + : Filter(attachment) +{ +} + +FilterWithBufferedInput::FilterWithBufferedInput(unsigned int firstSize, unsigned int blockSize, unsigned int lastSize, BufferedTransformation *attachment) + : Filter(attachment), m_firstSize(firstSize), m_blockSize(blockSize), m_lastSize(lastSize) + , m_firstInputDone(false) +{ + if (m_firstSize < 0 || m_blockSize < 1 || m_lastSize < 0) + throw InvalidArgument("FilterWithBufferedInput: invalid buffer size"); + + m_queue.ResetQueue(1, m_firstSize); +} + +void FilterWithBufferedInput::IsolatedInitialize(const NameValuePairs ¶meters) +{ + InitializeDerivedAndReturnNewSizes(parameters, m_firstSize, m_blockSize, m_lastSize); + if (m_firstSize < 0 || m_blockSize < 1 || m_lastSize < 0) + throw InvalidArgument("FilterWithBufferedInput: invalid buffer size"); + m_queue.ResetQueue(1, m_firstSize); + m_firstInputDone = false; +} + +bool FilterWithBufferedInput::IsolatedFlush(bool hardFlush, bool blocking) +{ + if (!blocking) + throw BlockingInputOnly("FilterWithBufferedInput"); + + if (hardFlush) + ForceNextPut(); + FlushDerived(); + + return false; +} + +unsigned int FilterWithBufferedInput::PutMaybeModifiable(byte *inString, unsigned int length, int messageEnd, bool blocking, bool modifiable) +{ + if (!blocking) + throw BlockingInputOnly("FilterWithBufferedInput"); + + if (length != 0) + { + unsigned int newLength = m_queue.CurrentSize() + length; + + if (!m_firstInputDone && newLength >= m_firstSize) + { + unsigned int len = m_firstSize - m_queue.CurrentSize(); + m_queue.Put(inString, len); + FirstPut(m_queue.GetContigousBlocks(m_firstSize)); + assert(m_queue.CurrentSize() == 0); + m_queue.ResetQueue(m_blockSize, (2*m_blockSize+m_lastSize-2)/m_blockSize); + + inString += len; + newLength -= m_firstSize; + m_firstInputDone = true; + } + + if (m_firstInputDone) + { + if (m_blockSize == 1) + { + while (newLength > m_lastSize && m_queue.CurrentSize() > 0) + { + unsigned int len = newLength - m_lastSize; + byte *ptr = m_queue.GetContigousBlocks(len); + NextPutModifiable(ptr, len); + newLength -= len; + } + + if (newLength > m_lastSize) + { + unsigned int len = newLength - m_lastSize; + NextPutMaybeModifiable(inString, len, modifiable); + inString += len; + newLength -= len; + } + } + else + { + while (newLength >= m_blockSize + m_lastSize && m_queue.CurrentSize() >= m_blockSize) + { + NextPutModifiable(m_queue.GetBlock(), m_blockSize); + newLength -= m_blockSize; + } + + if (newLength >= m_blockSize + m_lastSize && m_queue.CurrentSize() > 0) + { + assert(m_queue.CurrentSize() < m_blockSize); + unsigned int len = m_blockSize - m_queue.CurrentSize(); + m_queue.Put(inString, len); + inString += len; + NextPutModifiable(m_queue.GetBlock(), m_blockSize); + newLength -= m_blockSize; + } + + if (newLength >= m_blockSize + m_lastSize) + { + unsigned int len = RoundDownToMultipleOf(newLength - m_lastSize, m_blockSize); + NextPutMaybeModifiable(inString, len, modifiable); + inString += len; + newLength -= len; + } + } + } + + m_queue.Put(inString, newLength - m_queue.CurrentSize()); + } + + if (messageEnd) + { + if (!m_firstInputDone && m_firstSize==0) + FirstPut(NULL); + + SecByteBlock temp(m_queue.CurrentSize()); + m_queue.GetAll(temp); + LastPut(temp, temp.size()); + + m_firstInputDone = false; + m_queue.ResetQueue(1, m_firstSize); + + Output(1, NULL, 0, messageEnd, blocking); + } + return 0; +} + +void FilterWithBufferedInput::ForceNextPut() +{ + if (!m_firstInputDone) + return; + + if (m_blockSize > 1) + { + while (m_queue.CurrentSize() >= m_blockSize) + NextPutModifiable(m_queue.GetBlock(), m_blockSize); + } + else + { + unsigned int len; + while ((len = m_queue.CurrentSize()) > 0) + NextPutModifiable(m_queue.GetContigousBlocks(len), len); + } +} + +void FilterWithBufferedInput::NextPutMultiple(const byte *inString, unsigned int length) +{ + assert(m_blockSize > 1); // m_blockSize = 1 should always override this function + while (length > 0) + { + assert(length >= m_blockSize); + NextPutSingle(inString); + inString += m_blockSize; + length -= m_blockSize; + } +} + +// ************************************************************* + +void Redirector::ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters, int propagation) +{ + if (channel.empty()) + { + m_target = parameters.GetValueWithDefault("RedirectionTargetPointer", (BufferedTransformation*)NULL); + m_passSignal = parameters.GetValueWithDefault("PassSignal", true); + } + + if (m_target && m_passSignal) + m_target->ChannelInitialize(channel, parameters, propagation); +} + +// ************************************************************* + +ProxyFilter::ProxyFilter(BufferedTransformation *filter, unsigned int firstSize, unsigned int lastSize, BufferedTransformation *attachment) + : FilterWithBufferedInput(firstSize, 1, lastSize, attachment), m_filter(filter) +{ + if (m_filter.get()) + m_filter->Attach(new OutputProxy(*this, false)); +} + +bool ProxyFilter::IsolatedFlush(bool hardFlush, bool blocking) +{ + return m_filter.get() ? m_filter->Flush(hardFlush, -1, blocking) : false; +} + +void ProxyFilter::SetFilter(Filter *filter) +{ + m_filter.reset(filter); + if (filter) + { + OutputProxy *proxy; + std::auto_ptr temp(proxy = new OutputProxy(*this, false)); + m_filter->TransferAllTo(*proxy); + m_filter->Attach(temp.release()); + } +} + +void ProxyFilter::NextPutMultiple(const byte *s, unsigned int len) +{ + if (m_filter.get()) + m_filter->Put(s, len); +} + +// ************************************************************* + +unsigned int ArraySink::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + memcpy(m_buf+m_total, begin, STDMIN(length, SaturatingSubtract(m_size, m_total))); + m_total += length; + return 0; +} + +byte * ArraySink::CreatePutSpace(unsigned int &size) +{ + size = m_size - m_total; + return m_buf + m_total; +} + +void ArraySink::IsolatedInitialize(const NameValuePairs ¶meters) +{ + ByteArrayParameter array; + if (!parameters.GetValue(Name::OutputBuffer(), array)) + throw InvalidArgument("ArraySink: missing OutputBuffer argument"); + m_buf = array.begin(); + m_size = array.size(); + m_total = 0; +} + +unsigned int ArrayXorSink::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) +{ + xorbuf(m_buf+m_total, begin, STDMIN(length, SaturatingSubtract(m_size, m_total))); + m_total += length; + return 0; +} + +// ************************************************************* + +unsigned int StreamTransformationFilter::LastBlockSize(StreamTransformation &c, BlockPaddingScheme padding) +{ + if (c.MinLastBlockSize() > 0) + return c.MinLastBlockSize(); + else if (c.MandatoryBlockSize() > 1 && !c.IsForwardTransformation() && padding != NO_PADDING && padding != ZEROS_PADDING) + return c.MandatoryBlockSize(); + else + return 0; +} + +StreamTransformationFilter::StreamTransformationFilter(StreamTransformation &c, BufferedTransformation *attachment, BlockPaddingScheme padding) + : FilterWithBufferedInput(0, c.MandatoryBlockSize(), LastBlockSize(c, padding), attachment) + , m_cipher(c) +{ + assert(c.MinLastBlockSize() == 0 || c.MinLastBlockSize() > c.MandatoryBlockSize()); + + bool isBlockCipher = (c.MandatoryBlockSize() > 1 && c.MinLastBlockSize() == 0); + + if (padding == DEFAULT_PADDING) + { + if (isBlockCipher) + m_padding = PKCS_PADDING; + else + m_padding = NO_PADDING; + } + else + m_padding = padding; + + if (!isBlockCipher && (m_padding == PKCS_PADDING || m_padding == ONE_AND_ZEROS_PADDING)) + throw InvalidArgument("StreamTransformationFilter: PKCS_PADDING and ONE_AND_ZEROS_PADDING cannot be used with " + c.AlgorithmName()); +} + +void StreamTransformationFilter::FirstPut(const byte *inString) +{ + m_optimalBufferSize = m_cipher.OptimalBlockSize(); + m_optimalBufferSize = STDMAX(m_optimalBufferSize, RoundDownToMultipleOf(4096U, m_optimalBufferSize)); +} + +void StreamTransformationFilter::NextPutMultiple(const byte *inString, unsigned int length) +{ + if (!length) + return; + + unsigned int s = m_cipher.MandatoryBlockSize(); + + do + { + unsigned int len = m_optimalBufferSize; + byte *space = HelpCreatePutSpace(*AttachedTransformation(), NULL_CHANNEL, s, length, len); + if (len < length) + { + if (len == m_optimalBufferSize) + len -= m_cipher.GetOptimalBlockSizeUsed(); + len = RoundDownToMultipleOf(len, s); + } + else + len = length; + m_cipher.ProcessString(space, inString, len); + AttachedTransformation()->PutModifiable(space, len); + inString += len; + length -= len; + } + while (length > 0); +} + +void StreamTransformationFilter::NextPutModifiable(byte *inString, unsigned int length) +{ + m_cipher.ProcessString(inString, length); + AttachedTransformation()->PutModifiable(inString, length); +} + +void StreamTransformationFilter::LastPut(const byte *inString, unsigned int length) +{ + byte *space = NULL; + + switch (m_padding) + { + case NO_PADDING: + case ZEROS_PADDING: + if (length > 0) + { + unsigned int minLastBlockSize = m_cipher.MinLastBlockSize(); + bool isForwardTransformation = m_cipher.IsForwardTransformation(); + + if (isForwardTransformation && m_padding == ZEROS_PADDING && (minLastBlockSize == 0 || length < minLastBlockSize)) + { + // do padding + unsigned int blockSize = STDMAX(minLastBlockSize, m_cipher.MandatoryBlockSize()); + space = HelpCreatePutSpace(*AttachedTransformation(), NULL_CHANNEL, blockSize); + memcpy(space, inString, length); + memset(space + length, 0, blockSize - length); + m_cipher.ProcessLastBlock(space, space, blockSize); + AttachedTransformation()->Put(space, blockSize); + } + else + { + if (minLastBlockSize == 0) + { + if (isForwardTransformation) + throw InvalidDataFormat("StreamTransformationFilter: plaintext length is not a multiple of block size and NO_PADDING is specified"); + else + throw InvalidCiphertext("StreamTransformationFilter: ciphertext length is not a multiple of block size"); + } + + space = HelpCreatePutSpace(*AttachedTransformation(), NULL_CHANNEL, length, m_optimalBufferSize); + m_cipher.ProcessLastBlock(space, inString, length); + AttachedTransformation()->Put(space, length); + } + } + break; + + case PKCS_PADDING: + case ONE_AND_ZEROS_PADDING: + unsigned int s; + s = m_cipher.MandatoryBlockSize(); + assert(s > 1); + space = HelpCreatePutSpace(*AttachedTransformation(), NULL_CHANNEL, s, m_optimalBufferSize); + if (m_cipher.IsForwardTransformation()) + { + assert(length < s); + memcpy(space, inString, length); + if (m_padding == PKCS_PADDING) + { + assert(s < 256); + byte pad = s-length; + memset(space+length, pad, s-length); + } + else + { + space[length] = 1; + memset(space+length+1, 0, s-length-1); + } + m_cipher.ProcessData(space, space, s); + AttachedTransformation()->Put(space, s); + } + else + { + if (length != s) + throw InvalidCiphertext("StreamTransformationFilter: ciphertext length is not a multiple of block size"); + m_cipher.ProcessData(space, inString, s); + if (m_padding == PKCS_PADDING) + { + byte pad = space[s-1]; + if (pad < 1 || pad > s || std::find_if(space+s-pad, space+s, std::bind2nd(std::not_equal_to(), pad)) != space+s) + throw InvalidCiphertext("StreamTransformationFilter: invalid PKCS #7 block padding found"); + length = s-pad; + } + else + { + while (length > 1 && space[length-1] == '\0') + --length; + if (space[--length] != '\1') + throw InvalidCiphertext("StreamTransformationFilter: invalid ones-and-zeros padding found"); + } + AttachedTransformation()->Put(space, length); + } + break; + + default: + assert(false); + } +} + +// ************************************************************* + +void HashFilter::IsolatedInitialize(const NameValuePairs ¶meters) +{ + m_putMessage = parameters.GetValueWithDefault(Name::PutMessage(), false); + m_hashModule.Restart(); +} + +unsigned int HashFilter::Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) +{ + FILTER_BEGIN; + m_hashModule.Update(inString, length); + if (m_putMessage) + FILTER_OUTPUT(1, inString, length, 0); + if (messageEnd) + { + { + unsigned int size, digestSize = m_hashModule.DigestSize(); + m_space = HelpCreatePutSpace(*AttachedTransformation(), NULL_CHANNEL, digestSize, digestSize, size = digestSize); + m_hashModule.Final(m_space); + } + FILTER_OUTPUT(2, m_space, m_hashModule.DigestSize(), messageEnd); + } + FILTER_END_NO_MESSAGE_END; +} + +// ************************************************************* + +HashVerificationFilter::HashVerificationFilter(HashTransformation &hm, BufferedTransformation *attachment, word32 flags) + : FilterWithBufferedInput(attachment) + , m_hashModule(hm) +{ + IsolatedInitialize(MakeParameters(Name::HashVerificationFilterFlags(), flags)); +} + +void HashVerificationFilter::InitializeDerivedAndReturnNewSizes(const NameValuePairs ¶meters, unsigned int &firstSize, unsigned int &blockSize, unsigned int &lastSize) +{ + m_flags = parameters.GetValueWithDefault(Name::HashVerificationFilterFlags(), (word32)DEFAULT_FLAGS); + m_hashModule.Restart(); + unsigned int size = m_hashModule.DigestSize(); + m_verified = false; + firstSize = m_flags & HASH_AT_BEGIN ? size : 0; + blockSize = 1; + lastSize = m_flags & HASH_AT_BEGIN ? 0 : size; +} + +void HashVerificationFilter::FirstPut(const byte *inString) +{ + if (m_flags & HASH_AT_BEGIN) + { + m_expectedHash.New(m_hashModule.DigestSize()); + memcpy(m_expectedHash, inString, m_expectedHash.size()); + if (m_flags & PUT_HASH) + AttachedTransformation()->Put(inString, m_expectedHash.size()); + } +} + +void HashVerificationFilter::NextPutMultiple(const byte *inString, unsigned int length) +{ + m_hashModule.Update(inString, length); + if (m_flags & PUT_MESSAGE) + AttachedTransformation()->Put(inString, length); +} + +void HashVerificationFilter::LastPut(const byte *inString, unsigned int length) +{ + if (m_flags & HASH_AT_BEGIN) + { + assert(length == 0); + m_verified = m_hashModule.Verify(m_expectedHash); + } + else + { + m_verified = (length==m_hashModule.DigestSize() && m_hashModule.Verify(inString)); + if (m_flags & PUT_HASH) + AttachedTransformation()->Put(inString, length); + } + + if (m_flags & PUT_RESULT) + AttachedTransformation()->Put(m_verified); + + if ((m_flags & THROW_EXCEPTION) && !m_verified) + throw HashVerificationFailed(); +} + +// ************************************************************* + +void SignerFilter::IsolatedInitialize(const NameValuePairs ¶meters) +{ + m_putMessage = parameters.GetValueWithDefault(Name::PutMessage(), false); + m_messageAccumulator.reset(m_signer.NewSignatureAccumulator()); +} + +unsigned int SignerFilter::Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) +{ + FILTER_BEGIN; + m_messageAccumulator->Update(inString, length); + if (m_putMessage) + FILTER_OUTPUT(1, inString, length, 0); + if (messageEnd) + { + m_buf.New(m_signer.SignatureLength()); + m_signer.Sign(m_rng, m_messageAccumulator.release(), m_buf); + FILTER_OUTPUT(2, m_buf, m_buf.size(), messageEnd); + m_messageAccumulator.reset(m_signer.NewSignatureAccumulator()); + } + FILTER_END_NO_MESSAGE_END; +} + +SignatureVerificationFilter::SignatureVerificationFilter(const PK_Verifier &verifier, BufferedTransformation *attachment, word32 flags) + : FilterWithBufferedInput(attachment) + , m_verifier(verifier) +{ + IsolatedInitialize(MakeParameters(Name::SignatureVerificationFilterFlags(), flags)); +} + +void SignatureVerificationFilter::InitializeDerivedAndReturnNewSizes(const NameValuePairs ¶meters, unsigned int &firstSize, unsigned int &blockSize, unsigned int &lastSize) +{ + m_flags = parameters.GetValueWithDefault(Name::SignatureVerificationFilterFlags(), (word32)DEFAULT_FLAGS); + m_messageAccumulator.reset(m_verifier.NewVerificationAccumulator()); + unsigned int size = m_verifier.SignatureLength(); + assert(size != 0); // TODO: handle recoverable signature scheme + m_verified = false; + firstSize = m_flags & SIGNATURE_AT_BEGIN ? size : 0; + blockSize = 1; + lastSize = m_flags & SIGNATURE_AT_BEGIN ? 0 : size; +} + +void SignatureVerificationFilter::FirstPut(const byte *inString) +{ + if (m_flags & SIGNATURE_AT_BEGIN) + { + if (m_verifier.SignatureUpfront()) + m_verifier.InputSignature(*m_messageAccumulator, inString, m_verifier.SignatureLength()); + else + { + m_signature.New(m_verifier.SignatureLength()); + memcpy(m_signature, inString, m_signature.size()); + } + + if (m_flags & PUT_SIGNATURE) + AttachedTransformation()->Put(inString, m_signature.size()); + } + else + { + assert(!m_verifier.SignatureUpfront()); + } +} + +void SignatureVerificationFilter::NextPutMultiple(const byte *inString, unsigned int length) +{ + m_messageAccumulator->Update(inString, length); + if (m_flags & PUT_MESSAGE) + AttachedTransformation()->Put(inString, length); +} + +void SignatureVerificationFilter::LastPut(const byte *inString, unsigned int length) +{ + if (m_flags & SIGNATURE_AT_BEGIN) + { + assert(length == 0); + m_verifier.InputSignature(*m_messageAccumulator, m_signature, m_signature.size()); + m_verified = m_verifier.VerifyAndRestart(*m_messageAccumulator); + } + else + { + m_verifier.InputSignature(*m_messageAccumulator, inString, length); + m_verified = m_verifier.VerifyAndRestart(*m_messageAccumulator); + if (m_flags & PUT_SIGNATURE) + AttachedTransformation()->Put(inString, length); + } + + if (m_flags & PUT_RESULT) + AttachedTransformation()->Put(m_verified); + + if ((m_flags & THROW_EXCEPTION) && !m_verified) + throw SignatureVerificationFailed(); +} + +// ************************************************************* + +unsigned int Source::PumpAll2(bool blocking) +{ + // TODO: switch length type + unsigned long i = UINT_MAX; + RETURN_IF_NONZERO(Pump2(i, blocking)); + unsigned int j = UINT_MAX; + return PumpMessages2(j, blocking); +} + +bool Store::GetNextMessage() +{ + if (!m_messageEnd && !AnyRetrievable()) + { + m_messageEnd=true; + return true; + } + else + return false; +} + +unsigned int Store::CopyMessagesTo(BufferedTransformation &target, unsigned int count, const std::string &channel) const +{ + if (m_messageEnd || count == 0) + return 0; + else + { + CopyTo(target, ULONG_MAX, channel); + if (GetAutoSignalPropagation()) + target.ChannelMessageEnd(channel, GetAutoSignalPropagation()-1); + return 1; + } +} + +void StringStore::StoreInitialize(const NameValuePairs ¶meters) +{ + ConstByteArrayParameter array; + if (!parameters.GetValue(Name::InputBuffer(), array)) + throw InvalidArgument("StringStore: missing InputBuffer argument"); + m_store = array.begin(); + m_length = array.size(); + m_count = 0; +} + +unsigned int StringStore::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + unsigned long position = 0; + unsigned int blockedBytes = CopyRangeTo2(target, position, transferBytes, channel, blocking); + m_count += position; + transferBytes = position; + return blockedBytes; +} + +unsigned int StringStore::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + unsigned int i = (unsigned int)STDMIN((unsigned long)m_count+begin, (unsigned long)m_length); + unsigned int len = (unsigned int)STDMIN((unsigned long)m_length-i, end-begin); + unsigned int blockedBytes = target.ChannelPut2(channel, m_store+i, len, 0, blocking); + if (!blockedBytes) + begin += len; + return blockedBytes; +} + +unsigned int RandomNumberStore::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + if (!blocking) + throw NotImplemented("RandomNumberStore: nonblocking transfer is not implemented by this object"); + + unsigned long transferMax = transferBytes; + for (transferBytes = 0; transferBytes m_attachment; + +protected: + unsigned int m_inputPosition; + int m_continueAt; +}; + +struct FilterPutSpaceHelper +{ + // desiredSize is how much to ask target, bufferSize is how much to allocate in m_tempSpace + byte *HelpCreatePutSpace(BufferedTransformation &target, const std::string &channel, unsigned int minSize, unsigned int desiredSize, unsigned int &bufferSize) + { + assert(desiredSize >= minSize && bufferSize >= minSize); + if (m_tempSpace.size() < minSize) + { + byte *result = target.ChannelCreatePutSpace(channel, desiredSize); + if (desiredSize >= minSize) + { + bufferSize = desiredSize; + return result; + } + m_tempSpace.New(bufferSize); + } + + bufferSize = m_tempSpace.size(); + return m_tempSpace.begin(); + } + byte *HelpCreatePutSpace(BufferedTransformation &target, const std::string &channel, unsigned int minSize) + {return HelpCreatePutSpace(target, channel, minSize, minSize, minSize);} + byte *HelpCreatePutSpace(BufferedTransformation &target, const std::string &channel, unsigned int minSize, unsigned int bufferSize) + {return HelpCreatePutSpace(target, channel, minSize, minSize, bufferSize);} + SecByteBlock m_tempSpace; +}; + +//! measure how many byte and messages pass through, also serves as valve +class MeterFilter : public Bufferless +{ +public: + MeterFilter(BufferedTransformation *attachment=NULL, bool transparent=true) + : Bufferless(attachment), m_transparent(transparent) {ResetMeter();} + + void SetTransparent(bool transparent) {m_transparent = transparent;} + void ResetMeter() {m_currentMessageBytes = m_totalBytes = m_currentSeriesMessages = m_totalMessages = m_totalMessageSeries = 0;} + + unsigned long GetCurrentMessageBytes() const {return m_currentMessageBytes;} + unsigned long GetTotalBytes() {return m_totalBytes;} + unsigned int GetCurrentSeriesMessages() {return m_currentSeriesMessages;} + unsigned int GetTotalMessages() {return m_totalMessages;} + unsigned int GetTotalMessageSeries() {return m_totalMessageSeries;} + + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + bool IsolatedMessageSeriesEnd(bool blocking); + +private: + bool ShouldPropagateMessageEnd() const {return m_transparent;} + bool ShouldPropagateMessageSeriesEnd() const {return m_transparent;} + + bool m_transparent; + unsigned long m_currentMessageBytes, m_totalBytes; + unsigned int m_currentSeriesMessages, m_totalMessages, m_totalMessageSeries; +}; + +//! . +class TransparentFilter : public MeterFilter +{ +public: + TransparentFilter(BufferedTransformation *attachment=NULL) : MeterFilter(attachment, true) {} +}; + +//! . +class OpaqueFilter : public MeterFilter +{ +public: + OpaqueFilter(BufferedTransformation *attachment=NULL) : MeterFilter(attachment, false) {} +}; + +/*! FilterWithBufferedInput divides up the input stream into + a first block, a number of middle blocks, and a last block. + First and last blocks are optional, and middle blocks may + be a stream instead (i.e. blockSize == 1). +*/ +class FilterWithBufferedInput : public Filter +{ +public: + FilterWithBufferedInput(BufferedTransformation *attachment); + //! firstSize and lastSize may be 0, blockSize must be at least 1 + FilterWithBufferedInput(unsigned int firstSize, unsigned int blockSize, unsigned int lastSize, BufferedTransformation *attachment); + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) + { + return PutMaybeModifiable(const_cast(inString), length, messageEnd, blocking, false); + } + unsigned int PutModifiable2(byte *inString, unsigned int length, int messageEnd, bool blocking) + { + return PutMaybeModifiable(inString, length, messageEnd, blocking, true); + } + /*! calls ForceNextPut() if hardFlush is true */ + bool IsolatedFlush(bool hardFlush, bool blocking); + + /*! The input buffer may contain more than blockSize bytes if lastSize != 0. + ForceNextPut() forces a call to NextPut() if this is the case. + */ + void ForceNextPut(); + +protected: + bool DidFirstPut() {return m_firstInputDone;} + + virtual void InitializeDerivedAndReturnNewSizes(const NameValuePairs ¶meters, unsigned int &firstSize, unsigned int &blockSize, unsigned int &lastSize) + {InitializeDerived(parameters);} + virtual void InitializeDerived(const NameValuePairs ¶meters) {} + // FirstPut() is called if (firstSize != 0 and totalLength >= firstSize) + // or (firstSize == 0 and (totalLength > 0 or a MessageEnd() is received)) + virtual void FirstPut(const byte *inString) =0; + // NextPut() is called if totalLength >= firstSize+blockSize+lastSize + virtual void NextPutSingle(const byte *inString) {assert(false);} + // Same as NextPut() except length can be a multiple of blockSize + // Either NextPut() or NextPutMultiple() must be overriden + virtual void NextPutMultiple(const byte *inString, unsigned int length); + // Same as NextPutMultiple(), but inString can be modified + virtual void NextPutModifiable(byte *inString, unsigned int length) + {NextPutMultiple(inString, length);} + // LastPut() is always called + // if totalLength < firstSize then length == totalLength + // else if totalLength <= firstSize+lastSize then length == totalLength-firstSize + // else lastSize <= length < lastSize+blockSize + virtual void LastPut(const byte *inString, unsigned int length) =0; + virtual void FlushDerived() {} + +private: + unsigned int PutMaybeModifiable(byte *begin, unsigned int length, int messageEnd, bool blocking, bool modifiable); + void NextPutMaybeModifiable(byte *inString, unsigned int length, bool modifiable) + { + if (modifiable) NextPutModifiable(inString, length); + else NextPutMultiple(inString, length); + } + + // This function should no longer be used, put this here to cause a compiler error + // if someone tries to override NextPut(). + virtual int NextPut(const byte *inString, unsigned int length) {assert(false); return 0;} + + class BlockQueue + { + public: + void ResetQueue(unsigned int blockSize, unsigned int maxBlocks); + byte *GetBlock(); + byte *GetContigousBlocks(unsigned int &numberOfBytes); + unsigned int GetAll(byte *outString); + void Put(const byte *inString, unsigned int length); + unsigned int CurrentSize() const {return m_size;} + unsigned int MaxSize() const {return m_buffer.size();} + + private: + SecByteBlock m_buffer; + unsigned int m_blockSize, m_maxBlocks, m_size; + byte *m_begin; + }; + + unsigned int m_firstSize, m_blockSize, m_lastSize; + bool m_firstInputDone; + BlockQueue m_queue; +}; + +//! . +class FilterWithInputQueue : public Filter +{ +public: + FilterWithInputQueue(BufferedTransformation *attachment) : Filter(attachment) {} + unsigned int Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) + { + if (!blocking) + throw BlockingInputOnly("FilterWithInputQueue"); + + m_inQueue.Put(inString, length); + if (messageEnd) + { + IsolatedMessageEnd(blocking); + Output(0, NULL, 0, messageEnd, blocking); + } + return 0; + } + +protected: + virtual bool IsolatedMessageEnd(bool blocking) =0; + void IsolatedInitialize(const NameValuePairs ¶meters) {m_inQueue.Clear();} + + ByteQueue m_inQueue; +}; + +//! Filter Wrapper for StreamTransformation +class StreamTransformationFilter : public FilterWithBufferedInput, private FilterPutSpaceHelper +{ +public: + enum BlockPaddingScheme {NO_PADDING, ZEROS_PADDING, PKCS_PADDING, ONE_AND_ZEROS_PADDING, DEFAULT_PADDING}; + /*! DEFAULT_PADDING means PKCS_PADDING if c.MandatoryBlockSize() > 1 && c.MinLastBlockSize() == 0 (e.g. ECB or CBC mode), + otherwise NO_PADDING (OFB, CFB, CTR, CBC-CTS modes) */ + StreamTransformationFilter(StreamTransformation &c, BufferedTransformation *attachment = NULL, BlockPaddingScheme padding = DEFAULT_PADDING); + + void FirstPut(const byte *inString); + void NextPutMultiple(const byte *inString, unsigned int length); + void NextPutModifiable(byte *inString, unsigned int length); + void LastPut(const byte *inString, unsigned int length); +// byte * CreatePutSpace(unsigned int &size); + +protected: + static unsigned int LastBlockSize(StreamTransformation &c, BlockPaddingScheme padding); + + StreamTransformation &m_cipher; + BlockPaddingScheme m_padding; + unsigned int m_optimalBufferSize; +}; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY +typedef StreamTransformationFilter StreamCipherFilter; +#endif + +//! Filter Wrapper for HashTransformation +class HashFilter : public Bufferless, private FilterPutSpaceHelper +{ +public: + HashFilter(HashTransformation &hm, BufferedTransformation *attachment = NULL, bool putMessage=false) + : Bufferless(attachment), m_hashModule(hm), m_putMessage(putMessage) {} + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + + byte * CreatePutSpace(unsigned int &size) {return m_hashModule.CreateUpdateSpace(size);} + +private: + HashTransformation &m_hashModule; + bool m_putMessage; + byte *m_space; +}; + +//! Filter Wrapper for HashTransformation +class HashVerificationFilter : public FilterWithBufferedInput +{ +public: + class HashVerificationFailed : public Exception + { + public: + HashVerificationFailed() + : Exception(DATA_INTEGRITY_CHECK_FAILED, "HashVerifier: message hash not valid") {} + }; + + enum Flags {HASH_AT_BEGIN=1, PUT_MESSAGE=2, PUT_HASH=4, PUT_RESULT=8, THROW_EXCEPTION=16, DEFAULT_FLAGS = HASH_AT_BEGIN | PUT_RESULT}; + HashVerificationFilter(HashTransformation &hm, BufferedTransformation *attachment = NULL, word32 flags = DEFAULT_FLAGS); + + bool GetLastResult() const {return m_verified;} + +protected: + void InitializeDerivedAndReturnNewSizes(const NameValuePairs ¶meters, unsigned int &firstSize, unsigned int &blockSize, unsigned int &lastSize); + void FirstPut(const byte *inString); + void NextPutMultiple(const byte *inString, unsigned int length); + void LastPut(const byte *inString, unsigned int length); + +private: + static inline unsigned int FirstSize(word32 flags, HashTransformation &hm) {return flags & HASH_AT_BEGIN ? hm.DigestSize() : 0;} + static inline unsigned int LastSize(word32 flags, HashTransformation &hm) {return flags & HASH_AT_BEGIN ? 0 : hm.DigestSize();} + + HashTransformation &m_hashModule; + word32 m_flags; + SecByteBlock m_expectedHash; + bool m_verified; +}; + +typedef HashVerificationFilter HashVerifier; // for backwards compatibility + +//! Filter Wrapper for PK_Signer +class SignerFilter : public Unflushable +{ +public: + SignerFilter(RandomNumberGenerator &rng, const PK_Signer &signer, BufferedTransformation *attachment = NULL, bool putMessage=false) + : Unflushable(attachment), m_rng(rng), m_signer(signer), m_messageAccumulator(signer.NewSignatureAccumulator()), m_putMessage(putMessage) {} + + void IsolatedInitialize(const NameValuePairs ¶meters); + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + +private: + RandomNumberGenerator &m_rng; + const PK_Signer &m_signer; + member_ptr m_messageAccumulator; + bool m_putMessage; + SecByteBlock m_buf; +}; + +//! Filter Wrapper for PK_Verifier +class SignatureVerificationFilter : public FilterWithBufferedInput +{ +public: + class SignatureVerificationFailed : public Exception + { + public: + SignatureVerificationFailed() + : Exception(DATA_INTEGRITY_CHECK_FAILED, "VerifierFilter: digital signature not valid") {} + }; + + enum Flags {SIGNATURE_AT_BEGIN=1, PUT_MESSAGE=2, PUT_SIGNATURE=4, PUT_RESULT=8, THROW_EXCEPTION=16, DEFAULT_FLAGS = SIGNATURE_AT_BEGIN | PUT_RESULT}; + SignatureVerificationFilter(const PK_Verifier &verifier, BufferedTransformation *attachment = NULL, word32 flags = DEFAULT_FLAGS); + + bool GetLastResult() const {return m_verified;} + +protected: + void InitializeDerivedAndReturnNewSizes(const NameValuePairs ¶meters, unsigned int &firstSize, unsigned int &blockSize, unsigned int &lastSize); + void FirstPut(const byte *inString); + void NextPutMultiple(const byte *inString, unsigned int length); + void LastPut(const byte *inString, unsigned int length); + +private: + const PK_Verifier &m_verifier; + member_ptr m_messageAccumulator; + word32 m_flags; + SecByteBlock m_signature; + bool m_verified; +}; + +typedef SignatureVerificationFilter VerifierFilter; // for backwards compatibility + +//! Redirect input to another BufferedTransformation without owning it +class Redirector : public CustomSignalPropagation +{ +public: + Redirector() : m_target(NULL), m_passSignal(true) {} + Redirector(BufferedTransformation &target, bool passSignal=true) : m_target(&target), m_passSignal(passSignal) {} + + void Redirect(BufferedTransformation &target) {m_target = ⌖} + void StopRedirection() {m_target = NULL;} + bool GetPassSignal() const {return m_passSignal;} + void SetPassSignal(bool passSignal) {m_passSignal = passSignal;} + + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_target ? m_target->Put2(begin, length, m_passSignal ? messageEnd : 0, blocking) : 0;} + void Initialize(const NameValuePairs ¶meters, int propagation) + {ChannelInitialize(NULL_CHANNEL, parameters, propagation);} + bool Flush(bool hardFlush, int propagation=-1, bool blocking=true) + {return m_target && m_passSignal ? m_target->Flush(hardFlush, propagation, blocking) : false;} + bool MessageSeriesEnd(int propagation=-1, bool blocking=true) + {return m_target && m_passSignal ? m_target->MessageSeriesEnd(propagation, blocking) : false;} + + void ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1); + unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_target ? m_target->ChannelPut2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking) : 0;} + unsigned int ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_target ? m_target->ChannelPutModifiable2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking) : 0;} + bool ChannelFlush(const std::string &channel, bool completeFlush, int propagation=-1, bool blocking=true) + {return m_target && m_passSignal ? m_target->ChannelFlush(channel, completeFlush, propagation, blocking) : false;} + bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true) + {return m_target && m_passSignal ? m_target->ChannelMessageSeriesEnd(channel, propagation, blocking) : false;} + +private: + BufferedTransformation *m_target; + bool m_passSignal; +}; + +// Used By ProxyFilter +class OutputProxy : public CustomSignalPropagation +{ +public: + OutputProxy(BufferedTransformation &owner, bool passSignal) : m_owner(owner), m_passSignal(passSignal) {} + + bool GetPassSignal() const {return m_passSignal;} + void SetPassSignal(bool passSignal) {m_passSignal = passSignal;} + + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_owner.AttachedTransformation()->Put2(begin, length, m_passSignal ? messageEnd : 0, blocking);} + unsigned int PutModifiable2(byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_owner.AttachedTransformation()->PutModifiable2(begin, length, m_passSignal ? messageEnd : 0, blocking);} + void Initialize(const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1) + {if (m_passSignal) m_owner.AttachedTransformation()->Initialize(parameters, propagation);} + bool Flush(bool hardFlush, int propagation=-1, bool blocking=true) + {return m_passSignal ? m_owner.AttachedTransformation()->Flush(hardFlush, propagation, blocking) : false;} + bool MessageSeriesEnd(int propagation=-1, bool blocking=true) + {return m_passSignal ? m_owner.AttachedTransformation()->MessageSeriesEnd(propagation, blocking) : false;} + + unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_owner.AttachedTransformation()->ChannelPut2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking);} + unsigned int ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking) + {return m_owner.AttachedTransformation()->ChannelPutModifiable2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking);} + void ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters, int propagation=-1) + {if (m_passSignal) m_owner.AttachedTransformation()->ChannelInitialize(channel, parameters, propagation);} + bool ChannelFlush(const std::string &channel, bool completeFlush, int propagation=-1, bool blocking=true) + {return m_passSignal ? m_owner.AttachedTransformation()->ChannelFlush(channel, completeFlush, propagation, blocking) : false;} + bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true) + {return m_passSignal ? m_owner.AttachedTransformation()->ChannelMessageSeriesEnd(channel, propagation, blocking) : false;} + +private: + BufferedTransformation &m_owner; + bool m_passSignal; +}; + +//! Base class for Filter classes that are proxies for a chain of other filters. +class ProxyFilter : public FilterWithBufferedInput +{ +public: + ProxyFilter(BufferedTransformation *filter, unsigned int firstSize, unsigned int lastSize, BufferedTransformation *attachment); + + bool IsolatedFlush(bool hardFlush, bool blocking); + + void SetFilter(Filter *filter); + void NextPutMultiple(const byte *s, unsigned int len); + +protected: + member_ptr m_filter; +}; + +//! simple proxy filter that doesn't modify the underlying filter's input or output +class SimpleProxyFilter : public ProxyFilter +{ +public: + SimpleProxyFilter(BufferedTransformation *filter, BufferedTransformation *attachment) + : ProxyFilter(filter, 0, 0, attachment) {} + + void FirstPut(const byte *) {} + void LastPut(const byte *, unsigned int) {m_filter->MessageEnd();} +}; + +//! proxy for the filter created by PK_Encryptor::CreateEncryptionFilter +/*! This class is here just to provide symmetry with VerifierFilter. */ +class PK_EncryptorFilter : public SimpleProxyFilter +{ +public: + PK_EncryptorFilter(RandomNumberGenerator &rng, const PK_Encryptor &encryptor, BufferedTransformation *attachment = NULL) + : SimpleProxyFilter(encryptor.CreateEncryptionFilter(rng), attachment) {} +}; + +//! proxy for the filter created by PK_Decryptor::CreateDecryptionFilter +/*! This class is here just to provide symmetry with SignerFilter. */ +class PK_DecryptorFilter : public SimpleProxyFilter +{ +public: + PK_DecryptorFilter(RandomNumberGenerator &rng, const PK_Decryptor &decryptor, BufferedTransformation *attachment = NULL) + : SimpleProxyFilter(decryptor.CreateDecryptionFilter(rng), attachment) {} +}; + +//! Append input to a string object +template +class StringSinkTemplate : public Bufferless +{ +public: + // VC60 workaround: no T::char_type + typedef typename T::traits_type::char_type char_type; + + StringSinkTemplate(T &output) + : m_output(&output) {assert(sizeof(output[0])==1);} + + void IsolatedInitialize(const NameValuePairs ¶meters) + {if (!parameters.GetValue("OutputStringPointer", m_output)) throw InvalidArgument("StringSink: OutputStringPointer not specified");} + + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + { + if (length > 0) + { + typename T::size_type size = m_output->size(); + if (length < size && size + length > m_output->capacity()) + m_output->reserve(2*size); + m_output->append((const char_type *)begin, (const char_type *)begin+length); + } + return 0; + } + +private: + T *m_output; +}; + +//! Append input to an std::string +typedef StringSinkTemplate StringSink; + +//! Copy input to a memory buffer +class ArraySink : public Bufferless +{ +public: + ArraySink(const NameValuePairs ¶meters = g_nullNameValuePairs) {IsolatedInitialize(parameters);} + ArraySink(byte *buf, unsigned int size) : m_buf(buf), m_size(size), m_total(0) {} + + unsigned int AvailableSize() {return m_size - STDMIN(m_total, (unsigned long)m_size);} + unsigned long TotalPutLength() {return m_total;} + + void IsolatedInitialize(const NameValuePairs ¶meters); + byte * CreatePutSpace(unsigned int &size); + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + +protected: + byte *m_buf; + unsigned int m_size; + unsigned long m_total; +}; + +//! Xor input to a memory buffer +class ArrayXorSink : public ArraySink +{ +public: + ArrayXorSink(byte *buf, unsigned int size) + : ArraySink(buf, size) {} + + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking); + byte * CreatePutSpace(unsigned int &size) {return BufferedTransformation::CreatePutSpace(size);} +}; + +//! . +class StringStore : public Store +{ +public: + StringStore(const char *string = NULL) + {StoreInitialize(MakeParameters("InputBuffer", ConstByteArrayParameter(string)));} + StringStore(const byte *string, unsigned int length) + {StoreInitialize(MakeParameters("InputBuffer", ConstByteArrayParameter(string, length)));} + template StringStore(const T &string) + {StoreInitialize(MakeParameters("InputBuffer", ConstByteArrayParameter(string)));} + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + +private: + void StoreInitialize(const NameValuePairs ¶meters); + + const byte *m_store; + unsigned int m_length, m_count; +}; + +//! . +class RandomNumberStore : public Store +{ +public: + RandomNumberStore(RandomNumberGenerator &rng, unsigned long length) + : m_rng(rng), m_length(length), m_count(0) {} + + bool AnyRetrievable() const {return MaxRetrievable() != 0;} + unsigned long MaxRetrievable() const {return m_length-m_count;} + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const + { + throw NotImplemented("RandomNumberStore: CopyRangeTo2() is not supported by this store"); + } + +private: + void StoreInitialize(const NameValuePairs ¶meters) {m_count = 0;} + + RandomNumberGenerator &m_rng; + const unsigned long m_length; + unsigned long m_count; +}; + +//! . +class NullStore : public Store +{ +public: + NullStore(unsigned long size = ULONG_MAX) : m_size(size) {} + void StoreInitialize(const NameValuePairs ¶meters) {} + unsigned long MaxRetrievable() const {return m_size;} + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + +private: + unsigned long m_size; +}; + +//! A Filter that pumps data into its attachment as input +class Source : public InputRejecting +{ +public: + Source(BufferedTransformation *attachment) + : InputRejecting(attachment) {} + + unsigned long Pump(unsigned long pumpMax=ULONG_MAX) + {Pump2(pumpMax); return pumpMax;} + unsigned int PumpMessages(unsigned int count=UINT_MAX) + {PumpMessages2(count); return count;} + void PumpAll() + {PumpAll2();} + virtual unsigned int Pump2(unsigned long &byteCount, bool blocking=true) =0; + virtual unsigned int PumpMessages2(unsigned int &messageCount, bool blocking=true) =0; + virtual unsigned int PumpAll2(bool blocking=true); + virtual bool SourceExhausted() const =0; + +protected: + void SourceInitialize(bool pumpAll, const NameValuePairs ¶meters) + { + IsolatedInitialize(parameters); + if (pumpAll) + PumpAll(); + } +}; + +//! Turn a Store into a Source +template +class SourceTemplate : public Source +{ +public: + SourceTemplate(BufferedTransformation *attachment) + : Source(attachment) {} + SourceTemplate(BufferedTransformation *attachment, T store) + : Source(attachment), m_store(store) {} + void IsolatedInitialize(const NameValuePairs ¶meters) + {m_store.IsolatedInitialize(parameters);} + unsigned int Pump2(unsigned long &byteCount, bool blocking=true) + {return m_store.TransferTo2(*AttachedTransformation(), byteCount, NULL_CHANNEL, blocking);} + unsigned int PumpMessages2(unsigned int &messageCount, bool blocking=true) + {return m_store.TransferMessagesTo2(*AttachedTransformation(), messageCount, NULL_CHANNEL, blocking);} + unsigned int PumpAll2(bool blocking=true) + {return m_store.TransferAllTo2(*AttachedTransformation(), NULL_CHANNEL, blocking);} + bool SourceExhausted() const + {return !m_store.AnyRetrievable() && !m_store.AnyMessages();} + void SetAutoSignalPropagation(int propagation) + {m_store.SetAutoSignalPropagation(propagation);} + int GetAutoSignalPropagation() const + {return m_store.GetAutoSignalPropagation();} + +protected: + T m_store; +}; + +//! . +class StringSource : public SourceTemplate +{ +public: + StringSource(BufferedTransformation *attachment = NULL) + : SourceTemplate(attachment) {} + StringSource(const char *string, bool pumpAll, BufferedTransformation *attachment = NULL) + : SourceTemplate(attachment) {SourceInitialize(pumpAll, MakeParameters("InputBuffer", ConstByteArrayParameter(string)));} + StringSource(const byte *string, unsigned int length, bool pumpAll, BufferedTransformation *attachment = NULL) + : SourceTemplate(attachment) {SourceInitialize(pumpAll, MakeParameters("InputBuffer", ConstByteArrayParameter(string, length)));} + +#ifdef __MWERKS__ // CW60 workaround + StringSource(const std::string &string, bool pumpAll, BufferedTransformation *attachment = NULL) +#else + template StringSource(const T &string, bool pumpAll, BufferedTransformation *attachment = NULL) +#endif + : SourceTemplate(attachment) {SourceInitialize(pumpAll, MakeParameters("InputBuffer", ConstByteArrayParameter(string)));} +}; + +//! . +class RandomNumberSource : public SourceTemplate +{ +public: + RandomNumberSource(RandomNumberGenerator &rng, unsigned int length, bool pumpAll, BufferedTransformation *attachment = NULL) + : SourceTemplate(attachment, RandomNumberStore(rng, length)) {if (pumpAll) PumpAll();} +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/fips140.cpp b/stepmania/src/crypto51/fips140.cpp new file mode 100644 index 0000000000..7781956a2e --- /dev/null +++ b/stepmania/src/crypto51/fips140.cpp @@ -0,0 +1,79 @@ +// fips140.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "fips140.h" +#include "trdlocal.h" // needs to be included last for cygwin + +NAMESPACE_BEGIN(CryptoPP) + +// Define this to 1 to turn on FIPS 140-2 compliance features, including additional tests during +// startup, random number generation, and key generation. These tests may affect performance. +#ifndef CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 +#define CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 0 +#endif + +#if (CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 && !defined(THREADS_AVAILABLE)) +#error FIPS 140-2 compliance requires the availability of thread local storage. +#endif + +#if (CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 && !defined(OS_RNG_AVAILABLE)) +#error FIPS 140-2 compliance requires the availability of OS provided RNG. +#endif + +PowerUpSelfTestStatus g_powerUpSelfTestStatus = POWER_UP_SELF_TEST_NOT_DONE; + +bool FIPS_140_2_ComplianceEnabled() +{ + return CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2; +} + +void SimulatePowerUpSelfTestFailure() +{ + g_powerUpSelfTestStatus = POWER_UP_SELF_TEST_FAILED; +} + +PowerUpSelfTestStatus GetPowerUpSelfTestStatus() +{ + return g_powerUpSelfTestStatus; +} + +#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 +ThreadLocalStorage & AccessPowerUpSelfTestInProgress() +{ + static ThreadLocalStorage selfTestInProgress; + return selfTestInProgress; +} +#endif + +bool PowerUpSelfTestInProgressOnThisThread() +{ +#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 + return AccessPowerUpSelfTestInProgress().GetValue() != NULL; +#else + assert(false); // should not be called + return false; +#endif +} + +void SetPowerUpSelfTestInProgressOnThisThread(bool inProgress) +{ +#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 + AccessPowerUpSelfTestInProgress().SetValue((void *)inProgress); +#endif +} + +void EncryptionPairwiseConsistencyTest_FIPS_140_Only(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor) +{ +#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 + EncryptionPairwiseConsistencyTest(encryptor, decryptor); +#endif +} + +void SignaturePairwiseConsistencyTest_FIPS_140_Only(const PK_Signer &signer, const PK_Verifier &verifier) +{ +#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 + SignaturePairwiseConsistencyTest(signer, verifier); +#endif +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/fips140.h b/stepmania/src/crypto51/fips140.h new file mode 100644 index 0000000000..76353ed5b1 --- /dev/null +++ b/stepmania/src/crypto51/fips140.h @@ -0,0 +1,47 @@ +#ifndef CRYPTOPP_FIPS140_H +#define CRYPTOPP_FIPS140_H + +/*! \file + FIPS 140 related functions and classes. +*/ + +#include "cryptlib.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! exception thrown when a crypto algorithm is used after a self test fails +class SelfTestFailure : public Exception +{ +public: + explicit SelfTestFailure(const std::string &s) : Exception(OTHER_ERROR, s) {} +}; + +//! returns whether FIPS 140-2 compliance features were enabled at compile time +bool FIPS_140_2_ComplianceEnabled(); + +//! enum values representing status of the power-up self test +enum PowerUpSelfTestStatus {POWER_UP_SELF_TEST_NOT_DONE, POWER_UP_SELF_TEST_FAILED, POWER_UP_SELF_TEST_PASSED}; + +//! perform the power-up self test, and set the self test status +void DoPowerUpSelfTest(const char *moduleFilename, const byte *expectedModuleSha1Digest); + +//! set the power-up self test status to POWER_UP_SELF_TEST_FAILED +void SimulatePowerUpSelfTestFailure(); + +//! return the current power-up self test status +PowerUpSelfTestStatus GetPowerUpSelfTestStatus(); + +// this is used by Algorithm constructor to allow Algorithm objects to be constructed for the self test +bool PowerUpSelfTestInProgressOnThisThread(); + +void SetPowerUpSelfTestInProgressOnThisThread(bool inProgress); + +void SignaturePairwiseConsistencyTest(const PK_Signer &signer, const PK_Verifier &verifier); +void EncryptionPairwiseConsistencyTest(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor); + +void SignaturePairwiseConsistencyTest_FIPS_140_Only(const PK_Signer &signer, const PK_Verifier &verifier); +void EncryptionPairwiseConsistencyTest_FIPS_140_Only(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor); + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/fltrimpl.h b/stepmania/src/crypto51/fltrimpl.h new file mode 100644 index 0000000000..a35e68b0a6 --- /dev/null +++ b/stepmania/src/crypto51/fltrimpl.h @@ -0,0 +1,42 @@ +#ifndef CRYPTOPP_FLTRIMPL_H +#define CRYPTOPP_FLTRIMPL_H + +#define FILTER_BEGIN \ + switch (m_continueAt) \ + { \ + case 0: \ + m_inputPosition = 0; + +#define FILTER_END_NO_MESSAGE_END_NO_RETURN \ + break; \ + default: \ + assert(false); \ + } + +#define FILTER_END_NO_MESSAGE_END \ + FILTER_END_NO_MESSAGE_END_NO_RETURN \ + return 0; + +/* +#define FILTER_END \ + case -1: \ + if (messageEnd && Output(-1, NULL, 0, messageEnd, blocking)) \ + return 1; \ + FILTER_END_NO_MESSAGE_END +*/ + +#define FILTER_OUTPUT2(site, statement, output, length, messageEnd) \ + {\ + case site: \ + statement; \ + if (Output(site, output, length, messageEnd, blocking)) \ + return STDMAX(1U, (unsigned int)length-m_inputPosition);\ + } + +#define FILTER_OUTPUT(site, output, length, messageEnd) \ + FILTER_OUTPUT2(site, 0, output, length, messageEnd) + +#define FILTER_OUTPUT_BYTE(site, output) \ + FILTER_OUTPUT(site, &(const byte &)(byte)output, 1, 0) + +#endif diff --git a/stepmania/src/crypto51/hex.cpp b/stepmania/src/crypto51/hex.cpp new file mode 100644 index 0000000000..fb6537948d --- /dev/null +++ b/stepmania/src/crypto51/hex.cpp @@ -0,0 +1,32 @@ +// hex.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "hex.h" + +NAMESPACE_BEGIN(CryptoPP) + +static const byte s_vecUpper[] = "0123456789ABCDEF"; +static const byte s_vecLower[] = "0123456789abcdef"; + +void HexEncoder::IsolatedInitialize(const NameValuePairs ¶meters) +{ + bool uppercase = parameters.GetValueWithDefault("Uppercase", true); + m_filter->Initialize(CombinedNameValuePairs( + parameters, + MakeParameters("EncodingLookupArray", uppercase ? &s_vecUpper[0] : &s_vecLower[0])("Log2Base", 4))); +} + +const int *HexDecoder::GetDecodingLookupArray() +{ + static bool s_initialized = false; + static int s_array[256]; + + if (!s_initialized) + { + InitializeDecodingLookupArray(s_array, s_vecUpper, 16, true); + s_initialized = true; + } + return s_array; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/hex.h b/stepmania/src/crypto51/hex.h new file mode 100644 index 0000000000..85cdaa8ae6 --- /dev/null +++ b/stepmania/src/crypto51/hex.h @@ -0,0 +1,36 @@ +#ifndef CRYPTOPP_HEX_H +#define CRYPTOPP_HEX_H + +#include "basecode.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! Converts given data to base 16 +class HexEncoder : public SimpleProxyFilter +{ +public: + HexEncoder(BufferedTransformation *attachment = NULL, bool uppercase = true, int outputGroupSize = 0, const std::string &separator = ":", const std::string &terminator = "") + : SimpleProxyFilter(new BaseN_Encoder(new Grouper), attachment) + { + IsolatedInitialize(MakeParameters("Uppercase", uppercase)("GroupSize", outputGroupSize)("Separator", ConstByteArrayParameter(separator))); + } + + void IsolatedInitialize(const NameValuePairs ¶meters); +}; + +//! Decode base 16 data back to bytes +class HexDecoder : public BaseN_Decoder +{ +public: + HexDecoder(BufferedTransformation *attachment = NULL) + : BaseN_Decoder(GetDecodingLookupArray(), 4, attachment) {} + + void IsolatedInitialize(const NameValuePairs ¶meters) {} + +private: + static const int *GetDecodingLookupArray(); +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/integer.cpp b/stepmania/src/crypto51/integer.cpp new file mode 100644 index 0000000000..e18507fd33 --- /dev/null +++ b/stepmania/src/crypto51/integer.cpp @@ -0,0 +1,4004 @@ +// integer.cpp - written and placed in the public domain by Wei Dai +// contains public domain code contributed by Alister Lee and Leonard Janke + +#include "pch.h" +#include "integer.h" +#include "modarith.h" +#include "nbtheory.h" +#include "asn.h" +#include "oids.h" +#include "words.h" +#include "algparam.h" +#include "pubkey.h" // for P1363_KDF2 +#include "sha.h" + +#include + +#ifdef SSE2_INTRINSICS_AVAILABLE +#include +#endif + +#include "algebra.cpp" +#include "eprecomp.cpp" + +NAMESPACE_BEGIN(CryptoPP) + +bool FunctionAssignIntToInteger(const std::type_info &valueType, void *pInteger, const void *pInt) +{ + if (valueType != typeid(Integer)) + return false; + *reinterpret_cast(pInteger) = *reinterpret_cast(pInt); + return true; +} + +static int DummyAssignIntToInteger = (AssignIntToInteger = FunctionAssignIntToInteger, 0); + +#ifdef SSE2_INTRINSICS_AVAILABLE +template +AllocatorBase::pointer AlignedAllocator::allocate(size_type n, const void *) +{ + if (n < 4) + return new T[n]; + else + return (T *)_mm_malloc(sizeof(T)*n, 16); + +} + +template +void AlignedAllocator::deallocate(void *p, size_type n) +{ + memset(p, 0, n*sizeof(T)); + if (n < 4) + delete [] p; + else + _mm_free(p); +} + +template class AlignedAllocator; +#endif + +#define MAKE_DWORD(lowWord, highWord) ((dword(highWord)< B[N]) + return 1; + else if (A[N] < B[N]) + return -1; + + return 0; +} + +static word Increment(word *A, unsigned int N, word B=1) +{ + assert(N); + word t = A[0]; + A[0] = t+B; + if (A[0] >= t) + return 0; + for (unsigned i=1; i>= 1; + for (unsigned int i = 0; i < N; i++) + { + dword a = ((const dword *)A)[i] + carry; + dword c = a + ((const dword *)B)[i]; + ((dword *)C)[i] = c; + carry = (a < carry) | (c < a); + } + return (word)carry; + } + else +#endif + { + word carry = 0; + for (unsigned int i = 0; i < N; i+=2) + { + dword u = (dword) carry + A[i] + B[i]; + C[i] = LOW_WORD(u); + u = (dword) HIGH_WORD(u) + A[i+1] + B[i+1]; + C[i+1] = LOW_WORD(u); + carry = HIGH_WORD(u); + } + return carry; + } +} + +word Portable::Subtract(word *C, const word *A, const word *B, unsigned int N) +{ + assert (N%2 == 0); + +#ifdef IS_LITTLE_ENDIAN + if (sizeof(dword) == sizeof(size_t)) // dword is only register size + { + dword borrow = 0; + N >>= 1; + for (unsigned int i = 0; i < N; i++) + { + dword a = ((const dword *)A)[i]; + dword b = a - borrow; + dword c = b - ((const dword *)B)[i]; + ((dword *)C)[i] = c; + borrow = (b > a) | (c > b); + } + return (word)borrow; + } + else +#endif + { + word borrow=0; + for (unsigned i = 0; i < N; i+=2) + { + dword u = (dword) A[i] - B[i] - borrow; + C[i] = LOW_WORD(u); + u = (dword) A[i+1] - B[i+1] - (word)(0-HIGH_WORD(u)); + C[i+1] = LOW_WORD(u); + borrow = 0-HIGH_WORD(u); + } + return borrow; + } +} + +void Portable::Multiply2(word *C, const word *A, const word *B) +{ +/* + word s; + dword d; + + if (A1 >= A0) + if (B0 >= B1) + { + s = 0; + d = (dword)(A1-A0)*(B0-B1); + } + else + { + s = (A1-A0); + d = (dword)s*(word)(B0-B1); + } + else + if (B0 > B1) + { + s = (B0-B1); + d = (word)(A1-A0)*(dword)s; + } + else + { + s = 0; + d = (dword)(A0-A1)*(B1-B0); + } +*/ + // this segment is the branchless equivalent of above + word D[4] = {A[1]-A[0], A[0]-A[1], B[0]-B[1], B[1]-B[0]}; + unsigned int ai = A[1] < A[0]; + unsigned int bi = B[0] < B[1]; + unsigned int di = ai & bi; + dword d = (dword)D[di]*D[di+2]; + D[1] = D[3] = 0; + unsigned int si = ai + !bi; + word s = D[si]; + + dword A0B0 = (dword)A[0]*B[0]; + C[0] = LOW_WORD(A0B0); + + dword A1B1 = (dword)A[1]*B[1]; + dword t = (dword) HIGH_WORD(A0B0) + LOW_WORD(A0B0) + LOW_WORD(d) + LOW_WORD(A1B1); + C[1] = LOW_WORD(t); + + t = A1B1 + HIGH_WORD(t) + HIGH_WORD(A0B0) + HIGH_WORD(d) + HIGH_WORD(A1B1) - s; + C[2] = LOW_WORD(t); + C[3] = HIGH_WORD(t); +} + +inline void Portable::Multiply2Bottom(word *C, const word *A, const word *B) +{ +#ifdef IS_LITTLE_ENDIAN + if (sizeof(dword) == sizeof(size_t)) + { + dword a = *(const dword *)A, b = *(const dword *)B; + ((dword *)C)[0] = a*b; + } + else +#endif + { + dword t = (dword)A[0]*B[0]; + C[0] = LOW_WORD(t); + C[1] = HIGH_WORD(t) + A[0]*B[1] + A[1]*B[0]; + } +} + +word Portable::Multiply2Add(word *C, const word *A, const word *B) +{ + word D[4] = {A[1]-A[0], A[0]-A[1], B[0]-B[1], B[1]-B[0]}; + unsigned int ai = A[1] < A[0]; + unsigned int bi = B[0] < B[1]; + unsigned int di = ai & bi; + dword d = (dword)D[di]*D[di+2]; + D[1] = D[3] = 0; + unsigned int si = ai + !bi; + word s = D[si]; + + dword A0B0 = (dword)A[0]*B[0]; + dword t = A0B0 + C[0]; + C[0] = LOW_WORD(t); + + dword A1B1 = (dword)A[1]*B[1]; + t = (dword) HIGH_WORD(t) + LOW_WORD(A0B0) + LOW_WORD(d) + LOW_WORD(A1B1) + C[1]; + C[1] = LOW_WORD(t); + + t = (dword) HIGH_WORD(t) + LOW_WORD(A1B1) + HIGH_WORD(A0B0) + HIGH_WORD(d) + HIGH_WORD(A1B1) - s + C[2]; + C[2] = LOW_WORD(t); + + t = (dword) HIGH_WORD(t) + HIGH_WORD(A1B1) + C[3]; + C[3] = LOW_WORD(t); + return HIGH_WORD(t); +} + +#define MulAcc(x, y) \ + p = (dword)A[x] * B[y] + c; \ + c = LOW_WORD(p); \ + p = (dword)d + HIGH_WORD(p); \ + d = LOW_WORD(p); \ + e += HIGH_WORD(p); + +#define SaveMulAcc(s, x, y) \ + R[s] = c; \ + p = (dword)A[x] * B[y] + d; \ + c = LOW_WORD(p); \ + p = (dword)e + HIGH_WORD(p); \ + d = LOW_WORD(p); \ + e = HIGH_WORD(p); + +#define SquAcc(x, y) \ + q = (dword)A[x] * A[y]; \ + p = q + c; \ + c = LOW_WORD(p); \ + p = (dword)d + HIGH_WORD(p); \ + d = LOW_WORD(p); \ + e += HIGH_WORD(p); \ + p = q + c; \ + c = LOW_WORD(p); \ + p = (dword)d + HIGH_WORD(p); \ + d = LOW_WORD(p); \ + e += HIGH_WORD(p); + +#define SaveSquAcc(s, x, y) \ + R[s] = c; \ + q = (dword)A[x] * A[y]; \ + p = q + d; \ + c = LOW_WORD(p); \ + p = (dword)e + HIGH_WORD(p); \ + d = LOW_WORD(p); \ + e = HIGH_WORD(p); \ + p = q + c; \ + c = LOW_WORD(p); \ + p = (dword)d + HIGH_WORD(p); \ + d = LOW_WORD(p); \ + e += HIGH_WORD(p); + +void Portable::Multiply4(word *R, const word *A, const word *B) +{ + dword p; + word c, d, e; + + p = (dword)A[0] * B[0]; + R[0] = LOW_WORD(p); + c = HIGH_WORD(p); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + SaveMulAcc(2, 0, 3); + MulAcc(1, 2); + MulAcc(2, 1); + MulAcc(3, 0); + + SaveMulAcc(3, 3, 1); + MulAcc(2, 2); + MulAcc(1, 3); + + SaveMulAcc(4, 2, 3); + MulAcc(3, 2); + + R[5] = c; + p = (dword)A[3] * B[3] + d; + R[6] = LOW_WORD(p); + R[7] = e + HIGH_WORD(p); +} + +void Portable::Square2(word *R, const word *A) +{ + dword p, q; + word c, d, e; + + p = (dword)A[0] * A[0]; + R[0] = LOW_WORD(p); + c = HIGH_WORD(p); + d = e = 0; + + SquAcc(0, 1); + + R[1] = c; + p = (dword)A[1] * A[1] + d; + R[2] = LOW_WORD(p); + R[3] = e + HIGH_WORD(p); +} + +void Portable::Square4(word *R, const word *A) +{ + const word *B = A; + dword p, q; + word c, d, e; + + p = (dword)A[0] * A[0]; + R[0] = LOW_WORD(p); + c = HIGH_WORD(p); + d = e = 0; + + SquAcc(0, 1); + + SaveSquAcc(1, 2, 0); + MulAcc(1, 1); + + SaveSquAcc(2, 0, 3); + SquAcc(1, 2); + + SaveSquAcc(3, 3, 1); + MulAcc(2, 2); + + SaveSquAcc(4, 2, 3); + + R[5] = c; + p = (dword)A[3] * A[3] + d; + R[6] = LOW_WORD(p); + R[7] = e + HIGH_WORD(p); +} + +void Portable::Multiply8(word *R, const word *A, const word *B) +{ + dword p; + word c, d, e; + + p = (dword)A[0] * B[0]; + R[0] = LOW_WORD(p); + c = HIGH_WORD(p); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + SaveMulAcc(2, 0, 3); + MulAcc(1, 2); + MulAcc(2, 1); + MulAcc(3, 0); + + SaveMulAcc(3, 0, 4); + MulAcc(1, 3); + MulAcc(2, 2); + MulAcc(3, 1); + MulAcc(4, 0); + + SaveMulAcc(4, 0, 5); + MulAcc(1, 4); + MulAcc(2, 3); + MulAcc(3, 2); + MulAcc(4, 1); + MulAcc(5, 0); + + SaveMulAcc(5, 0, 6); + MulAcc(1, 5); + MulAcc(2, 4); + MulAcc(3, 3); + MulAcc(4, 2); + MulAcc(5, 1); + MulAcc(6, 0); + + SaveMulAcc(6, 0, 7); + MulAcc(1, 6); + MulAcc(2, 5); + MulAcc(3, 4); + MulAcc(4, 3); + MulAcc(5, 2); + MulAcc(6, 1); + MulAcc(7, 0); + + SaveMulAcc(7, 1, 7); + MulAcc(2, 6); + MulAcc(3, 5); + MulAcc(4, 4); + MulAcc(5, 3); + MulAcc(6, 2); + MulAcc(7, 1); + + SaveMulAcc(8, 2, 7); + MulAcc(3, 6); + MulAcc(4, 5); + MulAcc(5, 4); + MulAcc(6, 3); + MulAcc(7, 2); + + SaveMulAcc(9, 3, 7); + MulAcc(4, 6); + MulAcc(5, 5); + MulAcc(6, 4); + MulAcc(7, 3); + + SaveMulAcc(10, 4, 7); + MulAcc(5, 6); + MulAcc(6, 5); + MulAcc(7, 4); + + SaveMulAcc(11, 5, 7); + MulAcc(6, 6); + MulAcc(7, 5); + + SaveMulAcc(12, 6, 7); + MulAcc(7, 6); + + R[13] = c; + p = (dword)A[7] * B[7] + d; + R[14] = LOW_WORD(p); + R[15] = e + HIGH_WORD(p); +} + +void Portable::Multiply4Bottom(word *R, const word *A, const word *B) +{ + dword p; + word c, d, e; + + p = (dword)A[0] * B[0]; + R[0] = LOW_WORD(p); + c = HIGH_WORD(p); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + R[2] = c; + R[3] = d + A[0] * B[3] + A[1] * B[2] + A[2] * B[1] + A[3] * B[0]; +} + +void Portable::Multiply8Bottom(word *R, const word *A, const word *B) +{ + dword p; + word c, d, e; + + p = (dword)A[0] * B[0]; + R[0] = LOW_WORD(p); + c = HIGH_WORD(p); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + SaveMulAcc(2, 0, 3); + MulAcc(1, 2); + MulAcc(2, 1); + MulAcc(3, 0); + + SaveMulAcc(3, 0, 4); + MulAcc(1, 3); + MulAcc(2, 2); + MulAcc(3, 1); + MulAcc(4, 0); + + SaveMulAcc(4, 0, 5); + MulAcc(1, 4); + MulAcc(2, 3); + MulAcc(3, 2); + MulAcc(4, 1); + MulAcc(5, 0); + + SaveMulAcc(5, 0, 6); + MulAcc(1, 5); + MulAcc(2, 4); + MulAcc(3, 3); + MulAcc(4, 2); + MulAcc(5, 1); + MulAcc(6, 0); + + R[6] = c; + R[7] = d + A[0] * B[7] + A[1] * B[6] + A[2] * B[5] + A[3] * B[4] + + A[4] * B[3] + A[5] * B[2] + A[6] * B[1] + A[7] * B[0]; +} + +#undef MulAcc +#undef SaveMulAcc +#undef SquAcc +#undef SaveSquAcc + +// CodeWarrior defines _MSC_VER +#if defined(_MSC_VER) && !defined(__MWERKS__) && defined(_M_IX86) && (_M_IX86<=700) + +class PentiumOptimized : public Portable +{ +public: + static word __fastcall Add(word *C, const word *A, const word *B, unsigned int N); + static word __fastcall Subtract(word *C, const word *A, const word *B, unsigned int N); + static inline void Square4(word *R, const word *A) + { + // VC60 workaround: MSVC 6.0 has an optimization bug that makes + // (dword)A*B where either A or B has been cast to a dword before + // very expensive. Revisit this function when this + // bug is fixed. + Multiply4(R, A, A); + } +}; + +typedef PentiumOptimized LowLevel; + +__declspec(naked) word __fastcall PentiumOptimized::Add(word *C, const word *A, const word *B, unsigned int N) +{ + __asm + { + push ebp + push ebx + push esi + push edi + + mov esi, [esp+24] ; N + mov ebx, [esp+20] ; B + + // now: ebx = B, ecx = C, edx = A, esi = N + + sub ecx, edx // hold the distance between C & A so we can add this to A to get C + xor eax, eax // clear eax + + sub eax, esi // eax is a negative index from end of B + lea ebx, [ebx+4*esi] // ebx is end of B + + sar eax, 1 // unit of eax is now dwords; this also clears the carry flag + jz loopend // if no dwords then nothing to do + +loopstart: + mov esi,[edx] // load lower word of A + mov ebp,[edx+4] // load higher word of A + + mov edi,[ebx+8*eax] // load lower word of B + lea edx,[edx+8] // advance A and C + + adc esi,edi // add lower words + mov edi,[ebx+8*eax+4] // load higher word of B + + adc ebp,edi // add higher words + inc eax // advance B + + mov [edx+ecx-8],esi // store lower word result + mov [edx+ecx-4],ebp // store higher word result + + jnz loopstart // loop until eax overflows and becomes zero + +loopend: + adc eax, 0 // store carry into eax (return result register) + pop edi + pop esi + pop ebx + pop ebp + ret 8 + } +} + +__declspec(naked) word __fastcall PentiumOptimized::Subtract(word *C, const word *A, const word *B, unsigned int N) +{ + __asm + { + push ebp + push ebx + push esi + push edi + + mov esi, [esp+24] ; N + mov ebx, [esp+20] ; B + + sub ecx, edx + xor eax, eax + + sub eax, esi + lea ebx, [ebx+4*esi] + + sar eax, 1 + jz loopend + +loopstart: + mov esi,[edx] + mov ebp,[edx+4] + + mov edi,[ebx+8*eax] + lea edx,[edx+8] + + sbb esi,edi + mov edi,[ebx+8*eax+4] + + sbb ebp,edi + inc eax + + mov [edx+ecx-8],esi + mov [edx+ecx-4],ebp + + jnz loopstart + +loopend: + adc eax, 0 + pop edi + pop esi + pop ebx + pop ebp + ret 8 + } +} + +#ifdef SSE2_INTRINSICS_AVAILABLE + +static bool GetSSE2Capability() +{ + word32 b; + + __asm + { + mov eax, 1 + cpuid + mov b, edx + } + + return (b & (1 << 26)) != 0; +} + +bool g_sse2DetectionDone = false, g_sse2Detected, g_sse2Enabled = true; + +static inline bool HasSSE2() +{ + if (g_sse2Enabled && !g_sse2DetectionDone) + { + g_sse2Detected = GetSSE2Capability(); + g_sse2DetectionDone = true; + } + return g_sse2Enabled && g_sse2Detected; +} + +class P4Optimized : public PentiumOptimized +{ +public: + static word __fastcall Add(word *C, const word *A, const word *B, unsigned int N); + static word __fastcall Subtract(word *C, const word *A, const word *B, unsigned int N); + static void Multiply4(word *C, const word *A, const word *B); + static void Multiply8(word *C, const word *A, const word *B); + static inline void Square4(word *R, const word *A) + { + Multiply4(R, A, A); + } + static void Multiply8Bottom(word *C, const word *A, const word *B); +}; + +static void __fastcall P4_Mul(__m128i *C, const __m128i *A, const __m128i *B) +{ + __m128i a3210 = _mm_load_si128(A); + __m128i b3210 = _mm_load_si128(B); + + __m128i sum; + + __m128i z = _mm_setzero_si128(); + __m128i a2b2_a0b0 = _mm_mul_epu32(a3210, b3210); + C[0] = a2b2_a0b0; + + __m128i a3120 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(3, 1, 2, 0)); + __m128i b3021 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(3, 0, 2, 1)); + __m128i a1b0_a0b1 = _mm_mul_epu32(a3120, b3021); + __m128i a1b0 = _mm_unpackhi_epi32(a1b0_a0b1, z); + __m128i a0b1 = _mm_unpacklo_epi32(a1b0_a0b1, z); + C[1] = _mm_add_epi64(a1b0, a0b1); + + __m128i a31 = _mm_srli_epi64(a3210, 32); + __m128i b31 = _mm_srli_epi64(b3210, 32); + __m128i a3b3_a1b1 = _mm_mul_epu32(a31, b31); + C[6] = a3b3_a1b1; + + __m128i a1b1 = _mm_unpacklo_epi32(a3b3_a1b1, z); + __m128i b3012 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(3, 0, 1, 2)); + __m128i a2b0_a0b2 = _mm_mul_epu32(a3210, b3012); + __m128i a0b2 = _mm_unpacklo_epi32(a2b0_a0b2, z); + __m128i a2b0 = _mm_unpackhi_epi32(a2b0_a0b2, z); + sum = _mm_add_epi64(a1b1, a0b2); + C[2] = _mm_add_epi64(sum, a2b0); + + __m128i a2301 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(2, 3, 0, 1)); + __m128i b2103 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(2, 1, 0, 3)); + __m128i a3b0_a1b2 = _mm_mul_epu32(a2301, b3012); + __m128i a2b1_a0b3 = _mm_mul_epu32(a3210, b2103); + __m128i a3b0 = _mm_unpackhi_epi32(a3b0_a1b2, z); + __m128i a1b2 = _mm_unpacklo_epi32(a3b0_a1b2, z); + __m128i a2b1 = _mm_unpackhi_epi32(a2b1_a0b3, z); + __m128i a0b3 = _mm_unpacklo_epi32(a2b1_a0b3, z); + __m128i sum1 = _mm_add_epi64(a3b0, a1b2); + sum = _mm_add_epi64(a2b1, a0b3); + C[3] = _mm_add_epi64(sum, sum1); + + __m128i a3b1_a1b3 = _mm_mul_epu32(a2301, b2103); + __m128i a2b2 = _mm_unpackhi_epi32(a2b2_a0b0, z); + __m128i a3b1 = _mm_unpackhi_epi32(a3b1_a1b3, z); + __m128i a1b3 = _mm_unpacklo_epi32(a3b1_a1b3, z); + sum = _mm_add_epi64(a2b2, a3b1); + C[4] = _mm_add_epi64(sum, a1b3); + + __m128i a1302 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(1, 3, 0, 2)); + __m128i b1203 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(1, 2, 0, 3)); + __m128i a3b2_a2b3 = _mm_mul_epu32(a1302, b1203); + __m128i a3b2 = _mm_unpackhi_epi32(a3b2_a2b3, z); + __m128i a2b3 = _mm_unpacklo_epi32(a3b2_a2b3, z); + C[5] = _mm_add_epi64(a3b2, a2b3); +} + +void P4Optimized::Multiply4(word *C, const word *A, const word *B) +{ + __m128i temp[7]; + const word *w = (word *)temp; + const __m64 *mw = (__m64 *)w; + + P4_Mul(temp, (__m128i *)A, (__m128i *)B); + + C[0] = w[0]; + + __m64 s1, s2; + + __m64 w1 = _m_from_int(w[1]); + __m64 w4 = mw[2]; + __m64 w6 = mw[3]; + __m64 w8 = mw[4]; + __m64 w10 = mw[5]; + __m64 w12 = mw[6]; + __m64 w14 = mw[7]; + __m64 w16 = mw[8]; + __m64 w18 = mw[9]; + __m64 w20 = mw[10]; + __m64 w22 = mw[11]; + __m64 w26 = _m_from_int(w[26]); + + s1 = _mm_add_si64(w1, w4); + C[1] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w6, w8); + s1 = _mm_add_si64(s1, s2); + C[2] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w10, w12); + s1 = _mm_add_si64(s1, s2); + C[3] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w14, w16); + s1 = _mm_add_si64(s1, s2); + C[4] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w18, w20); + s1 = _mm_add_si64(s1, s2); + C[5] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w22, w26); + s1 = _mm_add_si64(s1, s2); + C[6] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + C[7] = _m_to_int(s1) + w[27]; + _mm_empty(); +} + +void P4Optimized::Multiply8(word *C, const word *A, const word *B) +{ + __m128i temp[28]; + const word *w = (word *)temp; + const __m64 *mw = (__m64 *)w; + const word *x = (word *)temp+7*4; + const __m64 *mx = (__m64 *)x; + const word *y = (word *)temp+7*4*2; + const __m64 *my = (__m64 *)y; + const word *z = (word *)temp+7*4*3; + const __m64 *mz = (__m64 *)z; + + P4_Mul(temp, (__m128i *)A, (__m128i *)B); + + P4_Mul(temp+7, (__m128i *)A+1, (__m128i *)B); + + P4_Mul(temp+14, (__m128i *)A, (__m128i *)B+1); + + P4_Mul(temp+21, (__m128i *)A+1, (__m128i *)B+1); + + C[0] = w[0]; + + __m64 s1, s2, s3, s4; + + __m64 w1 = _m_from_int(w[1]); + __m64 w4 = mw[2]; + __m64 w6 = mw[3]; + __m64 w8 = mw[4]; + __m64 w10 = mw[5]; + __m64 w12 = mw[6]; + __m64 w14 = mw[7]; + __m64 w16 = mw[8]; + __m64 w18 = mw[9]; + __m64 w20 = mw[10]; + __m64 w22 = mw[11]; + __m64 w26 = _m_from_int(w[26]); + __m64 w27 = _m_from_int(w[27]); + + __m64 x0 = _m_from_int(x[0]); + __m64 x1 = _m_from_int(x[1]); + __m64 x4 = mx[2]; + __m64 x6 = mx[3]; + __m64 x8 = mx[4]; + __m64 x10 = mx[5]; + __m64 x12 = mx[6]; + __m64 x14 = mx[7]; + __m64 x16 = mx[8]; + __m64 x18 = mx[9]; + __m64 x20 = mx[10]; + __m64 x22 = mx[11]; + __m64 x26 = _m_from_int(x[26]); + __m64 x27 = _m_from_int(x[27]); + + __m64 y0 = _m_from_int(y[0]); + __m64 y1 = _m_from_int(y[1]); + __m64 y4 = my[2]; + __m64 y6 = my[3]; + __m64 y8 = my[4]; + __m64 y10 = my[5]; + __m64 y12 = my[6]; + __m64 y14 = my[7]; + __m64 y16 = my[8]; + __m64 y18 = my[9]; + __m64 y20 = my[10]; + __m64 y22 = my[11]; + __m64 y26 = _m_from_int(y[26]); + __m64 y27 = _m_from_int(y[27]); + + __m64 z0 = _m_from_int(z[0]); + __m64 z1 = _m_from_int(z[1]); + __m64 z4 = mz[2]; + __m64 z6 = mz[3]; + __m64 z8 = mz[4]; + __m64 z10 = mz[5]; + __m64 z12 = mz[6]; + __m64 z14 = mz[7]; + __m64 z16 = mz[8]; + __m64 z18 = mz[9]; + __m64 z20 = mz[10]; + __m64 z22 = mz[11]; + __m64 z26 = _m_from_int(z[26]); + + s1 = _mm_add_si64(w1, w4); + C[1] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w6, w8); + s1 = _mm_add_si64(s1, s2); + C[2] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w10, w12); + s1 = _mm_add_si64(s1, s2); + C[3] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x0, y0); + s2 = _mm_add_si64(w14, w16); + s1 = _mm_add_si64(s1, s3); + s1 = _mm_add_si64(s1, s2); + C[4] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x1, y1); + s4 = _mm_add_si64(x4, y4); + s1 = _mm_add_si64(s1, w18); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w20); + s1 = _mm_add_si64(s1, s3); + C[5] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x6, y6); + s4 = _mm_add_si64(x8, y8); + s1 = _mm_add_si64(s1, w22); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w26); + s1 = _mm_add_si64(s1, s3); + C[6] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x10, y10); + s4 = _mm_add_si64(x12, y12); + s1 = _mm_add_si64(s1, w27); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, s3); + C[7] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x14, y14); + s4 = _mm_add_si64(x16, y16); + s1 = _mm_add_si64(s1, z0); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, s3); + C[8] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x18, y18); + s4 = _mm_add_si64(x20, y20); + s1 = _mm_add_si64(s1, z1); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, z4); + s1 = _mm_add_si64(s1, s3); + C[9] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x22, y22); + s4 = _mm_add_si64(x26, y26); + s1 = _mm_add_si64(s1, z6); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, z8); + s1 = _mm_add_si64(s1, s3); + C[10] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x27, y27); + s1 = _mm_add_si64(s1, z10); + s1 = _mm_add_si64(s1, z12); + s1 = _mm_add_si64(s1, s3); + C[11] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(z14, z16); + s1 = _mm_add_si64(s1, s3); + C[12] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(z18, z20); + s1 = _mm_add_si64(s1, s3); + C[13] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(z22, z26); + s1 = _mm_add_si64(s1, s3); + C[14] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + C[15] = z[27] + _m_to_int(s1); + _mm_empty(); +} + +void P4Optimized::Multiply8Bottom(word *C, const word *A, const word *B) +{ + __m128i temp[21]; + const word *w = (word *)temp; + const __m64 *mw = (__m64 *)w; + const word *x = (word *)temp+7*4; + const __m64 *mx = (__m64 *)x; + const word *y = (word *)temp+7*4*2; + const __m64 *my = (__m64 *)y; + + P4_Mul(temp, (__m128i *)A, (__m128i *)B); + + P4_Mul(temp+7, (__m128i *)A+1, (__m128i *)B); + + P4_Mul(temp+14, (__m128i *)A, (__m128i *)B+1); + + C[0] = w[0]; + + __m64 s1, s2, s3, s4; + + __m64 w1 = _m_from_int(w[1]); + __m64 w4 = mw[2]; + __m64 w6 = mw[3]; + __m64 w8 = mw[4]; + __m64 w10 = mw[5]; + __m64 w12 = mw[6]; + __m64 w14 = mw[7]; + __m64 w16 = mw[8]; + __m64 w18 = mw[9]; + __m64 w20 = mw[10]; + __m64 w22 = mw[11]; + __m64 w26 = _m_from_int(w[26]); + + __m64 x0 = _m_from_int(x[0]); + __m64 x1 = _m_from_int(x[1]); + __m64 x4 = mx[2]; + __m64 x6 = mx[3]; + __m64 x8 = mx[4]; + + __m64 y0 = _m_from_int(y[0]); + __m64 y1 = _m_from_int(y[1]); + __m64 y4 = my[2]; + __m64 y6 = my[3]; + __m64 y8 = my[4]; + + s1 = _mm_add_si64(w1, w4); + C[1] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w6, w8); + s1 = _mm_add_si64(s1, s2); + C[2] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s2 = _mm_add_si64(w10, w12); + s1 = _mm_add_si64(s1, s2); + C[3] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x0, y0); + s2 = _mm_add_si64(w14, w16); + s1 = _mm_add_si64(s1, s3); + s1 = _mm_add_si64(s1, s2); + C[4] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x1, y1); + s4 = _mm_add_si64(x4, y4); + s1 = _mm_add_si64(s1, w18); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w20); + s1 = _mm_add_si64(s1, s3); + C[5] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + s3 = _mm_add_si64(x6, y6); + s4 = _mm_add_si64(x8, y8); + s1 = _mm_add_si64(s1, w22); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w26); + s1 = _mm_add_si64(s1, s3); + C[6] = _m_to_int(s1); + s1 = _m_psrlqi(s1, 32); + + C[7] = _m_to_int(s1) + w[27] + x[10] + y[10] + x[12] + y[12]; + _mm_empty(); +} + +__declspec(naked) word __fastcall P4Optimized::Add(word *C, const word *A, const word *B, unsigned int N) +{ + __asm + { + sub esp, 16 + xor eax, eax + mov [esp], edi + mov [esp+4], esi + mov [esp+8], ebx + mov [esp+12], ebp + + mov ebx, [esp+20] // B + mov esi, [esp+24] // N + + // now: ebx = B, ecx = C, edx = A, esi = N + + neg esi + jz loopend // if no dwords then nothing to do + + mov edi, [edx] + mov ebp, [ebx] + +loopstart: + add edi, eax + jc carry1 + + xor eax, eax + +carry1continue: + add edi, ebp + mov ebp, 1 + mov [ecx], edi + mov edi, [edx+4] + cmovc eax, ebp + mov ebp, [ebx+4] + lea ebx, [ebx+8] + add edi, eax + jc carry2 + + xor eax, eax + +carry2continue: + add edi, ebp + mov ebp, 1 + cmovc eax, ebp + mov [ecx+4], edi + add ecx, 8 + mov edi, [edx+8] + add edx, 8 + add esi, 2 + mov ebp, [ebx] + jnz loopstart + +loopend: + mov edi, [esp] + mov esi, [esp+4] + mov ebx, [esp+8] + mov ebp, [esp+12] + add esp, 16 + ret 8 + +carry1: + mov eax, 1 + jmp carry1continue + +carry2: + mov eax, 1 + jmp carry2continue + } +} + +__declspec(naked) word __fastcall P4Optimized::Subtract(word *C, const word *A, const word *B, unsigned int N) +{ + __asm + { + sub esp, 16 + xor eax, eax + mov [esp], edi + mov [esp+4], esi + mov [esp+8], ebx + mov [esp+12], ebp + + mov ebx, [esp+20] // B + mov esi, [esp+24] // N + + // now: ebx = B, ecx = C, edx = A, esi = N + + neg esi + jz loopend // if no dwords then nothing to do + + mov edi, [edx] + mov ebp, [ebx] + +loopstart: + sub edi, eax + jc carry1 + + xor eax, eax + +carry1continue: + sub edi, ebp + mov ebp, 1 + mov [ecx], edi + mov edi, [edx+4] + cmovc eax, ebp + mov ebp, [ebx+4] + lea ebx, [ebx+8] + sub edi, eax + jc carry2 + + xor eax, eax + +carry2continue: + sub edi, ebp + mov ebp, 1 + cmovc eax, ebp + mov [ecx+4], edi + add ecx, 8 + mov edi, [edx+8] + add edx, 8 + add esi, 2 + mov ebp, [ebx] + jnz loopstart + +loopend: + mov edi, [esp] + mov esi, [esp+4] + mov ebx, [esp+8] + mov ebp, [esp+12] + add esp, 16 + ret 8 + +carry1: + mov eax, 1 + jmp carry1continue + +carry2: + mov eax, 1 + jmp carry2continue + } +} + +#endif // #ifdef SSE2_INTRINSICS_AVAILABLE + +#elif defined(__GNUC__) && defined(__i386__) + +class PentiumOptimized : public Portable +{ +public: +#ifndef __pic__ // -fpic uses up a register, leaving too few for the asm code + static word Add(word *C, const word *A, const word *B, unsigned int N); + static word Subtract(word *C, const word *A, const word *B, unsigned int N); +#endif + static void Square4(word *R, const word *A); + static void Multiply4(word *C, const word *A, const word *B); + static void Multiply8(word *C, const word *A, const word *B); +}; + +typedef PentiumOptimized LowLevel; + +// Add and Subtract assembly code originally contributed by Alister Lee + +#ifndef __pic__ +__attribute__((regparm(3))) word PentiumOptimized::Add(word *C, const word *A, const word *B, unsigned int N) +{ + assert (N%2 == 0); + + register word carry, temp; + + __asm__ __volatile__( + "push %%ebp;" + "sub %3, %2;" + "xor %0, %0;" + "sub %4, %0;" + "lea (%1,%4,4), %1;" + "sar $1, %0;" + "jz 1f;" + + "0:;" + "mov 0(%3), %4;" + "mov 4(%3), %%ebp;" + "mov (%1,%0,8), %5;" + "lea 8(%3), %3;" + "adc %5, %4;" + "mov 4(%1,%0,8), %5;" + "adc %5, %%ebp;" + "inc %0;" + "mov %4, -8(%3, %2);" + "mov %%ebp, -4(%3, %2);" + "jnz 0b;" + + "1:;" + "adc $0, %0;" + "pop %%ebp;" + + : "=aSD" (carry), "+r" (B), "+r" (C), "+r" (A), "+r" (N), "=r" (temp) + : : "cc", "memory"); + + return carry; +} + +__attribute__((regparm(3))) word PentiumOptimized::Subtract(word *C, const word *A, const word *B, unsigned int N) +{ + assert (N%2 == 0); + + register word carry, temp; + + __asm__ __volatile__( + "push %%ebp;" + "sub %3, %2;" + "xor %0, %0;" + "sub %4, %0;" + "lea (%1,%4,4), %1;" + "sar $1, %0;" + "jz 1f;" + + "0:;" + "mov 0(%3), %4;" + "mov 4(%3), %%ebp;" + "mov (%1,%0,8), %5;" + "lea 8(%3), %3;" + "sbb %5, %4;" + "mov 4(%1,%0,8), %5;" + "sbb %5, %%ebp;" + "inc %0;" + "mov %4, -8(%3, %2);" + "mov %%ebp, -4(%3, %2);" + "jnz 0b;" + + "1:;" + "adc $0, %0;" + "pop %%ebp;" + + : "=aSD" (carry), "+r" (B), "+r" (C), "+r" (A), "+r" (N), "=r" (temp) + : : "cc", "memory"); + + return carry; +} +#endif // __pic__ + +// Comba square and multiply assembly code originally contributed by Leonard Janke + +#define SqrStartup \ + "push %%ebp\n\t" \ + "push %%esi\n\t" \ + "push %%ebx\n\t" \ + "xor %%ebp, %%ebp\n\t" \ + "xor %%ebx, %%ebx\n\t" \ + "xor %%ecx, %%ecx\n\t" + +#define SqrShiftCarry \ + "mov %%ebx, %%ebp\n\t" \ + "mov %%ecx, %%ebx\n\t" \ + "xor %%ecx, %%ecx\n\t" + +#define SqrAccumulate(i,j) \ + "mov 4*"#j"(%%esi), %%eax\n\t" \ + "mull 4*"#i"(%%esi)\n\t" \ + "add %%eax, %%ebp\n\t" \ + "adc %%edx, %%ebx\n\t" \ + "adc %%ch, %%cl\n\t" \ + "add %%eax, %%ebp\n\t" \ + "adc %%edx, %%ebx\n\t" \ + "adc %%ch, %%cl\n\t" + +#define SqrAccumulateCentre(i) \ + "mov 4*"#i"(%%esi), %%eax\n\t" \ + "mull 4*"#i"(%%esi)\n\t" \ + "add %%eax, %%ebp\n\t" \ + "adc %%edx, %%ebx\n\t" \ + "adc %%ch, %%cl\n\t" + +#define SqrStoreDigit(X) \ + "mov %%ebp, 4*"#X"(%%edi)\n\t" \ + +#define SqrLastDiagonal(digits) \ + "mov 4*("#digits"-1)(%%esi), %%eax\n\t" \ + "mull 4*("#digits"-1)(%%esi)\n\t" \ + "add %%eax, %%ebp\n\t" \ + "adc %%edx, %%ebx\n\t" \ + "mov %%ebp, 4*(2*"#digits"-2)(%%edi)\n\t" \ + "mov %%ebx, 4*(2*"#digits"-1)(%%edi)\n\t" + +#define SqrCleanup \ + "pop %%ebx\n\t" \ + "pop %%esi\n\t" \ + "pop %%ebp\n\t" + +void PentiumOptimized::Square4(word* Y, const word* X) +{ + __asm__ __volatile__( + SqrStartup + + SqrAccumulateCentre(0) + SqrStoreDigit(0) + SqrShiftCarry + + SqrAccumulate(1,0) + SqrStoreDigit(1) + SqrShiftCarry + + SqrAccumulate(2,0) + SqrAccumulateCentre(1) + SqrStoreDigit(2) + SqrShiftCarry + + SqrAccumulate(3,0) + SqrAccumulate(2,1) + SqrStoreDigit(3) + SqrShiftCarry + + SqrAccumulate(3,1) + SqrAccumulateCentre(2) + SqrStoreDigit(4) + SqrShiftCarry + + SqrAccumulate(3,2) + SqrStoreDigit(5) + SqrShiftCarry + + SqrLastDiagonal(4) + + SqrCleanup + + : + : "D" (Y), "S" (X) + : "eax", "ecx", "edx", "ebp", "memory" + ); +} + +#define MulStartup \ + "push %%ebp\n\t" \ + "push %%esi\n\t" \ + "push %%ebx\n\t" \ + "push %%edi\n\t" \ + "mov %%eax, %%ebx \n\t" \ + "xor %%ebp, %%ebp\n\t" \ + "xor %%edi, %%edi\n\t" \ + "xor %%ecx, %%ecx\n\t" + +#define MulShiftCarry \ + "mov %%edx, %%ebp\n\t" \ + "mov %%ecx, %%edi\n\t" \ + "xor %%ecx, %%ecx\n\t" + +#define MulAccumulate(i,j) \ + "mov 4*"#j"(%%ebx), %%eax\n\t" \ + "mull 4*"#i"(%%esi)\n\t" \ + "add %%eax, %%ebp\n\t" \ + "adc %%edx, %%edi\n\t" \ + "adc %%ch, %%cl\n\t" + +#define MulStoreDigit(X) \ + "mov %%edi, %%edx \n\t" \ + "mov (%%esp), %%edi \n\t" \ + "mov %%ebp, 4*"#X"(%%edi)\n\t" \ + "mov %%edi, (%%esp)\n\t" + +#define MulLastDiagonal(digits) \ + "mov 4*("#digits"-1)(%%ebx), %%eax\n\t" \ + "mull 4*("#digits"-1)(%%esi)\n\t" \ + "add %%eax, %%ebp\n\t" \ + "adc %%edi, %%edx\n\t" \ + "mov (%%esp), %%edi\n\t" \ + "mov %%ebp, 4*(2*"#digits"-2)(%%edi)\n\t" \ + "mov %%edx, 4*(2*"#digits"-1)(%%edi)\n\t" + +#define MulCleanup \ + "pop %%edi\n\t" \ + "pop %%ebx\n\t" \ + "pop %%esi\n\t" \ + "pop %%ebp\n\t" + +void PentiumOptimized::Multiply4(word* Z, const word* X, const word* Y) +{ + __asm__ __volatile__( + MulStartup + MulAccumulate(0,0) + MulStoreDigit(0) + MulShiftCarry + + MulAccumulate(1,0) + MulAccumulate(0,1) + MulStoreDigit(1) + MulShiftCarry + + MulAccumulate(2,0) + MulAccumulate(1,1) + MulAccumulate(0,2) + MulStoreDigit(2) + MulShiftCarry + + MulAccumulate(3,0) + MulAccumulate(2,1) + MulAccumulate(1,2) + MulAccumulate(0,3) + MulStoreDigit(3) + MulShiftCarry + + MulAccumulate(3,1) + MulAccumulate(2,2) + MulAccumulate(1,3) + MulStoreDigit(4) + MulShiftCarry + + MulAccumulate(3,2) + MulAccumulate(2,3) + MulStoreDigit(5) + MulShiftCarry + + MulLastDiagonal(4) + + MulCleanup + + : + : "D" (Z), "S" (X), "a" (Y) + : "%ecx", "%edx", "memory" + ); +} + +void PentiumOptimized::Multiply8(word* Z, const word* X, const word* Y) +{ + __asm__ __volatile__( + MulStartup + MulAccumulate(0,0) + MulStoreDigit(0) + MulShiftCarry + + MulAccumulate(1,0) + MulAccumulate(0,1) + MulStoreDigit(1) + MulShiftCarry + + MulAccumulate(2,0) + MulAccumulate(1,1) + MulAccumulate(0,2) + MulStoreDigit(2) + MulShiftCarry + + MulAccumulate(3,0) + MulAccumulate(2,1) + MulAccumulate(1,2) + MulAccumulate(0,3) + MulStoreDigit(3) + MulShiftCarry + + MulAccumulate(4,0) + MulAccumulate(3,1) + MulAccumulate(2,2) + MulAccumulate(1,3) + MulAccumulate(0,4) + MulStoreDigit(4) + MulShiftCarry + + MulAccumulate(5,0) + MulAccumulate(4,1) + MulAccumulate(3,2) + MulAccumulate(2,3) + MulAccumulate(1,4) + MulAccumulate(0,5) + MulStoreDigit(5) + MulShiftCarry + + MulAccumulate(6,0) + MulAccumulate(5,1) + MulAccumulate(4,2) + MulAccumulate(3,3) + MulAccumulate(2,4) + MulAccumulate(1,5) + MulAccumulate(0,6) + MulStoreDigit(6) + MulShiftCarry + + MulAccumulate(7,0) + MulAccumulate(6,1) + MulAccumulate(5,2) + MulAccumulate(4,3) + MulAccumulate(3,4) + MulAccumulate(2,5) + MulAccumulate(1,6) + MulAccumulate(0,7) + MulStoreDigit(7) + MulShiftCarry + + MulAccumulate(7,1) + MulAccumulate(6,2) + MulAccumulate(5,3) + MulAccumulate(4,4) + MulAccumulate(3,5) + MulAccumulate(2,6) + MulAccumulate(1,7) + MulStoreDigit(8) + MulShiftCarry + + MulAccumulate(7,2) + MulAccumulate(6,3) + MulAccumulate(5,4) + MulAccumulate(4,5) + MulAccumulate(3,6) + MulAccumulate(2,7) + MulStoreDigit(9) + MulShiftCarry + + MulAccumulate(7,3) + MulAccumulate(6,4) + MulAccumulate(5,5) + MulAccumulate(4,6) + MulAccumulate(3,7) + MulStoreDigit(10) + MulShiftCarry + + MulAccumulate(7,4) + MulAccumulate(6,5) + MulAccumulate(5,6) + MulAccumulate(4,7) + MulStoreDigit(11) + MulShiftCarry + + MulAccumulate(7,5) + MulAccumulate(6,6) + MulAccumulate(5,7) + MulStoreDigit(12) + MulShiftCarry + + MulAccumulate(7,6) + MulAccumulate(6,7) + MulStoreDigit(13) + MulShiftCarry + + MulLastDiagonal(8) + + MulCleanup + + : + : "D" (Z), "S" (X), "a" (Y) + : "%ecx", "%edx", "memory" + ); +} + +#elif defined(__GNUC__) && defined(__alpha__) + +class AlphaOptimized : public Portable +{ +public: + static inline void Multiply2(word *C, const word *A, const word *B); + static inline word Multiply2Add(word *C, const word *A, const word *B); + static inline void Multiply4(word *C, const word *A, const word *B); + static inline unsigned int MultiplyRecursionLimit() {return 4;} + + static inline void Multiply4Bottom(word *C, const word *A, const word *B); + static inline unsigned int MultiplyBottomRecursionLimit() {return 4;} + + static inline void Square4(word *R, const word *A) + { + Multiply4(R, A, A); + } +}; + +typedef AlphaOptimized LowLevel; + +inline void AlphaOptimized::Multiply2(word *C, const word *A, const word *B) +{ + register dword c, a = *(const dword *)A, b = *(const dword *)B; + ((dword *)C)[0] = a*b; + __asm__("umulh %1,%2,%0" : "=r" (c) : "r" (a), "r" (b)); + ((dword *)C)[1] = c; +} + +inline word AlphaOptimized::Multiply2Add(word *C, const word *A, const word *B) +{ + register dword c, d, e, a = *(const dword *)A, b = *(const dword *)B; + c = ((dword *)C)[0]; + d = a*b + c; + __asm__("umulh %1,%2,%0" : "=r" (e) : "r" (a), "r" (b)); + ((dword *)C)[0] = d; + d = (d < c); + c = ((dword *)C)[1] + d; + d = (c < d); + c += e; + ((dword *)C)[1] = c; + d |= (c < e); + return d; +} + +inline void AlphaOptimized::Multiply4(word *R, const word *A, const word *B) +{ + Multiply2(R, A, B); + Multiply2(R+4, A+2, B+2); + word carry = Multiply2Add(R+2, A+0, B+2); + carry += Multiply2Add(R+2, A+2, B+0); + Increment(R+6, 2, carry); +} + +static inline void Multiply2BottomAdd(word *C, const word *A, const word *B) +{ + register dword a = *(const dword *)A, b = *(const dword *)B; + ((dword *)C)[0] = a*b + ((dword *)C)[0]; +} + +inline void AlphaOptimized::Multiply4Bottom(word *R, const word *A, const word *B) +{ + Multiply2(R, A, B); + Multiply2BottomAdd(R+2, A+0, B+2); + Multiply2BottomAdd(R+2, A+2, B+0); +} + +#else // no processor specific code available + +typedef Portable LowLevel; + +#endif + +// ******************************************************** + +#define A0 A +#define A1 (A+N2) +#define B0 B +#define B1 (B+N2) + +#define T0 T +#define T1 (T+N2) +#define T2 (T+N) +#define T3 (T+N+N2) + +#define R0 R +#define R1 (R+N2) +#define R2 (R+N) +#define R3 (R+N+N2) + +//VC60 workaround: compiler bug triggered without the extra dummy parameters + +// R[2*N] - result = A*B +// T[2*N] - temporary work space +// A[N] --- multiplier +// B[N] --- multiplicant + +template +void DoRecursiveMultiply(word *R, word *T, const word *A, const word *B, unsigned int N, const P *dummy=NULL); + +template +inline void RecursiveMultiply(word *R, word *T, const word *A, const word *B, unsigned int N, const P *dummy=NULL) +{ + assert(N>=2 && N%2==0); + + if (P::MultiplyRecursionLimit() >= 8 && N==8) + P::Multiply8(R, A, B); + else if (P::MultiplyRecursionLimit() >= 4 && N==4) + P::Multiply4(R, A, B); + else if (N==2) + P::Multiply2(R, A, B); + else + DoRecursiveMultiply

    (R, T, A, B, N, NULL); // VC60 workaround: needs this NULL +} + +template +void DoRecursiveMultiply(word *R, word *T, const word *A, const word *B, unsigned int N, const P *dummy) +{ + const unsigned int N2 = N/2; + int carry; + + int aComp = Compare(A0, A1, N2); + int bComp = Compare(B0, B1, N2); + + switch (2*aComp + aComp + bComp) + { + case -4: + P::Subtract(R0, A1, A0, N2); + P::Subtract(R1, B0, B1, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + P::Subtract(T1, T1, R0, N2); + carry = -1; + break; + case -2: + P::Subtract(R0, A1, A0, N2); + P::Subtract(R1, B0, B1, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + carry = 0; + break; + case 2: + P::Subtract(R0, A0, A1, N2); + P::Subtract(R1, B1, B0, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + carry = 0; + break; + case 4: + P::Subtract(R0, A1, A0, N2); + P::Subtract(R1, B0, B1, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + P::Subtract(T1, T1, R1, N2); + carry = -1; + break; + default: + SetWords(T0, 0, N); + carry = 0; + } + + RecursiveMultiply

    (R0, T2, A0, B0, N2); + RecursiveMultiply

    (R2, T2, A1, B1, N2); + + // now T[01] holds (A1-A0)*(B0-B1), R[01] holds A0*B0, R[23] holds A1*B1 + + carry += P::Add(T0, T0, R0, N); + carry += P::Add(T0, T0, R2, N); + carry += P::Add(R1, R1, T0, N); + + assert (carry >= 0 && carry <= 2); + Increment(R3, N2, carry); +} + +// R[2*N] - result = A*A +// T[2*N] - temporary work space +// A[N] --- number to be squared + +template +void DoRecursiveSquare(word *R, word *T, const word *A, unsigned int N, const P *dummy=NULL); + +template +inline void RecursiveSquare(word *R, word *T, const word *A, unsigned int N, const P *dummy=NULL) +{ + assert(N && N%2==0); + if (P::SquareRecursionLimit() >= 8 && N==8) + P::Square8(R, A); + if (P::SquareRecursionLimit() >= 4 && N==4) + P::Square4(R, A); + else if (N==2) + P::Square2(R, A); + else + DoRecursiveSquare

    (R, T, A, N, NULL); // VC60 workaround: needs this NULL +} + +template +void DoRecursiveSquare(word *R, word *T, const word *A, unsigned int N, const P *dummy) +{ + const unsigned int N2 = N/2; + + RecursiveSquare

    (R0, T2, A0, N2); + RecursiveSquare

    (R2, T2, A1, N2); + RecursiveMultiply

    (T0, T2, A0, A1, N2); + + word carry = P::Add(R1, R1, T0, N); + carry += P::Add(R1, R1, T0, N); + Increment(R3, N2, carry); +} + +// R[N] - bottom half of A*B +// T[N] - temporary work space +// A[N] - multiplier +// B[N] - multiplicant + +template +void DoRecursiveMultiplyBottom(word *R, word *T, const word *A, const word *B, unsigned int N, const P *dummy=NULL); + +template +inline void RecursiveMultiplyBottom(word *R, word *T, const word *A, const word *B, unsigned int N, const P *dummy=NULL) +{ + assert(N>=2 && N%2==0); + if (P::MultiplyBottomRecursionLimit() >= 8 && N==8) + P::Multiply8Bottom(R, A, B); + else if (P::MultiplyBottomRecursionLimit() >= 4 && N==4) + P::Multiply4Bottom(R, A, B); + else if (N==2) + P::Multiply2Bottom(R, A, B); + else + DoRecursiveMultiplyBottom

    (R, T, A, B, N, NULL); +} + +template +void DoRecursiveMultiplyBottom(word *R, word *T, const word *A, const word *B, unsigned int N, const P *dummy) +{ + const unsigned int N2 = N/2; + + RecursiveMultiply

    (R, T, A0, B0, N2); + RecursiveMultiplyBottom

    (T0, T1, A1, B0, N2); + P::Add(R1, R1, T0, N2); + RecursiveMultiplyBottom

    (T0, T1, A0, B1, N2); + P::Add(R1, R1, T0, N2); +} + +// R[N] --- upper half of A*B +// T[2*N] - temporary work space +// L[N] --- lower half of A*B +// A[N] --- multiplier +// B[N] --- multiplicant + +template +void RecursiveMultiplyTop(word *R, word *T, const word *L, const word *A, const word *B, unsigned int N, const P *dummy=NULL) +{ + assert(N>=2 && N%2==0); + + if (N==4) + { + P::Multiply4(T, A, B); + ((dword *)R)[0] = ((dword *)T)[2]; + ((dword *)R)[1] = ((dword *)T)[3]; + } + else if (N==2) + { + P::Multiply2(T, A, B); + ((dword *)R)[0] = ((dword *)T)[1]; + } + else + { + const unsigned int N2 = N/2; + int carry; + + int aComp = Compare(A0, A1, N2); + int bComp = Compare(B0, B1, N2); + + switch (2*aComp + aComp + bComp) + { + case -4: + P::Subtract(R0, A1, A0, N2); + P::Subtract(R1, B0, B1, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + P::Subtract(T1, T1, R0, N2); + carry = -1; + break; + case -2: + P::Subtract(R0, A1, A0, N2); + P::Subtract(R1, B0, B1, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + carry = 0; + break; + case 2: + P::Subtract(R0, A0, A1, N2); + P::Subtract(R1, B1, B0, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + carry = 0; + break; + case 4: + P::Subtract(R0, A1, A0, N2); + P::Subtract(R1, B0, B1, N2); + RecursiveMultiply

    (T0, T2, R0, R1, N2); + P::Subtract(T1, T1, R1, N2); + carry = -1; + break; + default: + SetWords(T0, 0, N); + carry = 0; + } + + RecursiveMultiply

    (T2, R0, A1, B1, N2); + + // now T[01] holds (A1-A0)*(B0-B1), T[23] holds A1*B1 + + word c2 = P::Subtract(R0, L+N2, L, N2); + c2 += P::Subtract(R0, R0, T0, N2); + word t = (Compare(R0, T2, N2) == -1); + + carry += t; + carry += Increment(R0, N2, c2+t); + carry += P::Add(R0, R0, T1, N2); + carry += P::Add(R0, R0, T3, N2); + assert (carry >= 0 && carry <= 2); + + CopyWords(R1, T3, N2); + Increment(R1, N2, carry); + } +} + +inline word Add(word *C, const word *A, const word *B, unsigned int N) +{ + return LowLevel::Add(C, A, B, N); +} + +inline word Subtract(word *C, const word *A, const word *B, unsigned int N) +{ + return LowLevel::Subtract(C, A, B, N); +} + +inline void Multiply(word *R, word *T, const word *A, const word *B, unsigned int N) +{ +#ifdef SSE2_INTRINSICS_AVAILABLE + if (HasSSE2()) + RecursiveMultiply(R, T, A, B, N); + else +#endif + RecursiveMultiply(R, T, A, B, N); +} + +inline void Square(word *R, word *T, const word *A, unsigned int N) +{ +#ifdef SSE2_INTRINSICS_AVAILABLE + if (HasSSE2()) + RecursiveSquare(R, T, A, N); + else +#endif + RecursiveSquare(R, T, A, N); +} + +inline void MultiplyBottom(word *R, word *T, const word *A, const word *B, unsigned int N) +{ +#ifdef SSE2_INTRINSICS_AVAILABLE + if (HasSSE2()) + RecursiveMultiplyBottom(R, T, A, B, N); + else +#endif + RecursiveMultiplyBottom(R, T, A, B, N); +} + +inline void MultiplyTop(word *R, word *T, const word *L, const word *A, const word *B, unsigned int N) +{ +#ifdef SSE2_INTRINSICS_AVAILABLE + if (HasSSE2()) + RecursiveMultiplyTop(R, T, L, A, B, N); + else +#endif + RecursiveMultiplyTop(R, T, L, A, B, N); +} + +// R[NA+NB] - result = A*B +// T[NA+NB] - temporary work space +// A[NA] ---- multiplier +// B[NB] ---- multiplicant + +void AsymmetricMultiply(word *R, word *T, const word *A, unsigned int NA, const word *B, unsigned int NB) +{ + if (NA == NB) + { + if (A == B) + Square(R, T, A, NA); + else + Multiply(R, T, A, B, NA); + + return; + } + + if (NA > NB) + { + std::swap(A, B); + std::swap(NA, NB); + } + + assert(NB % NA == 0); + assert((NB/NA)%2 == 0); // NB is an even multiple of NA + + if (NA==2 && !A[1]) + { + switch (A[0]) + { + case 0: + SetWords(R, 0, NB+2); + return; + case 1: + CopyWords(R, B, NB); + R[NB] = R[NB+1] = 0; + return; + default: + R[NB] = LinearMultiply(R, B, A[0], NB); + R[NB+1] = 0; + return; + } + } + + Multiply(R, T, A, B, NA); + CopyWords(T+2*NA, R+NA, NA); + + unsigned i; + + for (i=2*NA; i=4); + +#define M0 M +#define M1 (M+N2) +#define V0 V +#define V1 (V+N2) + +#define X0 X +#define X1 (X+N2) +#define X2 (X+N) +#define X3 (X+N+N2) + + const unsigned int N2 = N/2; + Multiply(T0, T2, V0, X3, N2); + int c2 = Add(T0, T0, X0, N); + MultiplyBottom(T3, T2, T0, U, N2); + MultiplyTop(T2, R, T0, T3, M0, N2); + c2 -= Subtract(T2, T1, T2, N2); + Multiply(T0, R, T3, M1, N2); + c2 -= Subtract(T0, T2, T0, N2); + int c3 = -(int)Subtract(T1, X2, T1, N2); + Multiply(R0, T2, V1, X3, N2); + c3 += Add(R, R, T, N); + + if (c2>0) + c3 += Increment(R1, N2); + else if (c2<0) + c3 -= Decrement(R1, N2, -c2); + + assert(c3>=-1 && c3<=1); + if (c3>0) + Subtract(R, R, M, N); + else if (c3<0) + Add(R, R, M, N); + +#undef M0 +#undef M1 +#undef V0 +#undef V1 + +#undef X0 +#undef X1 +#undef X2 +#undef X3 +} + +#undef A0 +#undef A1 +#undef B0 +#undef B1 + +#undef T0 +#undef T1 +#undef T2 +#undef T3 + +#undef R0 +#undef R1 +#undef R2 +#undef R3 + +// do a 3 word by 2 word divide, returns quotient and leaves remainder in A +static word SubatomicDivide(word *A, word B0, word B1) +{ + // assert {A[2],A[1]} < {B1,B0}, so quotient can fit in a word + assert(A[2] < B1 || (A[2]==B1 && A[1] < B0)); + + dword p, u; + word Q; + + // estimate the quotient: do a 2 word by 1 word divide + if (B1+1 == 0) + Q = A[2]; + else + Q = word(MAKE_DWORD(A[1], A[2]) / (B1+1)); + + // now subtract Q*B from A + p = (dword) B0*Q; + u = (dword) A[0] - LOW_WORD(p); + A[0] = LOW_WORD(u); + u = (dword) A[1] - HIGH_WORD(p) - (word)(0-HIGH_WORD(u)) - (dword)B1*Q; + A[1] = LOW_WORD(u); + A[2] += HIGH_WORD(u); + + // Q <= actual quotient, so fix it + while (A[2] || A[1] > B1 || (A[1]==B1 && A[0]>=B0)) + { + u = (dword) A[0] - B0; + A[0] = LOW_WORD(u); + u = (dword) A[1] - B1 - (word)(0-HIGH_WORD(u)); + A[1] = LOW_WORD(u); + A[2] += HIGH_WORD(u); + Q++; + assert(Q); // shouldn't overflow + } + + return Q; +} + +// do a 4 word by 2 word divide, returns 2 word quotient in Q0 and Q1 +static inline void AtomicDivide(word *Q, const word *A, const word *B) +{ + if (!B[0] && !B[1]) // if divisor is 0, we assume divisor==2**(2*WORD_BITS) + { + Q[0] = A[2]; + Q[1] = A[3]; + } + else + { + word T[4]; + T[0] = A[0]; T[1] = A[1]; T[2] = A[2]; T[3] = A[3]; + Q[1] = SubatomicDivide(T+1, B[0], B[1]); + Q[0] = SubatomicDivide(T, B[0], B[1]); + +#ifndef NDEBUG + // multiply quotient and divisor and add remainder, make sure it equals dividend + assert(!T[2] && !T[3] && (T[1] < B[1] || (T[1]==B[1] && T[0]= 0) + { + R[N] -= Subtract(R, R, B, N); + Q[1] += (++Q[0]==0); + assert(Q[0] || Q[1]); // no overflow + } +} + +// R[NB] -------- remainder = A%B +// Q[NA-NB+2] --- quotient = A/B +// T[NA+2*NB+4] - temp work space +// A[NA] -------- dividend +// B[NB] -------- divisor + +void Divide(word *R, word *Q, word *T, const word *A, unsigned int NA, const word *B, unsigned int NB) +{ + assert(NA && NB && NA%2==0 && NB%2==0); + assert(B[NB-1] || B[NB-2]); + assert(NB <= NA); + + // set up temporary work space + word *const TA=T; + word *const TB=T+NA+2; + word *const TP=T+NA+2+NB; + + // copy B into TB and normalize it so that TB has highest bit set to 1 + unsigned shiftWords = (B[NB-1]==0); + TB[0] = TB[NB-1] = 0; + CopyWords(TB+shiftWords, B, NB-shiftWords); + unsigned shiftBits = WORD_BITS - BitPrecision(TB[NB-1]); + assert(shiftBits < WORD_BITS); + ShiftWordsLeftByBits(TB, NB, shiftBits); + + // copy A into TA and normalize it + TA[0] = TA[NA] = TA[NA+1] = 0; + CopyWords(TA+shiftWords, A, NA); + ShiftWordsLeftByBits(TA, NA+2, shiftBits); + + if (TA[NA+1]==0 && TA[NA] <= 1) + { + Q[NA-NB+1] = Q[NA-NB] = 0; + while (TA[NA] || Compare(TA+NA-NB, TB, NB) >= 0) + { + TA[NA] -= Subtract(TA+NA-NB, TA+NA-NB, TB, NB); + ++Q[NA-NB]; + } + } + else + { + NA+=2; + assert(Compare(TA+NA-NB, TB, NB) < 0); + } + + word BT[2]; + BT[0] = TB[NB-2] + 1; + BT[1] = TB[NB-1] + (BT[0]==0); + + // start reducing TA mod TB, 2 words at a time + for (unsigned i=NA-2; i>=NB; i-=2) + { + AtomicDivide(Q+i-NB, TA+i-2, BT); + CorrectQuotientEstimate(TA+i-NB, TP, Q+i-NB, TB, NB); + } + + // copy TA into R, and denormalize it + CopyWords(R, TA+shiftWords, NB); + ShiftWordsRightByBits(R, NB, shiftBits); +} + +static inline unsigned int EvenWordCount(const word *X, unsigned int N) +{ + while (N && X[N-2]==0 && X[N-1]==0) + N-=2; + return N; +} + +// return k +// R[N] --- result = A^(-1) * 2^k mod M +// T[4*N] - temporary work space +// A[NA] -- number to take inverse of +// M[N] --- modulus + +unsigned int AlmostInverse(word *R, word *T, const word *A, unsigned int NA, const word *M, unsigned int N) +{ + assert(NA<=N && N && N%2==0); + + word *b = T; + word *c = T+N; + word *f = T+2*N; + word *g = T+3*N; + unsigned int bcLen=2, fgLen=EvenWordCount(M, N); + unsigned int k=0, s=0; + + SetWords(T, 0, 3*N); + b[0]=1; + CopyWords(f, A, NA); + CopyWords(g, M, N); + + while (1) + { + word t=f[0]; + while (!t) + { + if (EvenWordCount(f, fgLen)==0) + { + SetWords(R, 0, N); + return 0; + } + + ShiftWordsRightByWords(f, fgLen, 1); + if (c[bcLen-1]) bcLen+=2; + assert(bcLen <= N); + ShiftWordsLeftByWords(c, bcLen, 1); + k+=WORD_BITS; + t=f[0]; + } + + unsigned int i=0; + while (t%2 == 0) + { + t>>=1; + i++; + } + k+=i; + + if (t==1 && f[1]==0 && EvenWordCount(f, fgLen)==2) + { + if (s%2==0) + CopyWords(R, b, N); + else + Subtract(R, M, b, N); + return k; + } + + ShiftWordsRightByBits(f, fgLen, i); + t=ShiftWordsLeftByBits(c, bcLen, i); + if (t) + { + c[bcLen] = t; + bcLen+=2; + assert(bcLen <= N); + } + + if (f[fgLen-2]==0 && g[fgLen-2]==0 && f[fgLen-1]==0 && g[fgLen-1]==0) + fgLen-=2; + + if (Compare(f, g, fgLen)==-1) + { + std::swap(f, g); + std::swap(b, c); + s++; + } + + Subtract(f, f, g, fgLen); + + if (Add(b, b, c, bcLen)) + { + b[bcLen] = 1; + bcLen+=2; + assert(bcLen <= N); + } + } +} + +// R[N] - result = A/(2^k) mod M +// A[N] - input +// M[N] - modulus + +void DivideByPower2Mod(word *R, const word *A, unsigned int k, const word *M, unsigned int N) +{ + CopyWords(R, A, N); + + while (k--) + { + if (R[0]%2==0) + ShiftWordsRightByBits(R, N, 1); + else + { + word carry = Add(R, R, M, N); + ShiftWordsRightByBits(R, N, 1); + R[N-1] += carry<<(WORD_BITS-1); + } + } +} + +// R[N] - result = A*(2^k) mod M +// A[N] - input +// M[N] - modulus + +void MultiplyByPower2Mod(word *R, const word *A, unsigned int k, const word *M, unsigned int N) +{ + CopyWords(R, A, N); + + while (k--) + if (ShiftWordsLeftByBits(R, N, 1) || Compare(R, M, N)>=0) + Subtract(R, R, M, N); +} + +// ****************************************************************** + +static const unsigned int RoundupSizeTable[] = {2, 2, 2, 4, 4, 8, 8, 8, 8}; + +static inline unsigned int RoundupSize(unsigned int n) +{ + if (n<=8) + return RoundupSizeTable[n]; + else if (n<=16) + return 16; + else if (n<=32) + return 32; + else if (n<=64) + return 64; + else return 1U << BitPrecision(n-1); +} + +Integer::Integer() + : reg(2), sign(POSITIVE) +{ + reg[0] = reg[1] = 0; +} + +Integer::Integer(const Integer& t) + : reg(RoundupSize(t.WordCount())), sign(t.sign) +{ + CopyWords(reg, t.reg, reg.size()); +} + +Integer::Integer(signed long value) + : reg(2) +{ + if (value >= 0) + sign = POSITIVE; + else + { + sign = NEGATIVE; + value = -value; + } + reg[0] = word(value); + reg[1] = word(SafeRightShift(value)); +} + +Integer::Integer(Sign s, word high, word low) + : reg(2), sign(s) +{ + reg[0] = low; + reg[1] = high; +} + +bool Integer::IsConvertableToLong() const +{ + if (ByteCount() > sizeof(long)) + return false; + + unsigned long value = reg[0]; + value += SafeLeftShift(reg[1]); + + if (sign==POSITIVE) + return (signed long)value >= 0; + else + return -(signed long)value < 0; +} + +signed long Integer::ConvertToLong() const +{ + assert(IsConvertableToLong()); + + unsigned long value = reg[0]; + value += SafeLeftShift(reg[1]); + return sign==POSITIVE ? value : -(signed long)value; +} + +Integer::Integer(BufferedTransformation &encodedInteger, unsigned int byteCount, Signedness s) +{ + Decode(encodedInteger, byteCount, s); +} + +Integer::Integer(const byte *encodedInteger, unsigned int byteCount, Signedness s) +{ + Decode(encodedInteger, byteCount, s); +} + +Integer::Integer(BufferedTransformation &bt) +{ + BERDecode(bt); +} + +Integer::Integer(RandomNumberGenerator &rng, unsigned int bitcount) +{ + Randomize(rng, bitcount); +} + +Integer::Integer(RandomNumberGenerator &rng, const Integer &min, const Integer &max, RandomNumberType rnType, const Integer &equiv, const Integer &mod) +{ + if (!Randomize(rng, min, max, rnType, equiv, mod)) + throw Integer::RandomNumberNotFound(); +} + +Integer Integer::Power2(unsigned int e) +{ + Integer r((word)0, BitsToWords(e+1)); + r.SetBit(e); + return r; +} + +const Integer &Integer::Zero() +{ + static const Integer zero; + return zero; +} + +const Integer &Integer::One() +{ + static const Integer one(1,2); + return one; +} + +const Integer &Integer::Two() +{ + static const Integer two(2,2); + return two; +} + +bool Integer::operator!() const +{ + return IsNegative() ? false : (reg[0]==0 && WordCount()==0); +} + +Integer& Integer::operator=(const Integer& t) +{ + if (this != &t) + { + reg.New(RoundupSize(t.WordCount())); + CopyWords(reg, t.reg, reg.size()); + sign = t.sign; + } + return *this; +} + +bool Integer::GetBit(unsigned int n) const +{ + if (n/WORD_BITS >= reg.size()) + return 0; + else + return bool((reg[n/WORD_BITS] >> (n % WORD_BITS)) & 1); +} + +void Integer::SetBit(unsigned int n, bool value) +{ + if (value) + { + reg.CleanGrow(RoundupSize(BitsToWords(n+1))); + reg[n/WORD_BITS] |= (word(1) << (n%WORD_BITS)); + } + else + { + if (n/WORD_BITS < reg.size()) + reg[n/WORD_BITS] &= ~(word(1) << (n%WORD_BITS)); + } +} + +byte Integer::GetByte(unsigned int n) const +{ + if (n/WORD_SIZE >= reg.size()) + return 0; + else + return byte(reg[n/WORD_SIZE] >> ((n%WORD_SIZE)*8)); +} + +void Integer::SetByte(unsigned int n, byte value) +{ + reg.CleanGrow(RoundupSize(BytesToWords(n+1))); + reg[n/WORD_SIZE] &= ~(word(0xff) << 8*(n%WORD_SIZE)); + reg[n/WORD_SIZE] |= (word(value) << 8*(n%WORD_SIZE)); +} + +unsigned long Integer::GetBits(unsigned int i, unsigned int n) const +{ + assert(n <= sizeof(unsigned long)*8); + unsigned long v = 0; + for (unsigned int j=0; j +static Integer StringToInteger(const T *str) +{ + word radix; +#if (defined(__GNUC__) && __GNUC__ <= 3) // GCC workaround + // std::char_traits doesn't exist in GCC 2.x + // std::char_traits::length() not defined in GCC 3.2 + unsigned int length; + for (length = 0; str[length] != 0; length++) {} +#else + unsigned int length = std::char_traits::length(str); +#endif + + Integer v; + + if (length == 0) + return v; + + switch (str[length-1]) + { + case 'h': + case 'H': + radix=16; + break; + case 'o': + case 'O': + radix=8; + break; + case 'b': + case 'B': + radix=2; + break; + default: + radix=10; + } + + if (length > 2 && str[0] == '0' && str[1] == 'x') + radix = 16; + + for (unsigned i=0; i= '0' && str[i] <= '9') + digit = str[i] - '0'; + else if (str[i] >= 'A' && str[i] <= 'F') + digit = str[i] - 'A' + 10; + else if (str[i] >= 'a' && str[i] <= 'f') + digit = str[i] - 'a' + 10; + else + digit = radix; + + if (digit < radix) + { + v *= radix; + v += digit; + } + } + + if (str[0] == '-') + v.Negate(); + + return v; +} + +Integer::Integer(const char *str) + : reg(2), sign(POSITIVE) +{ + *this = StringToInteger(str); +} + +Integer::Integer(const wchar_t *str) + : reg(2), sign(POSITIVE) +{ + *this = StringToInteger(str); +} + +unsigned int Integer::WordCount() const +{ + return CountWords(reg, reg.size()); +} + +unsigned int Integer::ByteCount() const +{ + unsigned wordCount = WordCount(); + if (wordCount) + return (wordCount-1)*WORD_SIZE + BytePrecision(reg[wordCount-1]); + else + return 0; +} + +unsigned int Integer::BitCount() const +{ + unsigned wordCount = WordCount(); + if (wordCount) + return (wordCount-1)*WORD_BITS + BitPrecision(reg[wordCount-1]); + else + return 0; +} + +void Integer::Decode(const byte *input, unsigned int inputLen, Signedness s) +{ + StringStore store(input, inputLen); + Decode(store, inputLen, s); +} + +void Integer::Decode(BufferedTransformation &bt, unsigned int inputLen, Signedness s) +{ + assert(bt.MaxRetrievable() >= inputLen); + + byte b; + bt.Peek(b); + sign = ((s==SIGNED) && (b & 0x80)) ? NEGATIVE : POSITIVE; + + while (inputLen>0 && (sign==POSITIVE ? b==0 : b==0xff)) + { + bt.Skip(1); + inputLen--; + bt.Peek(b); + } + + reg.CleanNew(RoundupSize(BytesToWords(inputLen))); + + for (unsigned int i=inputLen; i > 0; i--) + { + bt.Get(b); + reg[(i-1)/WORD_SIZE] |= b << ((i-1)%WORD_SIZE)*8; + } + + if (sign == NEGATIVE) + { + for (unsigned i=inputLen; i 0; i--) + bt.Put(GetByte(i-1)); + } + else + { + // take two's complement of *this + Integer temp = Integer::Power2(8*STDMAX(ByteCount(), outputLen)) + *this; + for (unsigned i=0; i max) + throw InvalidArgument("Integer: Min must be no greater than Max"); + + Integer range = max - min; + const unsigned int nbits = range.BitCount(); + + do + { + Randomize(rng, nbits); + } + while (*this > range); + + *this += min; +} + +bool Integer::Randomize(RandomNumberGenerator &rng, const Integer &min, const Integer &max, RandomNumberType rnType, const Integer &equiv, const Integer &mod) +{ + return GenerateRandomNoThrow(rng, MakeParameters("Min", min)("Max", max)("RandomNumberType", rnType)("EquivalentTo", equiv)("Mod", mod)); +} + +class KDF2_RNG : public RandomNumberGenerator +{ +public: + KDF2_RNG(const byte *seed, unsigned int seedSize) + : m_counter(0), m_counterAndSeed(seedSize + 4) + { + memcpy(m_counterAndSeed + 4, seed, seedSize); + } + + byte GenerateByte() + { + byte b; + GenerateBlock(&b, 1); + return b; + } + + void GenerateBlock(byte *output, unsigned int size) + { + UnalignedPutWord(BIG_ENDIAN_ORDER, m_counterAndSeed, m_counter); + ++m_counter; + P1363_KDF2::DeriveKey(output, size, m_counterAndSeed, m_counterAndSeed.size()); + } + +private: + word32 m_counter; + SecByteBlock m_counterAndSeed; +}; + +bool Integer::GenerateRandomNoThrow(RandomNumberGenerator &i_rng, const NameValuePairs ¶ms) +{ + Integer min = params.GetValueWithDefault("Min", Integer::Zero()); + Integer max; + if (!params.GetValue("Max", max)) + { + int bitLength; + if (params.GetIntValue("BitLength", bitLength)) + max = Integer::Power2(bitLength); + else + throw InvalidArgument("Integer: missing Max argument"); + } + if (min > max) + throw InvalidArgument("Integer: Min must be no greater than Max"); + + Integer equiv = params.GetValueWithDefault("EquivalentTo", Integer::Zero()); + Integer mod = params.GetValueWithDefault("Mod", Integer::One()); + + if (equiv.IsNegative() || equiv >= mod) + throw InvalidArgument("Integer: invalid EquivalentTo and/or Mod argument"); + + Integer::RandomNumberType rnType = params.GetValueWithDefault("RandomNumberType", Integer::ANY); + + member_ptr kdf2Rng; + ConstByteArrayParameter seed; + if (params.GetValue("Seed", seed)) + { + ByteQueue bq; + DERSequenceEncoder seq(bq); + min.DEREncode(seq); + max.DEREncode(seq); + equiv.DEREncode(seq); + mod.DEREncode(seq); + DEREncodeUnsigned(seq, rnType); + DEREncodeOctetString(seq, seed.begin(), seed.size()); + seq.MessageEnd(); + + SecByteBlock finalSeed(bq.MaxRetrievable()); + bq.Get(finalSeed, finalSeed.size()); + kdf2Rng.reset(new KDF2_RNG(finalSeed.begin(), finalSeed.size())); + } + RandomNumberGenerator &rng = kdf2Rng.get() ? (RandomNumberGenerator &)*kdf2Rng : i_rng; + + switch (rnType) + { + case ANY: + if (mod == One()) + Randomize(rng, min, max); + else + { + Integer min1 = min + (equiv-min)%mod; + if (max < min1) + return false; + Randomize(rng, Zero(), (max - min1) / mod); + *this *= mod; + *this += min1; + } + return true; + + case PRIME: + { + const PrimeSelector *pSelector = params.GetValueWithDefault("PointerToPrimeSelector", (const PrimeSelector *)NULL); + + int i; + i = 0; + while (1) + { + if (++i==16) + { + // check if there are any suitable primes in [min, max] + Integer first = min; + if (FirstPrime(first, max, equiv, mod, pSelector)) + { + // if there is only one suitable prime, we're done + *this = first; + if (!FirstPrime(first, max, equiv, mod, pSelector)) + return true; + } + else + return false; + } + + Randomize(rng, min, max); + if (FirstPrime(*this, STDMIN(*this+mod*PrimeSearchInterval(max), max), equiv, mod, pSelector)) + return true; + } + } + + default: + throw InvalidArgument("Integer: invalid RandomNumberType argument"); + } +} + +std::istream& operator>>(std::istream& in, Integer &a) +{ + char c; + unsigned int length = 0; + SecBlock str(length + 16); + + std::ws(in); + + do + { + in.read(&c, 1); + str[length++] = c; + if (length >= str.size()) + str.Grow(length + 16); + } + while (in && (c=='-' || c=='x' || (c>='0' && c<='9') || (c>='a' && c<='f') || (c>='A' && c<='F') || c=='h' || c=='H' || c=='o' || c=='O' || c==',' || c=='.')); + + if (in.gcount()) + in.putback(c); + str[length-1] = '\0'; + a = Integer(str); + + return in; +} + +std::ostream& operator<<(std::ostream& out, const Integer &a) +{ + // Get relevant conversion specifications from ostream. + long f = out.flags() & std::ios::basefield; // Get base digits. + int base, block; + char suffix; + switch(f) + { + case std::ios::oct : + base = 8; + block = 8; + suffix = 'o'; + break; + case std::ios::hex : + base = 16; + block = 4; + suffix = 'h'; + break; + default : + base = 10; + block = 3; + suffix = '.'; + } + + SecBlock s(a.BitCount() / (BitPrecision(base)-1) + 1); + Integer temp1=a, temp2; + unsigned i=0; + const char vec[]="0123456789ABCDEF"; + + if (a.IsNegative()) + { + out << '-'; + temp1.Negate(); + } + + if (!a) + out << '0'; + + while (!!temp1) + { + word digit; + Integer::Divide(digit, temp2, temp1, base); + s[i++]=vec[digit]; + temp1=temp2; + } + + while (i--) + { + out << s[i]; +// if (i && !(i%block)) +// out << ","; + } + return out << suffix; +} + +Integer& Integer::operator++() +{ + if (NotNegative()) + { + if (Increment(reg, reg.size())) + { + reg.CleanGrow(2*reg.size()); + reg[reg.size()/2]=1; + } + } + else + { + word borrow = Decrement(reg, reg.size()); + assert(!borrow); + if (WordCount()==0) + *this = Zero(); + } + return *this; +} + +Integer& Integer::operator--() +{ + if (IsNegative()) + { + if (Increment(reg, reg.size())) + { + reg.CleanGrow(2*reg.size()); + reg[reg.size()/2]=1; + } + } + else + { + if (Decrement(reg, reg.size())) + *this = -One(); + } + return *this; +} + +void PositiveAdd(Integer &sum, const Integer &a, const Integer& b) +{ + word carry; + if (a.reg.size() == b.reg.size()) + carry = Add(sum.reg, a.reg, b.reg, a.reg.size()); + else if (a.reg.size() > b.reg.size()) + { + carry = Add(sum.reg, a.reg, b.reg, b.reg.size()); + CopyWords(sum.reg+b.reg.size(), a.reg+b.reg.size(), a.reg.size()-b.reg.size()); + carry = Increment(sum.reg+b.reg.size(), a.reg.size()-b.reg.size(), carry); + } + else + { + carry = Add(sum.reg, a.reg, b.reg, a.reg.size()); + CopyWords(sum.reg+a.reg.size(), b.reg+a.reg.size(), b.reg.size()-a.reg.size()); + carry = Increment(sum.reg+a.reg.size(), b.reg.size()-a.reg.size(), carry); + } + + if (carry) + { + sum.reg.CleanGrow(2*sum.reg.size()); + sum.reg[sum.reg.size()/2] = 1; + } + sum.sign = Integer::POSITIVE; +} + +void PositiveSubtract(Integer &diff, const Integer &a, const Integer& b) +{ + unsigned aSize = a.WordCount(); + aSize += aSize%2; + unsigned bSize = b.WordCount(); + bSize += bSize%2; + + if (aSize == bSize) + { + if (Compare(a.reg, b.reg, aSize) >= 0) + { + Subtract(diff.reg, a.reg, b.reg, aSize); + diff.sign = Integer::POSITIVE; + } + else + { + Subtract(diff.reg, b.reg, a.reg, aSize); + diff.sign = Integer::NEGATIVE; + } + } + else if (aSize > bSize) + { + word borrow = Subtract(diff.reg, a.reg, b.reg, bSize); + CopyWords(diff.reg+bSize, a.reg+bSize, aSize-bSize); + borrow = Decrement(diff.reg+bSize, aSize-bSize, borrow); + assert(!borrow); + diff.sign = Integer::POSITIVE; + } + else + { + word borrow = Subtract(diff.reg, b.reg, a.reg, aSize); + CopyWords(diff.reg+aSize, b.reg+aSize, bSize-aSize); + borrow = Decrement(diff.reg+aSize, bSize-aSize, borrow); + assert(!borrow); + diff.sign = Integer::NEGATIVE; + } +} + +Integer Integer::Plus(const Integer& b) const +{ + Integer sum((word)0, STDMAX(reg.size(), b.reg.size())); + if (NotNegative()) + { + if (b.NotNegative()) + PositiveAdd(sum, *this, b); + else + PositiveSubtract(sum, *this, b); + } + else + { + if (b.NotNegative()) + PositiveSubtract(sum, b, *this); + else + { + PositiveAdd(sum, *this, b); + sum.sign = Integer::NEGATIVE; + } + } + return sum; +} + +Integer& Integer::operator+=(const Integer& t) +{ + reg.CleanGrow(t.reg.size()); + if (NotNegative()) + { + if (t.NotNegative()) + PositiveAdd(*this, *this, t); + else + PositiveSubtract(*this, *this, t); + } + else + { + if (t.NotNegative()) + PositiveSubtract(*this, t, *this); + else + { + PositiveAdd(*this, *this, t); + sign = Integer::NEGATIVE; + } + } + return *this; +} + +Integer Integer::Minus(const Integer& b) const +{ + Integer diff((word)0, STDMAX(reg.size(), b.reg.size())); + if (NotNegative()) + { + if (b.NotNegative()) + PositiveSubtract(diff, *this, b); + else + PositiveAdd(diff, *this, b); + } + else + { + if (b.NotNegative()) + { + PositiveAdd(diff, *this, b); + diff.sign = Integer::NEGATIVE; + } + else + PositiveSubtract(diff, b, *this); + } + return diff; +} + +Integer& Integer::operator-=(const Integer& t) +{ + reg.CleanGrow(t.reg.size()); + if (NotNegative()) + { + if (t.NotNegative()) + PositiveSubtract(*this, *this, t); + else + PositiveAdd(*this, *this, t); + } + else + { + if (t.NotNegative()) + { + PositiveAdd(*this, *this, t); + sign = Integer::NEGATIVE; + } + else + PositiveSubtract(*this, t, *this); + } + return *this; +} + +Integer& Integer::operator<<=(unsigned int n) +{ + const unsigned int wordCount = WordCount(); + const unsigned int shiftWords = n / WORD_BITS; + const unsigned int shiftBits = n % WORD_BITS; + + reg.CleanGrow(RoundupSize(wordCount+BitsToWords(n))); + ShiftWordsLeftByWords(reg, wordCount + shiftWords, shiftWords); + ShiftWordsLeftByBits(reg+shiftWords, wordCount+BitsToWords(shiftBits), shiftBits); + return *this; +} + +Integer& Integer::operator>>=(unsigned int n) +{ + const unsigned int wordCount = WordCount(); + const unsigned int shiftWords = n / WORD_BITS; + const unsigned int shiftBits = n % WORD_BITS; + + ShiftWordsRightByWords(reg, wordCount, shiftWords); + if (wordCount > shiftWords) + ShiftWordsRightByBits(reg, wordCount-shiftWords, shiftBits); + if (IsNegative() && WordCount()==0) // avoid -0 + *this = Zero(); + return *this; +} + +void PositiveMultiply(Integer &product, const Integer &a, const Integer &b) +{ + unsigned aSize = RoundupSize(a.WordCount()); + unsigned bSize = RoundupSize(b.WordCount()); + + product.reg.CleanNew(RoundupSize(aSize+bSize)); + product.sign = Integer::POSITIVE; + + SecAlignedWordBlock workspace(aSize + bSize); + AsymmetricMultiply(product.reg, workspace, a.reg, aSize, b.reg, bSize); +} + +void Multiply(Integer &product, const Integer &a, const Integer &b) +{ + PositiveMultiply(product, a, b); + + if (a.NotNegative() != b.NotNegative()) + product.Negate(); +} + +Integer Integer::Times(const Integer &b) const +{ + Integer product; + Multiply(product, *this, b); + return product; +} + +/* +void PositiveDivide(Integer &remainder, Integer "ient, + const Integer ÷nd, const Integer &divisor) +{ + remainder.reg.CleanNew(divisor.reg.size()); + remainder.sign = Integer::POSITIVE; + quotient.reg.New(0); + quotient.sign = Integer::POSITIVE; + unsigned i=dividend.BitCount(); + while (i--) + { + word overflow = ShiftWordsLeftByBits(remainder.reg, remainder.reg.size(), 1); + remainder.reg[0] |= dividend[i]; + if (overflow || remainder >= divisor) + { + Subtract(remainder.reg, remainder.reg, divisor.reg, remainder.reg.size()); + quotient.SetBit(i); + } + } +} +*/ + +void PositiveDivide(Integer &remainder, Integer "ient, + const Integer &a, const Integer &b) +{ + unsigned aSize = a.WordCount(); + unsigned bSize = b.WordCount(); + + if (!bSize) + throw Integer::DivideByZero(); + + if (a.PositiveCompare(b) == -1) + { + remainder = a; + remainder.sign = Integer::POSITIVE; + quotient = Integer::Zero(); + return; + } + + aSize += aSize%2; // round up to next even number + bSize += bSize%2; + + remainder.reg.CleanNew(RoundupSize(bSize)); + remainder.sign = Integer::POSITIVE; + quotient.reg.CleanNew(RoundupSize(aSize-bSize+2)); + quotient.sign = Integer::POSITIVE; + + SecAlignedWordBlock T(aSize+2*bSize+4); + Divide(remainder.reg, quotient.reg, T, a.reg, aSize, b.reg, bSize); +} + +void Integer::Divide(Integer &remainder, Integer "ient, const Integer ÷nd, const Integer &divisor) +{ + PositiveDivide(remainder, quotient, dividend, divisor); + + if (dividend.IsNegative()) + { + quotient.Negate(); + if (remainder.NotZero()) + { + --quotient; + remainder = divisor.AbsoluteValue() - remainder; + } + } + + if (divisor.IsNegative()) + quotient.Negate(); +} + +void Integer::DivideByPowerOf2(Integer &r, Integer &q, const Integer &a, unsigned int n) +{ + q = a; + q >>= n; + + const unsigned int wordCount = BitsToWords(n); + if (wordCount <= a.WordCount()) + { + r.reg.resize(RoundupSize(wordCount)); + CopyWords(r.reg, a.reg, wordCount); + SetWords(r.reg+wordCount, 0, r.reg.size()-wordCount); + if (n % WORD_BITS != 0) + r.reg[wordCount-1] %= (1 << (n % WORD_BITS)); + } + else + { + r.reg.resize(RoundupSize(a.WordCount())); + CopyWords(r.reg, a.reg, r.reg.size()); + } + r.sign = POSITIVE; + + if (a.IsNegative() && r.NotZero()) + { + --q; + r = Power2(n) - r; + } +} + +Integer Integer::DividedBy(const Integer &b) const +{ + Integer remainder, quotient; + Integer::Divide(remainder, quotient, *this, b); + return quotient; +} + +Integer Integer::Modulo(const Integer &b) const +{ + Integer remainder, quotient; + Integer::Divide(remainder, quotient, *this, b); + return remainder; +} + +void Integer::Divide(word &remainder, Integer "ient, const Integer ÷nd, word divisor) +{ + if (!divisor) + throw Integer::DivideByZero(); + + assert(divisor); + + if ((divisor & (divisor-1)) == 0) // divisor is a power of 2 + { + quotient = dividend >> (BitPrecision(divisor)-1); + remainder = dividend.reg[0] & (divisor-1); + return; + } + + unsigned int i = dividend.WordCount(); + quotient.reg.CleanNew(RoundupSize(i)); + remainder = 0; + while (i--) + { + quotient.reg[i] = word(MAKE_DWORD(dividend.reg[i], remainder) / divisor); + remainder = word(MAKE_DWORD(dividend.reg[i], remainder) % divisor); + } + + if (dividend.NotNegative()) + quotient.sign = POSITIVE; + else + { + quotient.sign = NEGATIVE; + if (remainder) + { + --quotient; + remainder = divisor - remainder; + } + } +} + +Integer Integer::DividedBy(word b) const +{ + word remainder; + Integer quotient; + Integer::Divide(remainder, quotient, *this, b); + return quotient; +} + +word Integer::Modulo(word divisor) const +{ + if (!divisor) + throw Integer::DivideByZero(); + + assert(divisor); + + word remainder; + + if ((divisor & (divisor-1)) == 0) // divisor is a power of 2 + remainder = reg[0] & (divisor-1); + else + { + unsigned int i = WordCount(); + + if (divisor <= 5) + { + dword sum=0; + while (i--) + sum += reg[i]; + remainder = word(sum%divisor); + } + else + { + remainder = 0; + while (i--) + remainder = word(MAKE_DWORD(reg[i], remainder) % divisor); + } + } + + if (IsNegative() && remainder) + remainder = divisor - remainder; + + return remainder; +} + +void Integer::Negate() +{ + if (!!(*this)) // don't flip sign if *this==0 + sign = Sign(1-sign); +} + +int Integer::PositiveCompare(const Integer& t) const +{ + unsigned size = WordCount(), tSize = t.WordCount(); + + if (size == tSize) + return CryptoPP::Compare(reg, t.reg, size); + else + return size > tSize ? 1 : -1; +} + +int Integer::Compare(const Integer& t) const +{ + if (NotNegative()) + { + if (t.NotNegative()) + return PositiveCompare(t); + else + return 1; + } + else + { + if (t.NotNegative()) + return -1; + else + return -PositiveCompare(t); + } +} + +Integer Integer::SquareRoot() const +{ + if (!IsPositive()) + return Zero(); + + // overestimate square root + Integer x, y = Power2((BitCount()+1)/2); + assert(y*y >= *this); + + do + { + x = y; + y = (x + *this/x) >> 1; + } while (y().Gcd(a, b); +} + +Integer Integer::InverseMod(const Integer &m) const +{ + assert(m.NotNegative()); + + if (IsNegative() || *this>=m) + return (*this%m).InverseMod(m); + + if (m.IsEven()) + { + if (!m || IsEven()) + return Zero(); // no inverse + if (*this == One()) + return One(); + + Integer u = m.InverseMod(*this); + return !u ? Zero() : (m*(*this-u)+1)/(*this); + } + + SecBlock T(m.reg.size() * 4); + Integer r((word)0, m.reg.size()); + unsigned k = AlmostInverse(r.reg, T, reg, reg.size(), m.reg, m.reg.size()); + DivideByPower2Mod(r.reg, r.reg, k, m.reg, m.reg.size()); + return r; +} + +word Integer::InverseMod(const word mod) const +{ + word g0 = mod, g1 = *this % mod; + word v0 = 0, v1 = 1; + word y; + + while (g1) + { + if (g1 == 1) + return v1; + y = g0 / g1; + g0 = g0 % g1; + v0 += y * v1; + + if (!g0) + break; + if (g0 == 1) + return mod-v0; + y = g1 / g0; + g1 = g1 % g0; + v1 += y * v0; + } + return 0; +} + +// ******************************************************** + +ModularArithmetic::ModularArithmetic(BufferedTransformation &bt) +{ + BERSequenceDecoder seq(bt); + OID oid(seq); + if (oid != ASN1::prime_field()) + BERDecodeError(); + modulus.BERDecode(seq); + seq.MessageEnd(); + result.reg.resize(modulus.reg.size()); +} + +void ModularArithmetic::DEREncode(BufferedTransformation &bt) const +{ + DERSequenceEncoder seq(bt); + ASN1::prime_field().DEREncode(seq); + modulus.DEREncode(seq); + seq.MessageEnd(); +} + +void ModularArithmetic::DEREncodeElement(BufferedTransformation &out, const Element &a) const +{ + a.DEREncodeAsOctetString(out, MaxElementByteLength()); +} + +void ModularArithmetic::BERDecodeElement(BufferedTransformation &in, Element &a) const +{ + a.BERDecodeAsOctetString(in, MaxElementByteLength()); +} + +const Integer& ModularArithmetic::Half(const Integer &a) const +{ + if (a.reg.size()==modulus.reg.size()) + { + CryptoPP::DivideByPower2Mod(result.reg.begin(), a.reg, 1, modulus.reg, a.reg.size()); + return result; + } + else + return result1 = (a.IsEven() ? (a >> 1) : ((a+modulus) >> 1)); +} + +const Integer& ModularArithmetic::Add(const Integer &a, const Integer &b) const +{ + if (a.reg.size()==modulus.reg.size() && b.reg.size()==modulus.reg.size()) + { + if (CryptoPP::Add(result.reg.begin(), a.reg, b.reg, a.reg.size()) + || Compare(result.reg, modulus.reg, a.reg.size()) >= 0) + { + CryptoPP::Subtract(result.reg.begin(), result.reg, modulus.reg, a.reg.size()); + } + return result; + } + else + { + result1 = a+b; + if (result1 >= modulus) + result1 -= modulus; + return result1; + } +} + +Integer& ModularArithmetic::Accumulate(Integer &a, const Integer &b) const +{ + if (a.reg.size()==modulus.reg.size() && b.reg.size()==modulus.reg.size()) + { + if (CryptoPP::Add(a.reg, a.reg, b.reg, a.reg.size()) + || Compare(a.reg, modulus.reg, a.reg.size()) >= 0) + { + CryptoPP::Subtract(a.reg, a.reg, modulus.reg, a.reg.size()); + } + } + else + { + a+=b; + if (a>=modulus) + a-=modulus; + } + + return a; +} + +const Integer& ModularArithmetic::Subtract(const Integer &a, const Integer &b) const +{ + if (a.reg.size()==modulus.reg.size() && b.reg.size()==modulus.reg.size()) + { + if (CryptoPP::Subtract(result.reg.begin(), a.reg, b.reg, a.reg.size())) + CryptoPP::Add(result.reg.begin(), result.reg, modulus.reg, a.reg.size()); + return result; + } + else + { + result1 = a-b; + if (result1.IsNegative()) + result1 += modulus; + return result1; + } +} + +Integer& ModularArithmetic::Reduce(Integer &a, const Integer &b) const +{ + if (a.reg.size()==modulus.reg.size() && b.reg.size()==modulus.reg.size()) + { + if (CryptoPP::Subtract(a.reg, a.reg, b.reg, a.reg.size())) + CryptoPP::Add(a.reg, a.reg, modulus.reg, a.reg.size()); + } + else + { + a-=b; + if (a.IsNegative()) + a+=modulus; + } + + return a; +} + +const Integer& ModularArithmetic::Inverse(const Integer &a) const +{ + if (!a) + return a; + + CopyWords(result.reg.begin(), modulus.reg, modulus.reg.size()); + if (CryptoPP::Subtract(result.reg.begin(), result.reg, a.reg, a.reg.size())) + Decrement(result.reg.begin()+a.reg.size(), 1, modulus.reg.size()-a.reg.size()); + + return result; +} + +Integer ModularArithmetic::CascadeExponentiate(const Integer &x, const Integer &e1, const Integer &y, const Integer &e2) const +{ + if (modulus.IsOdd()) + { + MontgomeryRepresentation dr(modulus); + return dr.ConvertOut(dr.CascadeExponentiate(dr.ConvertIn(x), e1, dr.ConvertIn(y), e2)); + } + else + return AbstractRing::CascadeExponentiate(x, e1, y, e2); +} + +void ModularArithmetic::SimultaneousExponentiate(Integer *results, const Integer &base, const Integer *exponents, unsigned int exponentsCount) const +{ + if (modulus.IsOdd()) + { + MontgomeryRepresentation dr(modulus); + dr.SimultaneousExponentiate(results, dr.ConvertIn(base), exponents, exponentsCount); + for (unsigned int i=0; i::SimultaneousExponentiate(results, base, exponents, exponentsCount); +} + +MontgomeryRepresentation::MontgomeryRepresentation(const Integer &m) // modulus must be odd + : ModularArithmetic(m), + u((word)0, modulus.reg.size()), + workspace(5*modulus.reg.size()) +{ + if (!modulus.IsOdd()) + throw InvalidArgument("MontgomeryRepresentation: Montgomery representation requires an odd modulus"); + + RecursiveInverseModPower2(u.reg, workspace, modulus.reg, modulus.reg.size()); +} + +const Integer& MontgomeryRepresentation::Multiply(const Integer &a, const Integer &b) const +{ + word *const T = workspace.begin(); + word *const R = result.reg.begin(); + const unsigned int N = modulus.reg.size(); + assert(a.reg.size()<=N && b.reg.size()<=N); + + AsymmetricMultiply(T, T+2*N, a.reg, a.reg.size(), b.reg, b.reg.size()); + SetWords(T+a.reg.size()+b.reg.size(), 0, 2*N-a.reg.size()-b.reg.size()); + MontgomeryReduce(R, T+2*N, T, modulus.reg, u.reg, N); + return result; +} + +const Integer& MontgomeryRepresentation::Square(const Integer &a) const +{ + word *const T = workspace.begin(); + word *const R = result.reg.begin(); + const unsigned int N = modulus.reg.size(); + assert(a.reg.size()<=N); + + CryptoPP::Square(T, T+2*N, a.reg, a.reg.size()); + SetWords(T+2*a.reg.size(), 0, 2*N-2*a.reg.size()); + MontgomeryReduce(R, T+2*N, T, modulus.reg, u.reg, N); + return result; +} + +Integer MontgomeryRepresentation::ConvertOut(const Integer &a) const +{ + word *const T = workspace.begin(); + word *const R = result.reg.begin(); + const unsigned int N = modulus.reg.size(); + assert(a.reg.size()<=N); + + CopyWords(T, a.reg, a.reg.size()); + SetWords(T+a.reg.size(), 0, 2*N-a.reg.size()); + MontgomeryReduce(R, T+2*N, T, modulus.reg, u.reg, N); + return result; +} + +const Integer& MontgomeryRepresentation::MultiplicativeInverse(const Integer &a) const +{ +// return (EuclideanMultiplicativeInverse(a, modulus)<<(2*WORD_BITS*modulus.reg.size()))%modulus; + word *const T = workspace.begin(); + word *const R = result.reg.begin(); + const unsigned int N = modulus.reg.size(); + assert(a.reg.size()<=N); + + CopyWords(T, a.reg, a.reg.size()); + SetWords(T+a.reg.size(), 0, 2*N-a.reg.size()); + MontgomeryReduce(R, T+2*N, T, modulus.reg, u.reg, N); + unsigned k = AlmostInverse(R, T, R, N, modulus.reg, N); + +// cout << "k=" << k << " N*32=" << 32*N << endl; + + if (k>N*WORD_BITS) + DivideByPower2Mod(R, R, k-N*WORD_BITS, modulus.reg, N); + else + MultiplyByPower2Mod(R, R, N*WORD_BITS-k, modulus.reg, N); + + return result; +} + +template class AbstractRing; + +NAMESPACE_END diff --git a/stepmania/src/crypto51/integer.h b/stepmania/src/crypto51/integer.h new file mode 100644 index 0000000000..fcf3ebefff --- /dev/null +++ b/stepmania/src/crypto51/integer.h @@ -0,0 +1,439 @@ +#ifndef CRYPTOPP_INTEGER_H +#define CRYPTOPP_INTEGER_H + +/** \file */ + +#include "cryptlib.h" +#include "secblock.h" + +#include +#include + +#ifdef _M_IX86 +# if (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 500)) || (defined(__ICL) && (__ICL >= 500)) +# define SSE2_INTRINSICS_AVAILABLE +# elif defined(_MSC_VER) + // _mm_free seems to be the only way to tell if the Processor Pack is installed or not +# include +# if defined(_mm_free) +# define SSE2_INTRINSICS_AVAILABLE +# endif +# endif +#endif + +NAMESPACE_BEGIN(CryptoPP) + +#ifdef SSE2_INTRINSICS_AVAILABLE + template + class AlignedAllocator : public AllocatorBase + { + public: + CRYPTOPP_INHERIT_ALLOCATOR_TYPES + + pointer allocate(size_type n, const void *); + void deallocate(void *p, size_type n); + pointer reallocate(T *p, size_type oldSize, size_type newSize, bool preserve) + { + return StandardReallocate(*this, p, oldSize, newSize, preserve); + } + }; + typedef SecBlock > SecAlignedWordBlock; +#else + typedef SecWordBlock SecAlignedWordBlock; +#endif + +//! multiple precision integer and basic arithmetics +/*! This class can represent positive and negative integers + with absolute value less than (256**sizeof(word)) ** (256**sizeof(int)). + \nosubgrouping +*/ +class Integer : public ASN1Object +{ +public: + //! \name ENUMS, EXCEPTIONS, and TYPEDEFS + //@{ + //! division by zero exception + class DivideByZero : public Exception + { + public: + DivideByZero() : Exception(OTHER_ERROR, "Integer: division by zero") {} + }; + + //! + class RandomNumberNotFound : public Exception + { + public: + RandomNumberNotFound() : Exception(OTHER_ERROR, "Integer: no integer satisfies the given parameters") {} + }; + + //! + enum Sign {POSITIVE=0, NEGATIVE=1}; + + //! + enum Signedness { + //! + UNSIGNED, + //! + SIGNED}; + + //! + enum RandomNumberType { + //! + ANY, + //! + PRIME}; + //@} + + //! \name CREATORS + //@{ + //! creates the zero integer + Integer(); + + //! copy constructor + Integer(const Integer& t); + + //! convert from signed long + Integer(signed long value); + + //! convert from two words + Integer(Sign s, word highWord, word lowWord); + + //! convert from string + /*! str can be in base 2, 8, 10, or 16. Base is determined by a + case insensitive suffix of 'h', 'o', or 'b'. No suffix means base 10. + */ + explicit Integer(const char *str); + explicit Integer(const wchar_t *str); + + //! convert from big-endian byte array + Integer(const byte *encodedInteger, unsigned int byteCount, Signedness s=UNSIGNED); + + //! convert from big-endian form stored in a BufferedTransformation + Integer(BufferedTransformation &bt, unsigned int byteCount, Signedness s=UNSIGNED); + + //! convert from BER encoded byte array stored in a BufferedTransformation object + explicit Integer(BufferedTransformation &bt); + + //! create a random integer + /*! The random integer created is uniformly distributed over [0, 2**bitcount). */ + Integer(RandomNumberGenerator &rng, unsigned int bitcount); + + //! avoid calling constructors for these frequently used integers + static const Integer &Zero(); + //! avoid calling constructors for these frequently used integers + static const Integer &One(); + //! avoid calling constructors for these frequently used integers + static const Integer &Two(); + + //! create a random integer of special type + /*! Ideally, the random integer created should be uniformly distributed + over {x | min <= x <= max and x is of rnType and x % mod == equiv}. + However the actual distribution may not be uniform because sequential + search is used to find an appropriate number from a random starting + point. + May return (with very small probability) a pseudoprime when a prime + is requested and max > lastSmallPrime*lastSmallPrime (lastSmallPrime + is declared in nbtheory.h). + \throw RandomNumberNotFound if the set is empty. + */ + Integer(RandomNumberGenerator &rng, const Integer &min, const Integer &max, RandomNumberType rnType=ANY, const Integer &equiv=Zero(), const Integer &mod=One()); + + //! return the integer 2**e + static Integer Power2(unsigned int e); + //@} + + //! \name ENCODE/DECODE + //@{ + //! minimum number of bytes to encode this integer + /*! MinEncodedSize of 0 is 1 */ + unsigned int MinEncodedSize(Signedness=UNSIGNED) const; + //! encode in big-endian format + /*! unsigned means encode absolute value, signed means encode two's complement if negative. + if outputLen < MinEncodedSize, the most significant bytes will be dropped + if outputLen > MinEncodedSize, the most significant bytes will be padded + */ + unsigned int Encode(byte *output, unsigned int outputLen, Signedness=UNSIGNED) const; + //! + unsigned int Encode(BufferedTransformation &bt, unsigned int outputLen, Signedness=UNSIGNED) const; + + //! encode using Distinguished Encoding Rules, put result into a BufferedTransformation object + void DEREncode(BufferedTransformation &bt) const; + + //! encode absolute value as big-endian octet string + void DEREncodeAsOctetString(BufferedTransformation &bt, unsigned int length) const; + + //! encode absolute value in OpenPGP format, return length of output + unsigned int OpenPGPEncode(byte *output, unsigned int bufferSize) const; + //! encode absolute value in OpenPGP format, put result into a BufferedTransformation object + unsigned int OpenPGPEncode(BufferedTransformation &bt) const; + + //! + void Decode(const byte *input, unsigned int inputLen, Signedness=UNSIGNED); + //! + //* Precondition: bt.MaxRetrievable() >= inputLen + void Decode(BufferedTransformation &bt, unsigned int inputLen, Signedness=UNSIGNED); + + //! + void BERDecode(const byte *input, unsigned int inputLen); + //! + void BERDecode(BufferedTransformation &bt); + + //! decode nonnegative value as big-endian octet string + void BERDecodeAsOctetString(BufferedTransformation &bt, unsigned int length); + + class OpenPGPDecodeErr : public Exception + { + public: + OpenPGPDecodeErr() : Exception(INVALID_DATA_FORMAT, "OpenPGP decode error") {} + }; + + //! + void OpenPGPDecode(const byte *input, unsigned int inputLen); + //! + void OpenPGPDecode(BufferedTransformation &bt); + //@} + + //! \name ACCESSORS + //@{ + //! return true if *this can be represented as a signed long + bool IsConvertableToLong() const; + //! return equivalent signed long if possible, otherwise undefined + signed long ConvertToLong() const; + + //! number of significant bits = floor(log2(abs(*this))) + 1 + unsigned int BitCount() const; + //! number of significant bytes = ceiling(BitCount()/8) + unsigned int ByteCount() const; + //! number of significant words = ceiling(ByteCount()/sizeof(word)) + unsigned int WordCount() const; + + //! return the i-th bit, i=0 being the least significant bit + bool GetBit(unsigned int i) const; + //! return the i-th byte + byte GetByte(unsigned int i) const; + //! return n lowest bits of *this >> i + unsigned long GetBits(unsigned int i, unsigned int n) const; + + //! + bool IsZero() const {return !*this;} + //! + bool NotZero() const {return !IsZero();} + //! + bool IsNegative() const {return sign == NEGATIVE;} + //! + bool NotNegative() const {return !IsNegative();} + //! + bool IsPositive() const {return NotNegative() && NotZero();} + //! + bool NotPositive() const {return !IsPositive();} + //! + bool IsEven() const {return GetBit(0) == 0;} + //! + bool IsOdd() const {return GetBit(0) == 1;} + //@} + + //! \name MANIPULATORS + //@{ + //! + Integer& operator=(const Integer& t); + + //! + Integer& operator+=(const Integer& t); + //! + Integer& operator-=(const Integer& t); + //! + Integer& operator*=(const Integer& t) {return *this = Times(t);} + //! + Integer& operator/=(const Integer& t) {return *this = DividedBy(t);} + //! + Integer& operator%=(const Integer& t) {return *this = Modulo(t);} + //! + Integer& operator/=(word t) {return *this = DividedBy(t);} + //! + Integer& operator%=(word t) {return *this = Modulo(t);} + + //! + Integer& operator<<=(unsigned int); + //! + Integer& operator>>=(unsigned int); + + //! + void Randomize(RandomNumberGenerator &rng, unsigned int bitcount); + //! + void Randomize(RandomNumberGenerator &rng, const Integer &min, const Integer &max); + //! set this Integer to a random element of {x | min <= x <= max and x is of rnType and x % mod == equiv} + /*! returns false if the set is empty */ + bool Randomize(RandomNumberGenerator &rng, const Integer &min, const Integer &max, RandomNumberType rnType, const Integer &equiv=Zero(), const Integer &mod=One()); + + bool GenerateRandomNoThrow(RandomNumberGenerator &rng, const NameValuePairs ¶ms = g_nullNameValuePairs); + void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs ¶ms = g_nullNameValuePairs) + { + if (!GenerateRandomNoThrow(rng, params)) + throw RandomNumberNotFound(); + } + + //! set the n-th bit to value + void SetBit(unsigned int n, bool value=1); + //! set the n-th byte to value + void SetByte(unsigned int n, byte value); + + //! + void Negate(); + //! + void SetPositive() {sign = POSITIVE;} + //! + void SetNegative() {if (!!(*this)) sign = NEGATIVE;} + + //! + void swap(Integer &a); + //@} + + //! \name UNARY OPERATORS + //@{ + //! + bool operator!() const; + //! + Integer operator+() const {return *this;} + //! + Integer operator-() const; + //! + Integer& operator++(); + //! + Integer& operator--(); + //! + Integer operator++(int) {Integer temp = *this; ++*this; return temp;} + //! + Integer operator--(int) {Integer temp = *this; --*this; return temp;} + //@} + + //! \name BINARY OPERATORS + //@{ + //! signed comparison + /*! \retval -1 if *this < a + \retval 0 if *this = a + \retval 1 if *this > a + */ + int Compare(const Integer& a) const; + + //! + Integer Plus(const Integer &b) const; + //! + Integer Minus(const Integer &b) const; + //! + Integer Times(const Integer &b) const; + //! + Integer DividedBy(const Integer &b) const; + //! + Integer Modulo(const Integer &b) const; + //! + Integer DividedBy(word b) const; + //! + word Modulo(word b) const; + + //! + Integer operator>>(unsigned int n) const {return Integer(*this)>>=n;} + //! + Integer operator<<(unsigned int n) const {return Integer(*this)<<=n;} + //@} + + //! \name OTHER ARITHMETIC FUNCTIONS + //@{ + //! + Integer AbsoluteValue() const; + //! + Integer Doubled() const {return Plus(*this);} + //! + Integer Squared() const {return Times(*this);} + //! extract square root, if negative return 0, else return floor of square root + Integer SquareRoot() const; + //! return whether this integer is a perfect square + bool IsSquare() const; + + //! is 1 or -1 + bool IsUnit() const; + //! return inverse if 1 or -1, otherwise return 0 + Integer MultiplicativeInverse() const; + + //! modular multiplication + friend Integer a_times_b_mod_c(const Integer &x, const Integer& y, const Integer& m); + //! modular exponentiation + friend Integer a_exp_b_mod_c(const Integer &x, const Integer& e, const Integer& m); + + //! calculate r and q such that (a == d*q + r) && (0 <= r < abs(d)) + static void Divide(Integer &r, Integer &q, const Integer &a, const Integer &d); + //! use a faster division algorithm when divisor is short + static void Divide(word &r, Integer &q, const Integer &a, word d); + + //! returns same result as Divide(r, q, a, Power2(n)), but faster + static void DivideByPowerOf2(Integer &r, Integer &q, const Integer &a, unsigned int n); + + //! greatest common divisor + static Integer Gcd(const Integer &a, const Integer &n); + //! calculate multiplicative inverse of *this mod n + Integer InverseMod(const Integer &n) const; + //! + word InverseMod(word n) const; + //@} + + //! \name INPUT/OUTPUT + //@{ + //! + friend std::istream& operator>>(std::istream& in, Integer &a); + //! + friend std::ostream& operator<<(std::ostream& out, const Integer &a); + //@} + +private: + friend class ModularArithmetic; + friend class MontgomeryRepresentation; + friend class HalfMontgomeryRepresentation; + + Integer(word value, unsigned int length); + + int PositiveCompare(const Integer &t) const; + friend void PositiveAdd(Integer &sum, const Integer &a, const Integer &b); + friend void PositiveSubtract(Integer &diff, const Integer &a, const Integer &b); + friend void PositiveMultiply(Integer &product, const Integer &a, const Integer &b); + friend void PositiveDivide(Integer &remainder, Integer "ient, const Integer ÷nd, const Integer &divisor); + + SecAlignedWordBlock reg; + Sign sign; +}; + +//! +inline bool operator==(const CryptoPP::Integer& a, const CryptoPP::Integer& b) {return a.Compare(b)==0;} +//! +inline bool operator!=(const CryptoPP::Integer& a, const CryptoPP::Integer& b) {return a.Compare(b)!=0;} +//! +inline bool operator> (const CryptoPP::Integer& a, const CryptoPP::Integer& b) {return a.Compare(b)> 0;} +//! +inline bool operator>=(const CryptoPP::Integer& a, const CryptoPP::Integer& b) {return a.Compare(b)>=0;} +//! +inline bool operator< (const CryptoPP::Integer& a, const CryptoPP::Integer& b) {return a.Compare(b)< 0;} +//! +inline bool operator<=(const CryptoPP::Integer& a, const CryptoPP::Integer& b) {return a.Compare(b)<=0;} +//! +inline CryptoPP::Integer operator+(const CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Plus(b);} +//! +inline CryptoPP::Integer operator-(const CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Minus(b);} +//! +inline CryptoPP::Integer operator*(const CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Times(b);} +//! +inline CryptoPP::Integer operator/(const CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.DividedBy(b);} +//! +inline CryptoPP::Integer operator%(const CryptoPP::Integer &a, const CryptoPP::Integer &b) {return a.Modulo(b);} +//! +inline CryptoPP::Integer operator/(const CryptoPP::Integer &a, CryptoPP::word b) {return a.DividedBy(b);} +//! +inline CryptoPP::word operator%(const CryptoPP::Integer &a, CryptoPP::word b) {return a.Modulo(b);} + +NAMESPACE_END + +NAMESPACE_BEGIN(std) +template<> inline void swap(CryptoPP::Integer &a, CryptoPP::Integer &b) +{ + a.swap(b); +} +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/iterhash.cpp b/stepmania/src/crypto51/iterhash.cpp new file mode 100644 index 0000000000..00cc12bcd4 --- /dev/null +++ b/stepmania/src/crypto51/iterhash.cpp @@ -0,0 +1,122 @@ +// iterhash.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "iterhash.h" +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +template +IteratedHashBase::IteratedHashBase(unsigned int blockSize, unsigned int digestSize) + : m_data(blockSize/sizeof(T)), m_digest(digestSize/sizeof(T)) + , m_countHi(0), m_countLo(0) +{ +} + +template void IteratedHashBase::Update(const byte *input, unsigned int len) +{ + HashWordType tmp = m_countLo; + if ((m_countLo = tmp + len) < tmp) + m_countHi++; // carry from low to high + m_countHi += SafeRightShift<8*sizeof(HashWordType)>(len); + + unsigned int blockSize = BlockSize(); + unsigned int num = ModPowerOf2(tmp, blockSize); + + if (num != 0) // process left over data + { + if ((num+len) >= blockSize) + { + memcpy((byte *)m_data.begin()+num, input, blockSize-num); + HashBlock(m_data); + input += (blockSize-num); + len-=(blockSize - num); + num=0; + // drop through and do the rest + } + else + { + memcpy((byte *)m_data.begin()+num, input, len); + return; + } + } + + // now process the input data in blocks of blockSize bytes and save the leftovers to m_data + if (len >= blockSize) + { + if (input == (byte *)m_data.begin()) + { + assert(len == blockSize); + HashBlock(m_data); + return; + } + else if (IsAligned(input)) + { + unsigned int leftOver = HashMultipleBlocks((T *)input, len); + input += (len - leftOver); + len = leftOver; + } + else + do + { // copy input first if it's not aligned correctly + memcpy(m_data, input, blockSize); + HashBlock(m_data); + input+=blockSize; + len-=blockSize; + } while (len >= blockSize); + } + + memcpy(m_data, input, len); +} + +template byte * IteratedHashBase::CreateUpdateSpace(unsigned int &size) +{ + unsigned int blockSize = BlockSize(); + unsigned int num = ModPowerOf2(m_countLo, blockSize); + size = blockSize - num; + return (byte *)m_data.begin() + num; +} + +template unsigned int IteratedHashBase::HashMultipleBlocks(const T *input, unsigned int length) +{ + unsigned int blockSize = BlockSize(); + do + { + HashBlock(input); + input += blockSize/sizeof(T); + length -= blockSize; + } + while (length >= blockSize); + return length; +} + +template void IteratedHashBase::PadLastBlock(unsigned int lastBlockSize, byte padFirst) +{ + unsigned int blockSize = BlockSize(); + unsigned int num = ModPowerOf2(m_countLo, blockSize); + ((byte *)m_data.begin())[num++]=padFirst; + if (num <= lastBlockSize) + memset((byte *)m_data.begin()+num, 0, lastBlockSize-num); + else + { + memset((byte *)m_data.begin()+num, 0, blockSize-num); + HashBlock(m_data); + memset(m_data, 0, lastBlockSize); + } +} + +template void IteratedHashBase::Restart() +{ + m_countLo = m_countHi = 0; + Init(); +} + +#ifdef WORD64_AVAILABLE +template class IteratedHashBase; +template class IteratedHashBase; +#endif + +template class IteratedHashBase; +template class IteratedHashBase; + +NAMESPACE_END diff --git a/stepmania/src/crypto51/iterhash.h b/stepmania/src/crypto51/iterhash.h new file mode 100644 index 0000000000..7945cec6b3 --- /dev/null +++ b/stepmania/src/crypto51/iterhash.h @@ -0,0 +1,121 @@ +#ifndef CRYPTOPP_ITERHASH_H +#define CRYPTOPP_ITERHASH_H + +#include "cryptlib.h" +#include "secblock.h" +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +template +class IteratedHashBase : public BASE +{ +public: + typedef T HashWordType; + + IteratedHashBase(unsigned int blockSize, unsigned int digestSize); + unsigned int DigestSize() const {return m_digest.size() * sizeof(T);}; + unsigned int OptimalBlockSize() const {return BlockSize();} + unsigned int OptimalDataAlignment() const {return sizeof(T);} + void Update(const byte *input, unsigned int length); + byte * CreateUpdateSpace(unsigned int &size); + void Restart(); + +protected: + T GetBitCountHi() const {return (m_countLo >> (8*sizeof(T)-3)) + (m_countHi << 3);} + T GetBitCountLo() const {return m_countLo << 3;} + + virtual unsigned int HashMultipleBlocks(const T *input, unsigned int length); + void PadLastBlock(unsigned int lastBlockSize, byte padFirst=0x80); + virtual void Init() =0; + virtual void HashBlock(const T *input) =0; + virtual unsigned int BlockSize() const =0; + + SecBlock m_data; // Data buffer + SecBlock m_digest; // Message digest + +private: + T m_countLo, m_countHi; +}; + +//! . +template +class IteratedHashBase2 : public IteratedHashBase +{ +public: + IteratedHashBase2(unsigned int blockSize, unsigned int digestSize) + : IteratedHashBase(blockSize, digestSize) {} + + typedef B ByteOrderClass; + typedef typename IteratedHashBase::HashWordType HashWordType; + + inline static void CorrectEndianess(HashWordType *out, const HashWordType *in, unsigned int byteCount) + { + ConditionalByteReverse(B::ToEnum(), out, in, byteCount); + } + + void TruncatedFinal(byte *hash, unsigned int size); + +protected: + void HashBlock(const HashWordType *input); + + virtual void vTransform(const HashWordType *data) =0; +}; + +//! . +template +class IteratedHash : public IteratedHashBase2 +{ +public: + enum {BLOCKSIZE = S}; + +private: + CRYPTOPP_COMPILE_ASSERT((BLOCKSIZE & (BLOCKSIZE - 1)) == 0); // blockSize is a power of 2 + +protected: + IteratedHash(unsigned int digestSize) : IteratedHashBase2(BLOCKSIZE, digestSize) {} + unsigned int BlockSize() const {return BLOCKSIZE;} +}; + +template +class IteratedHashWithStaticTransform : public IteratedHash +{ +protected: + IteratedHashWithStaticTransform(unsigned int digestSize) : IteratedHash(digestSize) {} + void vTransform(const T *data) {M::Transform(m_digest, data);} + std::string AlgorithmName() const {return M::StaticAlgorithmName();} +}; + +// ************************************************************* + +template void IteratedHashBase2::TruncatedFinal(byte *hash, unsigned int size) +{ + ThrowIfInvalidTruncatedSize(size); + + PadLastBlock(BlockSize() - 2*sizeof(HashWordType)); + CorrectEndianess(m_data, m_data, BlockSize() - 2*sizeof(HashWordType)); + + m_data[m_data.size()-2] = B::ToEnum() ? GetBitCountHi() : GetBitCountLo(); + m_data[m_data.size()-1] = B::ToEnum() ? GetBitCountLo() : GetBitCountHi(); + + vTransform(m_data); + CorrectEndianess(m_digest, m_digest, DigestSize()); + memcpy(hash, m_digest, size); + + Restart(); // reinit for next use +} + +template void IteratedHashBase2::HashBlock(const HashWordType *input) +{ + if (NativeByteOrderIs(B::ToEnum())) + vTransform(input); + else + { + ByteReverse(m_data.begin(), input, BlockSize()); + vTransform(m_data); + } +} + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/md5.cpp b/stepmania/src/crypto51/md5.cpp new file mode 100644 index 0000000000..7bd4f38530 --- /dev/null +++ b/stepmania/src/crypto51/md5.cpp @@ -0,0 +1,115 @@ +// md5.cpp - modified by Wei Dai from Colin Plumb's public domain md5.c +// any modifications are placed in the public domain + +#include "pch.h" +#include "md5.h" +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +void MD5_TestInstantiations() +{ + MD5 x; +} + +void MD5::Init() +{ + m_digest[0] = 0x67452301L; + m_digest[1] = 0xefcdab89L; + m_digest[2] = 0x98badcfeL; + m_digest[3] = 0x10325476L; +} + +void MD5::Transform (word32 *digest, const word32 *in) +{ +// #define F1(x, y, z) (x & y | ~x & z) +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +#define MD5STEP(f, w, x, y, z, data, s) \ + w = rotlFixed(w + f(x, y, z) + data, s) + x + + word32 a, b, c, d; + + a=digest[0]; + b=digest[1]; + c=digest[2]; + d=digest[3]; + + MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); + + digest[0]+=a; + digest[1]+=b; + digest[2]+=c; + digest[3]+=d; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/md5.h b/stepmania/src/crypto51/md5.h new file mode 100644 index 0000000000..2e8850f9ce --- /dev/null +++ b/stepmania/src/crypto51/md5.h @@ -0,0 +1,24 @@ +#ifndef CRYPTOPP_MD5_H +#define CRYPTOPP_MD5_H + +#include "iterhash.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! MD5 +/*! 128 Bit Hash */ +class MD5 : public IteratedHashWithStaticTransform +{ +public: + enum {DIGESTSIZE = 16}; + MD5() : IteratedHashWithStaticTransform(DIGESTSIZE) {Init();} + static void Transform(word32 *digest, const word32 *data); + static const char * StaticAlgorithmName() {return "MD5";} + +protected: + void Init(); +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/mdc.h b/stepmania/src/crypto51/mdc.h new file mode 100644 index 0000000000..8c76aafd21 --- /dev/null +++ b/stepmania/src/crypto51/mdc.h @@ -0,0 +1,72 @@ + // mdc.h - written and placed in the public domain by Wei Dai + +#ifndef CRYPTOPP_MDC_H +#define CRYPTOPP_MDC_H + +/** \file +*/ + +#include "seckey.h" +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +template +struct MDC_Info : public FixedBlockSize, public FixedKeyLength +{ + static std::string StaticAlgorithmName() {return std::string("MDC/")+T::StaticAlgorithmName();} +}; + +//! MDC +/*! a construction by Peter Gutmann to turn an iterated hash function into a PRF */ +template +class MDC : public MDC_Info +{ + class Enc : public BlockCipherBaseTemplate > + { + typedef typename T::HashWordType HashWordType; + + public: + void UncheckedSetKey(CipherDir direction, const byte *userKey, unsigned int length) + { + assert(direction == ENCRYPTION); + AssertValidKeyLength(length); + memcpy(Key(), userKey, KEYLENGTH); + T::CorrectEndianess(Key(), Key(), KEYLENGTH); + } + + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const + { + T::CorrectEndianess(Buffer(), (HashWordType *)inBlock, BLOCKSIZE); + T::Transform(Buffer(), Key()); + if (xorBlock) + { + T::CorrectEndianess(Buffer(), Buffer(), BLOCKSIZE); + xorbuf(outBlock, xorBlock, m_buffer, BLOCKSIZE); + } + else + T::CorrectEndianess((HashWordType *)outBlock, Buffer(), BLOCKSIZE); + } + + bool IsPermutation() const {return false;} + + unsigned int GetAlignment() const {return sizeof(HashWordType);} + + private: + HashWordType *Key() {return (HashWordType *)m_key.data();} + const HashWordType *Key() const {return (const HashWordType *)m_key.data();} + HashWordType *Buffer() const {return (HashWordType *)m_buffer.data();} + + // VC60 workaround: bug triggered if using FixedSizeAllocatorWithCleanup + FixedSizeSecBlock::KEYLENGTH, AllocatorWithCleanup > m_key; + mutable FixedSizeSecBlock::BLOCKSIZE, AllocatorWithCleanup > m_buffer; + }; + +public: + //! use BlockCipher interface + typedef BlockCipherTemplate Encryption; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/misc.cpp b/stepmania/src/crypto51/misc.cpp new file mode 100644 index 0000000000..c193b3f3ed --- /dev/null +++ b/stepmania/src/crypto51/misc.cpp @@ -0,0 +1,83 @@ +// misc.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "misc.h" +#include "words.h" + +NAMESPACE_BEGIN(CryptoPP) + +byte OAEP_P_DEFAULT[1]; + +template<> void ByteReverse(word16 *, const word16 *, unsigned int); +template<> void ByteReverse(word32 *, const word32 *, unsigned int); +#ifdef WORD64_AVAILABLE +template<> void ByteReverse(word64 *, const word64 *, unsigned int); +#endif + +void xorbuf(byte *buf, const byte *mask, unsigned int count) +{ + if (((unsigned int)buf | (unsigned int)mask | count) % WORD_SIZE == 0) + XorWords((word *)buf, (const word *)mask, count/WORD_SIZE); + else + { + for (unsigned int i=0; i0; i/=2) + value ^= value >> i; + return (unsigned int)value&1; +} + +unsigned int BytePrecision(unsigned long value) +{ + unsigned int i; + for (i=sizeof(value); i; --i) + if (value >> (i-1)*8) + break; + + return i; +} + +unsigned int BitPrecision(unsigned long value) +{ + if (!value) + return 0; + + unsigned int l=0, h=8*sizeof(value); + + while (h-l > 1) + { + unsigned int t = (l+h)/2; + if (value >> t) + l = t; + else + h = t; + } + + return h; +} + +unsigned long Crop(unsigned long value, unsigned int size) +{ + if (size < 8*sizeof(value)) + return (value & ((1L << size) - 1)); + else + return value; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/misc.h b/stepmania/src/crypto51/misc.h new file mode 100644 index 0000000000..1e341e2594 --- /dev/null +++ b/stepmania/src/crypto51/misc.h @@ -0,0 +1,688 @@ +#ifndef CRYPTOPP_MISC_H +#define CRYPTOPP_MISC_H + +#include "config.h" +#include "cryptlib.h" +#include +#include // CodeWarrior doesn't have memory.h +#include +#include + +#ifdef INTEL_INTRINSICS +#include +#endif + +NAMESPACE_BEGIN(CryptoPP) + +// ************** compile-time assertion *************** + +template +struct CompileAssert +{ + static char dummy[2*b-1]; +}; + +#define CRYPTOPP_COMPILE_ASSERT(assertion) CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, __LINE__) +#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance) +#define CRYPTOPP_ASSERT_JOIN(X, Y) CRYPTOPP_DO_ASSERT_JOIN(X, Y) +#define CRYPTOPP_DO_ASSERT_JOIN(X, Y) X##Y + +// ************** misc classes *************** + +class Empty +{ +}; + +template +class TwoBases : public BASE1, public BASE2 +{ +}; + +template +class ThreeBases : public BASE1, public BASE2, public BASE3 +{ +}; + +template +class ObjectHolder +{ +protected: + T m_object; +}; + +class NotCopyable +{ +public: + NotCopyable() {} +private: + NotCopyable(const NotCopyable &); + void operator=(const NotCopyable &); +}; + +// ************** misc functions *************** + +// can't use std::min or std::max in MSVC60 or Cygwin 1.1.0 +template inline const _Tp& STDMIN(const _Tp& __a, const _Tp& __b) +{ + return __b < __a ? __b : __a; +} + +template inline const _Tp& STDMAX(const _Tp& __a, const _Tp& __b) +{ + return __a < __b ? __b : __a; +} + +#define RETURN_IF_NONZERO(x) unsigned int returnedValue = x; if (returnedValue) return returnedValue + +// this version of the macro is fastest on Pentium 3 and Pentium 4 with MSVC 6 SP5 w/ Processor Pack +#define GETBYTE(x, y) (unsigned int)byte((x)>>(8*(y))) +// these may be faster on other CPUs/compilers +// #define GETBYTE(x, y) (unsigned int)(((x)>>(8*(y)))&255) +// #define GETBYTE(x, y) (((byte *)&(x))[y]) + +unsigned int Parity(unsigned long); +unsigned int BytePrecision(unsigned long); +unsigned int BitPrecision(unsigned long); +unsigned long Crop(unsigned long, unsigned int size); + +inline unsigned int BitsToBytes(unsigned int bitCount) +{ + return ((bitCount+7)/(8)); +} + +inline unsigned int BytesToWords(unsigned int byteCount) +{ + return ((byteCount+WORD_SIZE-1)/WORD_SIZE); +} + +inline unsigned int BitsToWords(unsigned int bitCount) +{ + return ((bitCount+WORD_BITS-1)/(WORD_BITS)); +} + +void xorbuf(byte *buf, const byte *mask, unsigned int count); +void xorbuf(byte *output, const byte *input, const byte *mask, unsigned int count); + +template +inline bool IsPowerOf2(T n) +{ + return n > 0 && (n & (n-1)) == 0; +} + +template +inline T2 ModPowerOf2(T1 a, T2 b) +{ + assert(IsPowerOf2(b)); + return T2(a) & (b-1); +} + +template +inline T RoundDownToMultipleOf(T n, T m) +{ + return n - (IsPowerOf2(m) ? ModPowerOf2(n, m) : (n%m)); +} + +template +inline T RoundUpToMultipleOf(T n, T m) +{ + return RoundDownToMultipleOf(n+m-1, m); +} + +template +inline unsigned int GetAlignment(T *dummy=NULL) // VC60 workaround +{ +#if (_MSC_VER >= 1300) + return __alignof(T); +#elif defined(__GNUC__) + return __alignof__(T); +#else + return sizeof(T); +#endif +} + +inline bool IsAlignedOn(const void *p, unsigned int alignment) +{ + return IsPowerOf2(alignment) ? ModPowerOf2((unsigned int)p, alignment) == 0 : (unsigned int)p % alignment == 0; +} + +template +inline bool IsAligned(const void *p, T *dummy=NULL) // VC60 workaround +{ + return IsAlignedOn(p, GetAlignment()); +} + +#ifdef IS_LITTLE_ENDIAN + typedef LittleEndian NativeByteOrder; +#else + typedef BigEndian NativeByteOrder; +#endif + +inline ByteOrder GetNativeByteOrder() +{ + return NativeByteOrder::ToEnum(); +} + +inline bool NativeByteOrderIs(ByteOrder order) +{ + return order == GetNativeByteOrder(); +} + +template // can't use because GCC 2.95.2 doesn't have it +std::string IntToString(T a, unsigned int base = 10) +{ + if (a == 0) + return "0"; + bool negate = false; + if (a < 0) + { + negate = true; + a = 0-a; // VC .NET does not like -a + } + std::string result; + while (a > 0) + { + T digit = a % base; + result = char((digit < 10 ? '0' : ('a' - 10)) + digit) + result; + a /= base; + } + if (negate) + result = "-" + result; + return result; +} + +template +inline T1 SaturatingSubtract(T1 a, T2 b) +{ + CRYPTOPP_COMPILE_ASSERT_INSTANCE(T1(-1)>0, 0); // T1 is unsigned type + CRYPTOPP_COMPILE_ASSERT_INSTANCE(T2(-1)>0, 1); // T2 is unsigned type + return T1((a > b) ? (a - b) : 0); +} + +template +inline CipherDir GetCipherDir(const T &obj) +{ + return obj.IsForwardTransformation() ? ENCRYPTION : DECRYPTION; +} + +// ************** rotate functions *************** + +template inline T rotlFixed(T x, unsigned int y) +{ + assert(y < sizeof(T)*8); + return (x<>(sizeof(T)*8-y)); +} + +template inline T rotrFixed(T x, unsigned int y) +{ + assert(y < sizeof(T)*8); + return (x>>y) | (x<<(sizeof(T)*8-y)); +} + +template inline T rotlVariable(T x, unsigned int y) +{ + assert(y < sizeof(T)*8); + return (x<>(sizeof(T)*8-y)); +} + +template inline T rotrVariable(T x, unsigned int y) +{ + assert(y < sizeof(T)*8); + return (x>>y) | (x<<(sizeof(T)*8-y)); +} + +template inline T rotlMod(T x, unsigned int y) +{ + y %= sizeof(T)*8; + return (x<>(sizeof(T)*8-y)); +} + +template inline T rotrMod(T x, unsigned int y) +{ + y %= sizeof(T)*8; + return (x>>y) | (x<<(sizeof(T)*8-y)); +} + +#ifdef INTEL_INTRINSICS + +#pragma intrinsic(_lrotl, _lrotr) + +template<> inline word32 rotlFixed(word32 x, unsigned int y) +{ + assert(y < 32); + return y ? _lrotl(x, y) : x; +} + +template<> inline word32 rotrFixed(word32 x, unsigned int y) +{ + assert(y < 32); + return y ? _lrotr(x, y) : x; +} + +template<> inline word32 rotlVariable(word32 x, unsigned int y) +{ + assert(y < 32); + return _lrotl(x, y); +} + +template<> inline word32 rotrVariable(word32 x, unsigned int y) +{ + assert(y < 32); + return _lrotr(x, y); +} + +template<> inline word32 rotlMod(word32 x, unsigned int y) +{ + return _lrotl(x, y); +} + +template<> inline word32 rotrMod(word32 x, unsigned int y) +{ + return _lrotr(x, y); +} + +#endif // #ifdef INTEL_INTRINSICS + +#ifdef PPC_INTRINSICS + +template<> inline word32 rotlFixed(word32 x, unsigned int y) +{ + assert(y < 32); + return y ? __rlwinm(x,y,0,31) : x; +} + +template<> inline word32 rotrFixed(word32 x, unsigned int y) +{ + assert(y < 32); + return y ? __rlwinm(x,32-y,0,31) : x; +} + +template<> inline word32 rotlVariable(word32 x, unsigned int y) +{ + assert(y < 32); + return (__rlwnm(x,y,0,31)); +} + +template<> inline word32 rotrVariable(word32 x, unsigned int y) +{ + assert(y < 32); + return (__rlwnm(x,32-y,0,31)); +} + +template<> inline word32 rotlMod(word32 x, unsigned int y) +{ + return (__rlwnm(x,y,0,31)); +} + +template<> inline word32 rotrMod(word32 x, unsigned int y) +{ + return (__rlwnm(x,32-y,0,31)); +} + +#endif // #ifdef PPC_INTRINSICS + +// ************** endian reversal *************** + +template +inline unsigned int GetByte(ByteOrder order, T value, unsigned int index) +{ + if (order == LITTLE_ENDIAN_ORDER) + return GETBYTE(value, index); + else + return GETBYTE(value, sizeof(T)-index-1); +} + +inline byte ByteReverse(byte value) +{ + return value; +} + +inline word16 ByteReverse(word16 value) +{ + return rotlFixed(value, 8U); +} + +inline word32 ByteReverse(word32 value) +{ +#ifdef PPC_INTRINSICS + // PPC: load reverse indexed instruction + return (word32)__lwbrx(&value,0); +#elif defined(FAST_ROTATE) + // 5 instructions with rotate instruction, 9 without + return (rotrFixed(value, 8U) & 0xff00ff00) | (rotlFixed(value, 8U) & 0x00ff00ff); +#else + // 6 instructions with rotate instruction, 8 without + value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); + return rotlFixed(value, 16U); +#endif +} + +#ifdef WORD64_AVAILABLE +inline word64 ByteReverse(word64 value) +{ +#ifdef SLOW_WORD64 + return (word64(ByteReverse(word32(value))) << 32) | ByteReverse(word32(value>>32)); +#else + value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | ((value & W64LIT(0x00FF00FF00FF00FF)) << 8); + value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | ((value & W64LIT(0x0000FFFF0000FFFF)) << 16); + return rotlFixed(value, 32U); +#endif +} +#endif + +inline byte BitReverse(byte value) +{ + value = ((value & 0xAA) >> 1) | ((value & 0x55) << 1); + value = ((value & 0xCC) >> 2) | ((value & 0x33) << 2); + return rotlFixed(value, 4); +} + +inline word16 BitReverse(word16 value) +{ + value = ((value & 0xAAAA) >> 1) | ((value & 0x5555) << 1); + value = ((value & 0xCCCC) >> 2) | ((value & 0x3333) << 2); + value = ((value & 0xF0F0) >> 4) | ((value & 0x0F0F) << 4); + return ByteReverse(value); +} + +inline word32 BitReverse(word32 value) +{ + value = ((value & 0xAAAAAAAA) >> 1) | ((value & 0x55555555) << 1); + value = ((value & 0xCCCCCCCC) >> 2) | ((value & 0x33333333) << 2); + value = ((value & 0xF0F0F0F0) >> 4) | ((value & 0x0F0F0F0F) << 4); + return ByteReverse(value); +} + +#ifdef WORD64_AVAILABLE +inline word64 BitReverse(word64 value) +{ +#ifdef SLOW_WORD64 + return (word64(BitReverse(word32(value))) << 32) | BitReverse(word32(value>>32)); +#else + value = ((value & W64LIT(0xAAAAAAAAAAAAAAAA)) >> 1) | ((value & W64LIT(0x5555555555555555)) << 1); + value = ((value & W64LIT(0xCCCCCCCCCCCCCCCC)) >> 2) | ((value & W64LIT(0x3333333333333333)) << 2); + value = ((value & W64LIT(0xF0F0F0F0F0F0F0F0)) >> 4) | ((value & W64LIT(0x0F0F0F0F0F0F0F0F)) << 4); + return ByteReverse(value); +#endif +} +#endif + +template +inline T BitReverse(T value) +{ + if (sizeof(T) == 1) + return (T)BitReverse((byte)value); + else if (sizeof(T) == 2) + return (T)BitReverse((word16)value); + else if (sizeof(T) == 4) + return (T)BitReverse((word32)value); + else + { +#ifdef WORD64_AVAILABLE + assert(sizeof(T) == 8); + return (T)BitReverse((word64)value); +#else + assert(false); + return 0; +#endif + } +} + +template +inline T ConditionalByteReverse(ByteOrder order, T value) +{ + return NativeByteOrderIs(order) ? value : ByteReverse(value); +} + +template +void ByteReverse(T *out, const T *in, unsigned int byteCount) +{ + assert(byteCount % sizeof(T) == 0); + unsigned int count = byteCount/sizeof(T); + for (unsigned int i=0; i +inline void ConditionalByteReverse(ByteOrder order, T *out, const T *in, unsigned int byteCount) +{ + if (!NativeByteOrderIs(order)) + ByteReverse(out, in, byteCount); + else if (in != out) + memcpy(out, in, byteCount); +} + +template +inline void GetUserKey(ByteOrder order, T *out, unsigned int outlen, const byte *in, unsigned int inlen) +{ + const unsigned int U = sizeof(T); + assert(inlen <= outlen*U); + memcpy(out, in, inlen); + memset((byte *)out+inlen, 0, outlen*U-inlen); + ConditionalByteReverse(order, out, out, RoundUpToMultipleOf(inlen, U)); +} + +inline byte UnalignedGetWordNonTemplate(ByteOrder order, const byte *block, byte*) +{ + return block[0]; +} + +inline word16 UnalignedGetWordNonTemplate(ByteOrder order, const byte *block, word16*) +{ + return (order == BIG_ENDIAN_ORDER) + ? block[1] | (block[0] << 8) + : block[0] | (block[1] << 8); +} + +inline word32 UnalignedGetWordNonTemplate(ByteOrder order, const byte *block, word32*) +{ + return (order == BIG_ENDIAN_ORDER) + ? word32(block[3]) | (word32(block[2]) << 8) | (word32(block[1]) << 16) | (word32(block[0]) << 24) + : word32(block[0]) | (word32(block[1]) << 8) | (word32(block[2]) << 16) | (word32(block[3]) << 24); +} + +template +inline T UnalignedGetWord(ByteOrder order, const byte *block, T*dummy=NULL) +{ + return UnalignedGetWordNonTemplate(order, block, dummy); +} + +inline void UnalignedPutWord(ByteOrder order, byte *block, byte value, const byte *xorBlock = NULL) +{ + block[0] = xorBlock ? (value ^ xorBlock[0]) : value; +} + +inline void UnalignedPutWord(ByteOrder order, byte *block, word16 value, const byte *xorBlock = NULL) +{ + if (order == BIG_ENDIAN_ORDER) + { + block[0] = GETBYTE(value, 1); + block[1] = GETBYTE(value, 0); + } + else + { + block[0] = GETBYTE(value, 0); + block[1] = GETBYTE(value, 1); + } + + if (xorBlock) + { + block[0] ^= xorBlock[0]; + block[1] ^= xorBlock[1]; + } +} + +inline void UnalignedPutWord(ByteOrder order, byte *block, word32 value, const byte *xorBlock = NULL) +{ + if (order == BIG_ENDIAN_ORDER) + { + block[0] = GETBYTE(value, 3); + block[1] = GETBYTE(value, 2); + block[2] = GETBYTE(value, 1); + block[3] = GETBYTE(value, 0); + } + else + { + block[0] = GETBYTE(value, 0); + block[1] = GETBYTE(value, 1); + block[2] = GETBYTE(value, 2); + block[3] = GETBYTE(value, 3); + } + + if (xorBlock) + { + block[0] ^= xorBlock[0]; + block[1] ^= xorBlock[1]; + block[2] ^= xorBlock[2]; + block[3] ^= xorBlock[3]; + } +} + +template +inline T GetWord(bool assumeAligned, ByteOrder order, const byte *block) +{ + if (assumeAligned) + { + assert(IsAligned(block)); + return ConditionalByteReverse(order, *reinterpret_cast(block)); + } + else + return UnalignedGetWord(order, block); +} + +template +inline void GetWord(bool assumeAligned, ByteOrder order, T &result, const byte *block) +{ + result = GetWord(assumeAligned, order, block); +} + +template +inline void PutWord(bool assumeAligned, ByteOrder order, byte *block, T value, const byte *xorBlock = NULL) +{ + if (assumeAligned) + { + assert(IsAligned(block)); + if (xorBlock) + *reinterpret_cast(block) = ConditionalByteReverse(order, value) ^ *reinterpret_cast(xorBlock); + else + *reinterpret_cast(block) = ConditionalByteReverse(order, value); + } + else + UnalignedPutWord(order, block, value, xorBlock); +} + +template +class GetBlock +{ +public: + GetBlock(const void *block) + : m_block((const byte *)block) {} + + template + inline GetBlock & operator()(U &x) + { + CRYPTOPP_COMPILE_ASSERT(sizeof(U) >= sizeof(T)); + x = GetWord(A, B::ToEnum(), m_block); + m_block += sizeof(T); + return *this; + } + +private: + const byte *m_block; +}; + +template +class PutBlock +{ +public: + PutBlock(const void *xorBlock, void *block) + : m_xorBlock((const byte *)xorBlock), m_block((byte *)block) {} + + template + inline PutBlock & operator()(U x) + { + PutWord(A, B::ToEnum(), m_block, (T)x, m_xorBlock); + m_block += sizeof(T); + if (m_xorBlock) + m_xorBlock += sizeof(T); + return *this; + } + +private: + const byte *m_xorBlock; + byte *m_block; +}; + +template +struct BlockGetAndPut +{ + // function needed because of C++ grammatical ambiguity between expression-statements and declarations + static inline GetBlock Get(const void *block) {return GetBlock(block);} + typedef PutBlock Put; +}; + +template +std::string WordToString(T value, ByteOrder order = BIG_ENDIAN_ORDER) +{ + if (!NativeByteOrderIs(order)) + value = ByteReverse(value); + + return std::string((char *)&value, sizeof(value)); +} + +template +T StringToWord(const std::string &str, ByteOrder order = BIG_ENDIAN_ORDER) +{ + T value = 0; + memcpy(&value, str.data(), STDMIN(sizeof(value), str.size())); + return NativeByteOrderIs(order) ? value : ByteReverse(value); +} + +// ************** help remove warning on g++ *************** + +template struct SafeShifter; + +template<> struct SafeShifter +{ + template + static inline T RightShift(T value, unsigned int bits) + { + return 0; + } + + template + static inline T LeftShift(T value, unsigned int bits) + { + return 0; + } +}; + +template<> struct SafeShifter +{ + template + static inline T RightShift(T value, unsigned int bits) + { + return value >> bits; + } + + template + static inline T LeftShift(T value, unsigned int bits) + { + return value << bits; + } +}; + +template +inline T SafeRightShift(T value) +{ + return SafeShifter<(bits>=(8*sizeof(T)))>::RightShift(value, bits); +} + +template +inline T SafeLeftShift(T value) +{ + return SafeShifter<(bits>=(8*sizeof(T)))>::LeftShift(value, bits); +} + +NAMESPACE_END + +#endif // MISC_H diff --git a/stepmania/src/crypto51/modarith.h b/stepmania/src/crypto51/modarith.h new file mode 100644 index 0000000000..b97b1060e7 --- /dev/null +++ b/stepmania/src/crypto51/modarith.h @@ -0,0 +1,149 @@ +#ifndef CRYPTOPP_MODARITH_H +#define CRYPTOPP_MODARITH_H + +// implementations are in integer.cpp + +#include "cryptlib.h" +#include "misc.h" +#include "integer.h" +#include "algebra.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! . +class ModularArithmetic : public AbstractRing +{ +public: + + typedef int RandomizationParameter; + typedef Integer Element; + + ModularArithmetic(const Integer &modulus = Integer::One()) + : modulus(modulus), result((word)0, modulus.reg.size()) {} + + ModularArithmetic(const ModularArithmetic &ma) + : modulus(ma.modulus), result((word)0, modulus.reg.size()) {} + + ModularArithmetic(BufferedTransformation &bt); // construct from BER encoded parameters + + virtual ModularArithmetic * Clone() const {return new ModularArithmetic(*this);} + + void DEREncode(BufferedTransformation &bt) const; + + void DEREncodeElement(BufferedTransformation &out, const Element &a) const; + void BERDecodeElement(BufferedTransformation &in, Element &a) const; + + const Integer& GetModulus() const {return modulus;} + void SetModulus(const Integer &newModulus) {modulus = newModulus; result.reg.resize(modulus.reg.size());} + + virtual bool IsMontgomeryRepresentation() const {return false;} + + virtual Integer ConvertIn(const Integer &a) const + {return a%modulus;} + + virtual Integer ConvertOut(const Integer &a) const + {return a;} + + const Integer& Half(const Integer &a) const; + + bool Equal(const Integer &a, const Integer &b) const + {return a==b;} + + const Integer& Identity() const + {return Integer::Zero();} + + const Integer& Add(const Integer &a, const Integer &b) const; + + Integer& Accumulate(Integer &a, const Integer &b) const; + + const Integer& Inverse(const Integer &a) const; + + const Integer& Subtract(const Integer &a, const Integer &b) const; + + Integer& Reduce(Integer &a, const Integer &b) const; + + const Integer& Double(const Integer &a) const + {return Add(a, a);} + + const Integer& MultiplicativeIdentity() const + {return Integer::One();} + + const Integer& Multiply(const Integer &a, const Integer &b) const + {return result1 = a*b%modulus;} + + const Integer& Square(const Integer &a) const + {return result1 = a.Squared()%modulus;} + + bool IsUnit(const Integer &a) const + {return Integer::Gcd(a, modulus).IsUnit();} + + const Integer& MultiplicativeInverse(const Integer &a) const + {return result1 = a.InverseMod(modulus);} + + const Integer& Divide(const Integer &a, const Integer &b) const + {return Multiply(a, MultiplicativeInverse(b));} + + Integer CascadeExponentiate(const Integer &x, const Integer &e1, const Integer &y, const Integer &e2) const; + + void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const; + + unsigned int MaxElementBitLength() const + {return (modulus-1).BitCount();} + + unsigned int MaxElementByteLength() const + {return (modulus-1).ByteCount();} + + Element RandomElement( RandomNumberGenerator &rng , const RandomizationParameter &ignore_for_now = 0 ) const + // left RandomizationParameter arg as ref in case RandomizationParameter becomes a more complicated struct + { + return Element( rng , Integer( (long) 0) , modulus - Integer( (long) 1 ) ) ; + } + + static const RandomizationParameter DefaultRandomizationParameter ; + +protected: + Integer modulus; + mutable Integer result, result1; + +}; + +// const ModularArithmetic::RandomizationParameter ModularArithmetic::DefaultRandomizationParameter = 0 ; + +//! do modular arithmetics in Montgomery representation for increased speed +class MontgomeryRepresentation : public ModularArithmetic +{ +public: + MontgomeryRepresentation(const Integer &modulus); // modulus must be odd + + virtual ModularArithmetic * Clone() const {return new MontgomeryRepresentation(*this);} + + bool IsMontgomeryRepresentation() const {return true;} + + Integer ConvertIn(const Integer &a) const + {return (a<<(WORD_BITS*modulus.reg.size()))%modulus;} + + Integer ConvertOut(const Integer &a) const; + + const Integer& MultiplicativeIdentity() const + {return result1 = Integer::Power2(WORD_BITS*modulus.reg.size())%modulus;} + + const Integer& Multiply(const Integer &a, const Integer &b) const; + + const Integer& Square(const Integer &a) const; + + const Integer& MultiplicativeInverse(const Integer &a) const; + + Integer CascadeExponentiate(const Integer &x, const Integer &e1, const Integer &y, const Integer &e2) const + {return AbstractRing::CascadeExponentiate(x, e1, y, e2);} + + void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const + {AbstractRing::SimultaneousExponentiate(results, base, exponents, exponentsCount);} + +private: + Integer u; + mutable SecAlignedWordBlock workspace; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/modes.cpp b/stepmania/src/crypto51/modes.cpp new file mode 100644 index 0000000000..70c23234f2 --- /dev/null +++ b/stepmania/src/crypto51/modes.cpp @@ -0,0 +1,266 @@ +// modes.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "modes.h" + +#include "des.h" + +#include "strciphr.cpp" + +NAMESPACE_BEGIN(CryptoPP) + +void Modes_TestInstantiations() +{ + CFB_Mode::Encryption m0; + CFB_Mode::Decryption m1; + OFB_Mode::Encryption m2; + CTR_Mode::Encryption m3; + ECB_Mode::Encryption m4; + CBC_Mode::Encryption m5; +} + +// explicit instantiations for Darwin gcc-932.1 +template class CFB_CipherTemplate >; +template class CFB_EncryptionTemplate<>; +template class CFB_DecryptionTemplate<>; +template class AdditiveCipherTemplate<>; +template class CFB_CipherTemplate >; +template class CFB_EncryptionTemplate >; +template class CFB_DecryptionTemplate >; +template class AdditiveCipherTemplate >; +template class AdditiveCipherTemplate >; + +void CipherModeBase::SetKey(const byte *key, unsigned int length, const NameValuePairs ¶ms) +{ + UncheckedSetKey(params, key, length); // the underlying cipher will check the key length +} + +void CipherModeBase::GetNextIV(byte *IV) +{ + if (!IsForwardTransformation()) + throw NotImplemented("CipherModeBase: GetNextIV() must be called on an encryption object"); + + m_cipher->ProcessBlock(m_register); + memcpy(IV, m_register, BlockSize()); +} + +void CipherModeBase::SetIV(const byte *iv) +{ + if (iv) + Resynchronize(iv); + else if (IsResynchronizable()) + { + if (!CanUseStructuredIVs()) + throw InvalidArgument("CipherModeBase: this cipher mode cannot use a null IV"); + + // use all zeros as default IV + SecByteBlock iv(BlockSize()); + memset(iv, 0, iv.size()); + Resynchronize(iv); + } +} + +void CTR_ModePolicy::SeekToIteration(dword iterationCount) +{ + int carry=0; + for (int i=BlockSize()-1; i>=0; i--) + { + unsigned int sum = m_register[i] + byte(iterationCount) + carry; + m_counterArray[i] = (byte) sum; + carry = sum >> 8; + iterationCount >>= 8; + } +} + +static inline void IncrementCounterByOne(byte *inout, unsigned int s) +{ + for (int i=s-1, carry=1; i>=0 && carry; i--) + carry = !++inout[i]; +} + +static inline void IncrementCounterByOne(byte *output, const byte *input, unsigned int s) +{ + for (int i=s-1, carry=1; i>=0; i--) + carry = !(output[i] = input[i]+carry) && carry; +} + +inline void CTR_ModePolicy::ProcessMultipleBlocks(byte *output, const byte *input, unsigned int n) +{ + unsigned int s = BlockSize(), j = 0; + for (unsigned int i=1; iProcessAndXorMultipleBlocks(m_counterArray, input, output, n); + IncrementCounterByOne(m_counterArray, m_counterArray + s*(n-1), s); +} + +void CTR_ModePolicy::OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, unsigned int iterationCount) +{ + unsigned int maxBlocks = m_cipher->OptimalNumberOfParallelBlocks(); + if (maxBlocks == 1) + { + unsigned int sizeIncrement = BlockSize(); + while (iterationCount) + { + m_cipher->ProcessAndXorBlock(m_counterArray, input, output); + IncrementCounterByOne(m_counterArray, sizeIncrement); + output += sizeIncrement; + input += sizeIncrement; + iterationCount -= 1; + } + } + else + { + unsigned int sizeIncrement = maxBlocks * BlockSize(); + while (iterationCount >= maxBlocks) + { + ProcessMultipleBlocks(output, input, maxBlocks); + output += sizeIncrement; + input += sizeIncrement; + iterationCount -= maxBlocks; + } + if (iterationCount > 0) + ProcessMultipleBlocks(output, input, iterationCount); + } +} + +void CTR_ModePolicy::CipherResynchronize(byte *keystreamBuffer, const byte *iv) +{ + unsigned int s = BlockSize(); + memcpy(m_register, iv, s); + m_counterArray.New(s * m_cipher->OptimalNumberOfParallelBlocks()); + memcpy(m_counterArray, iv, s); +} + +void BlockOrientedCipherModeBase::UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) +{ + m_cipher->SetKey(key, length, params); + ResizeBuffers(); + const byte *iv = params.GetValueWithDefault(Name::IV(), (const byte *)NULL); + SetIV(iv); +} + +void BlockOrientedCipherModeBase::ProcessData(byte *outString, const byte *inString, unsigned int length) +{ + unsigned int s = BlockSize(); + assert(length % s == 0); + unsigned int alignment = m_cipher->BlockAlignment(); + bool inputAlignmentOk = !RequireAlignedInput() || IsAlignedOn(inString, alignment); + + if (IsAlignedOn(outString, alignment)) + { + if (inputAlignmentOk) + ProcessBlocks(outString, inString, length / s); + else + { + memcpy(outString, inString, length); + ProcessBlocks(outString, outString, length / s); + } + } + else + { + while (length) + { + if (inputAlignmentOk) + ProcessBlocks(m_buffer, inString, 1); + else + { + memcpy(m_buffer, inString, s); + ProcessBlocks(m_buffer, m_buffer, 1); + } + memcpy(outString, m_buffer, s); + inString += s; + outString += s; + length -= s; + } + } +} + +void CBC_Encryption::ProcessBlocks(byte *outString, const byte *inString, unsigned int numberOfBlocks) +{ + unsigned int blockSize = BlockSize(); + while (numberOfBlocks--) + { + xorbuf(m_register, inString, blockSize); + m_cipher->ProcessBlock(m_register); + memcpy(outString, m_register, blockSize); + inString += blockSize; + outString += blockSize; + } +} + +void CBC_CTS_Encryption::ProcessLastBlock(byte *outString, const byte *inString, unsigned int length) +{ + if (length <= BlockSize()) + { + if (!m_stolenIV) + throw InvalidArgument("CBC_Encryption: message is too short for ciphertext stealing"); + + // steal from IV + memcpy(outString, m_register, length); + outString = m_stolenIV; + } + else + { + // steal from next to last block + xorbuf(m_register, inString, BlockSize()); + m_cipher->ProcessBlock(m_register); + inString += BlockSize(); + length -= BlockSize(); + memcpy(outString+BlockSize(), m_register, length); + } + + // output last full ciphertext block + xorbuf(m_register, inString, length); + m_cipher->ProcessBlock(m_register); + memcpy(outString, m_register, BlockSize()); +} + +void CBC_Decryption::ProcessBlocks(byte *outString, const byte *inString, unsigned int numberOfBlocks) +{ + unsigned int blockSize = BlockSize(); + while (numberOfBlocks--) + { + memcpy(m_temp, inString, blockSize); + m_cipher->ProcessBlock(m_temp, outString); + xorbuf(outString, m_register, blockSize); + m_register.swap(m_temp); + inString += blockSize; + outString += blockSize; + } +} + +void CBC_CTS_Decryption::ProcessLastBlock(byte *outString, const byte *inString, unsigned int length) +{ + const byte *pn, *pn1; + bool stealIV = length <= BlockSize(); + + if (stealIV) + { + pn = inString; + pn1 = m_register; + } + else + { + pn = inString + BlockSize(); + pn1 = inString; + length -= BlockSize(); + } + + // decrypt last partial plaintext block + memcpy(m_temp, pn1, BlockSize()); + m_cipher->ProcessBlock(m_temp); + xorbuf(m_temp, pn, length); + + if (stealIV) + memcpy(outString, m_temp, length); + else + { + memcpy(outString+BlockSize(), m_temp, length); + // decrypt next to last plaintext block + memcpy(m_temp, pn, length); + m_cipher->ProcessBlock(m_temp); + xorbuf(outString, m_temp, m_register, BlockSize()); + } +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/modes.h b/stepmania/src/crypto51/modes.h new file mode 100644 index 0000000000..46e8dd26d0 --- /dev/null +++ b/stepmania/src/crypto51/modes.h @@ -0,0 +1,370 @@ +#ifndef CRYPTOPP_MODES_H +#define CRYPTOPP_MODES_H + +/*! \file +*/ + +#include "cryptlib.h" +#include "secblock.h" +#include "misc.h" +#include "strciphr.h" +#include "argnames.h" +#include "algparam.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! Cipher mode documentation. See NIST SP 800-38A for definitions of these modes. + +/*! Each class derived from this one defines two types, Encryption and Decryption, + both of which implement the SymmetricCipher interface. + For each mode there are two classes, one of which is a template class, + and the other one has a name that ends in "_ExternalCipher". + The "external cipher" mode objects hold a reference to the underlying block cipher, + instead of holding an instance of it. The reference must be passed in to the constructor. + For the "cipher holder" classes, the CIPHER template parameter should be a class + derived from BlockCipherDocumentation, for example DES or AES. +*/ +struct CipherModeDocumentation : public SymmetricCipherDocumentation +{ +}; + +class CipherModeBase : public SymmetricCipher +{ +public: + unsigned int MinKeyLength() const {return m_cipher->MinKeyLength();} + unsigned int MaxKeyLength() const {return m_cipher->MaxKeyLength();} + unsigned int DefaultKeyLength() const {return m_cipher->DefaultKeyLength();} + unsigned int GetValidKeyLength(unsigned int n) const {return m_cipher->GetValidKeyLength(n);} + bool IsValidKeyLength(unsigned int n) const {return m_cipher->IsValidKeyLength(n);} + + void SetKey(const byte *key, unsigned int length, const NameValuePairs ¶ms = g_nullNameValuePairs); + + unsigned int OptimalDataAlignment() const {return BlockSize();} + + unsigned int IVSize() const {return BlockSize();} + void GetNextIV(byte *IV); + virtual IV_Requirement IVRequirement() const =0; + +protected: + inline unsigned int BlockSize() const {assert(m_register.size() > 0); return m_register.size();} + void SetIV(const byte *iv); + virtual void SetFeedbackSize(unsigned int feedbackSize) + { + if (!(feedbackSize == 0 || feedbackSize == BlockSize())) + throw InvalidArgument("CipherModeBase: feedback size cannot be specified for this cipher mode"); + } + virtual void ResizeBuffers() + { + m_register.New(m_cipher->BlockSize()); + } + virtual void UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) =0; + + BlockCipher *m_cipher; + SecByteBlock m_register; +}; + +template +class ModePolicyCommonTemplate : public CipherModeBase, public POLICY_INTERFACE +{ + unsigned int GetAlignment() const {return m_cipher->BlockAlignment();} + void CipherSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) + { + m_cipher->SetKey(key, length, params); + ResizeBuffers(); + int feedbackSize = params.GetIntValueWithDefault(Name::FeedbackSize(), 0); + SetFeedbackSize(feedbackSize); + const byte *iv = params.GetValueWithDefault(Name::IV(), (const byte *)NULL); + SetIV(iv); + } +}; + +class CFB_ModePolicy : public ModePolicyCommonTemplate +{ +public: + IV_Requirement IVRequirement() const {return RANDOM_IV;} + +protected: + unsigned int GetBytesPerIteration() const {return m_feedbackSize;} + byte * GetRegisterBegin() {return m_register + BlockSize() - m_feedbackSize;} + void TransformRegister() + { + m_cipher->ProcessBlock(m_register, m_temp); + memmove(m_register, m_register+m_feedbackSize, BlockSize()-m_feedbackSize); + memcpy(m_register+BlockSize()-m_feedbackSize, m_temp, m_feedbackSize); + } + void CipherResynchronize(const byte *iv) + { + memcpy(m_register, iv, BlockSize()); + TransformRegister(); + } + void SetFeedbackSize(unsigned int feedbackSize) + { + if (feedbackSize > BlockSize()) + throw InvalidArgument("CFB_Mode: invalid feedback size"); + m_feedbackSize = feedbackSize ? feedbackSize : BlockSize(); + } + void ResizeBuffers() + { + CipherModeBase::ResizeBuffers(); + m_temp.New(BlockSize()); + } + + SecByteBlock m_temp; + unsigned int m_feedbackSize; +}; + +class OFB_ModePolicy : public ModePolicyCommonTemplate +{ + unsigned int GetBytesPerIteration() const {return BlockSize();} + unsigned int GetIterationsToBuffer() const {return 1;} + void WriteKeystream(byte *keystreamBuffer, unsigned int iterationCount) + { + assert(iterationCount == 1); + m_cipher->ProcessBlock(keystreamBuffer); + } + void CipherResynchronize(byte *keystreamBuffer, const byte *iv) + { + memcpy(keystreamBuffer, iv, BlockSize()); + } + bool IsRandomAccess() const {return false;} + IV_Requirement IVRequirement() const {return STRUCTURED_IV;} +}; + +class CTR_ModePolicy : public ModePolicyCommonTemplate +{ + unsigned int GetBytesPerIteration() const {return BlockSize();} + unsigned int GetIterationsToBuffer() const {return m_cipher->OptimalNumberOfParallelBlocks();} + void WriteKeystream(byte *buffer, unsigned int iterationCount) + {OperateKeystream(WRITE_KEYSTREAM, buffer, NULL, iterationCount);} + bool CanOperateKeystream() const {return true;} + void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, unsigned int iterationCount); + void CipherResynchronize(byte *keystreamBuffer, const byte *iv); + bool IsRandomAccess() const {return true;} + void SeekToIteration(dword iterationCount); + IV_Requirement IVRequirement() const {return STRUCTURED_IV;} + + inline void ProcessMultipleBlocks(byte *output, const byte *input, unsigned int n); + + SecByteBlock m_counterArray; +}; + +class BlockOrientedCipherModeBase : public CipherModeBase +{ +public: + void UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length); + unsigned int MandatoryBlockSize() const {return BlockSize();} + bool IsRandomAccess() const {return false;} + bool IsSelfInverting() const {return false;} + bool IsForwardTransformation() const {return m_cipher->IsForwardTransformation();} + void Resynchronize(const byte *iv) {memcpy(m_register, iv, BlockSize());} + void ProcessData(byte *outString, const byte *inString, unsigned int length); + +protected: + bool RequireAlignedInput() const {return true;} + virtual void ProcessBlocks(byte *outString, const byte *inString, unsigned int numberOfBlocks) =0; + void ResizeBuffers() + { + CipherModeBase::ResizeBuffers(); + m_buffer.New(BlockSize()); + } + + SecByteBlock m_buffer; +}; + +class ECB_OneWay : public BlockOrientedCipherModeBase +{ +public: + IV_Requirement IVRequirement() const {return NOT_RESYNCHRONIZABLE;} + unsigned int OptimalBlockSize() const {return BlockSize() * m_cipher->OptimalNumberOfParallelBlocks();} + void ProcessBlocks(byte *outString, const byte *inString, unsigned int numberOfBlocks) + {m_cipher->ProcessAndXorMultipleBlocks(inString, NULL, outString, numberOfBlocks);} +}; + +class CBC_ModeBase : public BlockOrientedCipherModeBase +{ +public: + IV_Requirement IVRequirement() const {return UNPREDICTABLE_RANDOM_IV;} + bool RequireAlignedInput() const {return false;} + unsigned int MinLastBlockSize() const {return 0;} +}; + +class CBC_Encryption : public CBC_ModeBase +{ +public: + void ProcessBlocks(byte *outString, const byte *inString, unsigned int numberOfBlocks); +}; + +class CBC_CTS_Encryption : public CBC_Encryption +{ +public: + void SetStolenIV(byte *iv) {m_stolenIV = iv;} + unsigned int MinLastBlockSize() const {return BlockSize()+1;} + void ProcessLastBlock(byte *outString, const byte *inString, unsigned int length); + +protected: + void UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) + { + CBC_Encryption::UncheckedSetKey(params, key, length); + m_stolenIV = params.GetValueWithDefault(Name::StolenIV(), (byte *)NULL); + } + + byte *m_stolenIV; +}; + +class CBC_Decryption : public CBC_ModeBase +{ +public: + void ProcessBlocks(byte *outString, const byte *inString, unsigned int numberOfBlocks); + +protected: + void ResizeBuffers() + { + BlockOrientedCipherModeBase::ResizeBuffers(); + m_temp.New(BlockSize()); + } + SecByteBlock m_temp; +}; + +class CBC_CTS_Decryption : public CBC_Decryption +{ +public: + unsigned int MinLastBlockSize() const {return BlockSize()+1;} + void ProcessLastBlock(byte *outString, const byte *inString, unsigned int length); +}; + +//! . +template +class CipherModeFinalTemplate_CipherHolder : public ObjectHolder, public BASE +{ +public: + CipherModeFinalTemplate_CipherHolder() + { + m_cipher = &m_object; + ResizeBuffers(); + } + CipherModeFinalTemplate_CipherHolder(const byte *key, unsigned int length) + { + m_cipher = &m_object; + SetKey(key, length); + } + CipherModeFinalTemplate_CipherHolder(const byte *key, unsigned int length, const byte *iv, int feedbackSize = 0) + { + m_cipher = &m_object; + SetKey(key, length, MakeParameters("IV", iv)("FeedbackSize", feedbackSize)); + } +}; + +//! . +template +class CipherModeFinalTemplate_ExternalCipher : public BASE +{ +public: + CipherModeFinalTemplate_ExternalCipher(BlockCipher &cipher, const byte *iv = NULL, int feedbackSize = 0) + { + m_cipher = &cipher; + ResizeBuffers(); + SetFeedbackSize(feedbackSize); + SetIV(iv); + } +}; + +//! CFB mode +template +struct CFB_Mode : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_CipherHolder > > > Encryption; + typedef CipherModeFinalTemplate_CipherHolder > > > Decryption; +}; + +//! CFB mode, external cipher +struct CFB_Mode_ExternalCipher : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_ExternalCipher > > > Encryption; + typedef CipherModeFinalTemplate_ExternalCipher > > > Decryption; +}; + +//! OFB mode +template +struct OFB_Mode : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_CipherHolder > > > Encryption; + typedef Encryption Decryption; +}; + +//! OFB mode, external cipher +struct OFB_Mode_ExternalCipher : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_ExternalCipher > > > Encryption; + typedef Encryption Decryption; +}; + +//! CTR mode +template +struct CTR_Mode : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_CipherHolder > > > Encryption; + typedef Encryption Decryption; +}; + +//! CTR mode, external cipher +struct CTR_Mode_ExternalCipher : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_ExternalCipher > > > Encryption; + typedef Encryption Decryption; +}; + +//! ECB mode +template +struct ECB_Mode : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_CipherHolder Encryption; + typedef CipherModeFinalTemplate_CipherHolder Decryption; +}; + +//! ECB mode, external cipher +struct ECB_Mode_ExternalCipher : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_ExternalCipher Encryption; + typedef Encryption Decryption; +}; + +//! CBC mode +template +struct CBC_Mode : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_CipherHolder Encryption; + typedef CipherModeFinalTemplate_CipherHolder Decryption; +}; + +//! CBC mode, external cipher +struct CBC_Mode_ExternalCipher : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_ExternalCipher Encryption; + typedef CipherModeFinalTemplate_ExternalCipher Decryption; +}; + +//! CBC mode with ciphertext stealing +template +struct CBC_CTS_Mode : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_CipherHolder Encryption; + typedef CipherModeFinalTemplate_CipherHolder Decryption; +}; + +//! CBC mode with ciphertext stealing, external cipher +struct CBC_CTS_Mode_ExternalCipher : public CipherModeDocumentation +{ + typedef CipherModeFinalTemplate_ExternalCipher Encryption; + typedef CipherModeFinalTemplate_ExternalCipher Decryption; +}; + +#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY +typedef CFB_Mode_ExternalCipher::Encryption CFBEncryption; +typedef CFB_Mode_ExternalCipher::Decryption CFBDecryption; +typedef OFB_Mode_ExternalCipher::Encryption OFB; +typedef CTR_Mode_ExternalCipher::Encryption CounterMode; +#endif + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/mqueue.cpp b/stepmania/src/crypto51/mqueue.cpp new file mode 100644 index 0000000000..2bac976c8f --- /dev/null +++ b/stepmania/src/crypto51/mqueue.cpp @@ -0,0 +1,182 @@ +// mqueue.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "mqueue.h" + +NAMESPACE_BEGIN(CryptoPP) + +MessageQueue::MessageQueue(unsigned int nodeSize) + : m_queue(nodeSize), m_lengths(1, 0U), m_messageCounts(1, 0U) +{ +} + +unsigned int MessageQueue::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + if (begin >= MaxRetrievable()) + return 0; + + return m_queue.CopyRangeTo2(target, begin, STDMIN(MaxRetrievable(), end), channel, blocking); +} + +unsigned int MessageQueue::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + transferBytes = STDMIN(MaxRetrievable(), transferBytes); + unsigned int blockedBytes = m_queue.TransferTo2(target, transferBytes, channel, blocking); + m_lengths.front() -= transferBytes; + return blockedBytes; +} + +bool MessageQueue::GetNextMessage() +{ + if (NumberOfMessages() > 0 && !AnyRetrievable()) + { + m_lengths.pop_front(); + if (m_messageCounts[0] == 0 && m_messageCounts.size() > 1) + m_messageCounts.pop_front(); + return true; + } + else + return false; +} + +unsigned int MessageQueue::CopyMessagesTo(BufferedTransformation &target, unsigned int count, const std::string &channel) const +{ + ByteQueue::Walker walker(m_queue); + std::deque::const_iterator it = m_lengths.begin(); + unsigned int i; + for (i=0; i 0 && q2.AnyRetrievable()) + { + unsigned int len = length; + const byte *data = q2.Spy(len); + len = STDMIN(len, length); + if (memcmp(inString, data, len) != 0) + goto mismatch; + inString += len; + length -= len; + q2.Skip(len); + } + + q1.Put(inString, length); + + if (messageEnd) + { + if (q2.AnyRetrievable()) + goto mismatch; + else if (q2.AnyMessages()) + q2.GetNextMessage(); + else if (q2.NumberOfMessageSeries() > 0) + goto mismatch; + else + q1.MessageEnd(); + } + + return 0; + +mismatch: + return HandleMismatchDetected(blocking); + } +} + +void EqualityComparisonFilter::ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters, int propagation) +{ + unsigned int i = MapChannel(channel); + + if (i == 2) + PropagateInitialize(parameters, propagation, channel); + else + { + m_q[i].Initialize(); + m_mismatchDetected = false; + } +} + +bool EqualityComparisonFilter::ChannelMessageSeriesEnd(const std::string &channel, int propagation, bool blocking) +{ + unsigned int i = MapChannel(channel); + + if (i == 2) + { + OutputMessageSeriesEnd(4, propagation, blocking, channel); + return false; + } + else if (m_mismatchDetected) + return false; + else + { + MessageQueue &q1 = m_q[i], &q2 = m_q[1-i]; + + if (q2.AnyRetrievable() || q2.AnyMessages()) + goto mismatch; + else if (q2.NumberOfMessageSeries() > 0) + return Output(2, (const byte *)"\1", 1, 0, blocking) != 0; + else + q1.MessageSeriesEnd(); + + return false; + +mismatch: + return HandleMismatchDetected(blocking); + } +} + +bool EqualityComparisonFilter::HandleMismatchDetected(bool blocking) +{ + m_mismatchDetected = true; + if (m_throwIfNotEqual) + throw MismatchDetected(); + return Output(1, (const byte *)"\0", 1, 0, blocking) != 0; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/mqueue.h b/stepmania/src/crypto51/mqueue.h new file mode 100644 index 0000000000..edc701a75e --- /dev/null +++ b/stepmania/src/crypto51/mqueue.h @@ -0,0 +1,98 @@ +#ifndef CRYPTOPP_MQUEUE_H +#define CRYPTOPP_MQUEUE_H + +#include "queue.h" +#include "filters.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +//! Message Queue +class MessageQueue : public AutoSignaling +{ +public: + MessageQueue(unsigned int nodeSize=256); + + void IsolatedInitialize(const NameValuePairs ¶meters) + {m_queue.IsolatedInitialize(parameters); m_lengths.assign(1, 0U); m_messageCounts.assign(1, 0U);} + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + { + m_queue.Put(begin, length); + m_lengths.back() += length; + if (messageEnd) + { + m_lengths.push_back(0); + m_messageCounts.back()++; + } + return 0; + } + bool IsolatedFlush(bool hardFlush, bool blocking) {return false;} + bool IsolatedMessageSeriesEnd(bool blocking) + {m_messageCounts.push_back(0); return false;} + + unsigned long MaxRetrievable() const + {return m_lengths.front();} + bool AnyRetrievable() const + {return m_lengths.front() > 0;} + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + + unsigned long TotalBytesRetrievable() const + {return m_queue.MaxRetrievable();} + unsigned int NumberOfMessages() const + {return m_lengths.size()-1;} + bool GetNextMessage(); + + unsigned int NumberOfMessagesInThisSeries() const + {return m_messageCounts[0];} + unsigned int NumberOfMessageSeries() const + {return m_messageCounts.size()-1;} + + unsigned int CopyMessagesTo(BufferedTransformation &target, unsigned int count=UINT_MAX, const std::string &channel=NULL_CHANNEL) const; + + const byte * Spy(unsigned int &contiguousSize) const; + + void swap(MessageQueue &rhs); + +private: + ByteQueue m_queue; + std::deque m_lengths, m_messageCounts; +}; + + +//! A filter that checks messages on two channels for equality +class EqualityComparisonFilter : public Unflushable > +{ +public: + struct MismatchDetected : public Exception {MismatchDetected() : Exception(DATA_INTEGRITY_CHECK_FAILED, "EqualityComparisonFilter: did not receive the same data on two channels") {}}; + + /*! if throwIfNotEqual is false, this filter will output a '\0' byte when it detects a mismatch, '\1' otherwise */ + EqualityComparisonFilter(BufferedTransformation *attachment=NULL, bool throwIfNotEqual=true, const std::string &firstChannel="0", const std::string &secondChannel="1") + : Unflushable >(attachment), m_throwIfNotEqual(throwIfNotEqual), m_mismatchDetected(false) + , m_firstChannel(firstChannel), m_secondChannel(secondChannel) {} + + unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking); + + void ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1); + bool ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1, bool blocking=true); + +private: + unsigned int MapChannel(const std::string &channel) const; + bool HandleMismatchDetected(bool blocking); + + bool m_throwIfNotEqual, m_mismatchDetected; + std::string m_firstChannel, m_secondChannel; + MessageQueue m_q[2]; +}; + +NAMESPACE_END + +NAMESPACE_BEGIN(std) +template<> inline void swap(CryptoPP::MessageQueue &a, CryptoPP::MessageQueue &b) +{ + a.swap(b); +} +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/nbtheory.cpp b/stepmania/src/crypto51/nbtheory.cpp new file mode 100644 index 0000000000..852beb5712 --- /dev/null +++ b/stepmania/src/crypto51/nbtheory.cpp @@ -0,0 +1,1127 @@ +// nbtheory.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "nbtheory.h" +#include "modarith.h" +#include "algparam.h" + +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +const unsigned int maxPrimeTableSize = 3511; // last prime 32719 +const word lastSmallPrime = 32719; +unsigned int primeTableSize=552; + +word primeTable[maxPrimeTableSize] = + {2, 3, 5, 7, 11, 13, 17, 19, + 23, 29, 31, 37, 41, 43, 47, 53, + 59, 61, 67, 71, 73, 79, 83, 89, + 97, 101, 103, 107, 109, 113, 127, 131, + 137, 139, 149, 151, 157, 163, 167, 173, + 179, 181, 191, 193, 197, 199, 211, 223, + 227, 229, 233, 239, 241, 251, 257, 263, + 269, 271, 277, 281, 283, 293, 307, 311, + 313, 317, 331, 337, 347, 349, 353, 359, + 367, 373, 379, 383, 389, 397, 401, 409, + 419, 421, 431, 433, 439, 443, 449, 457, + 461, 463, 467, 479, 487, 491, 499, 503, + 509, 521, 523, 541, 547, 557, 563, 569, + 571, 577, 587, 593, 599, 601, 607, 613, + 617, 619, 631, 641, 643, 647, 653, 659, + 661, 673, 677, 683, 691, 701, 709, 719, + 727, 733, 739, 743, 751, 757, 761, 769, + 773, 787, 797, 809, 811, 821, 823, 827, + 829, 839, 853, 857, 859, 863, 877, 881, + 883, 887, 907, 911, 919, 929, 937, 941, + 947, 953, 967, 971, 977, 983, 991, 997, + 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, + 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, + 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, + 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, + 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, + 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, + 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, + 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, + 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, + 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, + 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, + 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, + 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, + 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, + 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, + 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, + 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, + 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, + 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, + 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, + 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, + 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, + 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, + 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, + 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, + 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, + 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, + 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, + 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, + 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, + 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, + 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, + 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, + 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, + 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, + 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, + 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, + 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, + 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, + 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, + 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, + 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, + 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671, + 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, + 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, + 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863, + 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, + 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003}; + +void BuildPrimeTable() +{ + unsigned int p=primeTable[primeTableSize-1]; + for (unsigned int i=primeTableSize; i= bound); + + unsigned int i; + for (i = 0; primeTable[i]3 && b>1 && b3 && b>1 && b>a; + + Integer z = a_exp_b_mod_c(b, m, n); + if (z==1 || z==nminus1) + return true; + for (unsigned j=1; j3); + + Integer b; + for (unsigned int i=0; i2); + + Integer b=3; + unsigned int i=0; + int j; + + while ((j=Jacobi(b.Squared()-4, n)) == 1) + { + if (++i==64 && n.IsSquare()) // avoid infinite loop if n is a square + return false; + ++b; ++b; + } + + if (j==0) + return false; + else + return Lucas(n+1, b, n)==2; +} + +bool IsStrongLucasProbablePrime(const Integer &n) +{ + if (n <= 1) + return false; + + if (n.IsEven()) + return n==2; + + assert(n>2); + + Integer b=3; + unsigned int i=0; + int j; + + while ((j=Jacobi(b.Squared()-4, n)) == 1) + { + if (++i==64 && n.IsSquare()) // avoid infinite loop if n is a square + return false; + ++b; ++b; + } + + if (j==0) + return false; + + Integer n1 = n+1; + unsigned int a; + + // calculate a = largest power of 2 that divides n1 + for (a=0; ; a++) + if (n1.GetBit(a)) + break; + Integer m = n1>>a; + + Integer z = Lucas(m, b, n); + if (z==2 || z==n-2) + return true; + for (i=1; i= 1) + pass = pass && RabinMillerTest(rng, p, 10); + return pass; +} + +unsigned int PrimeSearchInterval(const Integer &max) +{ + return max.BitCount(); +} + +static inline bool FastProbablePrimeTest(const Integer &n) +{ + return IsStrongProbablePrime(n,2); +} + +AlgorithmParameters, Integer>, Integer> + MakeParametersForTwoPrimesOfEqualSize(unsigned int productBitLength) +{ + if (productBitLength < 16) + throw InvalidArgument("invalid bit length"); + + Integer minP, maxP; + + if (productBitLength%2==0) + { + minP = Integer(182) << (productBitLength/2-8); + maxP = Integer::Power2(productBitLength/2)-1; + } + else + { + minP = Integer::Power2((productBitLength-1)/2); + maxP = Integer(181) << ((productBitLength+1)/2-8); + } + + return MakeParameters("RandomNumberType", Integer::PRIME)("Min", minP)("Max", maxP); +} + +class PrimeSieve +{ +public: + // delta == 1 or -1 means double sieve with p = 2*q + delta + PrimeSieve(const Integer &first, const Integer &last, const Integer &step, signed int delta=0); + bool NextCandidate(Integer &c); + + void DoSieve(); + static void SieveSingle(std::vector &sieve, word p, const Integer &first, const Integer &step, word stepInv); + + Integer m_first, m_last, m_step; + signed int m_delta; + word m_next; + std::vector m_sieve; +}; + +PrimeSieve::PrimeSieve(const Integer &first, const Integer &last, const Integer &step, signed int delta) + : m_first(first), m_last(last), m_step(step), m_delta(delta), m_next(0) +{ + DoSieve(); +} + +bool PrimeSieve::NextCandidate(Integer &c) +{ + m_next = std::find(m_sieve.begin()+m_next, m_sieve.end(), false) - m_sieve.begin(); + if (m_next == m_sieve.size()) + { + m_first += m_sieve.size()*m_step; + if (m_first > m_last) + return false; + else + { + m_next = 0; + DoSieve(); + return NextCandidate(c); + } + } + else + { + c = m_first + m_next*m_step; + ++m_next; + return true; + } +} + +void PrimeSieve::SieveSingle(std::vector &sieve, word p, const Integer &first, const Integer &step, word stepInv) +{ + if (stepInv) + { + unsigned int sieveSize = sieve.size(); + word j = word((dword(p-(first%p))*stepInv) % p); + // if the first multiple of p is p, skip it + if (first.WordCount() <= 1 && first + step*j == p) + j += p; + for (; j < sieveSize; j += p) + sieve[j] = true; + } +} + +void PrimeSieve::DoSieve() +{ + BuildPrimeTable(); + + const unsigned int maxSieveSize = 32768; + unsigned int sieveSize = STDMIN(Integer(maxSieveSize), (m_last-m_first)/m_step+1).ConvertToLong(); + + m_sieve.clear(); + m_sieve.resize(sieveSize, false); + + if (m_delta == 0) + { + for (unsigned int i = 0; i < primeTableSize; ++i) + SieveSingle(m_sieve, primeTable[i], m_first, m_step, m_step.InverseMod(primeTable[i])); + } + else + { + assert(m_step%2==0); + Integer qFirst = (m_first-m_delta) >> 1; + Integer halfStep = m_step >> 1; + for (unsigned int i = 0; i < primeTableSize; ++i) + { + word p = primeTable[i]; + word stepInv = m_step.InverseMod(p); + SieveSingle(m_sieve, p, m_first, m_step, stepInv); + + word halfStepInv = 2*stepInv < p ? 2*stepInv : 2*stepInv-p; + SieveSingle(m_sieve, p, qFirst, halfStep, halfStepInv); + } + } +} + +bool FirstPrime(Integer &p, const Integer &max, const Integer &equiv, const Integer &mod, const PrimeSelector *pSelector) +{ + assert(!equiv.IsNegative() && equiv < mod); + + Integer gcd = GCD(equiv, mod); + if (gcd != Integer::One()) + { + // the only possible prime p such that p%mod==equiv where GCD(mod,equiv)!=1 is GCD(mod,equiv) + if (p <= gcd && gcd <= max && IsPrime(gcd)) + { + p = gcd; + return true; + } + else + return false; + } + + BuildPrimeTable(); + + if (p <= primeTable[primeTableSize-1]) + { + word *pItr; + + --p; + if (p.IsPositive()) + pItr = std::upper_bound(primeTable, primeTable+primeTableSize, (word)p.ConvertToLong()); + else + pItr = primeTable; + + while (pItr < primeTable+primeTableSize && *pItr%mod != equiv) + ++pItr; + + if (pItr < primeTable+primeTableSize) + { + p = *pItr; + return p <= max; + } + + p = primeTable[primeTableSize-1]+1; + } + + assert(p > primeTable[primeTableSize-1]); + + if (mod.IsOdd()) + return FirstPrime(p, max, CRT(equiv, mod, 1, 2, 1), mod<<1, pSelector); + + p += (equiv-p)%mod; + + if (p>max) + return false; + + PrimeSieve sieve(p, max, mod); + + while (sieve.NextCandidate(p)) + { + if ((!pSelector || pSelector->IsAcceptable(p)) && FastProbablePrimeTest(p) && IsPrime(p)) + return true; + } + + return false; +} + +// the following two functions are based on code and comments provided by Preda Mihailescu +static bool ProvePrime(const Integer &p, const Integer &q) +{ + assert(p < q*q*q); + assert(p % q == 1); + +// this is the Quisquater test. Numbers p having passed the Lucas - Lehmer test +// for q and verifying p < q^3 can only be built up of two factors, both = 1 mod q, +// or be prime. The next two lines build the discriminant of a quadratic equation +// which holds iff p is built up of two factors (excercise ... ) + + Integer r = (p-1)/q; + if (((r%q).Squared()-4*(r/q)).IsSquare()) + return false; + + assert(primeTableSize >= 50); + for (int i=0; i<50; i++) + { + Integer b = a_exp_b_mod_c(primeTable[i], r, p); + if (b != 1) + return a_exp_b_mod_c(b, q, p) == 1; + } + return false; +} + +Integer MihailescuProvablePrime(RandomNumberGenerator &rng, unsigned int pbits) +{ + Integer p; + Integer minP = Integer::Power2(pbits-1); + Integer maxP = Integer::Power2(pbits) - 1; + + if (maxP <= Integer(lastSmallPrime).Squared()) + { + // Randomize() will generate a prime provable by trial division + p.Randomize(rng, minP, maxP, Integer::PRIME); + return p; + } + + unsigned int qbits = (pbits+2)/3 + 1 + rng.GenerateWord32(0, pbits/36); + Integer q = MihailescuProvablePrime(rng, qbits); + Integer q2 = q<<1; + + while (true) + { + // this initializes the sieve to search in the arithmetic + // progression p = p_0 + \lambda * q2 = p_0 + 2 * \lambda * q, + // with q the recursively generated prime above. We will be able + // to use Lucas tets for proving primality. A trick of Quisquater + // allows taking q > cubic_root(p) rather then square_root: this + // decreases the recursion. + + p.Randomize(rng, minP, maxP, Integer::ANY, 1, q2); + PrimeSieve sieve(p, STDMIN(p+PrimeSearchInterval(maxP)*q2, maxP), q2); + + while (sieve.NextCandidate(p)) + { + if (FastProbablePrimeTest(p) && ProvePrime(p, q)) + return p; + } + } + + // not reached + return p; +} + +Integer MaurerProvablePrime(RandomNumberGenerator &rng, unsigned int bits) +{ + const unsigned smallPrimeBound = 29, c_opt=10; + Integer p; + + BuildPrimeTable(); + if (bits < smallPrimeBound) + { + do + p.Randomize(rng, Integer::Power2(bits-1), Integer::Power2(bits)-1, Integer::ANY, 1, 2); + while (TrialDivision(p, 1 << ((bits+1)/2))); + } + else + { + const unsigned margin = bits > 50 ? 20 : (bits-10)/2; + double relativeSize; + do + relativeSize = pow(2.0, double(rng.GenerateWord32())/0xffffffff - 1); + while (bits * relativeSize >= bits - margin); + + Integer a,b; + Integer q = MaurerProvablePrime(rng, unsigned(bits*relativeSize)); + Integer I = Integer::Power2(bits-2)/q; + Integer I2 = I << 1; + unsigned int trialDivisorBound = (unsigned int)STDMIN((unsigned long)primeTable[primeTableSize-1], (unsigned long)bits*bits/c_opt); + bool success = false; + while (!success) + { + p.Randomize(rng, I, I2, Integer::ANY); + p *= q; p <<= 1; ++p; + if (!TrialDivision(p, trialDivisorBound)) + { + a.Randomize(rng, 2, p-1, Integer::ANY); + b = a_exp_b_mod_c(a, (p-1)/q, p); + success = (GCD(b-1, p) == 1) && (a_exp_b_mod_c(b, q, p) == 1); + } + } + } + return p; +} + +Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, const Integer &q, const Integer &u) +{ + // isn't operator overloading great? + return p * (u * (xq-xp) % q) + xp; +} + +Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, const Integer &q) +{ + return CRT(xp, p, xq, q, EuclideanMultiplicativeInverse(p, q)); +} + +Integer ModularSquareRoot(const Integer &a, const Integer &p) +{ + if (p%4 == 3) + return a_exp_b_mod_c(a, (p+1)/4, p); + + Integer q=p-1; + unsigned int r=0; + while (q.IsEven()) + { + r++; + q >>= 1; + } + + Integer n=2; + while (Jacobi(n, p) != -1) + ++n; + + Integer y = a_exp_b_mod_c(n, q, p); + Integer x = a_exp_b_mod_c(a, (q-1)/2, p); + Integer b = (x.Squared()%p)*a%p; + x = a*x%p; + Integer tempb, t; + + while (b != 1) + { + unsigned m=0; + tempb = b; + do + { + m++; + b = b.Squared()%p; + if (m==r) + return Integer::Zero(); + } + while (b != 1); + + t = y; + for (unsigned i=0; i>= 1; + b >>= 1; + k++; + } + + while (a[0]==0) + a >>= 1; + + while (b[0]==0) + b >>= 1; + + while (1) + { + switch (a.Compare(b)) + { + case -1: + b -= a; + while (b[0]==0) + b >>= 1; + break; + + case 0: + return (a <<= k); + + case 1: + a -= b; + while (a[0]==0) + a >>= 1; + break; + + default: + assert(false); + } + } +} + +Integer EuclideanMultiplicativeInverse(const Integer &a, const Integer &b) +{ + assert(b.Positive()); + + if (a.Negative()) + return EuclideanMultiplicativeInverse(a%b, b); + + if (b[0]==0) + { + if (!b || a[0]==0) + return Integer::Zero(); // no inverse + if (a==1) + return 1; + Integer u = EuclideanMultiplicativeInverse(b, a); + if (!u) + return Integer::Zero(); // no inverse + else + return (b*(a-u)+1)/a; + } + + Integer u=1, d=a, v1=b, v3=b, t1, t3, b2=(b+1)>>1; + + if (a[0]) + { + t1 = Integer::Zero(); + t3 = -b; + } + else + { + t1 = b2; + t3 = a>>1; + } + + while (!!t3) + { + while (t3[0]==0) + { + t3 >>= 1; + if (t1[0]==0) + t1 >>= 1; + else + { + t1 >>= 1; + t1 += b2; + } + } + if (t3.Positive()) + { + u = t1; + d = t3; + } + else + { + v1 = b-t1; + v3 = -t3; + } + t1 = u-v1; + t3 = d-v3; + if (t1.Negative()) + t1 += b; + } + if (d==1) + return u; + else + return Integer::Zero(); // no inverse +} +*/ + +int Jacobi(const Integer &aIn, const Integer &bIn) +{ + assert(bIn.IsOdd()); + + Integer b = bIn, a = aIn%bIn; + int result = 1; + + while (!!a) + { + unsigned i=0; + while (a.GetBit(i)==0) + i++; + a>>=i; + + if (i%2==1 && (b%8==3 || b%8==5)) + result = -result; + + if (a%4==3 && b%4==3) + result = -result; + + std::swap(a, b); + a %= b; + } + + return (b==1) ? result : 0; +} + +Integer Lucas(const Integer &e, const Integer &pIn, const Integer &n) +{ + unsigned i = e.BitCount(); + if (i==0) + return Integer::Two(); + + MontgomeryRepresentation m(n); + Integer p=m.ConvertIn(pIn%n), two=m.ConvertIn(Integer::Two()); + Integer v=p, v1=m.Subtract(m.Square(p), two); + + i--; + while (i--) + { + if (e.GetBit(i)) + { + // v = (v*v1 - p) % m; + v = m.Subtract(m.Multiply(v,v1), p); + // v1 = (v1*v1 - 2) % m; + v1 = m.Subtract(m.Square(v1), two); + } + else + { + // v1 = (v*v1 - p) % m; + v1 = m.Subtract(m.Multiply(v,v1), p); + // v = (v*v - 2) % m; + v = m.Subtract(m.Square(v), two); + } + } + return m.ConvertOut(v); +} + +// This is Peter Montgomery's unpublished Lucas sequence evalutation algorithm. +// The total number of multiplies and squares used is less than the binary +// algorithm (see above). Unfortunately I can't get it to run as fast as +// the binary algorithm because of the extra overhead. +/* +Integer Lucas(const Integer &n, const Integer &P, const Integer &modulus) +{ + if (!n) + return 2; + +#define f(A, B, C) m.Subtract(m.Multiply(A, B), C) +#define X2(A) m.Subtract(m.Square(A), two) +#define X3(A) m.Multiply(A, m.Subtract(m.Square(A), three)) + + MontgomeryRepresentation m(modulus); + Integer two=m.ConvertIn(2), three=m.ConvertIn(3); + Integer A=m.ConvertIn(P), B, C, p, d=n, e, r, t, T, U; + + while (d!=1) + { + p = d; + unsigned int b = WORD_BITS * p.WordCount(); + Integer alpha = (Integer(5)<<(2*b-2)).SquareRoot() - Integer::Power2(b-1); + r = (p*alpha)>>b; + e = d-r; + B = A; + C = two; + d = r; + + while (d!=e) + { + if (d>2)) + if ((dm3+em3==0 || dm3+em3==3) && (t = e, t >>= 2, t += e, d <= t)) + { + // #1 +// t = (d+d-e)/3; +// t = d; t += d; t -= e; t /= 3; +// e = (e+e-d)/3; +// e += e; e -= d; e /= 3; +// d = t; + +// t = (d+e)/3 + t = d; t += e; t /= 3; + e -= t; + d -= t; + + T = f(A, B, C); + U = f(T, A, B); + B = f(T, B, A); + A = U; + continue; + } + +// if (dm6 == em6 && d <= e + (e>>2)) + if (dm3 == em3 && dm2 == em2 && (t = e, t >>= 2, t += e, d <= t)) + { + // #2 +// d = (d-e)>>1; + d -= e; d >>= 1; + B = f(A, B, C); + A = X2(A); + continue; + } + +// if (d <= (e<<2)) + if (d <= (t = e, t <<= 2)) + { + // #3 + d -= e; + C = f(A, B, C); + swap(B, C); + continue; + } + + if (dm2 == em2) + { + // #4 +// d = (d-e)>>1; + d -= e; d >>= 1; + B = f(A, B, C); + A = X2(A); + continue; + } + + if (dm2 == 0) + { + // #5 + d >>= 1; + C = f(A, C, B); + A = X2(A); + continue; + } + + if (dm3 == 0) + { + // #6 +// d = d/3 - e; + d /= 3; d -= e; + T = X2(A); + C = f(T, f(A, B, C), C); + swap(B, C); + A = f(T, A, A); + continue; + } + + if (dm3+em3==0 || dm3+em3==3) + { + // #7 +// d = (d-e-e)/3; + d -= e; d -= e; d /= 3; + T = f(A, B, C); + B = f(T, A, B); + A = X3(A); + continue; + } + + if (dm3 == em3) + { + // #8 +// d = (d-e)/3; + d -= e; d /= 3; + T = f(A, B, C); + C = f(A, C, B); + B = T; + A = X3(A); + continue; + } + + assert(em2 == 0); + // #9 + e >>= 1; + C = f(C, B, A); + B = X2(B); + } + + A = f(A, B, C); + } + +#undef f +#undef X2 +#undef X3 + + return m.ConvertOut(A); +} +*/ + +Integer InverseLucas(const Integer &e, const Integer &m, const Integer &p, const Integer &q, const Integer &u) +{ + Integer d = (m*m-4); + Integer p2 = p-Jacobi(d,p); + Integer q2 = q-Jacobi(d,q); + return CRT(Lucas(EuclideanMultiplicativeInverse(e,p2), m, p), p, Lucas(EuclideanMultiplicativeInverse(e,q2), m, q), q, u); +} + +Integer InverseLucas(const Integer &e, const Integer &m, const Integer &p, const Integer &q) +{ + return InverseLucas(e, m, p, q, EuclideanMultiplicativeInverse(p, q)); +} + +unsigned int FactoringWorkFactor(unsigned int n) +{ + // extrapolated from the table in Odlyzko's "The Future of Integer Factorization" + // updated to reflect the factoring of RSA-130 + if (n<5) return 0; + else return (unsigned int)(2.4 * pow((double)n, 1.0/3.0) * pow(log(double(n)), 2.0/3.0) - 5); +} + +unsigned int DiscreteLogWorkFactor(unsigned int n) +{ + // assuming discrete log takes about the same time as factoring + if (n<5) return 0; + else return (unsigned int)(2.4 * pow((double)n, 1.0/3.0) * pow(log(double(n)), 2.0/3.0) - 5); +} + +// ******************************************************** + +void PrimeAndGenerator::Generate(signed int delta, RandomNumberGenerator &rng, unsigned int pbits, unsigned int qbits) +{ + // no prime exists for delta = -1, qbits = 4, and pbits = 5 + assert(qbits > 4); + assert(pbits > qbits); + + if (qbits+1 == pbits) + { + Integer minP = Integer::Power2(pbits-1); + Integer maxP = Integer::Power2(pbits) - 1; + bool success = false; + + while (!success) + { + p.Randomize(rng, minP, maxP, Integer::ANY, 6+5*delta, 12); + PrimeSieve sieve(p, STDMIN(p+PrimeSearchInterval(maxP)*12, maxP), 12, delta); + + while (sieve.NextCandidate(p)) + { + assert(IsSmallPrime(p) || SmallDivisorsTest(p)); + q = (p-delta) >> 1; + assert(IsSmallPrime(q) || SmallDivisorsTest(q)); + if (FastProbablePrimeTest(q) && FastProbablePrimeTest(p) && IsPrime(q) && IsPrime(p)) + { + success = true; + break; + } + } + } + + if (delta == 1) + { + // find g such that g is a quadratic residue mod p, then g has order q + // g=4 always works, but this way we get the smallest quadratic residue (other than 1) + for (g=2; Jacobi(g, p) != 1; ++g) {} + // contributed by Walt Tuvell: g should be the following according to the Law of Quadratic Reciprocity + assert((p%8==1 || p%8==7) ? g==2 : (p%12==1 || p%12==11) ? g==3 : g==4); + } + else + { + assert(delta == -1); + // find g such that g*g-4 is a quadratic non-residue, + // and such that g has order q + for (g=3; ; ++g) + if (Jacobi(g*g-4, p)==-1 && Lucas(q, g, p)==2) + break; + } + } + else + { + Integer minQ = Integer::Power2(qbits-1); + Integer maxQ = Integer::Power2(qbits) - 1; + Integer minP = Integer::Power2(pbits-1); + Integer maxP = Integer::Power2(pbits) - 1; + + do + { + q.Randomize(rng, minQ, maxQ, Integer::PRIME); + } while (!p.Randomize(rng, minP, maxP, Integer::PRIME, delta%q, q)); + + // find a random g of order q + if (delta==1) + { + do + { + Integer h(rng, 2, p-2, Integer::ANY); + g = a_exp_b_mod_c(h, (p-1)/q, p); + } while (g <= 1); + assert(a_exp_b_mod_c(g, q, p)==1); + } + else + { + assert(delta==-1); + do + { + Integer h(rng, 3, p-1, Integer::ANY); + if (Jacobi(h*h-4, p)==1) + continue; + g = Lucas((p+1)/q, h, p); + } while (g <= 2); + assert(Lucas(q, g, p) == 2); + } + } +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/nbtheory.h b/stepmania/src/crypto51/nbtheory.h new file mode 100644 index 0000000000..685dc41a11 --- /dev/null +++ b/stepmania/src/crypto51/nbtheory.h @@ -0,0 +1,143 @@ +// nbtheory.h - written and placed in the public domain by Wei Dai + +#ifndef CRYPTOPP_NBTHEORY_H +#define CRYPTOPP_NBTHEORY_H + +#include "integer.h" +#include "algparam.h" + +NAMESPACE_BEGIN(CryptoPP) + +// export a table of small primes +extern const unsigned int maxPrimeTableSize; +extern const word lastSmallPrime; +extern unsigned int primeTableSize; +extern word primeTable[]; + +// build up the table to maxPrimeTableSize +void BuildPrimeTable(); + +// ************ primality testing **************** + +// generate a provable prime +Integer MaurerProvablePrime(RandomNumberGenerator &rng, unsigned int bits); +Integer MihailescuProvablePrime(RandomNumberGenerator &rng, unsigned int bits); + +bool IsSmallPrime(const Integer &p); + +// returns true if p is divisible by some prime less than bound +// bound not be greater than the largest entry in the prime table +bool TrialDivision(const Integer &p, unsigned bound); + +// returns true if p is NOT divisible by small primes +bool SmallDivisorsTest(const Integer &p); + +// These is no reason to use these two, use the ones below instead +bool IsFermatProbablePrime(const Integer &n, const Integer &b); +bool IsLucasProbablePrime(const Integer &n); + +bool IsStrongProbablePrime(const Integer &n, const Integer &b); +bool IsStrongLucasProbablePrime(const Integer &n); + +// Rabin-Miller primality test, i.e. repeating the strong probable prime test +// for several rounds with random bases +bool RabinMillerTest(RandomNumberGenerator &rng, const Integer &w, unsigned int rounds); + +// primality test, used to generate primes +bool IsPrime(const Integer &p); + +// more reliable than IsPrime(), used to verify primes generated by others +bool VerifyPrime(RandomNumberGenerator &rng, const Integer &p, unsigned int level = 1); + +class PrimeSelector +{ +public: + const PrimeSelector *GetSelectorPointer() const {return this;} + virtual bool IsAcceptable(const Integer &candidate) const =0; +}; + +// use a fast sieve to find the first probable prime in {x | p<=x<=max and x%mod==equiv} +// returns true iff successful, value of p is undefined if no such prime exists +bool FirstPrime(Integer &p, const Integer &max, const Integer &equiv, const Integer &mod, const PrimeSelector *pSelector); + +unsigned int PrimeSearchInterval(const Integer &max); + +AlgorithmParameters, Integer>, Integer> + MakeParametersForTwoPrimesOfEqualSize(unsigned int productBitLength); + +// ********** other number theoretic functions ************ + +inline Integer GCD(const Integer &a, const Integer &b) + {return Integer::Gcd(a,b);} +inline bool RelativelyPrime(const Integer &a, const Integer &b) + {return Integer::Gcd(a,b) == Integer::One();} +inline Integer LCM(const Integer &a, const Integer &b) + {return a/Integer::Gcd(a,b)*b;} +inline Integer EuclideanMultiplicativeInverse(const Integer &a, const Integer &b) + {return a.InverseMod(b);} + +// use Chinese Remainder Theorem to calculate x given x mod p and x mod q +Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, const Integer &q); +// use this one if u = inverse of p mod q has been precalculated +Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, const Integer &q, const Integer &u); + +// if b is prime, then Jacobi(a, b) returns 0 if a%b==0, 1 if a is quadratic residue mod b, -1 otherwise +// check a number theory book for what Jacobi symbol means when b is not prime +int Jacobi(const Integer &a, const Integer &b); + +// calculates the Lucas function V_e(p, 1) mod n +Integer Lucas(const Integer &e, const Integer &p, const Integer &n); +// calculates x such that m==Lucas(e, x, p*q), p q primes +Integer InverseLucas(const Integer &e, const Integer &m, const Integer &p, const Integer &q); +// use this one if u=inverse of p mod q has been precalculated +Integer InverseLucas(const Integer &e, const Integer &m, const Integer &p, const Integer &q, const Integer &u); + +inline Integer ModularExponentiation(const Integer &a, const Integer &e, const Integer &m) + {return a_exp_b_mod_c(a, e, m);} +// returns x such that x*x%p == a, p prime +Integer ModularSquareRoot(const Integer &a, const Integer &p); +// returns x such that a==ModularExponentiation(x, e, p*q), p q primes, +// and e relatively prime to (p-1)*(q-1) +Integer ModularRoot(const Integer &a, const Integer &e, const Integer &p, const Integer &q); +// use this one if dp=d%(p-1), dq=d%(q-1), (d is inverse of e mod (p-1)*(q-1)) +// and u=inverse of p mod q have been precalculated +Integer ModularRoot(const Integer &a, const Integer &dp, const Integer &dq, const Integer &p, const Integer &q, const Integer &u); + +// find r1 and r2 such that ax^2 + bx + c == 0 (mod p) for x in {r1, r2}, p prime +// returns true if solutions exist +bool SolveModularQuadraticEquation(Integer &r1, Integer &r2, const Integer &a, const Integer &b, const Integer &c, const Integer &p); + +// returns log base 2 of estimated number of operations to calculate discrete log or factor a number +unsigned int DiscreteLogWorkFactor(unsigned int bitlength); +unsigned int FactoringWorkFactor(unsigned int bitlength); + +// ******************************************************** + +//! generator of prime numbers of special forms +class PrimeAndGenerator +{ +public: + PrimeAndGenerator() {} + // generate a random prime p of the form 2*q+delta, where delta is 1 or -1 and q is also prime + // Precondition: pbits > 5 + // warning: this is slow, because primes of this form are harder to find + PrimeAndGenerator(signed int delta, RandomNumberGenerator &rng, unsigned int pbits) + {Generate(delta, rng, pbits, pbits-1);} + // generate a random prime p of the form 2*r*q+delta, where q is also prime + // Precondition: qbits > 4 && pbits > qbits + PrimeAndGenerator(signed int delta, RandomNumberGenerator &rng, unsigned int pbits, unsigned qbits) + {Generate(delta, rng, pbits, qbits);} + + void Generate(signed int delta, RandomNumberGenerator &rng, unsigned int pbits, unsigned qbits); + + const Integer& Prime() const {return p;} + const Integer& SubPrime() const {return q;} + const Integer& Generator() const {return g;} + +private: + Integer p, q, g; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/oaep.cpp b/stepmania/src/crypto51/oaep.cpp new file mode 100644 index 0000000000..8913631bc5 --- /dev/null +++ b/stepmania/src/crypto51/oaep.cpp @@ -0,0 +1,107 @@ +// oaep.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "oaep.h" + +#include + +NAMESPACE_BEGIN(CryptoPP) + +// ******************************************************** + +ANONYMOUS_NAMESPACE_BEGIN + template + struct PHashComputation + { + PHashComputation() {H().CalculateDigest(pHash, P, PLen);} + byte pHash[H::DIGESTSIZE]; + }; + + template + const byte *PHash() + { + static PHashComputation pHash; + return pHash.pHash; + } +NAMESPACE_END + +template +unsigned int OAEP::MaxUnpaddedLength(unsigned int paddedLength) const +{ + return paddedLength/8 > 1+2*H::DIGESTSIZE ? paddedLength/8-1-2*H::DIGESTSIZE : 0; +} + +template +void OAEP::Pad(RandomNumberGenerator &rng, const byte *input, unsigned int inputLength, byte *oaepBlock, unsigned int oaepBlockLen) const +{ + assert (inputLength <= MaxUnpaddedLength(oaepBlockLen)); + + // convert from bit length to byte length + if (oaepBlockLen % 8 != 0) + { + oaepBlock[0] = 0; + oaepBlock++; + } + oaepBlockLen /= 8; + + const unsigned int hLen = H::DIGESTSIZE; + const unsigned int seedLen = hLen, dbLen = oaepBlockLen-seedLen; + byte *const maskedSeed = oaepBlock; + byte *const maskedDB = oaepBlock+seedLen; + + // DB = pHash || 00 ... || 01 || M + memcpy(maskedDB, PHash(), hLen); + memset(maskedDB+hLen, 0, dbLen-hLen-inputLength-1); + maskedDB[dbLen-inputLength-1] = 0x01; + memcpy(maskedDB+dbLen-inputLength, input, inputLength); + + rng.GenerateBlock(maskedSeed, seedLen); + H h; + MGF mgf; + mgf.GenerateAndMask(h, maskedDB, dbLen, maskedSeed, seedLen); + mgf.GenerateAndMask(h, maskedSeed, seedLen, maskedDB, dbLen); +} + +template +DecodingResult OAEP::Unpad(const byte *oaepBlock, unsigned int oaepBlockLen, byte *output) const +{ + bool invalid = false; + + // convert from bit length to byte length + if (oaepBlockLen % 8 != 0) + { + invalid = (oaepBlock[0] != 0) || invalid; + oaepBlock++; + } + oaepBlockLen /= 8; + + const unsigned int hLen = H::DIGESTSIZE; + const unsigned int seedLen = hLen, dbLen = oaepBlockLen-seedLen; + + invalid = (oaepBlockLen < 2*hLen+1) || invalid; + + SecByteBlock t(oaepBlock, oaepBlockLen); + byte *const maskedSeed = t; + byte *const maskedDB = t+seedLen; + + H h; + MGF mgf; + mgf.GenerateAndMask(h, maskedSeed, seedLen, maskedDB, dbLen); + mgf.GenerateAndMask(h, maskedDB, dbLen, maskedSeed, seedLen); + + // DB = pHash' || 00 ... || 01 || M + + byte *M = std::find(maskedDB+hLen, maskedDB+dbLen, 0x01); + invalid = (M == maskedDB+dbLen) || invalid; + invalid = (std::find_if(maskedDB+hLen, M, std::bind2nd(std::not_equal_to(), 0)) != M) || invalid; + invalid = (memcmp(maskedDB, PHash(), hLen) != 0) || invalid; + + if (invalid) + return DecodingResult(); + + M++; + memcpy(output, M, maskedDB+dbLen-M); + return DecodingResult(maskedDB+dbLen-M); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/oaep.h b/stepmania/src/crypto51/oaep.h new file mode 100644 index 0000000000..c242698a2b --- /dev/null +++ b/stepmania/src/crypto51/oaep.h @@ -0,0 +1,25 @@ +#ifndef CRYPTOPP_OAEP_H +#define CRYPTOPP_OAEP_H + +#include "pubkey.h" + +NAMESPACE_BEGIN(CryptoPP) + +extern byte OAEP_P_DEFAULT[]; // defined in misc.cpp + +/// EME-OAEP, for use with RSAES +template +class OAEP : public PK_EncryptionMessageEncodingMethod, public EncryptionStandard +{ +public: + static std::string StaticAlgorithmName() {return std::string("OAEP-") + MGF::StaticAlgorithmName() + "(" + H::StaticAlgorithmName() + ")";} + typedef OAEP EncryptionMessageEncodingMethod; + + unsigned int MaxUnpaddedLength(unsigned int paddedLength) const; + void Pad(RandomNumberGenerator &rng, const byte *raw, unsigned int inputLength, byte *padded, unsigned int paddedLength) const; + DecodingResult Unpad(const byte *padded, unsigned int paddedLength, byte *raw) const; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/oids.h b/stepmania/src/crypto51/oids.h new file mode 100644 index 0000000000..fe00a9cb15 --- /dev/null +++ b/stepmania/src/crypto51/oids.h @@ -0,0 +1,112 @@ +#ifndef CRYPTOPP_OIDS_H +#define CRYPTOPP_OIDS_H + +// crypto-related ASN.1 object identifiers + +#include "asn.h" + +NAMESPACE_BEGIN(CryptoPP) + +NAMESPACE_BEGIN(ASN1) + +#define DEFINE_OID(value, name) inline OID name() {return value;} + +DEFINE_OID(1, iso) + DEFINE_OID(iso()+2, member_body) + DEFINE_OID(member_body()+840, iso_us) + DEFINE_OID(iso_us()+10040, ansi_x9_57) + DEFINE_OID(ansi_x9_57()+4+1, id_dsa) + DEFINE_OID(iso_us()+10045, ansi_x9_62) + DEFINE_OID(ansi_x9_62()+1, id_fieldType) + DEFINE_OID(id_fieldType()+1, prime_field) + DEFINE_OID(id_fieldType()+2, characteristic_two_field) + DEFINE_OID(characteristic_two_field()+3, id_characteristic_two_basis) + DEFINE_OID(id_characteristic_two_basis()+1, gnBasis) + DEFINE_OID(id_characteristic_two_basis()+2, tpBasis) + DEFINE_OID(id_characteristic_two_basis()+3, ppBasis) + DEFINE_OID(ansi_x9_62()+2, id_publicKeyType) + DEFINE_OID(id_publicKeyType()+1, id_ecPublicKey) + DEFINE_OID(ansi_x9_62()+3, ansi_x9_62_curves) + DEFINE_OID(ansi_x9_62_curves()+1, ansi_x9_62_curves_prime) + DEFINE_OID(ansi_x9_62_curves_prime()+1, secp192r1) + DEFINE_OID(ansi_x9_62_curves_prime()+7, secp256r1) + DEFINE_OID(iso_us()+113549, rsadsi) + DEFINE_OID(rsadsi()+1, pkcs) + DEFINE_OID(pkcs()+1, pkcs_1) + DEFINE_OID(pkcs_1()+1, rsaEncryption); + DEFINE_OID(rsadsi()+2, rsadsi_digestAlgorithm) + DEFINE_OID(rsadsi_digestAlgorithm()+2, id_md2) + DEFINE_OID(rsadsi_digestAlgorithm()+5, id_md5) + DEFINE_OID(iso()+3, identified_organization); + DEFINE_OID(identified_organization()+14, oiw); + DEFINE_OID(oiw()+14, oiw_secsig); + DEFINE_OID(oiw_secsig()+2, oiw_secsig_algorithms); + DEFINE_OID(oiw_secsig_algorithms()+26, id_sha1); + DEFINE_OID(identified_organization()+36, teletrust); + DEFINE_OID(teletrust()+3+2+1, id_ripemd160) + DEFINE_OID(identified_organization()+132, certicom); + DEFINE_OID(certicom()+0, certicom_ellipticCurve); + // these are sorted by curve type and then by OID + // first curves based on GF(p) + DEFINE_OID(certicom_ellipticCurve()+6, secp112r1); + DEFINE_OID(certicom_ellipticCurve()+7, secp112r2); + DEFINE_OID(certicom_ellipticCurve()+8, secp160r1); + DEFINE_OID(certicom_ellipticCurve()+9, secp160k1); + DEFINE_OID(certicom_ellipticCurve()+10, secp256k1); + DEFINE_OID(certicom_ellipticCurve()+28, secp128r1); + DEFINE_OID(certicom_ellipticCurve()+29, secp128r2); + DEFINE_OID(certicom_ellipticCurve()+30, secp160r2); + DEFINE_OID(certicom_ellipticCurve()+31, secp192k1); + DEFINE_OID(certicom_ellipticCurve()+32, secp224k1); + DEFINE_OID(certicom_ellipticCurve()+33, secp224r1); + DEFINE_OID(certicom_ellipticCurve()+34, secp384r1); + DEFINE_OID(certicom_ellipticCurve()+35, secp521r1); + // then curves based on GF(2^n) + DEFINE_OID(certicom_ellipticCurve()+1, sect163k1); + DEFINE_OID(certicom_ellipticCurve()+2, sect163r1); + DEFINE_OID(certicom_ellipticCurve()+3, sect239k1); + DEFINE_OID(certicom_ellipticCurve()+4, sect113r1); + DEFINE_OID(certicom_ellipticCurve()+5, sect113r2); + DEFINE_OID(certicom_ellipticCurve()+15, sect163r2); + DEFINE_OID(certicom_ellipticCurve()+16, sect283k1); + DEFINE_OID(certicom_ellipticCurve()+17, sect283r1); + DEFINE_OID(certicom_ellipticCurve()+22, sect131r1); + DEFINE_OID(certicom_ellipticCurve()+23, sect131r2); + DEFINE_OID(certicom_ellipticCurve()+24, sect193r1); + DEFINE_OID(certicom_ellipticCurve()+25, sect193r2); + DEFINE_OID(certicom_ellipticCurve()+26, sect233k1); + DEFINE_OID(certicom_ellipticCurve()+27, sect233r1); + DEFINE_OID(certicom_ellipticCurve()+36, sect409k1); + DEFINE_OID(certicom_ellipticCurve()+37, sect409r1); + DEFINE_OID(certicom_ellipticCurve()+38, sect571k1); + DEFINE_OID(certicom_ellipticCurve()+39, sect571r1); +DEFINE_OID(2, joint_iso_ccitt) + DEFINE_OID(joint_iso_ccitt()+16, country) + DEFINE_OID(country()+840, joint_iso_ccitt_us) + DEFINE_OID(joint_iso_ccitt_us()+1, us_organization) + DEFINE_OID(us_organization()+101, us_gov) + DEFINE_OID(us_gov()+3, csor) + DEFINE_OID(csor()+4, nistalgorithms) + DEFINE_OID(nistalgorithms()+1, aes) + DEFINE_OID(aes()+1, id_aes128_ECB) + DEFINE_OID(aes()+2, id_aes128_cbc) + DEFINE_OID(aes()+3, id_aes128_ofb) + DEFINE_OID(aes()+4, id_aes128_cfb) + DEFINE_OID(aes()+21, id_aes192_ECB) + DEFINE_OID(aes()+22, id_aes192_cbc) + DEFINE_OID(aes()+23, id_aes192_ofb) + DEFINE_OID(aes()+24, id_aes192_cfb) + DEFINE_OID(aes()+41, id_aes256_ECB) + DEFINE_OID(aes()+42, id_aes256_cbc) + DEFINE_OID(aes()+43, id_aes256_ofb) + DEFINE_OID(aes()+44, id_aes256_cfb) + DEFINE_OID(nistalgorithms()+2, nist_hashalgs) + DEFINE_OID(nist_hashalgs()+1, id_sha256) + DEFINE_OID(nist_hashalgs()+2, id_sha384) + DEFINE_OID(nist_hashalgs()+3, id_sha512) + +NAMESPACE_END + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/osrng.cpp b/stepmania/src/crypto51/osrng.cpp new file mode 100644 index 0000000000..57f92e7709 --- /dev/null +++ b/stepmania/src/crypto51/osrng.cpp @@ -0,0 +1,172 @@ +// osrng.cpp - written and placed in the public domain by Wei Dai + +// Thanks to Leonard Janke for the suggestion for AutoSeededRandomPool. + +#include "pch.h" +#include "osrng.h" + +#ifdef OS_RNG_AVAILABLE + +#include "rng.h" + +#ifdef CRYPTOPP_WIN32_AVAILABLE +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0400 +#endif +#include +#include +#endif + +#ifdef CRYPTOPP_UNIX_AVAILABLE +#include +#include +#include +#endif + +NAMESPACE_BEGIN(CryptoPP) + +#if defined(NONBLOCKING_RNG_AVAILABLE) || defined(BLOCKING_RNG_AVAILABLE) +OS_RNG_Err::OS_RNG_Err(const std::string &operation) + : Exception(OTHER_ERROR, "OS_Rng: " + operation + " operation failed with error " + +#ifdef CRYPTOPP_WIN32_AVAILABLE + "0x" + IntToString(GetLastError(), 16) +#else + IntToString(errno) +#endif + ) +{ +} +#endif + +#ifdef NONBLOCKING_RNG_AVAILABLE + +#ifdef CRYPTOPP_WIN32_AVAILABLE + +MicrosoftCryptoProvider::MicrosoftCryptoProvider() +{ + if(!CryptAcquireContext(&m_hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) + throw OS_RNG_Err("CryptAcquireContext"); +} + +MicrosoftCryptoProvider::~MicrosoftCryptoProvider() +{ + CryptReleaseContext(m_hProvider, 0); +} + +#endif + +NonblockingRng::NonblockingRng() +{ +#ifndef CRYPTOPP_WIN32_AVAILABLE + m_fd = open("/dev/urandom",O_RDONLY); + if (m_fd == -1) + throw OS_RNG_Err("open /dev/urandom"); +#endif +} + +NonblockingRng::~NonblockingRng() +{ +#ifndef CRYPTOPP_WIN32_AVAILABLE + close(m_fd); +#endif +} + +byte NonblockingRng::GenerateByte() +{ + byte b; + GenerateBlock(&b, 1); + return b; +} + +void NonblockingRng::GenerateBlock(byte *output, unsigned int size) +{ +#ifdef CRYPTOPP_WIN32_AVAILABLE +# ifdef WORKAROUND_MS_BUG_Q258000 + static MicrosoftCryptoProvider m_Provider; +# endif + if (!CryptGenRandom(m_Provider.GetProviderHandle(), size, output)) + throw OS_RNG_Err("CryptGenRandom"); +#else + if (read(m_fd, output, size) != size) + throw OS_RNG_Err("read /dev/urandom"); +#endif +} + +#endif + +// ************************************************************* + +#ifdef BLOCKING_RNG_AVAILABLE + +BlockingRng::BlockingRng() +{ + m_fd = open("/dev/random",O_RDONLY); + if (m_fd == -1) + throw OS_RNG_Err("open /dev/random"); +} + +BlockingRng::~BlockingRng() +{ + close(m_fd); +} + +byte BlockingRng::GenerateByte() +{ + byte b; + GenerateBlock(&b, 1); + return b; +} + +void BlockingRng::GenerateBlock(byte *output, unsigned int size) +{ + while (size) + { + // on some systems /dev/random will block until all bytes + // are available, on others it will returns immediately + int len = read(m_fd, output, STDMIN(size, (unsigned int)INT_MAX)); + if (len == -1) + throw OS_RNG_Err("read /dev/random"); + size -= len; + output += len; + if (size) + sleep(1); + } +} + +#endif + +// ************************************************************* + +void OS_GenerateRandomBlock(bool blocking, byte *output, unsigned int size) +{ +#ifdef NONBLOCKING_RNG_AVAILABLE + if (blocking) +#endif + { +#ifdef BLOCKING_RNG_AVAILABLE + BlockingRng rng; + rng.GenerateBlock(output, size); +#endif + } + +#ifdef BLOCKING_RNG_AVAILABLE + if (!blocking) +#endif + { +#ifdef NONBLOCKING_RNG_AVAILABLE + NonblockingRng rng; + rng.GenerateBlock(output, size); +#endif + } +} + +void AutoSeededRandomPool::Reseed(bool blocking, unsigned int seedSize) +{ + SecByteBlock seed(seedSize); + OS_GenerateRandomBlock(blocking, seed, seedSize); + Put(seed, seedSize); +} + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/osrng.h b/stepmania/src/crypto51/osrng.h new file mode 100644 index 0000000000..902b2eeecf --- /dev/null +++ b/stepmania/src/crypto51/osrng.h @@ -0,0 +1,162 @@ +#ifndef CRYPTOPP_OSRNG_H +#define CRYPTOPP_OSRNG_H + +#include "config.h" + +#ifdef OS_RNG_AVAILABLE + +#include "randpool.h" +#include "rng.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! Exception class for Operating-System Random Number Generator. +class OS_RNG_Err : public Exception +{ +public: + OS_RNG_Err(const std::string &operation); +}; + +#ifdef NONBLOCKING_RNG_AVAILABLE + +#ifdef CRYPTOPP_WIN32_AVAILABLE +class MicrosoftCryptoProvider +{ +public: + MicrosoftCryptoProvider(); + ~MicrosoftCryptoProvider(); +#if defined(_WIN64) + typedef unsigned __int64 ProviderHandle; // type HCRYPTPROV, avoid #include +#else + typedef unsigned long ProviderHandle; +#endif + ProviderHandle GetProviderHandle() const {return m_hProvider;} +private: + ProviderHandle m_hProvider; +}; +#endif + +//! encapsulate CryptoAPI's CryptGenRandom or /dev/urandom +class NonblockingRng : public RandomNumberGenerator +{ +public: + NonblockingRng(); + ~NonblockingRng(); + byte GenerateByte(); + void GenerateBlock(byte *output, unsigned int size); + +protected: +#ifdef CRYPTOPP_WIN32_AVAILABLE +# ifndef WORKAROUND_MS_BUG_Q258000 + MicrosoftCryptoProvider m_Provider; +# endif +#else + int m_fd; +#endif +}; + +#endif + +#ifdef BLOCKING_RNG_AVAILABLE + +//! encapsulate /dev/random +class BlockingRng : public RandomNumberGenerator +{ +public: + BlockingRng(); + ~BlockingRng(); + byte GenerateByte(); + void GenerateBlock(byte *output, unsigned int size); + +protected: + int m_fd; +}; + +#endif + +void OS_GenerateRandomBlock(bool blocking, byte *output, unsigned int size); + +//! Automaticly Seeded Randomness Pool +/*! This class seeds itself using an operating system provided RNG. */ +class AutoSeededRandomPool : public RandomPool +{ +public: + //! blocking will be ignored if the prefered RNG isn't available + explicit AutoSeededRandomPool(bool blocking = false, unsigned int seedSize = 32) + {Reseed(blocking, seedSize);} + void Reseed(bool blocking = false, unsigned int seedSize = 32); +}; + +//! RNG from ANSI X9.17 Appendix C, seeded using an OS provided RNG +template +class AutoSeededX917RNG : public RandomNumberGenerator +{ +public: + //! blocking will be ignored if the prefered RNG isn't available + explicit AutoSeededX917RNG(bool blocking = false) + {Reseed(blocking);} + void Reseed(bool blocking = false); + // exposed for testing + void Reseed(const byte *key, unsigned int keylength, const byte *seed, unsigned long timeVector); + + byte GenerateByte(); + +private: + member_ptr m_rng; + SecByteBlock m_lastBlock; + bool m_isDifferent; + unsigned int m_counter; +}; + +template +void AutoSeededX917RNG::Reseed(const byte *key, unsigned int keylength, const byte *seed, unsigned long timeVector) +{ + m_rng.reset(new X917RNG(new typename BLOCK_CIPHER::Encryption(key, keylength), seed, timeVector)); + + // for FIPS 140-2 + m_lastBlock.resize(16); + m_rng->GenerateBlock(m_lastBlock, m_lastBlock.size()); + m_counter = 0; + m_isDifferent = false; +} + +template +void AutoSeededX917RNG::Reseed(bool blocking) +{ + SecByteBlock seed(BLOCK_CIPHER::BLOCKSIZE + BLOCK_CIPHER::DEFAULT_KEYLENGTH); + const byte *key; + do + { + OS_GenerateRandomBlock(blocking, seed, seed.size()); + key = seed + BLOCK_CIPHER::BLOCKSIZE; + } // check that seed and key don't have same value + while (memcmp(key, seed, STDMIN((unsigned int)BLOCK_CIPHER::BLOCKSIZE, (unsigned int)BLOCK_CIPHER::DEFAULT_KEYLENGTH)) == 0); + + Reseed(key, BLOCK_CIPHER::DEFAULT_KEYLENGTH, seed, 0); +} + +template +byte AutoSeededX917RNG::GenerateByte() +{ + byte b = m_rng->GenerateByte(); + + // for FIPS 140-2 + m_isDifferent = m_isDifferent || b != m_lastBlock[m_counter]; + m_lastBlock[m_counter] = b; + ++m_counter; + if (m_counter == m_lastBlock.size()) + { + if (!m_isDifferent) + throw SelfTestFailure("AutoSeededX917RNG: Continuous random number generator test failed."); + m_counter = 0; + m_isDifferent = false; + } + + return b; +} + +NAMESPACE_END + +#endif + +#endif diff --git a/stepmania/src/crypto51/pch.h b/stepmania/src/crypto51/pch.h new file mode 100644 index 0000000000..7391e5ed7f --- /dev/null +++ b/stepmania/src/crypto51/pch.h @@ -0,0 +1,13 @@ +#ifndef CRYPTOPP_PCH_H +#define CRYPTOPP_PCH_H + +#include "config.h" + +#ifdef USE_PRECOMPILED_HEADERS +#include "simple.h" +#include "secblock.h" +#include "misc.h" +#include "smartptr.h" +#endif + +#endif diff --git a/stepmania/src/crypto51/pkcspad.cpp b/stepmania/src/crypto51/pkcspad.cpp new file mode 100644 index 0000000000..e04ac9ddee --- /dev/null +++ b/stepmania/src/crypto51/pkcspad.cpp @@ -0,0 +1,126 @@ +// pkcspad.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "pkcspad.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x21,0x30,0x09,0x06,0x05,0x2B,0x0E,0x03,0x02,0x1A,0x05,0x00,0x04,0x14}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x20,0x30,0x0c,0x06,0x08,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x02,0x02,0x05,0x00,0x04,0x10}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x20,0x30,0x0c,0x06,0x08,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x02,0x05,0x05,0x00,0x04,0x10}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x21,0x30,0x09,0x06,0x05,0x2b,0x24,0x03,0x02,0x01,0x05,0x00,0x04,0x14}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x29,0x30,0x0D,0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0xDA,0x47,0x0C,0x02,0x05,0x00,0x04,0x18}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x41,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x02,0x05,0x00,0x04,0x30}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x51,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x03,0x05,0x00,0x04,0x40}; +template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); + +unsigned int PKCS_EncryptionPaddingScheme::MaxUnpaddedLength(unsigned int paddedLength) const +{ + return SaturatingSubtract(paddedLength/8, 10U); +} + +void PKCS_EncryptionPaddingScheme::Pad(RandomNumberGenerator &rng, const byte *input, unsigned int inputLen, byte *pkcsBlock, unsigned int pkcsBlockLen) const +{ + assert (inputLen <= MaxUnpaddedLength(pkcsBlockLen)); // this should be checked by caller + + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + pkcsBlock[0] = 0; + pkcsBlock++; + } + pkcsBlockLen /= 8; + + pkcsBlock[0] = 2; // block type 2 + + // pad with non-zero random bytes + for (unsigned i = 1; i < pkcsBlockLen-inputLen-1; i++) + pkcsBlock[i] = (byte)rng.GenerateWord32(1, 0xff); + + pkcsBlock[pkcsBlockLen-inputLen-1] = 0; // separator + memcpy(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen); +} + +DecodingResult PKCS_EncryptionPaddingScheme::Unpad(const byte *pkcsBlock, unsigned int pkcsBlockLen, byte *output) const +{ + bool invalid = false; + unsigned int maxOutputLen = MaxUnpaddedLength(pkcsBlockLen); + + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + invalid = (pkcsBlock[0] != 0) || invalid; + pkcsBlock++; + } + pkcsBlockLen /= 8; + + // Require block type 2. + invalid = (pkcsBlock[0] != 2) || invalid; + + // skip past the padding until we find the separator + unsigned i=1; + while (i maxOutputLen) || invalid; + + if (invalid) + return DecodingResult(); + + memcpy (output, pkcsBlock+i, outputLen); + return DecodingResult(outputLen); +} + +// ******************************************************** + +void PKCS1v15_SignatureMessageEncodingMethod::ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const +{ + unsigned int digestSize = hash.DigestSize(); + if (digestSize + hashIdentifier.second + 10 > representativeBitLength/8) + throw PK_Signer::KeyTooShort(); + + unsigned int pkcsBlockLen = representativeBitLength; + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + representative[0] = 0; + representative++; + } + pkcsBlockLen /= 8; + + representative[0] = 1; // block type 1 + + byte *pPadding = representative + 1; + byte *pDigest = representative + pkcsBlockLen - digestSize; + byte *pHashId = pDigest - hashIdentifier.second; + byte *pSeparator = pHashId - 1; + + // pad with 0xff + memset(pPadding, 0xff, pSeparator-pPadding); + *pSeparator = 0; + memcpy(pHashId, hashIdentifier.first, hashIdentifier.second); + hash.Final(pDigest); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/pkcspad.h b/stepmania/src/crypto51/pkcspad.h new file mode 100644 index 0000000000..2e14a5e00d --- /dev/null +++ b/stepmania/src/crypto51/pkcspad.h @@ -0,0 +1,70 @@ +#ifndef CRYPTOPP_PKCSPAD_H +#define CRYPTOPP_PKCSPAD_H + +#include "cryptlib.h" +#include "pubkey.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! EME-PKCS1-v1_5 +class PKCS_EncryptionPaddingScheme : public PK_EncryptionMessageEncodingMethod +{ +public: + static const char * StaticAlgorithmName() {return "EME-PKCS1-v1_5";} + + unsigned int MaxUnpaddedLength(unsigned int paddedLength) const; + void Pad(RandomNumberGenerator &rng, const byte *raw, unsigned int inputLength, byte *padded, unsigned int paddedLength) const; + DecodingResult Unpad(const byte *padded, unsigned int paddedLength, byte *raw) const; +}; + +template struct PKCS_DigestDecoration +{ + static const byte decoration[]; + static const unsigned int length; +}; + +//! EMSA-PKCS1-v1_5 +class PKCS1v15_SignatureMessageEncodingMethod : public PK_DeterministicSignatureMessageEncodingMethod +{ +public: + static const char * StaticAlgorithmName() {return "EMSA-PKCS1-v1_5";} + + void ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const; + + struct HashIdentifierLookup + { + template struct HashIdentifierLookup2 + { + static HashIdentifier Lookup() + { + return HashIdentifier(PKCS_DigestDecoration::decoration, PKCS_DigestDecoration::length); + } + }; + }; +}; + +//! PKCS #1 version 1.5, for use with RSAES and RSASS +/*! The following hash functions are supported for signature: SHA, MD2, MD5, RIPEMD160, SHA256, SHA384, SHA512. */ +struct PKCS1v15 : public SignatureStandard, public EncryptionStandard +{ + typedef PKCS_EncryptionPaddingScheme EncryptionMessageEncodingMethod; + typedef PKCS1v15_SignatureMessageEncodingMethod SignatureMessageEncodingMethod; +}; + +// PKCS_DecoratedHashModule can be instantiated with the following +// classes as specified in PKCS#1 v2.0 and P1363a +class SHA; +class MD2; +class MD5; +class RIPEMD160; +class Tiger; +class SHA256; +class SHA384; +class SHA512; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/polynomi.cpp b/stepmania/src/crypto51/polynomi.cpp new file mode 100644 index 0000000000..5607cafb0d --- /dev/null +++ b/stepmania/src/crypto51/polynomi.cpp @@ -0,0 +1,579 @@ +// polynomi.cpp - written and placed in the public domain by Wei Dai + +// Part of the code for polynomial evaluation and interpolation +// originally came from Hal Finney's public domain secsplit.c. + +#include "pch.h" +#include "polynomi.h" +#include "secblock.h" + +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +template +void PolynomialOver::Randomize(RandomNumberGenerator &rng, const RandomizationParameter ¶meter, const Ring &ring) +{ + m_coefficients.resize(parameter.m_coefficientCount); + for (unsigned int i=0; i +void PolynomialOver::FromStr(const char *str, const Ring &ring) +{ + std::istrstream in((char *)str); + bool positive = true; + CoefficientType coef; + unsigned int power; + + while (in) + { + std::ws(in); + if (in.peek() == 'x') + coef = ring.MultiplicativeIdentity(); + else + in >> coef; + + std::ws(in); + if (in.peek() == 'x') + { + in.get(); + std::ws(in); + if (in.peek() == '^') + { + in.get(); + in >> power; + } + else + power = 1; + } + else + power = 0; + + if (!positive) + coef = ring.Inverse(coef); + + SetCoefficient(power, coef, ring); + + std::ws(in); + switch (in.get()) + { + case '+': + positive = true; + break; + case '-': + positive = false; + break; + default: + return; // something's wrong with the input string + } + } +} + +template +unsigned int PolynomialOver::CoefficientCount(const Ring &ring) const +{ + unsigned count = m_coefficients.size(); + while (count && ring.Equal(m_coefficients[count-1], ring.Identity())) + count--; + const_cast &>(m_coefficients).resize(count); + return count; +} + +template +typename PolynomialOver::CoefficientType PolynomialOver::GetCoefficient(unsigned int i, const Ring &ring) const +{ + return (i < m_coefficients.size()) ? m_coefficients[i] : ring.Identity(); +} + +template +PolynomialOver& PolynomialOver::operator=(const PolynomialOver& t) +{ + if (this != &t) + { + m_coefficients.resize(t.m_coefficients.size()); + for (unsigned int i=0; i +PolynomialOver& PolynomialOver::Accumulate(const PolynomialOver& t, const Ring &ring) +{ + unsigned int count = t.CoefficientCount(ring); + + if (count > CoefficientCount(ring)) + m_coefficients.resize(count, ring.Identity()); + + for (unsigned int i=0; i +PolynomialOver& PolynomialOver::Reduce(const PolynomialOver& t, const Ring &ring) +{ + unsigned int count = t.CoefficientCount(ring); + + if (count > CoefficientCount(ring)) + m_coefficients.resize(count, ring.Identity()); + + for (unsigned int i=0; i +typename PolynomialOver::CoefficientType PolynomialOver::EvaluateAt(const CoefficientType &x, const Ring &ring) const +{ + int degree = Degree(ring); + + if (degree < 0) + return ring.Identity(); + + CoefficientType result = m_coefficients[degree]; + for (int j=degree-1; j>=0; j--) + { + result = ring.Multiply(result, x); + ring.Accumulate(result, m_coefficients[j]); + } + return result; +} + +template +PolynomialOver& PolynomialOver::ShiftLeft(unsigned int n, const Ring &ring) +{ + unsigned int i = CoefficientCount(ring) + n; + m_coefficients.resize(i, ring.Identity()); + while (i > n) + { + i--; + m_coefficients[i] = m_coefficients[i-n]; + } + while (i) + { + i--; + m_coefficients[i] = ring.Identity(); + } + return *this; +} + +template +PolynomialOver& PolynomialOver::ShiftRight(unsigned int n, const Ring &ring) +{ + unsigned int count = CoefficientCount(ring); + if (count > n) + { + for (unsigned int i=0; i +void PolynomialOver::SetCoefficient(unsigned int i, const CoefficientType &value, const Ring &ring) +{ + if (i >= m_coefficients.size()) + m_coefficients.resize(i+1, ring.Identity()); + m_coefficients[i] = value; +} + +template +void PolynomialOver::Negate(const Ring &ring) +{ + unsigned int count = CoefficientCount(ring); + for (unsigned int i=0; i +void PolynomialOver::swap(PolynomialOver &t) +{ + m_coefficients.swap(t.m_coefficients); +} + +template +bool PolynomialOver::Equals(const PolynomialOver& t, const Ring &ring) const +{ + unsigned int count = CoefficientCount(ring); + + if (count != t.CoefficientCount(ring)) + return false; + + for (unsigned int i=0; i +PolynomialOver PolynomialOver::Plus(const PolynomialOver& t, const Ring &ring) const +{ + unsigned int i; + unsigned int count = CoefficientCount(ring); + unsigned int tCount = t.CoefficientCount(ring); + + if (count > tCount) + { + PolynomialOver result(ring, count); + + for (i=0; i result(ring, tCount); + + for (i=0; i +PolynomialOver PolynomialOver::Minus(const PolynomialOver& t, const Ring &ring) const +{ + unsigned int i; + unsigned int count = CoefficientCount(ring); + unsigned int tCount = t.CoefficientCount(ring); + + if (count > tCount) + { + PolynomialOver result(ring, count); + + for (i=0; i result(ring, tCount); + + for (i=0; i +PolynomialOver PolynomialOver::Inverse(const Ring &ring) const +{ + unsigned int count = CoefficientCount(ring); + PolynomialOver result(ring, count); + + for (unsigned int i=0; i +PolynomialOver PolynomialOver::Times(const PolynomialOver& t, const Ring &ring) const +{ + if (IsZero(ring) || t.IsZero(ring)) + return PolynomialOver(); + + unsigned int count1 = CoefficientCount(ring), count2 = t.CoefficientCount(ring); + PolynomialOver result(ring, count1 + count2 - 1); + + for (unsigned int i=0; i +PolynomialOver PolynomialOver::DividedBy(const PolynomialOver& t, const Ring &ring) const +{ + PolynomialOver remainder, quotient; + Divide(remainder, quotient, *this, t, ring); + return quotient; +} + +template +PolynomialOver PolynomialOver::Modulo(const PolynomialOver& t, const Ring &ring) const +{ + PolynomialOver remainder, quotient; + Divide(remainder, quotient, *this, t, ring); + return remainder; +} + +template +PolynomialOver PolynomialOver::MultiplicativeInverse(const Ring &ring) const +{ + return Degree(ring)==0 ? ring.MultiplicativeInverse(m_coefficients[0]) : ring.Identity(); +} + +template +bool PolynomialOver::IsUnit(const Ring &ring) const +{ + return Degree(ring)==0 && ring.IsUnit(m_coefficients[0]); +} + +template +std::istream& PolynomialOver::Input(std::istream &in, const Ring &ring) +{ + char c; + unsigned int length = 0; + SecBlock str(length + 16); + bool paren = false; + + std::ws(in); + + if (in.peek() == '(') + { + paren = true; + in.get(); + } + + do + { + in.read(&c, 1); + str[length++] = c; + if (length >= str.size()) + str.Grow(length + 16); + } + // if we started with a left paren, then read until we find a right paren, + // otherwise read until the end of the line + while (in && ((paren && c != ')') || (!paren && c != '\n'))); + + str[length-1] = '\0'; + *this = PolynomialOver(str, ring); + + return in; +} + +template +std::ostream& PolynomialOver::Output(std::ostream &out, const Ring &ring) const +{ + unsigned int i = CoefficientCount(ring); + if (i) + { + bool firstTerm = true; + + while (i--) + { + if (m_coefficients[i] != ring.Identity()) + { + if (firstTerm) + { + firstTerm = false; + if (!i || !ring.Equal(m_coefficients[i], ring.MultiplicativeIdentity())) + out << m_coefficients[i]; + } + else + { + CoefficientType inverse = ring.Inverse(m_coefficients[i]); + std::ostrstream pstr, nstr; + + pstr << m_coefficients[i]; + nstr << inverse; + + if (pstr.pcount() <= nstr.pcount()) + { + out << " + "; + if (!i || !ring.Equal(m_coefficients[i], ring.MultiplicativeIdentity())) + out << m_coefficients[i]; + } + else + { + out << " - "; + if (!i || !ring.Equal(inverse, ring.MultiplicativeIdentity())) + out << inverse; + } + } + + switch (i) + { + case 0: + break; + case 1: + out << "x"; + break; + default: + out << "x^" << i; + } + } + } + } + else + { + out << ring.Identity(); + } + return out; +} + +template +void PolynomialOver::Divide(PolynomialOver &r, PolynomialOver &q, const PolynomialOver &a, const PolynomialOver &d, const Ring &ring) +{ + unsigned int i = a.CoefficientCount(ring); + const int dDegree = d.Degree(ring); + + if (dDegree < 0) + throw DivideByZero(); + + r = a; + q.m_coefficients.resize(STDMAX(0, int(i - dDegree))); + + while (i > (unsigned int)dDegree) + { + --i; + q.m_coefficients[i-dDegree] = ring.Divide(r.m_coefficients[i], d.m_coefficients[dDegree]); + for (int j=0; j<=dDegree; j++) + ring.Reduce(r.m_coefficients[i-dDegree+j], ring.Multiply(q.m_coefficients[i-dDegree], d.m_coefficients[j])); + } + + r.CoefficientCount(ring); // resize r.m_coefficients +} + +// ******************************************************** + +// helper function for Interpolate() and InterpolateAt() +template +void RingOfPolynomialsOver::CalculateAlpha(std::vector &alpha, const CoefficientType x[], const CoefficientType y[], unsigned int n) const +{ + for (unsigned int j=0; j=k; --j) + { + m_ring.Reduce(alpha[j], alpha[j-1]); + + CoefficientType d = m_ring.Subtract(x[j], x[j-k]); + if (!m_ring.IsUnit(d)) + throw InterpolationFailed(); + alpha[j] = m_ring.Divide(alpha[j], d); + } + } +} + +template +typename RingOfPolynomialsOver::Element RingOfPolynomialsOver::Interpolate(const CoefficientType x[], const CoefficientType y[], unsigned int n) const +{ + assert(n > 0); + + std::vector alpha(n); + CalculateAlpha(alpha, x, y, n); + + std::vector coefficients((size_t)n, m_ring.Identity()); + coefficients[0] = alpha[n-1]; + + for (int j=n-2; j>=0; --j) + { + for (unsigned int i=n-j-1; i>0; i--) + coefficients[i] = m_ring.Subtract(coefficients[i-1], m_ring.Multiply(coefficients[i], x[j])); + + coefficients[0] = m_ring.Subtract(alpha[j], m_ring.Multiply(coefficients[0], x[j])); + } + + return PolynomialOver(coefficients.begin(), coefficients.end()); +} + +template +typename RingOfPolynomialsOver::CoefficientType RingOfPolynomialsOver::InterpolateAt(const CoefficientType &position, const CoefficientType x[], const CoefficientType y[], unsigned int n) const +{ + assert(n > 0); + + std::vector alpha(n); + CalculateAlpha(alpha, x, y, n); + + CoefficientType result = alpha[n-1]; + for (int j=n-2; j>=0; --j) + { + result = m_ring.Multiply(result, m_ring.Subtract(position, x[j])); + m_ring.Accumulate(result, alpha[j]); + } + return result; +} + +template +void PrepareBulkPolynomialInterpolation(const Ring &ring, Element *w, const Element x[], unsigned int n) +{ + for (unsigned int i=0; i +void PrepareBulkPolynomialInterpolationAt(const Ring &ring, Element *v, const Element &position, const Element x[], const Element w[], unsigned int n) +{ + assert(n > 0); + + std::vector a(2*n-1); + unsigned int i; + + for (i=0; i1; i--) + a[i-1] = ring.Multiply(a[2*i], a[2*i-1]); + + a[0] = ring.MultiplicativeIdentity(); + + for (i=0; i +Element BulkPolynomialInterpolateAt(const Ring &ring, const Element y[], const Element v[], unsigned int n) +{ + Element result = ring.Identity(); + for (unsigned int i=0; i +const PolynomialOverFixedRing &PolynomialOverFixedRing::Zero() +{ + static const PolynomialOverFixedRing zero; + return zero; +} + +template +const PolynomialOverFixedRing &PolynomialOverFixedRing::One() +{ + static const PolynomialOverFixedRing one = fixedRing.MultiplicativeIdentity(); + return one; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/polynomi.h b/stepmania/src/crypto51/polynomi.h new file mode 100644 index 0000000000..ce4295ebf0 --- /dev/null +++ b/stepmania/src/crypto51/polynomi.h @@ -0,0 +1,451 @@ +#ifndef CRYPTOPP_POLYNOMI_H +#define CRYPTOPP_POLYNOMI_H + +/*! \file */ + +#include "cryptlib.h" +#include "misc.h" +#include "algebra.h" + +#include +#include + +NAMESPACE_BEGIN(CryptoPP) + +//! represents single-variable polynomials over arbitrary rings +/*! \nosubgrouping */ +template class PolynomialOver +{ +public: + //! \name ENUMS, EXCEPTIONS, and TYPEDEFS + //@{ + //! division by zero exception + class DivideByZero : public Exception + { + public: + DivideByZero() : Exception(OTHER_ERROR, "PolynomialOver: division by zero") {} + }; + + //! specify the distribution for randomization functions + class RandomizationParameter + { + public: + RandomizationParameter(unsigned int coefficientCount, const typename T::RandomizationParameter &coefficientParameter ) + : m_coefficientCount(coefficientCount), m_coefficientParameter(coefficientParameter) {} + + private: + unsigned int m_coefficientCount; + typename T::RandomizationParameter m_coefficientParameter; + friend class PolynomialOver; + }; + + typedef T Ring; + typedef typename T::Element CoefficientType; + //@} + + //! \name CREATORS + //@{ + //! creates the zero polynomial + PolynomialOver() {} + + //! + PolynomialOver(const Ring &ring, unsigned int count) + : m_coefficients((size_t)count, ring.Identity()) {} + + //! copy constructor + PolynomialOver(const PolynomialOver &t) + : m_coefficients(t.m_coefficients.size()) {*this = t;} + + //! construct constant polynomial + PolynomialOver(const CoefficientType &element) + : m_coefficients(1, element) {} + + //! construct polynomial with specified coefficients, starting from coefficient of x^0 + template PolynomialOver(Iterator begin, Iterator end) + : m_coefficients(begin, end) {} + + //! convert from string + PolynomialOver(const char *str, const Ring &ring) {FromStr(str, ring);} + + //! convert from big-endian byte array + PolynomialOver(const byte *encodedPolynomialOver, unsigned int byteCount); + + //! convert from Basic Encoding Rules encoded byte array + explicit PolynomialOver(const byte *BEREncodedPolynomialOver); + + //! convert from BER encoded byte array stored in a BufferedTransformation object + explicit PolynomialOver(BufferedTransformation &bt); + + //! create a random PolynomialOver + PolynomialOver(RandomNumberGenerator &rng, const RandomizationParameter ¶meter, const Ring &ring) + {Randomize(rng, parameter, ring);} + //@} + + //! \name ACCESSORS + //@{ + //! the zero polynomial will return a degree of -1 + int Degree(const Ring &ring) const {return int(CoefficientCount(ring))-1;} + //! + unsigned int CoefficientCount(const Ring &ring) const; + //! return coefficient for x^i + CoefficientType GetCoefficient(unsigned int i, const Ring &ring) const; + //@} + + //! \name MANIPULATORS + //@{ + //! + PolynomialOver& operator=(const PolynomialOver& t); + + //! + void Randomize(RandomNumberGenerator &rng, const RandomizationParameter ¶meter, const Ring &ring); + + //! set the coefficient for x^i to value + void SetCoefficient(unsigned int i, const CoefficientType &value, const Ring &ring); + + //! + void Negate(const Ring &ring); + + //! + void swap(PolynomialOver &t); + //@} + + + //! \name BASIC ARITHMETIC ON POLYNOMIALS + //@{ + bool Equals(const PolynomialOver &t, const Ring &ring) const; + bool IsZero(const Ring &ring) const {return CoefficientCount(ring)==0;} + + PolynomialOver Plus(const PolynomialOver& t, const Ring &ring) const; + PolynomialOver Minus(const PolynomialOver& t, const Ring &ring) const; + PolynomialOver Inverse(const Ring &ring) const; + + PolynomialOver Times(const PolynomialOver& t, const Ring &ring) const; + PolynomialOver DividedBy(const PolynomialOver& t, const Ring &ring) const; + PolynomialOver Modulo(const PolynomialOver& t, const Ring &ring) const; + PolynomialOver MultiplicativeInverse(const Ring &ring) const; + bool IsUnit(const Ring &ring) const; + + PolynomialOver& Accumulate(const PolynomialOver& t, const Ring &ring); + PolynomialOver& Reduce(const PolynomialOver& t, const Ring &ring); + + //! + PolynomialOver Doubled(const Ring &ring) const {return Plus(*this, ring);} + //! + PolynomialOver Squared(const Ring &ring) const {return Times(*this, ring);} + + CoefficientType EvaluateAt(const CoefficientType &x, const Ring &ring) const; + + PolynomialOver& ShiftLeft(unsigned int n, const Ring &ring); + PolynomialOver& ShiftRight(unsigned int n, const Ring &ring); + + //! calculate r and q such that (a == d*q + r) && (0 <= degree of r < degree of d) + static void Divide(PolynomialOver &r, PolynomialOver &q, const PolynomialOver &a, const PolynomialOver &d, const Ring &ring); + //@} + + //! \name INPUT/OUTPUT + //@{ + std::istream& Input(std::istream &in, const Ring &ring); + std::ostream& Output(std::ostream &out, const Ring &ring) const; + //@} + +private: + void FromStr(const char *str, const Ring &ring); + + std::vector m_coefficients; +}; + +//! Polynomials over a fixed ring +/*! Having a fixed ring allows overloaded operators */ +template class PolynomialOverFixedRing : private PolynomialOver +{ + typedef PolynomialOver B; + typedef PolynomialOverFixedRing ThisType; + +public: + typedef T Ring; + typedef typename T::Element CoefficientType; + typedef typename B::DivideByZero DivideByZero; + typedef typename B::RandomizationParameter RandomizationParameter; + + //! \name CREATORS + //@{ + //! creates the zero polynomial + PolynomialOverFixedRing(unsigned int count = 0) : B(fixedRing, count) {} + + //! copy constructor + PolynomialOverFixedRing(const ThisType &t) : B(t) {} + + explicit PolynomialOverFixedRing(const B &t) : B(t) {} + + //! construct constant polynomial + PolynomialOverFixedRing(const CoefficientType &element) : B(element) {} + + //! construct polynomial with specified coefficients, starting from coefficient of x^0 + template PolynomialOverFixedRing(Iterator first, Iterator last) + : B(first, last) {} + + //! convert from string + explicit PolynomialOverFixedRing(const char *str) : B(str, fixedRing) {} + + //! convert from big-endian byte array + PolynomialOverFixedRing(const byte *encodedPoly, unsigned int byteCount) : B(encodedPoly, byteCount) {} + + //! convert from Basic Encoding Rules encoded byte array + explicit PolynomialOverFixedRing(const byte *BEREncodedPoly) : B(BEREncodedPoly) {} + + //! convert from BER encoded byte array stored in a BufferedTransformation object + explicit PolynomialOverFixedRing(BufferedTransformation &bt) : B(bt) {} + + //! create a random PolynomialOverFixedRing + PolynomialOverFixedRing(RandomNumberGenerator &rng, const RandomizationParameter ¶meter) : B(rng, parameter, fixedRing) {} + + static const ThisType &Zero(); + static const ThisType &One(); + //@} + + //! \name ACCESSORS + //@{ + //! the zero polynomial will return a degree of -1 + int Degree() const {return B::Degree(fixedRing);} + //! degree + 1 + unsigned int CoefficientCount() const {return B::CoefficientCount(fixedRing);} + //! return coefficient for x^i + CoefficientType GetCoefficient(unsigned int i) const {return B::GetCoefficient(i, fixedRing);} + //! return coefficient for x^i + CoefficientType operator[](unsigned int i) const {return B::GetCoefficient(i, fixedRing);} + //@} + + //! \name MANIPULATORS + //@{ + //! + ThisType& operator=(const ThisType& t) {B::operator=(t); return *this;} + //! + ThisType& operator+=(const ThisType& t) {Accumulate(t, fixedRing); return *this;} + //! + ThisType& operator-=(const ThisType& t) {Reduce(t, fixedRing); return *this;} + //! + ThisType& operator*=(const ThisType& t) {return *this = *this*t;} + //! + ThisType& operator/=(const ThisType& t) {return *this = *this/t;} + //! + ThisType& operator%=(const ThisType& t) {return *this = *this%t;} + + //! + ThisType& operator<<=(unsigned int n) {ShiftLeft(n, fixedRing); return *this;} + //! + ThisType& operator>>=(unsigned int n) {ShiftRight(n, fixedRing); return *this;} + + //! set the coefficient for x^i to value + void SetCoefficient(unsigned int i, const CoefficientType &value) {B::SetCoefficient(i, value, fixedRing);} + + //! + void Randomize(RandomNumberGenerator &rng, const RandomizationParameter ¶meter) {B::Randomize(rng, parameter, fixedRing);} + + //! + void Negate() {B::Negate(fixedRing);} + + void swap(ThisType &t) {B::swap(t);} + //@} + + //! \name UNARY OPERATORS + //@{ + //! + bool operator!() const {return CoefficientCount()==0;} + //! + ThisType operator+() const {return *this;} + //! + ThisType operator-() const {return ThisType(Inverse(fixedRing));} + //@} + + //! \name BINARY OPERATORS + //@{ + //! + friend ThisType operator>>(ThisType a, unsigned int n) {return ThisType(a>>=n);} + //! + friend ThisType operator<<(ThisType a, unsigned int n) {return ThisType(a<<=n);} + //@} + + //! \name OTHER ARITHMETIC FUNCTIONS + //@{ + //! + ThisType MultiplicativeInverse() const {return ThisType(B::MultiplicativeInverse(fixedRing));} + //! + bool IsUnit() const {return B::IsUnit(fixedRing);} + + //! + ThisType Doubled() const {return ThisType(B::Doubled(fixedRing));} + //! + ThisType Squared() const {return ThisType(B::Squared(fixedRing));} + + CoefficientType EvaluateAt(const CoefficientType &x) const {return B::EvaluateAt(x, fixedRing);} + + //! calculate r and q such that (a == d*q + r) && (0 <= r < abs(d)) + static void Divide(ThisType &r, ThisType &q, const ThisType &a, const ThisType &d) + {B::Divide(r, q, a, d, fixedRing);} + //@} + + //! \name INPUT/OUTPUT + //@{ + //! + friend std::istream& operator>>(std::istream& in, ThisType &a) + {return a.Input(in, fixedRing);} + //! + friend std::ostream& operator<<(std::ostream& out, const ThisType &a) + {return a.Output(out, fixedRing);} + //@} + +private: + static const Ring fixedRing; +}; + +//! Ring of polynomials over another ring +template class RingOfPolynomialsOver : public AbstractEuclideanDomain > +{ +public: + typedef T CoefficientRing; + typedef PolynomialOver Element; + typedef typename Element::CoefficientType CoefficientType; + typedef typename Element::RandomizationParameter RandomizationParameter; + + RingOfPolynomialsOver(const CoefficientRing &ring) : m_ring(ring) {} + + Element RandomElement(RandomNumberGenerator &rng, const RandomizationParameter ¶meter) + {return Element(rng, parameter, m_ring);} + + bool Equal(const Element &a, const Element &b) const + {return a.Equals(b, m_ring);} + + const Element& Identity() const + {return result = m_ring.Identity();} + + const Element& Add(const Element &a, const Element &b) const + {return result = a.Plus(b, m_ring);} + + Element& Accumulate(Element &a, const Element &b) const + {a.Accumulate(b, m_ring); return a;} + + const Element& Inverse(const Element &a) const + {return result = a.Inverse(m_ring);} + + const Element& Subtract(const Element &a, const Element &b) const + {return result = a.Minus(b, m_ring);} + + Element& Reduce(Element &a, const Element &b) const + {return a.Reduce(b, m_ring);} + + const Element& Double(const Element &a) const + {return result = a.Doubled(m_ring);} + + const Element& MultiplicativeIdentity() const + {return result = m_ring.MultiplicativeIdentity();} + + const Element& Multiply(const Element &a, const Element &b) const + {return result = a.Times(b, m_ring);} + + const Element& Square(const Element &a) const + {return result = a.Squared(m_ring);} + + bool IsUnit(const Element &a) const + {return a.IsUnit(m_ring);} + + const Element& MultiplicativeInverse(const Element &a) const + {return result = a.MultiplicativeInverse(m_ring);} + + const Element& Divide(const Element &a, const Element &b) const + {return result = a.DividedBy(b, m_ring);} + + const Element& Mod(const Element &a, const Element &b) const + {return result = a.Modulo(b, m_ring);} + + void DivisionAlgorithm(Element &r, Element &q, const Element &a, const Element &d) const + {Element::Divide(r, q, a, d, m_ring);} + + class InterpolationFailed : public Exception + { + public: + InterpolationFailed() : Exception(OTHER_ERROR, "RingOfPolynomialsOver: interpolation failed") {} + }; + + Element Interpolate(const CoefficientType x[], const CoefficientType y[], unsigned int n) const; + + // a faster version of Interpolate(x, y, n).EvaluateAt(position) + CoefficientType InterpolateAt(const CoefficientType &position, const CoefficientType x[], const CoefficientType y[], unsigned int n) const; +/* + void PrepareBulkInterpolation(CoefficientType *w, const CoefficientType x[], unsigned int n) const; + void PrepareBulkInterpolationAt(CoefficientType *v, const CoefficientType &position, const CoefficientType x[], const CoefficientType w[], unsigned int n) const; + CoefficientType BulkInterpolateAt(const CoefficientType y[], const CoefficientType v[], unsigned int n) const; +*/ +protected: + void CalculateAlpha(std::vector &alpha, const CoefficientType x[], const CoefficientType y[], unsigned int n) const; + + CoefficientRing m_ring; +}; + +template +void PrepareBulkPolynomialInterpolation(const Ring &ring, Element *w, const Element x[], unsigned int n); +template +void PrepareBulkPolynomialInterpolationAt(const Ring &ring, Element *v, const Element &position, const Element x[], const Element w[], unsigned int n); +template +Element BulkPolynomialInterpolateAt(const Ring &ring, const Element y[], const Element v[], unsigned int n); + +//! +template +inline bool operator==(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return a.Equals(b, fixedRing);} +//! +template +inline bool operator!=(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return !(a==b);} + +//! +template +inline bool operator> (const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return a.Degree() > b.Degree();} +//! +template +inline bool operator>=(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return a.Degree() >= b.Degree();} +//! +template +inline bool operator< (const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return a.Degree() < b.Degree();} +//! +template +inline bool operator<=(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return a.Degree() <= b.Degree();} + +//! +template +inline CryptoPP::PolynomialOverFixedRing operator+(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return CryptoPP::PolynomialOverFixedRing(a.Plus(b, fixedRing));} +//! +template +inline CryptoPP::PolynomialOverFixedRing operator-(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return CryptoPP::PolynomialOverFixedRing(a.Minus(b, fixedRing));} +//! +template +inline CryptoPP::PolynomialOverFixedRing operator*(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return CryptoPP::PolynomialOverFixedRing(a.Times(b, fixedRing));} +//! +template +inline CryptoPP::PolynomialOverFixedRing operator/(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return CryptoPP::PolynomialOverFixedRing(a.DividedBy(b, fixedRing));} +//! +template +inline CryptoPP::PolynomialOverFixedRing operator%(const CryptoPP::PolynomialOverFixedRing &a, const CryptoPP::PolynomialOverFixedRing &b) + {return CryptoPP::PolynomialOverFixedRing(a.Modulo(b, fixedRing));} + +NAMESPACE_END + +NAMESPACE_BEGIN(std) +template inline void swap(CryptoPP::PolynomialOver &a, CryptoPP::PolynomialOver &b) +{ + a.swap(b); +} +template inline void swap(CryptoPP::PolynomialOverFixedRing &a, CryptoPP::PolynomialOverFixedRing &b) +{ + a.swap(b); +} +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/pssr.cpp b/stepmania/src/crypto51/pssr.cpp new file mode 100644 index 0000000000..5dc959aa1c --- /dev/null +++ b/stepmania/src/crypto51/pssr.cpp @@ -0,0 +1,126 @@ +// pssr.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "pssr.h" + +NAMESPACE_BEGIN(CryptoPP) + +template<> const byte EMSA2HashId::id = 0x33; +template<> const byte EMSA2HashId::id = 0x31; + +unsigned int PSSR_MEM_Base::MaxRecoverableLength(unsigned int representativeBitLength, unsigned int hashIdentifierLength, unsigned int digestLength) const +{ + if (AllowRecovery()) + { + unsigned int saltLen = SaltLen(digestLength); + unsigned int minPadLen = MinPadLen(digestLength); + return SaturatingSubtract(representativeBitLength, 8*(minPadLen + saltLen + digestLength + hashIdentifierLength) + 9) / 8; + } + return 0; +} + +bool PSSR_MEM_Base::IsProbabilistic() const +{ + return SaltLen(1) > 0; +} + +bool PSSR_MEM_Base::AllowNonrecoverablePart() const +{ + return true; +} + +bool PSSR_MEM_Base::RecoverablePartFirst() const +{ + return false; +} + +void PSSR_MEM_Base::ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const +{ + const unsigned int u = hashIdentifier.second + 1; + const unsigned int representativeByteLength = BitsToBytes(representativeBitLength); + const unsigned int digestSize = hash.DigestSize(); + const unsigned int saltSize = SaltLen(digestSize); + byte *const h = representative + representativeByteLength - u - digestSize; + + SecByteBlock digest(digestSize), salt(saltSize); + hash.Final(digest); + rng.GenerateBlock(salt, saltSize); + + // compute H = hash of M' + byte c[8]; + UnalignedPutWord(BIG_ENDIAN_ORDER, c, (word32)SafeRightShift<29>(recoverableMessageLength)); + UnalignedPutWord(BIG_ENDIAN_ORDER, c+4, word32(recoverableMessageLength << 3)); + hash.Update(c, 8); + hash.Update(recoverableMessage, recoverableMessageLength); + hash.Update(digest, digestSize); + hash.Update(salt, saltSize); + hash.Final(h); + + // compute representative + GetMGF().GenerateAndMask(hash, representative, representativeByteLength - u - digestSize, h, digestSize, false); + byte *xorStart = representative + representativeByteLength - u - digestSize - salt.size() - recoverableMessageLength - 1; + xorStart[0] ^= 1; + xorbuf(xorStart + 1, recoverableMessage, recoverableMessageLength); + xorbuf(xorStart + 1 + recoverableMessageLength, salt, salt.size()); + memcpy(representative + representativeByteLength - u, hashIdentifier.first, hashIdentifier.second); + representative[representativeByteLength - 1] = hashIdentifier.second ? 0xcc : 0xbc; + if (representativeBitLength % 8 != 0) + representative[0] = (byte)Crop(representative[0], representativeBitLength % 8); +} + +DecodingResult PSSR_MEM_Base::RecoverMessageFromRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength, + byte *recoverableMessage) const +{ + const unsigned int u = hashIdentifier.second + 1; + const unsigned int representativeByteLength = BitsToBytes(representativeBitLength); + const unsigned int digestSize = hash.DigestSize(); + const unsigned int saltSize = SaltLen(digestSize); + const byte *const h = representative + representativeByteLength - u - digestSize; + + SecByteBlock digest(digestSize); + hash.Final(digest); + + DecodingResult result(0); + bool &valid = result.isValidCoding; + unsigned int &recoverableMessageLength = result.messageLength; + + valid = (representative[representativeByteLength - 1] == (hashIdentifier.second ? 0xcc : 0xbc)) && valid; + valid = (memcmp(representative + representativeByteLength - u, hashIdentifier.first, hashIdentifier.second) == 0) && valid; + + GetMGF().GenerateAndMask(hash, representative, representativeByteLength - u - digestSize, h, digestSize); + if (representativeBitLength % 8 != 0) + representative[0] = (byte)Crop(representative[0], representativeBitLength % 8); + + // extract salt and recoverableMessage from DB = 00 ... || 01 || M || salt + byte *salt = representative + representativeByteLength - u - digestSize - saltSize; + byte *M = std::find_if(representative, salt-1, std::bind2nd(std::not_equal_to(), 0)); + if (*M == 0x01 && (unsigned int)(M - representative - (representativeBitLength % 8 != 0)) >= MinPadLen(digestSize)) + { + recoverableMessageLength = salt-M-1; + memcpy(recoverableMessage, M+1, recoverableMessageLength); + } + else + valid = false; + + // verify H = hash of M' + byte c[8]; + UnalignedPutWord(BIG_ENDIAN_ORDER, c, (word32)SafeRightShift<29>(recoverableMessageLength)); + UnalignedPutWord(BIG_ENDIAN_ORDER, c+4, word32(recoverableMessageLength << 3)); + hash.Update(c, 8); + hash.Update(recoverableMessage, recoverableMessageLength); + hash.Update(digest, digestSize); + hash.Update(salt, saltSize); + valid = hash.Verify(h) && valid; + + if (!AllowRecovery() && valid && recoverableMessageLength != 0) + {throw NotImplemented("PSSR_MEM: message recovery disabled");} + + return result; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/pssr.h b/stepmania/src/crypto51/pssr.h new file mode 100644 index 0000000000..4ba2950966 --- /dev/null +++ b/stepmania/src/crypto51/pssr.h @@ -0,0 +1,86 @@ +#ifndef CRYPTOPP_PSSR_H +#define CRYPTOPP_PSSR_H + +#include "pubkey.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +class PSSR_MEM_Base : public PK_RecoverableSignatureMessageEncodingMethod +{ + virtual bool AllowRecovery() const =0; + virtual unsigned int SaltLen(unsigned int hashLen) const =0; + virtual unsigned int MinPadLen(unsigned int hashLen) const =0; + virtual const MaskGeneratingFunction & GetMGF() const =0; + +public: + unsigned int MaxRecoverableLength(unsigned int representativeBitLength, unsigned int hashIdentifierLength, unsigned int digestLength) const; + bool IsProbabilistic() const; + bool AllowNonrecoverablePart() const; + bool RecoverablePartFirst() const; + void ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const; + DecodingResult RecoverMessageFromRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength, + byte *recoverableMessage) const; +}; + +template struct EMSA2HashId +{ + static const byte id; +}; + +// EMSA2HashId can be instantiated with the following two classes. +class SHA; +class RIPEMD160; + +template +class EMSA2HashIdLookup : public BASE +{ +public: + struct HashIdentifierLookup + { + template struct HashIdentifierLookup2 + { + static HashIdentifier Lookup() + { + return HashIdentifier(&EMSA2HashId::id, 1); + } + }; + }; +}; + +template class PSSR_MEM_BaseWithHashId; +template<> class PSSR_MEM_BaseWithHashId : public EMSA2HashIdLookup {}; +template<> class PSSR_MEM_BaseWithHashId : public PSSR_MEM_Base {}; + +template +class PSSR_MEM : public PSSR_MEM_BaseWithHashId +{ + virtual bool AllowRecovery() const {return ALLOW_RECOVERY;} + virtual unsigned int SaltLen(unsigned int hashLen) const {return SALT_LEN < 0 ? hashLen : SALT_LEN;} + virtual unsigned int MinPadLen(unsigned int hashLen) const {return MIN_PAD_LEN < 0 ? hashLen : MIN_PAD_LEN;} + virtual const MaskGeneratingFunction & GetMGF() const {static MGF mgf; return mgf;} + +public: + static std::string StaticAlgorithmName() {return std::string(ALLOW_RECOVERY ? "PSSR-" : "PSS-") + MGF::StaticAlgorithmName();} +}; + +//! PSSR-MGF1 +struct PSSR : public SignatureStandard +{ + typedef PSSR_MEM SignatureMessageEncodingMethod; +}; + +//! PSS-MGF1 +struct PSS : public SignatureStandard +{ + typedef PSSR_MEM SignatureMessageEncodingMethod; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/pubkey.cpp b/stepmania/src/crypto51/pubkey.cpp new file mode 100644 index 0000000000..000258997a --- /dev/null +++ b/stepmania/src/crypto51/pubkey.cpp @@ -0,0 +1,122 @@ +// pubkey.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "pubkey.h" + +NAMESPACE_BEGIN(CryptoPP) + +void P1363_MGF1KDF2_Common(HashTransformation &hash, byte *output, unsigned int outputLength, const byte *input, unsigned int inputLength, bool mask, unsigned int counterStart) +{ + ArraySink *sink; + HashFilter filter(hash, sink = mask ? new ArrayXorSink(output, outputLength) : new ArraySink(output, outputLength)); + word32 counter = counterStart; + while (sink->AvailableSize() > 0) + { + filter.Put(input, inputLength); + filter.PutWord32(counter++); + filter.MessageEnd(); + } +} + +bool PK_DeterministicSignatureMessageEncodingMethod::VerifyMessageRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const +{ + SecByteBlock computedRepresentative(BitsToBytes(representativeBitLength)); + ComputeMessageRepresentative(NullRNG(), NULL, 0, hash, hashIdentifier, messageEmpty, computedRepresentative, representativeBitLength); + return memcmp(representative, computedRepresentative, computedRepresentative.size()) == 0; +} + +bool PK_RecoverableSignatureMessageEncodingMethod::VerifyMessageRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const +{ + SecByteBlock recoveredMessage(MaxRecoverableLength(representativeBitLength, hashIdentifier.second, hash.DigestSize())); + DecodingResult result = RecoverMessageFromRepresentative( + hash, hashIdentifier, messageEmpty, representative, representativeBitLength, recoveredMessage); + return result.isValidCoding && result.messageLength == 0; +} + +void TF_SignerBase::InputRecoverableMessage(PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, unsigned int recoverableMessageLength) const +{ + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + const MessageEncodingInterface &mei = GetMessageEncodingInterface(); + unsigned int maxRecoverableLength = mei.MaxRecoverableLength(MessageRepresentativeBitLength(), GetHashIdentifier().second, ma.AccessHash().DigestSize()); + + if (maxRecoverableLength == 0) + {throw NotImplemented("TF_SignerBase: this algorithm does not support messsage recovery or the key is too short");} + if (recoverableMessageLength > maxRecoverableLength) + throw InvalidArgument("TF_SignerBase: the recoverable message part is too long for the given key and algorithm"); + + ma.m_recoverableMessage.Assign(recoverableMessage, recoverableMessageLength); + mei.ProcessRecoverableMessage( + ma.AccessHash(), + recoverableMessage, recoverableMessageLength, + NULL, 0, ma.m_semisignature); +} + +unsigned int TF_SignerBase::SignAndRestart(RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart) const +{ + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + SecByteBlock representative(MessageRepresentativeLength()); + GetMessageEncodingInterface().ComputeMessageRepresentative(rng, + ma.m_recoverableMessage, ma.m_recoverableMessage.size(), + ma.AccessHash(), GetHashIdentifier(), ma.m_empty, + representative, MessageRepresentativeBitLength()); + ma.m_empty = true; + + Integer r(representative, representative.size()); + unsigned int signatureLength = SignatureLength(); + GetTrapdoorFunctionInterface().CalculateRandomizedInverse(rng, r).Encode(signature, signatureLength); + return signatureLength; +} + +void TF_VerifierBase::InputSignature(PK_MessageAccumulator &messageAccumulator, const byte *signature, unsigned int signatureLength) const +{ + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + ma.m_representative.New(MessageRepresentativeLength()); + Integer x = GetTrapdoorFunctionInterface().ApplyFunction(Integer(signature, signatureLength)); + if (x.BitCount() > MessageRepresentativeBitLength()) + x = Integer::Zero(); // don't return false here to prevent timing attack + x.Encode(ma.m_representative, ma.m_representative.size()); +} + +bool TF_VerifierBase::VerifyAndRestart(PK_MessageAccumulator &messageAccumulator) const +{ + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + bool result = GetMessageEncodingInterface().VerifyMessageRepresentative( + ma.AccessHash(), GetHashIdentifier(), ma.m_empty, ma.m_representative, MessageRepresentativeBitLength()); + ma.m_empty = true; + return result; +} + +DecodingResult TF_VerifierBase::RecoverAndRestart(byte *recoveredMessage, PK_MessageAccumulator &messageAccumulator) const +{ + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + DecodingResult result = GetMessageEncodingInterface().RecoverMessageFromRepresentative( + ma.AccessHash(), GetHashIdentifier(), ma.m_empty, ma.m_representative, MessageRepresentativeBitLength(), recoveredMessage); + ma.m_empty = true; + return result; +} + +DecodingResult TF_DecryptorBase::FixedLengthDecrypt(RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const +{ + SecByteBlock paddedBlock(PaddedBlockByteLength()); + Integer x = GetTrapdoorFunctionInterface().CalculateInverse(rng, Integer(cipherText, FixedCiphertextLength())); + if (x.ByteCount() > paddedBlock.size()) + x = Integer::Zero(); // don't return false here to prevent timing attack + x.Encode(paddedBlock, paddedBlock.size()); + return GetMessageEncodingInterface().Unpad(paddedBlock, PaddedBlockBitLength(), plainText); +} + +void TF_EncryptorBase::Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText) const +{ + if (plainTextLength > FixedMaxPlaintextLength()) + throw InvalidArgument(AlgorithmName() + ": message too long for this public key"); + + SecByteBlock paddedBlock(PaddedBlockByteLength()); + GetMessageEncodingInterface().Pad(rng, plainText, plainTextLength, paddedBlock, PaddedBlockBitLength()); + GetTrapdoorFunctionInterface().ApplyRandomizedFunction(rng, Integer(paddedBlock, paddedBlock.size())).Encode(cipherText, FixedCiphertextLength()); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/pubkey.h b/stepmania/src/crypto51/pubkey.h new file mode 100644 index 0000000000..a31d5366b8 --- /dev/null +++ b/stepmania/src/crypto51/pubkey.h @@ -0,0 +1,1708 @@ +// pubkey.h - written and placed in the public domain by Wei Dai + +#ifndef CRYPTOPP_PUBKEY_H +#define CRYPTOPP_PUBKEY_H + +/** \file + + This file contains helper classes/functions for implementing public key algorithms. + + The class hierachies in this .h file tend to look like this: +

    +                  x1
    +                 / \
    +                y1  z1
    +                 |  |
    +            x2  x2
    +                 |  |
    +                y2  z2
    +                 |  |
    +            x3  x3
    +                 |  |
    +                y3  z3
    +
    + - x1, y1, z1 are abstract interface classes defined in cryptlib.h + - x2, y2, z2 are implementations of the interfaces using "abstract policies", which + are pure virtual functions that should return interfaces to interchangeable algorithms. + These classes have "Base" suffixes. + - x3, y3, z3 hold actual algorithms and implement those virtual functions. + These classes have "Impl" suffixes. + + The "TF_" prefix means an implementation using trapdoor functions on integers. + The "DL_" prefix means an implementation using group operations (in groups where discrete log is hard). +*/ + +#include "integer.h" +#include "filters.h" +#include "eprecomp.h" +#include "fips140.h" +#include "argnames.h" +#include + +// VC60 workaround: this macro is defined in shlobj.h and conflicts with a template parameter used in this file +#undef INTERFACE + +NAMESPACE_BEGIN(CryptoPP) + +Integer NR_EncodeDigest(unsigned int modulusBits, const byte *digest, unsigned int digestLen); +Integer DSA_EncodeDigest(unsigned int modulusBits, const byte *digest, unsigned int digestLen); + +// ******************************************************** + +//! . +class TrapdoorFunctionBounds +{ +public: + virtual ~TrapdoorFunctionBounds() {} + + virtual Integer PreimageBound() const =0; + virtual Integer ImageBound() const =0; + virtual Integer MaxPreimage() const {return --PreimageBound();} + virtual Integer MaxImage() const {return --ImageBound();} +}; + +//! . +class RandomizedTrapdoorFunction : public TrapdoorFunctionBounds +{ +public: + virtual Integer ApplyRandomizedFunction(RandomNumberGenerator &rng, const Integer &x) const =0; + virtual bool IsRandomized() const {return true;} +}; + +//! . +class TrapdoorFunction : public RandomizedTrapdoorFunction +{ +public: + Integer ApplyRandomizedFunction(RandomNumberGenerator &rng, const Integer &x) const + {return ApplyFunction(x);} + bool IsRandomized() const {return false;} + + virtual Integer ApplyFunction(const Integer &x) const =0; +}; + +//! . +class RandomizedTrapdoorFunctionInverse +{ +public: + virtual ~RandomizedTrapdoorFunctionInverse() {} + + virtual Integer CalculateRandomizedInverse(RandomNumberGenerator &rng, const Integer &x) const =0; + virtual bool IsRandomized() const {return true;} +}; + +//! . +class TrapdoorFunctionInverse : public RandomizedTrapdoorFunctionInverse +{ +public: + virtual ~TrapdoorFunctionInverse() {} + + Integer CalculateRandomizedInverse(RandomNumberGenerator &rng, const Integer &x) const + {return CalculateInverse(rng, x);} + bool IsRandomized() const {return false;} + + virtual Integer CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const =0; +}; + +// ******************************************************** + +//! . +class PK_EncryptionMessageEncodingMethod +{ +public: + virtual ~PK_EncryptionMessageEncodingMethod() {} + + //! max size of unpadded message in bytes, given max size of padded message in bits (1 less than size of modulus) + virtual unsigned int MaxUnpaddedLength(unsigned int paddedLength) const =0; + + virtual void Pad(RandomNumberGenerator &rng, const byte *raw, unsigned int inputLength, byte *padded, unsigned int paddedBitLength) const =0; + + virtual DecodingResult Unpad(const byte *padded, unsigned int paddedBitLength, byte *raw) const =0; +}; + +// ******************************************************** + +//! . +template +class TF_Base +{ +protected: + virtual const TrapdoorFunctionBounds & GetTrapdoorFunctionBounds() const =0; + + typedef TFI TrapdoorFunctionInterface; + virtual const TrapdoorFunctionInterface & GetTrapdoorFunctionInterface() const =0; + + typedef MEI MessageEncodingInterface; + virtual const MessageEncodingInterface & GetMessageEncodingInterface() const =0; +}; + +// ******************************************************** + +//! . +template +class TF_CryptoSystemBase : public INTERFACE, protected BASE +{ +public: + unsigned int FixedMaxPlaintextLength() const {return GetMessageEncodingInterface().MaxUnpaddedLength(PaddedBlockBitLength());} + unsigned int FixedCiphertextLength() const {return GetTrapdoorFunctionBounds().MaxImage().ByteCount();} + +protected: + unsigned int PaddedBlockByteLength() const {return BitsToBytes(PaddedBlockBitLength());} + unsigned int PaddedBlockBitLength() const {return GetTrapdoorFunctionBounds().PreimageBound().BitCount()-1;} +}; + +//! . +class TF_DecryptorBase : public TF_CryptoSystemBase > +{ +public: + DecodingResult FixedLengthDecrypt(RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const; +}; + +//! . +class TF_EncryptorBase : public TF_CryptoSystemBase > +{ +public: + void Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText) const; +}; + +// ******************************************************** + +typedef std::pair HashIdentifier; + +//! . +class PK_SignatureMessageEncodingMethod +{ +public: + virtual ~PK_SignatureMessageEncodingMethod() {} + + virtual unsigned int MaxRecoverableLength(unsigned int representativeBitLength, unsigned int hashIdentifierLength, unsigned int digestLength) const + {return 0;} + + bool IsProbabilistic() const + {return true;} + bool AllowNonrecoverablePart() const + {throw NotImplemented("PK_MessageEncodingMethod: this signature scheme does not support message recovery");} + virtual bool RecoverablePartFirst() const + {throw NotImplemented("PK_MessageEncodingMethod: this signature scheme does not support message recovery");} + + // for verification, DL + virtual void ProcessSemisignature(HashTransformation &hash, const byte *semisignature, unsigned int semisignatureLength) const {} + + // for signature + virtual void ProcessRecoverableMessage(HashTransformation &hash, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + const byte *presignature, unsigned int presignatureLength, + SecByteBlock &semisignature) const + { + if (RecoverablePartFirst()) + assert(!"ProcessRecoverableMessage() not implemented"); + } + + virtual void ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const =0; + + virtual bool VerifyMessageRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const =0; + + virtual DecodingResult RecoverMessageFromRepresentative( // for TF + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength, + byte *recoveredMessage) const + {throw NotImplemented("PK_MessageEncodingMethod: this signature scheme does not support message recovery");} + + virtual DecodingResult RecoverMessageFromSemisignature( // for DL + HashTransformation &hash, HashIdentifier hashIdentifier, + const byte *presignature, unsigned int presignatureLength, + const byte *semisignature, unsigned int semisignatureLength, + byte *recoveredMessage) const + {throw NotImplemented("PK_MessageEncodingMethod: this signature scheme does not support message recovery");} + + // VC60 workaround + struct HashIdentifierLookup + { + template struct HashIdentifierLookup2 + { + static HashIdentifier Lookup() + { + return HashIdentifier(NULL, 0); + } + }; + }; +}; + +class PK_DeterministicSignatureMessageEncodingMethod : public PK_SignatureMessageEncodingMethod +{ +public: + bool VerifyMessageRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const; +}; + +class PK_RecoverableSignatureMessageEncodingMethod : public PK_SignatureMessageEncodingMethod +{ +public: + bool VerifyMessageRepresentative( + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const; +}; + +class DL_SignatureMessageEncodingMethod_DSA : public PK_DeterministicSignatureMessageEncodingMethod +{ +public: + void ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const; +}; + +class DL_SignatureMessageEncodingMethod_NR : public PK_DeterministicSignatureMessageEncodingMethod +{ +public: + void ComputeMessageRepresentative(RandomNumberGenerator &rng, + const byte *recoverableMessage, unsigned int recoverableMessageLength, + HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, + byte *representative, unsigned int representativeBitLength) const; +}; + +class PK_MessageAccumulatorBase : public PK_MessageAccumulator +{ +public: + PK_MessageAccumulatorBase() : m_empty(true) {} + + virtual HashTransformation & AccessHash() =0; + + void Update(const byte *input, unsigned int length) + { + AccessHash().Update(input, length); + m_empty = m_empty && length == 0; + } + + SecByteBlock m_recoverableMessage, m_representative, m_presignature, m_semisignature; + Integer m_k, m_s; + bool m_empty; +}; + +template +class PK_MessageAccumulatorImpl : public PK_MessageAccumulatorBase, protected ObjectHolder +{ +public: + HashTransformation & AccessHash() {return m_object;} +}; + +//! . +template +class TF_SignatureSchemeBase : public INTERFACE, protected BASE +{ +public: + unsigned int SignatureLength() const + {return GetTrapdoorFunctionBounds().MaxPreimage().ByteCount();} + unsigned int MaxRecoverableLength() const + {return GetMessageEncodingInterface().MaxRecoverableLength(MessageRepresentativeBitLength(), GetHashIdentifier().second, GetDigestSize());} + unsigned int MaxRecoverableLengthFromSignatureLength(unsigned int signatureLength) const + {return MaxRecoverableLength();} + + bool IsProbabilistic() const + {return GetTrapdoorFunctionInterface().IsRandomized() || GetMessageEncodingInterface().IsProbabilistic();} + bool AllowNonrecoverablePart() const + {return GetMessageEncodingInterface().AllowNonrecoverablePart();} + bool RecoverablePartFirst() const + {return GetMessageEncodingInterface().RecoverablePartFirst();} + +protected: + unsigned int MessageRepresentativeLength() const {return BitsToBytes(MessageRepresentativeBitLength());} + unsigned int MessageRepresentativeBitLength() const {return GetTrapdoorFunctionBounds().ImageBound().BitCount()-1;} + virtual HashIdentifier GetHashIdentifier() const =0; + virtual unsigned int GetDigestSize() const =0; +}; + +//! . +class TF_SignerBase : public TF_SignatureSchemeBase > +{ +public: + void InputRecoverableMessage(PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, unsigned int recoverableMessageLength) const; + unsigned int SignAndRestart(RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart=true) const; +}; + +//! . +class TF_VerifierBase : public TF_SignatureSchemeBase > +{ +public: + void InputSignature(PK_MessageAccumulator &messageAccumulator, const byte *signature, unsigned int signatureLength) const; + bool VerifyAndRestart(PK_MessageAccumulator &messageAccumulator) const; + DecodingResult RecoverAndRestart(byte *recoveredMessage, PK_MessageAccumulator &recoveryAccumulator) const; +}; + +// ******************************************************** + +//! . +template +struct TF_CryptoSchemeOptions +{ + typedef T1 AlgorithmInfo; + typedef T2 Keys; + typedef typename Keys::PrivateKey PrivateKey; + typedef typename Keys::PublicKey PublicKey; + typedef T3 MessageEncodingMethod; +}; + +//! . +template +struct TF_SignatureSchemeOptions : public TF_CryptoSchemeOptions +{ + typedef T4 HashFunction; +}; + +//! . +template +class PublicKeyCopier +{ +public: + virtual void CopyKeyInto(typename KEYS::PublicKey &key) const =0; +}; + +//! . +template +class PrivateKeyCopier +{ +public: + virtual void CopyKeyInto(typename KEYS::PublicKey &key) const =0; + virtual void CopyKeyInto(typename KEYS::PrivateKey &key) const =0; +}; + +//! . +template +class TF_ObjectImplBase : public AlgorithmImpl +{ +public: + typedef SCHEME_OPTIONS SchemeOptions; + typedef KEY KeyClass; + + PublicKey & AccessPublicKey() {return AccessKey();} + const PublicKey & GetPublicKey() const {return GetKey();} + + PrivateKey & AccessPrivateKey() {return AccessKey();} + const PrivateKey & GetPrivateKey() const {return GetKey();} + + virtual const KeyClass & GetKey() const =0; + virtual KeyClass & AccessKey() =0; + + const KeyClass & GetTrapdoorFunction() const {return GetKey();} + +protected: + const typename BASE::MessageEncodingInterface & GetMessageEncodingInterface() const + {static typename SCHEME_OPTIONS::MessageEncodingMethod messageEncodingMethod; return messageEncodingMethod;} + const TrapdoorFunctionBounds & GetTrapdoorFunctionBounds() const + {return GetKey();} + const typename BASE::TrapdoorFunctionInterface & GetTrapdoorFunctionInterface() const + {return GetKey();} + + // for signature scheme + HashIdentifier GetHashIdentifier() const + { + typedef CPP_TYPENAME SchemeOptions::MessageEncodingMethod::HashIdentifierLookup::HashIdentifierLookup2 L; + return L::Lookup(); + } + unsigned int GetDigestSize() const + { + typedef CPP_TYPENAME SchemeOptions::HashFunction H; + return H::DIGESTSIZE; + } +}; + +//! . +template +class TF_ObjectImplExtRef : public TF_ObjectImplBase +{ +public: + TF_ObjectImplExtRef(const KEY *pKey = NULL) : m_pKey(pKey) {} + void SetKeyPtr(const KEY *pKey) {m_pKey = pKey;} + + const KEY & GetKey() const {return *m_pKey;} + KEY & AccessKey() {throw NotImplemented("TF_ObjectImplExtRef: cannot modify refererenced key");} + + void CopyKeyInto(typename SCHEME_OPTIONS::PrivateKey &key) const {assert(false);} + void CopyKeyInto(typename SCHEME_OPTIONS::PublicKey &key) const {assert(false);} + +private: + const KEY * m_pKey; +}; + +//! . +template +class TF_ObjectImpl : public TF_ObjectImplBase +{ +public: + const KEY & GetKey() const {return m_trapdoorFunction;} + KEY & AccessKey() {return m_trapdoorFunction;} + +private: + KEY m_trapdoorFunction; +}; + +//! . +template +class TF_PublicObjectImpl : public TF_ObjectImpl, public PublicKeyCopier +{ +public: + void CopyKeyInto(typename SCHEME_OPTIONS::PublicKey &key) const {key = GetKey();} +}; + +//! . +template +class TF_PrivateObjectImpl : public TF_ObjectImpl, public PrivateKeyCopier +{ +public: + void CopyKeyInto(typename SCHEME_OPTIONS::PrivateKey &key) const {key = GetKey();} + void CopyKeyInto(typename SCHEME_OPTIONS::PublicKey &key) const {key = GetKey();} +}; + +//! . +template +class TF_DecryptorImpl : public TF_PrivateObjectImpl +{ +}; + +//! . +template +class TF_EncryptorImpl : public TF_PublicObjectImpl +{ +}; + +//! . +template +class TF_SignerImpl : public TF_PrivateObjectImpl +{ + PK_MessageAccumulator * NewSignatureAccumulator(RandomNumberGenerator &rng = NullRNG()) const + { + return new PK_MessageAccumulatorImpl; + } +}; + +//! . +template +class TF_VerifierImpl : public TF_PublicObjectImpl +{ + PK_MessageAccumulator * NewVerificationAccumulator() const + { + return new PK_MessageAccumulatorImpl; + } +}; + +// ******************************************************** + +class MaskGeneratingFunction +{ +public: + virtual ~MaskGeneratingFunction() {} + virtual void GenerateAndMask(HashTransformation &hash, byte *output, unsigned int outputLength, const byte *input, unsigned int inputLength, bool mask = true) const =0; +}; + +void P1363_MGF1KDF2_Common(HashTransformation &hash, byte *output, unsigned int outputLength, const byte *input, unsigned int inputLength, bool mask, unsigned int counterStart); + +//! . +class P1363_MGF1 : public MaskGeneratingFunction +{ +public: + static const char * StaticAlgorithmName() {return "MGF1";} +#if 0 + // VC60 workaround: this function causes internal compiler error + template + static void GenerateAndMaskTemplate(byte *output, unsigned int outputLength, const byte *input, unsigned int inputLength, H* dummy=NULL) + { + H h; + P1363_MGF1KDF2_Common(h, output, outputLength, input, inputLength, mask, 0); + } +#endif + void GenerateAndMask(HashTransformation &hash, byte *output, unsigned int outputLength, const byte *input, unsigned int inputLength, bool mask = true) const + { + P1363_MGF1KDF2_Common(hash, output, outputLength, input, inputLength, mask, 0); + } +}; + +// ******************************************************** + +//! . +template +class P1363_KDF2 +{ +public: + static void DeriveKey(byte *output, unsigned int outputLength, const byte *input, unsigned int inputLength) + { + H h; + P1363_MGF1KDF2_Common(h, output, outputLength, input, inputLength, false, 1); + } +}; + +// ******************************************************** + +// to be thrown by DecodeElement and AgreeWithStaticPrivateKey +class DL_BadElement : public InvalidDataFormat +{ +public: + DL_BadElement() : InvalidDataFormat("CryptoPP: invalid group element") {} +}; + +//! . +template +class DL_GroupParameters : public CryptoParameters +{ + typedef DL_GroupParameters ThisClass; + +public: + typedef T Element; + + DL_GroupParameters() : m_validationLevel(0) {} + + // CryptoMaterial + bool Validate(RandomNumberGenerator &rng, unsigned int level) const + { + if (!GetBasePrecomputation().IsInitialized()) + return false; + + if (m_validationLevel > level) + return true; + + bool pass = ValidateGroup(rng, level); + pass = pass && ValidateElement(level, GetSubgroupGenerator(), &GetBasePrecomputation()); + + m_validationLevel = pass ? level+1 : 0; + + return pass; + } + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + return GetValueHelper(this, name, valueType, pValue) + CRYPTOPP_GET_FUNCTION_ENTRY(SubgroupOrder) + CRYPTOPP_GET_FUNCTION_ENTRY(SubgroupGenerator) + ; + } + + bool SupportsPrecomputation() const {return true;} + + void Precompute(unsigned int precomputationStorage=16) + { + AccessBasePrecomputation().Precompute(GetGroupPrecomputation(), GetSubgroupOrder().BitCount(), precomputationStorage); + } + + void LoadPrecomputation(BufferedTransformation &storedPrecomputation) + { + AccessBasePrecomputation().Load(GetGroupPrecomputation(), storedPrecomputation); + m_validationLevel = 0; + } + + void SavePrecomputation(BufferedTransformation &storedPrecomputation) const + { + GetBasePrecomputation().Save(GetGroupPrecomputation(), storedPrecomputation); + } + + // non-inherited + virtual const Element & GetSubgroupGenerator() const {return GetBasePrecomputation().GetBase(GetGroupPrecomputation());} + virtual void SetSubgroupGenerator(const Element &base) {AccessBasePrecomputation().SetBase(GetGroupPrecomputation(), base);} + virtual Element ExponentiateBase(const Integer &exponent) const + { + return GetBasePrecomputation().Exponentiate(GetGroupPrecomputation(), exponent); + } + virtual Element ExponentiateElement(const Element &base, const Integer &exponent) const + { + Element result; + SimultaneousExponentiate(&result, base, &exponent, 1); + return result; + } + + virtual const DL_GroupPrecomputation & GetGroupPrecomputation() const =0; + virtual const DL_FixedBasePrecomputation & GetBasePrecomputation() const =0; + virtual DL_FixedBasePrecomputation & AccessBasePrecomputation() =0; + virtual const Integer & GetSubgroupOrder() const =0; // order of subgroup generated by base element + virtual Integer GetMaxExponent() const =0; + virtual Integer GetGroupOrder() const {return GetSubgroupOrder()*GetCofactor();} // one of these two needs to be overriden + virtual Integer GetCofactor() const {return GetGroupOrder()/GetSubgroupOrder();} + virtual unsigned int GetEncodedElementSize(bool reversible) const =0; + virtual void EncodeElement(bool reversible, const Element &element, byte *encoded) const =0; + virtual Element DecodeElement(const byte *encoded, bool checkForGroupMembership) const =0; + virtual Integer ConvertElementToInteger(const Element &element) const =0; + virtual bool ValidateGroup(RandomNumberGenerator &rng, unsigned int level) const =0; + virtual bool ValidateElement(unsigned int level, const Element &element, const DL_FixedBasePrecomputation *precomp) const =0; + virtual bool FastSubgroupCheckAvailable() const =0; + virtual bool IsIdentity(const Element &element) const =0; + virtual void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const =0; + +protected: + void ParametersChanged() {m_validationLevel = 0;} + +private: + mutable unsigned int m_validationLevel; +}; + +//! . +template , class BASE = DL_GroupParameters > +class DL_GroupParametersImpl : public BASE +{ +public: + typedef GROUP_PRECOMP GroupPrecomputation; + typedef typename GROUP_PRECOMP::Element Element; + typedef BASE_PRECOMP BasePrecomputation; + + const DL_GroupPrecomputation & GetGroupPrecomputation() const {return m_groupPrecomputation;} + const DL_FixedBasePrecomputation & GetBasePrecomputation() const {return m_gpc;} + DL_FixedBasePrecomputation & AccessBasePrecomputation() {return m_gpc;} + +protected: + GROUP_PRECOMP m_groupPrecomputation; + BASE_PRECOMP m_gpc; +}; + +//! . +template +class DL_Key +{ +public: + virtual const DL_GroupParameters & GetAbstractGroupParameters() const =0; + virtual DL_GroupParameters & AccessAbstractGroupParameters() =0; +}; + +//! . +template +class DL_PublicKey : public DL_Key +{ + typedef DL_PublicKey ThisClass; + +public: + typedef T Element; + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + return GetValueHelper(this, name, valueType, pValue, &GetAbstractGroupParameters()) + CRYPTOPP_GET_FUNCTION_ENTRY(PublicElement); + } + + void AssignFrom(const NameValuePairs &source); + + // non-inherited + virtual const Element & GetPublicElement() const {return GetPublicPrecomputation().GetBase(GetAbstractGroupParameters().GetGroupPrecomputation());} + virtual void SetPublicElement(const Element &y) {AccessPublicPrecomputation().SetBase(GetAbstractGroupParameters().GetGroupPrecomputation(), y);} + virtual Element ExponentiatePublicElement(const Integer &exponent) const + { + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + return GetPublicPrecomputation().Exponentiate(params.GetGroupPrecomputation(), exponent); + } + virtual Element CascadeExponentiateBaseAndPublicElement(const Integer &baseExp, const Integer &publicExp) const + { + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + return params.GetBasePrecomputation().CascadeExponentiate(params.GetGroupPrecomputation(), baseExp, GetPublicPrecomputation(), publicExp); + } + + virtual const DL_FixedBasePrecomputation & GetPublicPrecomputation() const =0; + virtual DL_FixedBasePrecomputation & AccessPublicPrecomputation() =0; +}; + +//! . +template +class DL_PrivateKey : public DL_Key +{ + typedef DL_PrivateKey ThisClass; + +public: + typedef T Element; + + void MakePublicKey(DL_PublicKey &pub) const + { + pub.AccessAbstractGroupParameters().AssignFrom(GetAbstractGroupParameters()); + pub.SetPublicElement(GetAbstractGroupParameters().ExponentiateBase(GetPrivateExponent())); + } + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + return GetValueHelper(this, name, valueType, pValue, &GetAbstractGroupParameters()) + CRYPTOPP_GET_FUNCTION_ENTRY(PrivateExponent); + } + + void AssignFrom(const NameValuePairs &source) + { + AccessAbstractGroupParameters().AssignFrom(source); + AssignFromHelper(this, source) + CRYPTOPP_SET_FUNCTION_ENTRY(PrivateExponent); + } + + virtual const Integer & GetPrivateExponent() const =0; + virtual void SetPrivateExponent(const Integer &x) =0; +}; + +template +void DL_PublicKey::AssignFrom(const NameValuePairs &source) +{ + DL_PrivateKey *pPrivateKey = NULL; + if (source.GetThisPointer(pPrivateKey)) + pPrivateKey->MakePublicKey(*this); + else + { + AccessAbstractGroupParameters().AssignFrom(source); + AssignFromHelper(this, source) + CRYPTOPP_SET_FUNCTION_ENTRY(PublicElement); + } +} + +class OID; + +//! . +template +class DL_KeyImpl : public PK +{ +public: + typedef GP GroupParameters; + + OID GetAlgorithmID() const {return GetGroupParameters().GetAlgorithmID();} +// void BERDecode(BufferedTransformation &bt) +// {PK::BERDecode(bt);} +// void DEREncode(BufferedTransformation &bt) const +// {PK::DEREncode(bt);} + bool BERDecodeAlgorithmParameters(BufferedTransformation &bt) + {AccessGroupParameters().BERDecode(bt); return true;} + bool DEREncodeAlgorithmParameters(BufferedTransformation &bt) const + {GetGroupParameters().DEREncode(bt); return true;} + + const GP & GetGroupParameters() const {return m_groupParameters;} + GP & AccessGroupParameters() {return m_groupParameters;} + +private: + GP m_groupParameters; +}; + +class X509PublicKey; +class PKCS8PrivateKey; + +//! . +template +class DL_PrivateKeyImpl : public DL_PrivateKey, public DL_KeyImpl +{ +public: + typedef typename GP::Element Element; + + // GeneratableCryptoMaterial + bool Validate(RandomNumberGenerator &rng, unsigned int level) const + { + bool pass = GetAbstractGroupParameters().Validate(rng, level); + + const Integer &q = GetAbstractGroupParameters().GetSubgroupOrder(); + const Integer &x = GetPrivateExponent(); + + pass = pass && x.IsPositive() && x < q; + if (level >= 1) + pass = pass && Integer::Gcd(x, q) == Integer::One(); + return pass; + } + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + return GetValueHelper >(this, name, valueType, pValue).Assignable(); + } + + void AssignFrom(const NameValuePairs &source) + { + AssignFromHelper >(this, source); + } + + void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs ¶ms) + { + if (!params.GetThisObject(AccessGroupParameters())) + AccessGroupParameters().GenerateRandom(rng, params); +// std::pair seed; + Integer x(rng, Integer::One(), GetAbstractGroupParameters().GetMaxExponent()); +// Integer::ANY, Integer::Zero(), Integer::One(), +// params.GetValue("DeterministicKeyGenerationSeed", seed) ? &seed : NULL); + SetPrivateExponent(x); + } + + bool SupportsPrecomputation() const {return true;} + + void Precompute(unsigned int precomputationStorage=16) + {AccessAbstractGroupParameters().Precompute(precomputationStorage);} + + void LoadPrecomputation(BufferedTransformation &storedPrecomputation) + {AccessAbstractGroupParameters().LoadPrecomputation(storedPrecomputation);} + + void SavePrecomputation(BufferedTransformation &storedPrecomputation) const + {GetAbstractGroupParameters().SavePrecomputation(storedPrecomputation);} + + // DL_Key + const DL_GroupParameters & GetAbstractGroupParameters() const {return GetGroupParameters();} + DL_GroupParameters & AccessAbstractGroupParameters() {return AccessGroupParameters();} + + // DL_PrivateKey + const Integer & GetPrivateExponent() const {return m_x;} + void SetPrivateExponent(const Integer &x) {m_x = x;} + + // PKCS8PrivateKey + void BERDecodeKey(BufferedTransformation &bt) + {m_x.BERDecode(bt);} + void DEREncodeKey(BufferedTransformation &bt) const + {m_x.DEREncode(bt);} + +private: + Integer m_x; +}; + +//! . +template +class DL_PrivateKey_WithSignaturePairwiseConsistencyTest : public BASE +{ +public: + void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs ¶ms) + { + BASE::GenerateRandom(rng, params); + + if (FIPS_140_2_ComplianceEnabled()) + { + typename SIGNATURE_SCHEME::Signer signer(*this); + typename SIGNATURE_SCHEME::Verifier verifier(signer); + SignaturePairwiseConsistencyTest_FIPS_140_Only(signer, verifier); + } + } +}; + +//! . +template +class DL_PublicKeyImpl : public DL_PublicKey, public DL_KeyImpl +{ +public: + typedef typename GP::Element Element; + + // CryptoMaterial + bool Validate(RandomNumberGenerator &rng, unsigned int level) const + { + bool pass = GetAbstractGroupParameters().Validate(rng, level); + pass = pass && GetAbstractGroupParameters().ValidateElement(level, GetPublicElement(), &GetPublicPrecomputation()); + return pass; + } + + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const + { + return GetValueHelper >(this, name, valueType, pValue).Assignable(); + } + + void AssignFrom(const NameValuePairs &source) + { + AssignFromHelper >(this, source); + } + + bool SupportsPrecomputation() const {return true;} + + void Precompute(unsigned int precomputationStorage=16) + { + AccessAbstractGroupParameters().Precompute(precomputationStorage); + AccessPublicPrecomputation().Precompute(GetAbstractGroupParameters().GetGroupPrecomputation(), GetAbstractGroupParameters().GetSubgroupOrder().BitCount(), precomputationStorage); + } + + void LoadPrecomputation(BufferedTransformation &storedPrecomputation) + { + AccessAbstractGroupParameters().LoadPrecomputation(storedPrecomputation); + AccessPublicPrecomputation().Load(GetAbstractGroupParameters().GetGroupPrecomputation(), storedPrecomputation); + } + + void SavePrecomputation(BufferedTransformation &storedPrecomputation) const + { + GetAbstractGroupParameters().SavePrecomputation(storedPrecomputation); + GetPublicPrecomputation().Save(GetAbstractGroupParameters().GetGroupPrecomputation(), storedPrecomputation); + } + + // DL_Key + const DL_GroupParameters & GetAbstractGroupParameters() const {return GetGroupParameters();} + DL_GroupParameters & AccessAbstractGroupParameters() {return AccessGroupParameters();} + + // DL_PublicKey + const DL_FixedBasePrecomputation & GetPublicPrecomputation() const {return m_ypc;} + DL_FixedBasePrecomputation & AccessPublicPrecomputation() {return m_ypc;} + + // non-inherited + bool operator==(const DL_PublicKeyImpl &rhs) const + {return GetGroupParameters() == rhs.GetGroupParameters() && GetPublicElement() == rhs.GetPublicElement();} + +private: + typename GP::BasePrecomputation m_ypc; +}; + +//! . +template +class DL_ElgamalLikeSignatureAlgorithm +{ +public: +// virtual Integer EncodeDigest(unsigned int modulusBits, const byte *digest, unsigned int digestLength) const =0; + virtual void Sign(const DL_GroupParameters ¶ms, const Integer &privateKey, const Integer &k, const Integer &e, Integer &r, Integer &s) const =0; + virtual bool Verify(const DL_GroupParameters ¶ms, const DL_PublicKey &publicKey, const Integer &e, const Integer &r, const Integer &s) const =0; + virtual Integer RecoverPresignature(const DL_GroupParameters ¶ms, const DL_PublicKey &publicKey, const Integer &r, const Integer &s) const + {throw NotImplemented("DL_ElgamalLikeSignatureAlgorithm: this signature scheme does not support message recovery");} + virtual unsigned int RLen(const DL_GroupParameters ¶ms) const + {return params.GetSubgroupOrder().ByteCount();} + virtual unsigned int SLen(const DL_GroupParameters ¶ms) const + {return params.GetSubgroupOrder().ByteCount();} +}; + +//! . +template +class DL_KeyAgreementAlgorithm +{ +public: + typedef T Element; + + virtual Element AgreeWithEphemeralPrivateKey(const DL_GroupParameters ¶ms, const DL_FixedBasePrecomputation &publicPrecomputation, const Integer &privateExponent) const =0; + virtual Element AgreeWithStaticPrivateKey(const DL_GroupParameters ¶ms, const Element &publicElement, bool validateOtherPublicKey, const Integer &privateExponent) const =0; +}; + +//! . +template +class DL_KeyDerivationAlgorithm +{ +public: + virtual void Derive(const DL_GroupParameters ¶ms, byte *derivedKey, unsigned int derivedLength, const T &agreedElement, const T &ephemeralPublicKey) const =0; +}; + +//! . +class DL_SymmetricEncryptionAlgorithm +{ +public: + virtual unsigned int GetSymmetricKeyLength(unsigned int plainTextLength) const =0; + virtual unsigned int GetSymmetricCiphertextLength(unsigned int plainTextLength) const =0; + virtual unsigned int GetMaxSymmetricPlaintextLength(unsigned int cipherTextLength) const =0; + virtual void SymmetricEncrypt(RandomNumberGenerator &rng, const byte *key, const byte *plainText, unsigned int plainTextLength, byte *cipherText) const =0; + virtual DecodingResult SymmetricDecrypt(const byte *key, const byte *cipherText, unsigned int cipherTextLength, byte *plainText) const =0; +}; + +//! . +template +class DL_Base +{ +protected: + typedef KI KeyInterface; + typedef typename KI::Element Element; + + const DL_GroupParameters & GetAbstractGroupParameters() const {return GetKeyInterface().GetAbstractGroupParameters();} + DL_GroupParameters & AccessAbstractGroupParameters() {return AccessKeyInterface().AccessAbstractGroupParameters();} + + virtual KeyInterface & AccessKeyInterface() =0; + virtual const KeyInterface & GetKeyInterface() const =0; +}; + +//! . +template +class DL_SignatureSchemeBase : public INTERFACE, public DL_Base +{ +public: + unsigned int SignatureLength() const + { + return GetSignatureAlgorithm().RLen(GetAbstractGroupParameters()) + + GetSignatureAlgorithm().SLen(GetAbstractGroupParameters()); + } + unsigned int MaxRecoverableLength() const + {return GetMessageEncodingInterface().MaxRecoverableLength(0, GetHashIdentifier().second, GetDigestSize());} + unsigned int MaxRecoverableLengthFromSignatureLength(unsigned int signatureLength) const + {assert(false); return 0;} // TODO + + bool IsProbabilistic() const + {return true;} + bool AllowNonrecoverablePart() const + {return GetMessageEncodingInterface().AllowNonrecoverablePart();} + bool RecoverablePartFirst() const + {return GetMessageEncodingInterface().RecoverablePartFirst();} + +protected: + unsigned int MessageRepresentativeLength() const {return BitsToBytes(MessageRepresentativeBitLength());} + unsigned int MessageRepresentativeBitLength() const {return GetAbstractGroupParameters().GetSubgroupOrder().BitCount();} + + virtual const DL_ElgamalLikeSignatureAlgorithm & GetSignatureAlgorithm() const =0; + virtual const PK_SignatureMessageEncodingMethod & GetMessageEncodingInterface() const =0; + virtual HashIdentifier GetHashIdentifier() const =0; + virtual unsigned int GetDigestSize() const =0; +}; + +//! . +template +class DL_SignerBase : public DL_SignatureSchemeBase > +{ +public: + // for validation testing + void RawSign(const Integer &k, const Integer &e, Integer &r, Integer &s) const + { + const DL_ElgamalLikeSignatureAlgorithm &alg = GetSignatureAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + const DL_PrivateKey &key = GetKeyInterface(); + + r = params.ConvertElementToInteger(params.ExponentiateBase(k)); + alg.Sign(params, key.GetPrivateExponent(), k, e, r, s); + } + + void InputRecoverableMessage(PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, unsigned int recoverableMessageLength) const + { + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + ma.m_recoverableMessage.Assign(recoverableMessage, recoverableMessageLength); + GetMessageEncodingInterface().ProcessRecoverableMessage(ma.AccessHash(), + recoverableMessage, recoverableMessageLength, + ma.m_presignature, ma.m_presignature.size(), + ma.m_semisignature); + } + + unsigned int SignAndRestart(RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart) const + { + GetMaterial().DoQuickSanityCheck(); + + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + const DL_ElgamalLikeSignatureAlgorithm &alg = GetSignatureAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + const DL_PrivateKey &key = GetKeyInterface(); + + SecByteBlock representative(MessageRepresentativeLength()); + GetMessageEncodingInterface().ComputeMessageRepresentative( + rng, + ma.m_recoverableMessage, ma.m_recoverableMessage.size(), + ma.AccessHash(), GetHashIdentifier(), ma.m_empty, + representative, MessageRepresentativeBitLength()); + ma.m_empty = true; + Integer e(representative, representative.size()); + + Integer r; + if (MaxRecoverableLength() > 0) + r.Decode(ma.m_semisignature, ma.m_semisignature.size()); + else + r.Decode(ma.m_presignature, ma.m_presignature.size()); + Integer s; + alg.Sign(params, key.GetPrivateExponent(), ma.m_k, e, r, s); + + unsigned int rLen = alg.RLen(params); + r.Encode(signature, rLen); + s.Encode(signature+rLen, alg.SLen(params)); + + if (restart) + RestartMessageAccumulator(rng, ma); + + return SignatureLength(); + } + +protected: + void RestartMessageAccumulator(RandomNumberGenerator &rng, PK_MessageAccumulatorBase &ma) const + { + const DL_ElgamalLikeSignatureAlgorithm &alg = GetSignatureAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + ma.m_k.Randomize(rng, 1, params.GetSubgroupOrder()-1); + ma.m_presignature.New(params.GetEncodedElementSize(false)); + params.ConvertElementToInteger(params.ExponentiateBase(ma.m_k)).Encode(ma.m_presignature, ma.m_presignature.size()); + } +}; + +//! . +template +class DL_VerifierBase : public DL_SignatureSchemeBase > +{ +public: + void InputSignature(PK_MessageAccumulator &messageAccumulator, const byte *signature, unsigned int signatureLength) const + { + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + const DL_ElgamalLikeSignatureAlgorithm &alg = GetSignatureAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + + unsigned int rLen = alg.RLen(params); + ma.m_semisignature.Assign(signature, rLen); + ma.m_s.Decode(signature+rLen, alg.SLen(params)); + + GetMessageEncodingInterface().ProcessSemisignature(ma.AccessHash(), ma.m_semisignature, ma.m_semisignature.size()); + } + + bool VerifyAndRestart(PK_MessageAccumulator &messageAccumulator) const + { + GetMaterial().DoQuickSanityCheck(); + + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + const DL_ElgamalLikeSignatureAlgorithm &alg = GetSignatureAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + const DL_PublicKey &key = GetKeyInterface(); + + SecByteBlock representative(MessageRepresentativeLength()); + GetMessageEncodingInterface().ComputeMessageRepresentative(NullRNG(), ma.m_recoverableMessage, ma.m_recoverableMessage.size(), + ma.AccessHash(), GetHashIdentifier(), ma.m_empty, + representative, MessageRepresentativeBitLength()); + ma.m_empty = true; + Integer e(representative, representative.size()); + + Integer r(ma.m_semisignature, ma.m_semisignature.size()); + return alg.Verify(params, key, e, r, ma.m_s); + } + + DecodingResult RecoverAndRestart(byte *recoveredMessage, PK_MessageAccumulator &messageAccumulator) const + { + GetMaterial().DoQuickSanityCheck(); + + PK_MessageAccumulatorBase &ma = static_cast(messageAccumulator); + const DL_ElgamalLikeSignatureAlgorithm &alg = GetSignatureAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + const DL_PublicKey &key = GetKeyInterface(); + + SecByteBlock representative(MessageRepresentativeLength()); + GetMessageEncodingInterface().ComputeMessageRepresentative( + NullRNG(), + ma.m_recoverableMessage, ma.m_recoverableMessage.size(), + ma.AccessHash(), GetHashIdentifier(), ma.m_empty, + representative, MessageRepresentativeBitLength()); + ma.m_empty = true; + Integer e(representative, representative.size()); + + ma.m_presignature.New(params.GetEncodedElementSize(false)); + Integer r(ma.m_semisignature, ma.m_semisignature.size()); + alg.RecoverPresignature(params, key, r, ma.m_s).Encode(ma.m_presignature, ma.m_presignature.size()); + + return GetMessageEncodingInterface().RecoverMessageFromSemisignature( + ma.AccessHash(), GetHashIdentifier(), + ma.m_presignature, ma.m_presignature.size(), + ma.m_semisignature, ma.m_semisignature.size(), + recoveredMessage); + } +}; + +//! . +template +class DL_CryptoSystemBase : public PK, public DL_Base +{ +public: + typedef typename DL_Base::Element Element; + + unsigned int MaxPlaintextLength(unsigned int cipherTextLength) const + { + unsigned int minLen = GetAbstractGroupParameters().GetEncodedElementSize(true); + return cipherTextLength < minLen ? 0 : GetSymmetricEncryptionAlgorithm().GetMaxSymmetricPlaintextLength(cipherTextLength - minLen); + } + + unsigned int CiphertextLength(unsigned int plainTextLength) const + { + unsigned int len = GetSymmetricEncryptionAlgorithm().GetSymmetricCiphertextLength(plainTextLength); + return len == 0 ? 0 : GetAbstractGroupParameters().GetEncodedElementSize(true) + len; + } + +protected: + virtual const DL_KeyAgreementAlgorithm & GetKeyAgreementAlgorithm() const =0; + virtual const DL_KeyDerivationAlgorithm & GetKeyDerivationAlgorithm() const =0; + virtual const DL_SymmetricEncryptionAlgorithm & GetSymmetricEncryptionAlgorithm() const =0; +}; + +//! . +template +class DL_DecryptorBase : public DL_CryptoSystemBase > +{ +public: + typedef T Element; + + DecodingResult Decrypt(RandomNumberGenerator &rng, const byte *cipherText, unsigned int cipherTextLength, byte *plainText) const + { + try + { + const DL_KeyAgreementAlgorithm &agreeAlg = GetKeyAgreementAlgorithm(); + const DL_KeyDerivationAlgorithm &derivAlg = GetKeyDerivationAlgorithm(); + const DL_SymmetricEncryptionAlgorithm &encAlg = GetSymmetricEncryptionAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + const DL_PrivateKey &key = GetKeyInterface(); + + Element q = params.DecodeElement(cipherText, true); + unsigned int elementSize = params.GetEncodedElementSize(true); + cipherText += elementSize; + cipherTextLength -= elementSize; + + Element z = agreeAlg.AgreeWithStaticPrivateKey(params, q, true, key.GetPrivateExponent()); + + SecByteBlock derivedKey(encAlg.GetSymmetricKeyLength(encAlg.GetMaxSymmetricPlaintextLength(cipherTextLength))); + derivAlg.Derive(params, derivedKey, derivedKey.size(), z, q); + + return encAlg.SymmetricDecrypt(derivedKey, cipherText, cipherTextLength, plainText); + } + catch (DL_BadElement &) + { + return DecodingResult(); + } + } +}; + +//! . +template +class DL_EncryptorBase : public DL_CryptoSystemBase > +{ +public: + typedef T Element; + + void Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText) const + { + const DL_KeyAgreementAlgorithm &agreeAlg = GetKeyAgreementAlgorithm(); + const DL_KeyDerivationAlgorithm &derivAlg = GetKeyDerivationAlgorithm(); + const DL_SymmetricEncryptionAlgorithm &encAlg = GetSymmetricEncryptionAlgorithm(); + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + const DL_PublicKey &key = GetKeyInterface(); + + Integer x(rng, Integer::One(), params.GetMaxExponent()); + Element q = params.ExponentiateBase(x); + params.EncodeElement(true, q, cipherText); + unsigned int elementSize = params.GetEncodedElementSize(true); + cipherText += elementSize; + + Element z = agreeAlg.AgreeWithEphemeralPrivateKey(params, key.GetPublicPrecomputation(), x); + + SecByteBlock derivedKey(encAlg.GetSymmetricKeyLength(plainTextLength)); + derivAlg.Derive(params, derivedKey, derivedKey.size(), z, q); + + encAlg.SymmetricEncrypt(rng, derivedKey, plainText, plainTextLength, cipherText); + } +}; + +//! . +template +struct DL_SchemeOptionsBase +{ + typedef T1 AlgorithmInfo; + typedef T2 GroupParameters; + typedef typename GroupParameters::Element Element; +}; + +//! . +template +struct DL_KeyedSchemeOptions : public DL_SchemeOptionsBase +{ + typedef T2 Keys; + typedef typename Keys::PrivateKey PrivateKey; + typedef typename Keys::PublicKey PublicKey; +}; + +//! . +template +struct DL_SignatureSchemeOptions : public DL_KeyedSchemeOptions +{ + typedef T3 SignatureAlgorithm; + typedef T4 MessageEncodingMethod; + typedef T5 HashFunction; +}; + +//! . +template +struct DL_CryptoSchemeOptions : public DL_KeyedSchemeOptions +{ + typedef T3 KeyAgreementAlgorithm; + typedef T4 KeyDerivationAlgorithm; + typedef T5 SymmetricEncryptionAlgorithm; +}; + +//! . +template +class DL_ObjectImplBase : public AlgorithmImpl +{ +public: + typedef SCHEME_OPTIONS SchemeOptions; + typedef KEY KeyClass; + typedef typename KeyClass::Element Element; + + PrivateKey & AccessPrivateKey() {return m_key;} + PublicKey & AccessPublicKey() {return m_key;} + + // KeyAccessor + const KeyClass & GetKey() const {return m_key;} + KeyClass & AccessKey() {return m_key;} + +protected: + typename BASE::KeyInterface & AccessKeyInterface() {return m_key;} + const typename BASE::KeyInterface & GetKeyInterface() const {return m_key;} + + // for signature scheme + HashIdentifier GetHashIdentifier() const + { + typedef CPP_TYPENAME SchemeOptions::MessageEncodingMethod::HashIdentifierLookup::HashIdentifierLookup2 L; + return L::Lookup(); + } + unsigned int GetDigestSize() const + { + typedef CPP_TYPENAME SchemeOptions::HashFunction H; + return H::DIGESTSIZE; + } + +private: + KeyClass m_key; +}; + +//! . +template +class DL_ObjectImpl : public DL_ObjectImplBase +{ +public: + typedef typename KEY::Element Element; + +protected: + const DL_ElgamalLikeSignatureAlgorithm & GetSignatureAlgorithm() const + {static typename SCHEME_OPTIONS::SignatureAlgorithm a; return a;} + const DL_KeyAgreementAlgorithm & GetKeyAgreementAlgorithm() const + {static typename SCHEME_OPTIONS::KeyAgreementAlgorithm a; return a;} + const DL_KeyDerivationAlgorithm & GetKeyDerivationAlgorithm() const + {static typename SCHEME_OPTIONS::KeyDerivationAlgorithm a; return a;} + const DL_SymmetricEncryptionAlgorithm & GetSymmetricEncryptionAlgorithm() const + {static typename SCHEME_OPTIONS::SymmetricEncryptionAlgorithm a; return a;} + HashIdentifier GetHashIdentifier() const + {return HashIdentifier();} + const PK_SignatureMessageEncodingMethod & GetMessageEncodingInterface() const + {static typename SCHEME_OPTIONS::MessageEncodingMethod a; return a;} +}; + +//! . +template +class DL_PublicObjectImpl : public DL_ObjectImpl, public PublicKeyCopier +{ +public: + void CopyKeyInto(typename SCHEME_OPTIONS::PublicKey &key) const + {key = GetKey();} +}; + +//! . +template +class DL_PrivateObjectImpl : public DL_ObjectImpl, public PrivateKeyCopier +{ +public: + void CopyKeyInto(typename SCHEME_OPTIONS::PublicKey &key) const + {GetKey().MakePublicKey(key);} + void CopyKeyInto(typename SCHEME_OPTIONS::PrivateKey &key) const + {key = GetKey();} +}; + +//! . +template +class DL_SignerImpl : public DL_PrivateObjectImpl, SCHEME_OPTIONS> +{ + PK_MessageAccumulator * NewSignatureAccumulator(RandomNumberGenerator &rng = NullRNG()) const + { + std::auto_ptr p(new PK_MessageAccumulatorImpl); + RestartMessageAccumulator(rng, *p); + return p.release(); + } +}; + +//! . +template +class DL_VerifierImpl : public DL_PublicObjectImpl, SCHEME_OPTIONS> +{ + PK_MessageAccumulator * NewVerificationAccumulator() const + { + return new PK_MessageAccumulatorImpl; + } +}; + +//! . +template +class DL_EncryptorImpl : public DL_PublicObjectImpl, SCHEME_OPTIONS> +{ +}; + +//! . +template +class DL_DecryptorImpl : public DL_PrivateObjectImpl, SCHEME_OPTIONS> +{ +}; + +// ******************************************************** + +//! . +template +class DL_SimpleKeyAgreementDomainBase : public SimpleKeyAgreementDomain +{ +public: + typedef T Element; + + CryptoParameters & AccessCryptoParameters() {return AccessAbstractGroupParameters();} + unsigned int AgreedValueLength() const {return GetAbstractGroupParameters().GetEncodedElementSize(false);} + unsigned int PrivateKeyLength() const {return GetAbstractGroupParameters().GetSubgroupOrder().ByteCount();} + unsigned int PublicKeyLength() const {return GetAbstractGroupParameters().GetEncodedElementSize(true);} + + void GeneratePrivateKey(RandomNumberGenerator &rng, byte *privateKey) const + { + Integer x(rng, Integer::One(), GetAbstractGroupParameters().GetMaxExponent()); + x.Encode(privateKey, PrivateKeyLength()); + } + + void GeneratePublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const + { + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + Integer x(privateKey, PrivateKeyLength()); + Element y = params.ExponentiateBase(x); + params.EncodeElement(true, y, publicKey); + } + + bool Agree(byte *agreedValue, const byte *privateKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const + { + try + { + const DL_GroupParameters ¶ms = GetAbstractGroupParameters(); + Integer x(privateKey, PrivateKeyLength()); + Element w = params.DecodeElement(otherPublicKey, validateOtherPublicKey); + + Element z = GetKeyAgreementAlgorithm().AgreeWithStaticPrivateKey( + GetAbstractGroupParameters(), w, validateOtherPublicKey, x); + params.EncodeElement(false, z, agreedValue); + } + catch (DL_BadElement &) + { + return false; + } + return true; + } + + const Element &GetGenerator() const {return GetAbstractGroupParameters().GetSubgroupGenerator();} + +protected: + virtual const DL_KeyAgreementAlgorithm & GetKeyAgreementAlgorithm() const =0; + virtual DL_GroupParameters & AccessAbstractGroupParameters() =0; + const DL_GroupParameters & GetAbstractGroupParameters() const {return const_cast *>(this)->AccessAbstractGroupParameters();} +}; + +enum CofactorMultiplicationOption {NO_COFACTOR_MULTIPLICTION, COMPATIBLE_COFACTOR_MULTIPLICTION, INCOMPATIBLE_COFACTOR_MULTIPLICTION}; +typedef EnumToType NoCofactorMultiplication; +typedef EnumToType CompatibleCofactorMultiplication; +typedef EnumToType IncompatibleCofactorMultiplication; + +//! DH key agreement algorithm +template +class DL_KeyAgreementAlgorithm_DH : public DL_KeyAgreementAlgorithm +{ +public: + typedef ELEMENT Element; + + static const char *StaticAlgorithmName() + {return COFACTOR_OPTION::ToEnum() == NO_COFACTOR_MULTIPLICTION ? "DH" : "DHC";} + + Element AgreeWithEphemeralPrivateKey(const DL_GroupParameters ¶ms, const DL_FixedBasePrecomputation &publicPrecomputation, const Integer &privateExponent) const + { + return publicPrecomputation.Exponentiate(params.GetGroupPrecomputation(), + COFACTOR_OPTION::ToEnum() == INCOMPATIBLE_COFACTOR_MULTIPLICTION ? privateExponent*params.GetCofactor() : privateExponent); + } + + Element AgreeWithStaticPrivateKey(const DL_GroupParameters ¶ms, const Element &publicElement, bool validateOtherPublicKey, const Integer &privateExponent) const + { + if (COFACTOR_OPTION::ToEnum() == COMPATIBLE_COFACTOR_MULTIPLICTION) + { + const Integer &k = params.GetCofactor(); + return params.ExponentiateElement(publicElement, + ModularArithmetic(params.GetSubgroupOrder()).Divide(privateExponent, k)*k); + } + else if (COFACTOR_OPTION::ToEnum() == INCOMPATIBLE_COFACTOR_MULTIPLICTION) + return params.ExponentiateElement(publicElement, privateExponent*params.GetCofactor()); + else + { + assert(COFACTOR_OPTION::ToEnum() == NO_COFACTOR_MULTIPLICTION); + + if (!validateOtherPublicKey) + return params.ExponentiateElement(publicElement, privateExponent); + + if (params.FastSubgroupCheckAvailable()) + { + if (!params.ValidateElement(2, publicElement, NULL)) + throw DL_BadElement(); + return params.ExponentiateElement(publicElement, privateExponent); + } + else + { + const Integer e[2] = {params.GetSubgroupOrder(), privateExponent}; + Element r[2]; + params.SimultaneousExponentiate(r, publicElement, e, 2); + if (!params.IsIdentity(r[0])) + throw DL_BadElement(); + return r[1]; + } + } + } +}; + +// ******************************************************** + +//! A template implementing constructors for public key algorithm classes +template +class PK_FinalTemplate : public BASE +{ +public: + PK_FinalTemplate() {} + + PK_FinalTemplate(const Integer &v1) + {AccessKey().Initialize(v1);} + + PK_FinalTemplate(const typename BASE::KeyClass &key) {AccessKey().operator=(key);} + + template + PK_FinalTemplate(const PublicKeyCopier &key) + {key.CopyKeyInto(AccessKey());} + + template + PK_FinalTemplate(const PrivateKeyCopier &key) + {key.CopyKeyInto(AccessKey());} + + PK_FinalTemplate(BufferedTransformation &bt) {AccessKey().BERDecode(bt);} + +#if (defined(_MSC_VER) && _MSC_VER < 1300) + + template + PK_FinalTemplate(T1 &v1, T2 &v2) + {AccessKey().Initialize(v1, v2);} + + template + PK_FinalTemplate(T1 &v1, T2 &v2, T3 &v3) + {AccessKey().Initialize(v1, v2, v3);} + + template + PK_FinalTemplate(T1 &v1, T2 &v2, T3 &v3, T4 &v4) + {AccessKey().Initialize(v1, v2, v3, v4);} + + template + PK_FinalTemplate(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5) + {AccessKey().Initialize(v1, v2, v3, v4, v5);} + + template + PK_FinalTemplate(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6);} + + template + PK_FinalTemplate(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6, v7);} + + template + PK_FinalTemplate(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6, v7, v8);} + +#else + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2) + {AccessKey().Initialize(v1, v2);} + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2, const T3 &v3) + {AccessKey().Initialize(v1, v2, v3);} + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4) + {AccessKey().Initialize(v1, v2, v3, v4);} + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5) + {AccessKey().Initialize(v1, v2, v3, v4, v5);} + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6);} + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6, v7);} + + template + PK_FinalTemplate(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, const T8 &v8) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6, v7, v8);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2) + {AccessKey().Initialize(v1, v2);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2, const T3 &v3) + {AccessKey().Initialize(v1, v2, v3);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4) + {AccessKey().Initialize(v1, v2, v3, v4);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5) + {AccessKey().Initialize(v1, v2, v3, v4, v5);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6, v7);} + + template + PK_FinalTemplate(T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5, const T6 &v6, const T7 &v7, const T8 &v8) + {AccessKey().Initialize(v1, v2, v3, v4, v5, v6, v7, v8);} + +#endif +}; + +//! Base class for public key encryption standard classes. These classes are used to select from variants of algorithms. Note that not all standards apply to all algorithms. +struct EncryptionStandard {}; + +//! Base class for public key signature standard classes. These classes are used to select from variants of algorithms. Note that not all standards apply to all algorithms. +struct SignatureStandard {}; + +template +class TF_ES; + +//! Trapdoor Function Based Encryption Scheme +template > +class TF_ES : public KEYS +{ + typedef typename STANDARD::EncryptionMessageEncodingMethod MessageEncodingMethod; + +public: + //! see EncryptionStandard for a list of standards + typedef STANDARD Standard; + typedef TF_CryptoSchemeOptions SchemeOptions; + + static std::string StaticAlgorithmName() {return KEYS::StaticAlgorithmName() + "/" + MessageEncodingMethod::StaticAlgorithmName();} + + //! implements PK_Decryptor interface + typedef PK_FinalTemplate > Decryptor; + //! implements PK_Encryptor interface + typedef PK_FinalTemplate > Encryptor; +}; + +template // VC60 workaround: doesn't work if KEYS is first parameter +class TF_SS; + +//! Trapdoor Function Based Signature Scheme +template > // VC60 workaround: doesn't work if KEYS is first parameter +class TF_SS : public KEYS +{ +public: + //! see SignatureStandard for a list of standards + typedef STANDARD Standard; + typedef typename Standard::SignatureMessageEncodingMethod MessageEncodingMethod; + typedef TF_SignatureSchemeOptions SchemeOptions; + + static std::string StaticAlgorithmName() {return KEYS::StaticAlgorithmName() + "/" + MessageEncodingMethod::StaticAlgorithmName() + "(" + H::StaticAlgorithmName() + ")";} + + //! implements PK_Signer interface + typedef PK_FinalTemplate > Signer; + //! implements PK_Verifier interface + typedef PK_FinalTemplate > Verifier; +}; + +template +class DL_SS; + +//! Discrete Log Based Signature Scheme +template > +class DL_SS : public KEYS +{ + typedef DL_SignatureSchemeOptions SchemeOptions; + +public: + static std::string StaticAlgorithmName() {return SA::StaticAlgorithmName() + std::string("/EMSA1(") + H::StaticAlgorithmName() + ")";} + + //! implements PK_Signer interface + typedef PK_FinalTemplate > Signer; + //! implements PK_Verifier interface + typedef PK_FinalTemplate > Verifier; +}; + +//! Discrete Log Based Encryption Scheme +template +class DL_ES : public KEYS +{ + typedef DL_CryptoSchemeOptions SchemeOptions; + +public: + //! implements PK_Decryptor interface + typedef PK_FinalTemplate > Decryptor; + //! implements PK_Encryptor interface + typedef PK_FinalTemplate > Encryptor; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/queue.cpp b/stepmania/src/crypto51/queue.cpp new file mode 100644 index 0000000000..a01e213845 --- /dev/null +++ b/stepmania/src/crypto51/queue.cpp @@ -0,0 +1,518 @@ +// queue.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "queue.h" +#include "filters.h" + +NAMESPACE_BEGIN(CryptoPP) + +// this class for use by ByteQueue only +class ByteQueueNode +{ +public: + ByteQueueNode(unsigned int maxSize) + : buf(maxSize) + { + m_head = m_tail = 0; + next = 0; + } + + inline unsigned int MaxSize() const {return buf.size();} + + inline unsigned int CurrentSize() const + { + return m_tail-m_head; + } + + inline bool UsedUp() const + { + return (m_head==MaxSize()); + } + + inline void Clear() + { + m_head = m_tail = 0; + } + +/* inline unsigned int Put(byte inByte) + { + if (MaxSize()==m_tail) + return 0; + + buf[m_tail++]=inByte; + return 1; + } +*/ + inline unsigned int Put(const byte *begin, unsigned int length) + { + unsigned int l = STDMIN(length, MaxSize()-m_tail); + memcpy(buf+m_tail, begin, l); + m_tail += l; + return l; + } + + inline unsigned int Peek(byte &outByte) const + { + if (m_tail==m_head) + return 0; + + outByte=buf[m_head]; + return 1; + } + + inline unsigned int Peek(byte *target, unsigned int copyMax) const + { + unsigned int len = STDMIN(copyMax, m_tail-m_head); + memcpy(target, buf+m_head, len); + return len; + } + + inline unsigned int CopyTo(BufferedTransformation &target, const std::string &channel=BufferedTransformation::NULL_CHANNEL) const + { + unsigned int len = m_tail-m_head; + target.ChannelPut(channel, buf+m_head, len); + return len; + } + + inline unsigned int CopyTo(BufferedTransformation &target, unsigned int copyMax, const std::string &channel=BufferedTransformation::NULL_CHANNEL) const + { + unsigned int len = STDMIN(copyMax, m_tail-m_head); + target.ChannelPut(channel, buf+m_head, len); + return len; + } + + inline unsigned int Get(byte &outByte) + { + unsigned int len = Peek(outByte); + m_head += len; + return len; + } + + inline unsigned int Get(byte *outString, unsigned int getMax) + { + unsigned int len = Peek(outString, getMax); + m_head += len; + return len; + } + + inline unsigned int TransferTo(BufferedTransformation &target, const std::string &channel=BufferedTransformation::NULL_CHANNEL) + { + unsigned int len = m_tail-m_head; + target.ChannelPutModifiable(channel, buf+m_head, len); + m_head = m_tail; + return len; + } + + inline unsigned int TransferTo(BufferedTransformation &target, unsigned int transferMax, const std::string &channel=BufferedTransformation::NULL_CHANNEL) + { + unsigned int len = STDMIN(transferMax, m_tail-m_head); + target.ChannelPutModifiable(channel, buf+m_head, len); + m_head += len; + return len; + } + + inline unsigned int Skip(unsigned int skipMax) + { + unsigned int len = STDMIN(skipMax, m_tail-m_head); + m_head += len; + return len; + } + + inline byte operator[](unsigned int i) const + { + return buf[m_head+i]; + } + + ByteQueueNode *next; + + SecByteBlock buf; + unsigned int m_head, m_tail; +}; + +// ******************************************************** + +ByteQueue::ByteQueue(unsigned int m_nodeSize) + : m_nodeSize(m_nodeSize), m_lazyLength(0) +{ + m_head = m_tail = new ByteQueueNode(m_nodeSize); +} + +ByteQueue::ByteQueue(const ByteQueue ©) +{ + CopyFrom(copy); +} + +void ByteQueue::CopyFrom(const ByteQueue ©) +{ + m_lazyLength = 0; + m_nodeSize = copy.m_nodeSize; + m_head = m_tail = new ByteQueueNode(*copy.m_head); + + for (ByteQueueNode *current=copy.m_head->next; current; current=current->next) + { + m_tail->next = new ByteQueueNode(*current); + m_tail = m_tail->next; + } + + m_tail->next = NULL; + + Put(copy.m_lazyString, copy.m_lazyLength); +} + +ByteQueue::~ByteQueue() +{ + Destroy(); +} + +void ByteQueue::Destroy() +{ + ByteQueueNode *next; + + for (ByteQueueNode *current=m_head; current; current=next) + { + next=current->next; + delete current; + } +} + +void ByteQueue::IsolatedInitialize(const NameValuePairs ¶meters) +{ + m_nodeSize = parameters.GetIntValueWithDefault("NodeSize", 256); + Clear(); +} + +unsigned long ByteQueue::CurrentSize() const +{ + unsigned long size=0; + + for (ByteQueueNode *current=m_head; current; current=current->next) + size += current->CurrentSize(); + + return size + m_lazyLength; +} + +bool ByteQueue::IsEmpty() const +{ + return m_head==m_tail && m_head->CurrentSize()==0 && m_lazyLength==0; +} + +void ByteQueue::Clear() +{ + Destroy(); + m_head = m_tail = new ByteQueueNode(m_nodeSize); + m_lazyLength = 0; +} + +unsigned int ByteQueue::Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) +{ + if (m_lazyLength > 0) + FinalizeLazyPut(); + + unsigned int len; + while ((len=m_tail->Put(inString, length)) < length) + { + m_tail->next = new ByteQueueNode(m_nodeSize); + m_tail = m_tail->next; + inString += len; + length -= len; + } + + return 0; +} + +void ByteQueue::CleanupUsedNodes() +{ + while (m_head != m_tail && m_head->UsedUp()) + { + ByteQueueNode *temp=m_head; + m_head=m_head->next; + delete temp; + } + + if (m_head->CurrentSize() == 0) + m_head->Clear(); +} + +void ByteQueue::LazyPut(const byte *inString, unsigned int size) +{ + if (m_lazyLength > 0) + FinalizeLazyPut(); + m_lazyString = inString; + m_lazyLength = size; +} + +void ByteQueue::UndoLazyPut(unsigned int size) +{ + if (m_lazyLength < size) + throw InvalidArgument("ByteQueue: size specified for UndoLazyPut is too large"); + + m_lazyLength -= size; +} + +void ByteQueue::FinalizeLazyPut() +{ + unsigned int len = m_lazyLength; + m_lazyLength = 0; + if (len) + Put(m_lazyString, len); +} + +unsigned int ByteQueue::Get(byte &outByte) +{ + if (m_head->Get(outByte)) + { + if (m_head->UsedUp()) + CleanupUsedNodes(); + return 1; + } + else if (m_lazyLength > 0) + { + outByte = *m_lazyString++; + m_lazyLength--; + return 1; + } + else + return 0; +} + +unsigned int ByteQueue::Get(byte *outString, unsigned int getMax) +{ + ArraySink sink(outString, getMax); + return TransferTo(sink, getMax); +} + +unsigned int ByteQueue::Peek(byte &outByte) const +{ + if (m_head->Peek(outByte)) + return 1; + else if (m_lazyLength > 0) + { + outByte = *m_lazyString; + return 1; + } + else + return 0; +} + +unsigned int ByteQueue::Peek(byte *outString, unsigned int peekMax) const +{ + ArraySink sink(outString, peekMax); + return CopyTo(sink, peekMax); +} + +unsigned int ByteQueue::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + if (blocking) + { + unsigned long bytesLeft = transferBytes; + for (ByteQueueNode *current=m_head; bytesLeft && current; current=current->next) + bytesLeft -= current->TransferTo(target, bytesLeft, channel); + CleanupUsedNodes(); + + unsigned int len = (unsigned int)STDMIN(bytesLeft, (unsigned long)m_lazyLength); + if (len) + { + target.ChannelPut(channel, m_lazyString, len); + m_lazyString += len; + m_lazyLength -= len; + bytesLeft -= len; + } + transferBytes -= bytesLeft; + return 0; + } + else + { + Walker walker(*this); + unsigned int blockedBytes = walker.TransferTo2(target, transferBytes, channel, blocking); + Skip(transferBytes); + return blockedBytes; + } +} + +unsigned int ByteQueue::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + Walker walker(*this); + walker.Skip(begin); + unsigned long transferBytes = end-begin; + unsigned int blockedBytes = walker.TransferTo2(target, transferBytes, channel, blocking); + begin += transferBytes; + return blockedBytes; +} + +void ByteQueue::Unget(byte inByte) +{ + Unget(&inByte, 1); +} + +void ByteQueue::Unget(const byte *inString, unsigned int length) +{ + // TODO: make this more efficient + ByteQueueNode *newHead = new ByteQueueNode(length); + newHead->next = m_head; + m_head = newHead; + m_head->Put(inString, length); +} + +const byte * ByteQueue::Spy(unsigned int &contiguousSize) const +{ + contiguousSize = m_head->m_tail - m_head->m_head; + if (contiguousSize == 0 && m_lazyLength > 0) + { + contiguousSize = m_lazyLength; + return m_lazyString; + } + else + return m_head->buf + m_head->m_head; +} + +byte * ByteQueue::CreatePutSpace(unsigned int &size) +{ + if (m_lazyLength > 0) + FinalizeLazyPut(); + + if (m_tail->m_tail == m_tail->MaxSize()) + { + m_tail->next = new ByteQueueNode(size < m_nodeSize ? m_nodeSize : STDMAX(m_nodeSize, 1024U)); + m_tail = m_tail->next; + } + + size = m_tail->MaxSize() - m_tail->m_tail; + return m_tail->buf + m_tail->m_tail; +} + +ByteQueue & ByteQueue::operator=(const ByteQueue &rhs) +{ + Destroy(); + CopyFrom(rhs); + return *this; +} + +bool ByteQueue::operator==(const ByteQueue &rhs) const +{ + const unsigned long currentSize = CurrentSize(); + + if (currentSize != rhs.CurrentSize()) + return false; + + Walker walker1(*this), walker2(rhs); + byte b1, b2; + + while (walker1.Get(b1) && walker2.Get(b2)) + if (b1 != b2) + return false; + + return true; +} + +byte ByteQueue::operator[](unsigned long i) const +{ + for (ByteQueueNode *current=m_head; current; current=current->next) + { + if (i < current->CurrentSize()) + return (*current)[i]; + + i -= current->CurrentSize(); + } + + assert(i < m_lazyLength); + return m_lazyString[i]; +} + +void ByteQueue::swap(ByteQueue &rhs) +{ + std::swap(m_nodeSize, rhs.m_nodeSize); + std::swap(m_head, rhs.m_head); + std::swap(m_tail, rhs.m_tail); + std::swap(m_lazyString, rhs.m_lazyString); + std::swap(m_lazyLength, rhs.m_lazyLength); +} + +// ******************************************************** + +void ByteQueue::Walker::IsolatedInitialize(const NameValuePairs ¶meters) +{ + m_node = m_queue.m_head; + m_position = 0; + m_offset = 0; + m_lazyString = m_queue.m_lazyString; + m_lazyLength = m_queue.m_lazyLength; +} + +unsigned int ByteQueue::Walker::Get(byte &outByte) +{ + ArraySink sink(&outByte, 1); + return TransferTo(sink, 1); +} + +unsigned int ByteQueue::Walker::Get(byte *outString, unsigned int getMax) +{ + ArraySink sink(outString, getMax); + return TransferTo(sink, getMax); +} + +unsigned int ByteQueue::Walker::Peek(byte &outByte) const +{ + ArraySink sink(&outByte, 1); + return CopyTo(sink, 1); +} + +unsigned int ByteQueue::Walker::Peek(byte *outString, unsigned int peekMax) const +{ + ArraySink sink(outString, peekMax); + return CopyTo(sink, peekMax); +} + +unsigned int ByteQueue::Walker::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + unsigned long bytesLeft = transferBytes; + unsigned int blockedBytes = 0; + + while (m_node) + { + unsigned int len = STDMIN(bytesLeft, (unsigned long)m_node->CurrentSize()-m_offset); + blockedBytes = target.ChannelPut2(channel, m_node->buf+m_node->m_head+m_offset, len, 0, blocking); + + if (blockedBytes) + goto done; + + m_position += len; + bytesLeft -= len; + + if (!bytesLeft) + { + m_offset += len; + goto done; + } + + m_node = m_node->next; + m_offset = 0; + } + + if (bytesLeft && m_lazyLength) + { + unsigned int len = (unsigned int)STDMIN(bytesLeft, (unsigned long)m_lazyLength); + unsigned int blockedBytes = target.ChannelPut2(channel, m_lazyString, len, 0, blocking); + if (blockedBytes) + goto done; + + m_lazyString += len; + m_lazyLength -= len; + bytesLeft -= len; + } + +done: + transferBytes -= bytesLeft; + return blockedBytes; +} + +unsigned int ByteQueue::Walker::CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end, const std::string &channel, bool blocking) const +{ + Walker walker(*this); + walker.Skip(begin); + unsigned long transferBytes = end-begin; + unsigned int blockedBytes = walker.TransferTo2(target, transferBytes, channel, blocking); + begin += transferBytes; + return blockedBytes; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/queue.h b/stepmania/src/crypto51/queue.h new file mode 100644 index 0000000000..e247d9f690 --- /dev/null +++ b/stepmania/src/crypto51/queue.h @@ -0,0 +1,128 @@ +// specification file for an unlimited queue for storing bytes + +#ifndef CRYPTOPP_QUEUE_H +#define CRYPTOPP_QUEUE_H + +#include "simple.h" +//#include + +NAMESPACE_BEGIN(CryptoPP) + +/** The queue is implemented as a linked list of byte arrays, but you don't need to + know about that. So just ignore this next line. :) */ +class ByteQueueNode; + +//! Byte Queue +class ByteQueue : public Bufferless +{ +public: + ByteQueue(unsigned int m_nodeSize=256); + ByteQueue(const ByteQueue ©); + ~ByteQueue(); + + unsigned long MaxRetrievable() const + {return CurrentSize();} + bool AnyRetrievable() const + {return !IsEmpty();} + + void IsolatedInitialize(const NameValuePairs ¶meters); + byte * CreatePutSpace(unsigned int &size); + unsigned int Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking); + + unsigned int Get(byte &outByte); + unsigned int Get(byte *outString, unsigned int getMax); + + unsigned int Peek(byte &outByte) const; + unsigned int Peek(byte *outString, unsigned int peekMax) const; + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + + // these member functions are not inherited + void SetNodeSize(unsigned int nodeSize) {m_nodeSize = nodeSize;} + + unsigned long CurrentSize() const; + bool IsEmpty() const; + + void Clear(); + + void Unget(byte inByte); + void Unget(const byte *inString, unsigned int length); + + const byte * Spy(unsigned int &contiguousSize) const; + + void LazyPut(const byte *inString, unsigned int size); + void UndoLazyPut(unsigned int size); + void FinalizeLazyPut(); + + ByteQueue & operator=(const ByteQueue &rhs); + bool operator==(const ByteQueue &rhs) const; + byte operator[](unsigned long i) const; + void swap(ByteQueue &rhs); + + class Walker : public InputRejecting + { + public: + Walker(const ByteQueue &queue) + : m_queue(queue) {Initialize();} + + unsigned long GetCurrentPosition() {return m_position;} + + unsigned long MaxRetrievable() const + {return m_queue.CurrentSize() - m_position;} + + void IsolatedInitialize(const NameValuePairs ¶meters); + + unsigned int Get(byte &outByte); + unsigned int Get(byte *outString, unsigned int getMax); + + unsigned int Peek(byte &outByte) const; + unsigned int Peek(byte *outString, unsigned int peekMax) const; + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; + + private: + const ByteQueue &m_queue; + const ByteQueueNode *m_node; + unsigned long m_position; + unsigned int m_offset; + const byte *m_lazyString; + unsigned int m_lazyLength; + }; + + friend class Walker; + +private: + void CleanupUsedNodes(); + void CopyFrom(const ByteQueue ©); + void Destroy(); + + unsigned int m_nodeSize; + ByteQueueNode *m_head, *m_tail; + const byte *m_lazyString; + unsigned int m_lazyLength; +}; + +//! use this to make sure LazyPut is finalized in event of exception +class LazyPutter +{ +public: + LazyPutter(ByteQueue &bq, const byte *inString, unsigned int size) + : m_bq(bq) {bq.LazyPut(inString, size);} + ~LazyPutter() + {try {m_bq.FinalizeLazyPut();} catch(...) {}} +private: + ByteQueue &m_bq; +}; + +NAMESPACE_END + +NAMESPACE_BEGIN(std) +template<> inline void swap(CryptoPP::ByteQueue &a, CryptoPP::ByteQueue &b) +{ + a.swap(b); +} +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/randpool.cpp b/stepmania/src/crypto51/randpool.cpp new file mode 100644 index 0000000000..9fa0b4beec --- /dev/null +++ b/stepmania/src/crypto51/randpool.cpp @@ -0,0 +1,100 @@ +// randpool.cpp - written and placed in the public domain by Wei Dai +// The algorithm in this module comes from PGP's randpool.c + +#include "pch.h" +#include "randpool.h" +#include "mdc.h" +#include "sha.h" +#include "modes.h" + +NAMESPACE_BEGIN(CryptoPP) + +typedef MDC RandomPoolCipher; + +RandomPool::RandomPool(unsigned int poolSize) + : pool(poolSize), key(RandomPoolCipher::DEFAULT_KEYLENGTH) +{ + assert(poolSize > key.size()); + + addPos=0; + getPos=poolSize; + memset(pool, 0, poolSize); + memset(key, 0, key.size()); +} + +void RandomPool::Stir() +{ + CFB_Mode::Encryption cipher; + + for (int i=0; i<2; i++) + { + cipher.SetKeyWithIV(key, key.size(), pool.end()-cipher.IVSize()); + cipher.ProcessString(pool, pool.size()); + memcpy(key, pool, key.size()); + } + + addPos = 0; + getPos = key.size(); +} + +unsigned int RandomPool::Put2(const byte *inString, unsigned int length, int messageEnd, bool blocking) +{ + unsigned t; + + while (length > (t = pool.size() - addPos)) + { + xorbuf(pool+addPos, inString, t); + inString += t; + length -= t; + Stir(); + } + + if (length) + { + xorbuf(pool+addPos, inString, length); + addPos += length; + getPos = pool.size(); // Force stir on get + } + + return 0; +} + +unsigned int RandomPool::TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel, bool blocking) +{ + if (!blocking) + throw NotImplemented("RandomPool: nonblocking transfer is not implemented by this object"); + + unsigned int t; + unsigned long size = transferBytes; + + while (size > (t = pool.size() - getPos)) + { + target.ChannelPut(channel, pool+getPos, t); + size -= t; + Stir(); + } + + if (size) + { + target.ChannelPut(channel, pool+getPos, size); + getPos += size; + } + + return 0; +} + +byte RandomPool::GenerateByte() +{ + if (getPos == pool.size()) + Stir(); + + return pool[getPos++]; +} + +void RandomPool::GenerateBlock(byte *outString, unsigned int size) +{ + ArraySink sink(outString, size); + TransferTo(sink, size); +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/randpool.h b/stepmania/src/crypto51/randpool.h new file mode 100644 index 0000000000..6bbe32f788 --- /dev/null +++ b/stepmania/src/crypto51/randpool.h @@ -0,0 +1,46 @@ +#ifndef CRYPTOPP_RANDPOOL_H +#define CRYPTOPP_RANDPOOL_H + +#include "cryptlib.h" +#include "filters.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! Randomness Pool +/*! This class can be used to generate + pseudorandom bytes after seeding the pool with + the Put() methods */ +class RandomPool : public RandomNumberGenerator, + public Bufferless +{ +public: + //! poolSize must be greater than 16 + RandomPool(unsigned int poolSize=384); + + unsigned int Put2(const byte *begin, unsigned int, int messageEnd, bool blocking); + + bool AnyRetrievable() const {return true;} + unsigned long MaxRetrievable() const {return ULONG_MAX;} + + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true); + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const + { + throw NotImplemented("RandomPool: CopyRangeTo2() is not supported by this store"); + } + + byte GenerateByte(); + void GenerateBlock(byte *output, unsigned int size); + + void IsolatedInitialize(const NameValuePairs ¶meters) {} + +protected: + void Stir(); + +private: + SecByteBlock pool, key; + unsigned int addPos, getPos; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/rng.h b/stepmania/src/crypto51/rng.h new file mode 100644 index 0000000000..5b0998d4e7 --- /dev/null +++ b/stepmania/src/crypto51/rng.h @@ -0,0 +1,78 @@ +#ifndef CRYPTOPP_RNG_H +#define CRYPTOPP_RNG_H + +#include "cryptlib.h" +#include "filters.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! linear congruential generator +/*! originally by William S. England, do not use for cryptographic purposes */ +class LC_RNG : public RandomNumberGenerator +{ +public: + LC_RNG(word32 init_seed) + : seed(init_seed) {} + + byte GenerateByte(); + + word32 GetSeed() {return seed;} + +private: + word32 seed; + + static const word32 m; + static const word32 q; + static const word16 a; + static const word16 r; +}; + +//! RNG derived from ANSI X9.17 Appendix C + +class X917RNG : public RandomNumberGenerator +{ +public: + // cipher will be deleted by destructor, deterministicTimeVector = 0 means obtain time vector from system + X917RNG(BlockTransformation *cipher, const byte *seed, unsigned long deterministicTimeVector = 0); + + byte GenerateByte(); + +private: + member_ptr cipher; + const int S; // blocksize of cipher + SecByteBlock dtbuf; // buffer for enciphered timestamp + SecByteBlock randseed, randbuf; + int randbuf_counter; // # of unused bytes left in randbuf + unsigned long m_deterministicTimeVector; +}; + +/** This class implements Maurer's Universal Statistical Test for Random Bit Generators + it is intended for measuring the randomness of *PHYSICAL* RNGs. + For more details see his paper in Journal of Cryptology, 1992. */ + +class MaurerRandomnessTest : public Sink +{ +public: + MaurerRandomnessTest(); + + void Put(byte inByte); + void Put(const byte *inString, unsigned int length); + + // BytesNeeded() returns how many more bytes of input is needed by the test + // GetTestValue() should not be called before BytesNeeded()==0 + unsigned int BytesNeeded() const {return n >= (Q+K) ? 0 : Q+K-n;} + + // returns a number between 0.0 and 1.0, describing the quality of the + // random numbers entered + double GetTestValue() const; + +private: + enum {L=8, V=256, Q=2000, K=2000}; + double sum; + unsigned int n; + unsigned int tab[V]; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/rsa.cpp b/stepmania/src/crypto51/rsa.cpp new file mode 100644 index 0000000000..62e9592168 --- /dev/null +++ b/stepmania/src/crypto51/rsa.cpp @@ -0,0 +1,277 @@ +// rsa.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "rsa.h" +#include "asn.h" +#include "oids.h" +#include "modarith.h" +#include "nbtheory.h" +#include "sha.h" +#include "algparam.h" +#include "fips140.h" + +#ifndef NDEBUG +#include "pssr.h" +#endif + +#include "oaep.cpp" + +NAMESPACE_BEGIN(CryptoPP) + +#ifndef NDEBUG +void RSA_TestInstantiations() +{ + RSASS::Verifier x1(1, 1); + RSASS::Signer x2(NullRNG(), 1); + RSASS::Verifier x3(x2); + RSASS::Verifier x4(x2.GetKey()); + RSASS::Verifier x5(x3); +#ifndef __MWERKS__ + RSASS::Signer x6 = x2; + x3 = x2; + x6 = x2; +#endif + RSAES::Encryptor x7(x2); +#ifndef __GNUC__ + RSAES::Encryptor x8(x3); +#endif + RSAES >::Encryptor x9(x2); + + x4 = x2.GetKey(); +} +#endif + +template class OAEP; + +OID RSAFunction::GetAlgorithmID() const +{ + return ASN1::rsaEncryption(); +} + +void RSAFunction::BERDecodeKey(BufferedTransformation &bt) +{ + BERSequenceDecoder seq(bt); + m_n.BERDecode(seq); + m_e.BERDecode(seq); + seq.MessageEnd(); +} + +void RSAFunction::DEREncodeKey(BufferedTransformation &bt) const +{ + DERSequenceEncoder seq(bt); + m_n.DEREncode(seq); + m_e.DEREncode(seq); + seq.MessageEnd(); +} + +Integer RSAFunction::ApplyFunction(const Integer &x) const +{ + DoQuickSanityCheck(); + return a_exp_b_mod_c(x, m_e, m_n); +} + +bool RSAFunction::Validate(RandomNumberGenerator &rng, unsigned int level) const +{ + bool pass = true; + pass = pass && m_n > Integer::One() && m_n.IsOdd(); + pass = pass && m_e > Integer::One() && m_e.IsOdd() && m_e < m_n; + return pass; +} + +bool RSAFunction::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const +{ + return GetValueHelper(this, name, valueType, pValue).Assignable() + CRYPTOPP_GET_FUNCTION_ENTRY(Modulus) + CRYPTOPP_GET_FUNCTION_ENTRY(PublicExponent) + ; +} + +void RSAFunction::AssignFrom(const NameValuePairs &source) +{ + AssignFromHelper(this, source) + CRYPTOPP_SET_FUNCTION_ENTRY(Modulus) + CRYPTOPP_SET_FUNCTION_ENTRY(PublicExponent) + ; +} + +// ***************************************************************************** + +class RSAPrimeSelector : public PrimeSelector +{ +public: + RSAPrimeSelector(const Integer &e) : m_e(e) {} + bool IsAcceptable(const Integer &candidate) const {return RelativelyPrime(m_e, candidate-Integer::One());} + Integer m_e; +}; + +void InvertibleRSAFunction::GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs &alg) +{ + int modulusSize = 2048; + alg.GetIntValue("ModulusSize", modulusSize) || alg.GetIntValue("KeySize", modulusSize); + + if (modulusSize < 16) + throw InvalidArgument("InvertibleRSAFunction: specified modulus size is too small"); + + m_e = alg.GetValueWithDefault("PublicExponent", Integer(17)); + + if (m_e < 3 || m_e.IsEven()) + throw InvalidArgument("InvertibleRSAFunction: invalid public exponent"); + + RSAPrimeSelector selector(m_e); + const NameValuePairs &primeParam = MakeParametersForTwoPrimesOfEqualSize(modulusSize) + ("PointerToPrimeSelector", selector.GetSelectorPointer()); + m_p.GenerateRandom(rng, primeParam); + m_q.GenerateRandom(rng, primeParam); + + m_d = EuclideanMultiplicativeInverse(m_e, LCM(m_p-1, m_q-1)); + assert(m_d.IsPositive()); + + m_dp = m_d % (m_p-1); + m_dq = m_d % (m_q-1); + m_n = m_p * m_q; + m_u = m_q.InverseMod(m_p); + + if (FIPS_140_2_ComplianceEnabled()) + { + RSASS::Signer signer(*this); + RSASS::Verifier verifier(signer); + SignaturePairwiseConsistencyTest_FIPS_140_Only(signer, verifier); + + RSAES >::Decryptor decryptor(*this); + RSAES >::Encryptor encryptor(decryptor); + EncryptionPairwiseConsistencyTest_FIPS_140_Only(encryptor, decryptor); + } +} + +void InvertibleRSAFunction::Initialize(RandomNumberGenerator &rng, unsigned int keybits, const Integer &e) +{ + GenerateRandom(rng, MakeParameters("ModulusSize", (int)keybits)("PublicExponent", e+e.IsEven())); +} + +void InvertibleRSAFunction::Initialize(const Integer &n, const Integer &e, const Integer &d) +{ + m_n = n; + m_e = e; + m_d = d; + + Integer r = --(d*e); + while (r.IsEven()) + r >>= 1; + + ModularArithmetic modn(n); + for (Integer i = 2; ; ++i) + { + Integer a = modn.Exponentiate(i, r); + if (a == 1) + continue; + Integer b; + while (a != -1) + { + b = modn.Square(a); + if (b == 1) + { + m_p = GCD(a-1, n); + m_q = n/m_p; + m_dp = m_d % (m_p-1); + m_dq = m_d % (m_q-1); + m_u = m_q.InverseMod(m_p); + return; + } + a = b; + } + } +} + +void InvertibleRSAFunction::BERDecodeKey(BufferedTransformation &bt) +{ + BERSequenceDecoder privateKey(bt); + word32 version; + BERDecodeUnsigned(privateKey, version, INTEGER, 0, 0); // check version + m_n.BERDecode(privateKey); + m_e.BERDecode(privateKey); + m_d.BERDecode(privateKey); + m_p.BERDecode(privateKey); + m_q.BERDecode(privateKey); + m_dp.BERDecode(privateKey); + m_dq.BERDecode(privateKey); + m_u.BERDecode(privateKey); + privateKey.MessageEnd(); +} + +void InvertibleRSAFunction::DEREncodeKey(BufferedTransformation &bt) const +{ + DERSequenceEncoder privateKey(bt); + DEREncodeUnsigned(privateKey, 0); // version + m_n.DEREncode(privateKey); + m_e.DEREncode(privateKey); + m_d.DEREncode(privateKey); + m_p.DEREncode(privateKey); + m_q.DEREncode(privateKey); + m_dp.DEREncode(privateKey); + m_dq.DEREncode(privateKey); + m_u.DEREncode(privateKey); + privateKey.MessageEnd(); +} + +Integer InvertibleRSAFunction::CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const +{ + DoQuickSanityCheck(); + ModularArithmetic modn(m_n); + Integer r(rng, Integer::One(), m_n - Integer::One()); + Integer re = modn.Exponentiate(r, m_e); + re = modn.Multiply(re, x); // blind + // here we follow the notation of PKCS #1 and let u=q inverse mod p + // but in ModRoot, u=p inverse mod q, so we reverse the order of p and q + Integer y = ModularRoot(re, m_dq, m_dp, m_q, m_p, m_u); + y = modn.Divide(y, r); // unblind + if (modn.Exponentiate(y, m_e) != x) // check + throw Exception(Exception::OTHER_ERROR, "InvertibleRSAFunction: computational error during private key operation"); + return y; +} + +bool InvertibleRSAFunction::Validate(RandomNumberGenerator &rng, unsigned int level) const +{ + bool pass = RSAFunction::Validate(rng, level); + pass = pass && m_p > Integer::One() && m_p.IsOdd() && m_p < m_n; + pass = pass && m_q > Integer::One() && m_q.IsOdd() && m_q < m_n; + pass = pass && m_d > Integer::One() && m_d.IsOdd() && m_d < m_n; + pass = pass && m_dp > Integer::One() && m_dp.IsOdd() && m_dp < m_p; + pass = pass && m_dq > Integer::One() && m_dq.IsOdd() && m_dq < m_q; + pass = pass && m_u.IsPositive() && m_u < m_p; + if (level >= 1) + { + pass = pass && m_p * m_q == m_n; + pass = pass && m_e*m_d % LCM(m_p-1, m_q-1) == 1; + pass = pass && m_dp == m_d%(m_p-1) && m_dq == m_d%(m_q-1); + pass = pass && m_u * m_q % m_p == 1; + } + if (level >= 2) + pass = pass && VerifyPrime(rng, m_p, level-2) && VerifyPrime(rng, m_q, level-2); + return pass; +} + +bool InvertibleRSAFunction::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const +{ + return GetValueHelper(this, name, valueType, pValue).Assignable() + CRYPTOPP_GET_FUNCTION_ENTRY(Prime1) + CRYPTOPP_GET_FUNCTION_ENTRY(Prime2) + CRYPTOPP_GET_FUNCTION_ENTRY(PrivateExponent) + CRYPTOPP_GET_FUNCTION_ENTRY(ModPrime1PrivateExponent) + CRYPTOPP_GET_FUNCTION_ENTRY(ModPrime2PrivateExponent) + CRYPTOPP_GET_FUNCTION_ENTRY(MultiplicativeInverseOfPrime2ModPrime1) + ; +} + +void InvertibleRSAFunction::AssignFrom(const NameValuePairs &source) +{ + AssignFromHelper(this, source) + CRYPTOPP_SET_FUNCTION_ENTRY(Prime1) + CRYPTOPP_SET_FUNCTION_ENTRY(Prime2) + CRYPTOPP_SET_FUNCTION_ENTRY(PrivateExponent) + CRYPTOPP_SET_FUNCTION_ENTRY(ModPrime1PrivateExponent) + CRYPTOPP_SET_FUNCTION_ENTRY(ModPrime2PrivateExponent) + CRYPTOPP_SET_FUNCTION_ENTRY(MultiplicativeInverseOfPrime2ModPrime1) + ; +} + +NAMESPACE_END diff --git a/stepmania/src/crypto51/rsa.h b/stepmania/src/crypto51/rsa.h new file mode 100644 index 0000000000..7f82134088 --- /dev/null +++ b/stepmania/src/crypto51/rsa.h @@ -0,0 +1,143 @@ +#ifndef CRYPTOPP_RSA_H +#define CRYPTOPP_RSA_H + +/** \file + This file contains classes that implement the RSA + ciphers and signature schemes as defined in PKCS #1 v2.0. +*/ + +#include "pkcspad.h" +#include "oaep.h" +#include "integer.h" +#include "asn.h" + +NAMESPACE_BEGIN(CryptoPP) + +//! . +class RSAFunction : public TrapdoorFunction, public X509PublicKey +{ + typedef RSAFunction ThisClass; + +public: + void Initialize(const Integer &n, const Integer &e) + {m_n = n; m_e = e;} + + // X509PublicKey + OID GetAlgorithmID() const; + void BERDecodeKey(BufferedTransformation &bt); + void DEREncodeKey(BufferedTransformation &bt) const; + + // CryptoMaterial + bool Validate(RandomNumberGenerator &rng, unsigned int level) const; + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const; + void AssignFrom(const NameValuePairs &source); + + // TrapdoorFunction + Integer ApplyFunction(const Integer &x) const; + Integer PreimageBound() const {return m_n;} + Integer ImageBound() const {return m_n;} + + // non-derived + const Integer & GetModulus() const {return m_n;} + const Integer & GetPublicExponent() const {return m_e;} + + void SetModulus(const Integer &n) {m_n = n;} + void SetPublicExponent(const Integer &e) {m_e = e;} + +protected: + Integer m_n, m_e; +}; + +//! . +class InvertibleRSAFunction : public RSAFunction, public TrapdoorFunctionInverse, public PKCS8PrivateKey +{ + typedef InvertibleRSAFunction ThisClass; + +public: + void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &e = 17); + void Initialize(const Integer &n, const Integer &e, const Integer &d, const Integer &p, const Integer &q, const Integer &dp, const Integer &dq, const Integer &u) + {m_n = n; m_e = e; m_d = d; m_p = p; m_q = q; m_dp = dp; m_dq = dq; m_u = u;} + //! factor n given private exponent + void Initialize(const Integer &n, const Integer &e, const Integer &d); + + // PKCS8PrivateKey + void BERDecode(BufferedTransformation &bt) + {PKCS8PrivateKey::BERDecode(bt);} + void DEREncode(BufferedTransformation &bt) const + {PKCS8PrivateKey::DEREncode(bt);} + void BERDecodeKey(BufferedTransformation &bt); + void DEREncodeKey(BufferedTransformation &bt) const; + + // TrapdoorFunctionInverse + Integer CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const; + + // GeneratableCryptoMaterial + bool Validate(RandomNumberGenerator &rng, unsigned int level) const; + /*! parameters: (ModulusSize, PublicExponent (default 17)) */ + void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs &alg); + bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const; + void AssignFrom(const NameValuePairs &source); + + // non-derived interface + const Integer& GetPrime1() const {return m_p;} + const Integer& GetPrime2() const {return m_q;} + const Integer& GetPrivateExponent() const {return m_d;} + const Integer& GetModPrime1PrivateExponent() const {return m_dp;} + const Integer& GetModPrime2PrivateExponent() const {return m_dq;} + const Integer& GetMultiplicativeInverseOfPrime2ModPrime1() const {return m_u;} + + void SetPrime1(const Integer &p) {m_p = p;} + void SetPrime2(const Integer &q) {m_q = q;} + void SetPrivateExponent(const Integer &d) {m_d = d;} + void SetModPrime1PrivateExponent(const Integer &dp) {m_dp = dp;} + void SetModPrime2PrivateExponent(const Integer &dq) {m_dq = dq;} + void SetMultiplicativeInverseOfPrime2ModPrime1(const Integer &u) {m_u = u;} + +protected: + virtual void DEREncodeOptionalAttributes(BufferedTransformation &bt) const {} + virtual void BERDecodeOptionalAttributes(BufferedTransformation &bt) {} + + Integer m_d, m_p, m_q, m_dp, m_dq, m_u; +}; + +//! . +struct RSA +{ + static std::string StaticAlgorithmName() {return "RSA";} + typedef RSAFunction PublicKey; + typedef InvertibleRSAFunction PrivateKey; +}; + +//! RSA cryptosystem +template +struct RSAES : public TF_ES +{ +}; + +//! RSA signature scheme with appendix +/*! See documentation of PKCS1v15 for a list of hash functions that can be used with it. */ +template +struct RSASS : public TF_SS +{ +}; + +// The two RSA encryption schemes defined in PKCS #1 v2.0 +typedef RSAES::Decryptor RSAES_PKCS1v15_Decryptor; +typedef RSAES::Encryptor RSAES_PKCS1v15_Encryptor; + +typedef RSAES >::Decryptor RSAES_OAEP_SHA_Decryptor; +typedef RSAES >::Encryptor RSAES_OAEP_SHA_Encryptor; + +// The three RSA signature schemes defined in PKCS #1 v2.0 +typedef RSASS::Signer RSASSA_PKCS1v15_SHA_Signer; +typedef RSASS::Verifier RSASSA_PKCS1v15_SHA_Verifier; + +typedef RSASS::Signer RSASSA_PKCS1v15_MD2_Signer; +typedef RSASS::Verifier RSASSA_PKCS1v15_MD2_Verifier; + +typedef RSASS::Signer RSASSA_PKCS1v15_MD5_Signer; +typedef RSASS::Verifier RSASSA_PKCS1v15_MD5_Verifier; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/rsa1024.dat b/stepmania/src/crypto51/rsa1024.dat new file mode 100644 index 0000000000..70fb172465 --- /dev/null +++ b/stepmania/src/crypto51/rsa1024.dat @@ -0,0 +1,32 @@ +30820274020100300D06092A864886F70D010101 +05000482025E3082025A02010002818100A39D4F +72D1BCFF65A47545C2897C0464CE9181E8703421 +2EC04407C4C24D569AA20C58B8138C85E17510BC +6B861CADA9034C3ECE3B050B546E97D2BDC07A07 +CF8A612F7D3646739633041893EF18C411264E45 +C9E033A1BD5EE5FA02D95E9A9ADA2D0C6DF480E3 +2FA3FCE02889798455CE53F084AAB4C5549266F7 +CE8C77DF1D0201110281800E6FC33ED64561D443 +378627C0D63C9F7BA36D584622B7A23E241ECD98 +AC78952C6A804C7A320BD020EAE372E62FB4F853 +1D50D5F6261796823A929845B06A19B35A5227CB +C819852A9CBE588CC2D1CEE07F426D13C2BF2FCA +1C99FDEEFDFE387859E2B3F654E85A71481A71E9 +D5256583B1200F29C1AA0F437CFDC2AEAF218102 +4100D5DDB104AD074F6C1B8192D9AC8AED4DE05C +F5C6509490DA8CCFC91FDF7B3A1323E03894DCAA +B2587716D652A56904F86244E10C1B8FA597C389 +2591C55DBD65024100C3D930B583B8AD9A349218 +795C988CF0004F09DA04FFEF6FDF7CB4FA654F74 +B262521FE185693CD6290A337589F62CDEECE24E +CCB5E79865275540F3B603FB59024064A48F89BA +D6437E2B0FCCA2AB8CABE86995285D5318BCA315 +167CC3B47639726B3C56DCA41417B128FBB026E4 +6DA7FC6A7AC441EEDA2FCEF29AE480D5594A1102 +40228FBD4D355CD35772B05EAC014818DF0F1D01 +BD0FF0EE04AEF7E3B3B7867E015CA514AF53C746 +F89DD49FAB5494DABDED9159332F28DEA8705A56 +C198974A79024100D1DCA40FBD19036F0E2A9438 +7D03C090DDF0A677CDE0B8634A81F247752A355E +C1CEA2482A4887767145C2BA703C9C10228FDA1E +BB2EBEA73D23AA9C34182179 diff --git a/stepmania/src/crypto51/rsa2048.dat b/stepmania/src/crypto51/rsa2048.dat new file mode 100644 index 0000000000..83200c2757 --- /dev/null +++ b/stepmania/src/crypto51/rsa2048.dat @@ -0,0 +1,61 @@ +308204BB020100300D06092A864886F70D010101 +0500048204A5308204A10201000282010100BB25 +80EB6B368287A0A3BDDF6AAA9EDA2EEF15D92C5F +E0B1C21473175C39B685A6FB0B0DB611092C19B4 +FA3CA5BB20F311E35B2E1097F48B077DF7684BEB +9A34EB78C7B5F02ADFAEA3F3A66F1EF91B0C47DE +68F0501F80A7E9603F794E928949F152C049A011 +D7E58C72F9303781E4FE7129DD7B87B5448D440A +62CE8E9C801F245039E2724A9C37CB17457950B7 +B3C4C9BE4D17A29EFC1EA1EF464FBD21DABE9F10 +ED0EB132405D68E4304008083BB675DA97CB6219 +147A1EB93D38A9C4023540F871272A85B45447B3 +6DE9A708E412CD31B1CB6470E4A37CBEA6000F36 +632DF86FD3C34466C63BD80F1350E4DD5081597F +F34F94F07AE6430DCC0563B1F7CF020111028201 +00034D763A5DC03580E33616ED5ABABA855B2E62 +4495DD8D002009656B5473772C85F55F10CE81CE +77BE31E04657410B1F6535B4CF1E6914E152F4AB +84DA2FD409F81BBB3DF0A96A58EACC9501F60162 +5C1356BF97D139C78A7E18496708EA7DE7B47266 +C81363B3FF888085E7403A028901FF3BA04C2EDE +930EC0EFAC4DCF8FD054C1119562A1C7CA455D79 +36CB95A16CE611ABC97918961DE6720CE171CC69 +A590E9A041EC1DAC6FDCF2E04946C100E03DEFCA +29FF480C926CD48589EB832D4476CF38AB320754 +D97BE77FDB9E5F2DCA1A2ABBC33D0790FE8C22CF +694BB8E0265733A5A17CC5D07DB54515DC80216A +A23A43EB12783888FF424EDB26FAF7DCB9028181 +00EB4C87F67AEA3F2047BF9DF61947DF2BA7E1C1 +64A03A8E3ED5F3BC6CDEE99FC6251C6A28F9502F +0A4B5A0CFA8038A12A2270AAE2C9342EDBA207CE +0F170B6D07550670CFEAE730B9411E66CD2D485F +3FC3E9C5348D32C768F68A53C756E66BE0FAC7E8 +FDC9FBE22644961782DA5DDC19D75B64D2E8B660 +052DDC95AD186633E902818100CB9C7830223B78 +FC28A6D2B77C50C3D389F32FC4DEF33341741205 +5102F8D852663DB44E1EA5E5E58A71D30D33C168 +E94855D79CC19CC7DFBAFBDFF7710490064A1375 +1CD75466219956B9D4C0AF0CC13E7D075F54E6AF +8CD67FBE3F4AB90425B039410686A168421E2E24 +FF0319D9D3F1C685BB650BC7B5BD12090CBDC392 +F702818060E3470B238DA185C330C89282E15BE4 +CCA84092D89094ECB2736BB45BC99C2469A249D4 +A2E4C8134C34237634CC06206888BED5DA60C800 +158ABE4272E6964E502FD41960B98C888439B1DC +039645567DD8BA9D2B14E8B2BFDE9AF7BA5EE120 +674341D1E9C211D385A736DB871796DD76CB47A2 +239663C5E5B52E9291937EC902818053D704500E +187D1C8935A20F514E6EC08418D76F2EA060663E +DA3E6CA6DEEFA97564B3A7B2444F9AC08938C933 +6DC1C9782358C8137CCAC5893A8965E33E1D2FC4 +262129FE4FEDD1997E10488B935F9ADD7EC6CCE6 +B957581C167B83791F01B52A71ED99467EB27593 +F4E20EA6EC86DECCF7643E1A8C614AD561C77DB7 +8CC40B02818100AF950A287679E6C55020400E8A +AD0642DB1C11D9AD5AE85F1B6FD2829D869453C9 +F67C0210D0847A4BD47C57FAECD9BE540BD66989 +E6C43F62D725B3D841B4F1DB7C28A722337358C8 +D1CD55F5CA6E31FAD6F827756BA074944D345C8D +2FCE759F4244B948D06F5AC863DEAAEF279B2F69 +955ADAD1F39DEA9DA028B94EF22F11 diff --git a/stepmania/src/crypto51/rsa400pb.dat b/stepmania/src/crypto51/rsa400pb.dat new file mode 100644 index 0000000000..ccbc6ae2cd --- /dev/null +++ b/stepmania/src/crypto51/rsa400pb.dat @@ -0,0 +1,10 @@ +30 4c 30 0d 06 09 2a 86 +48 86 f7 0d 01 01 01 05 +00 03 3b 00 30 38 02 33 +00 a3 07 9a 90 df 0d fd +72 ac 09 0c cc 2a 78 b8 +74 13 13 3e 40 75 9c 98 +fa f8 20 4f 35 8a 0b 26 +3c 67 70 e7 83 a9 3b 69 +71 b7 37 79 d2 71 7b e8 +34 77 cf 02 01 03 diff --git a/stepmania/src/crypto51/rsa400pv.dat b/stepmania/src/crypto51/rsa400pv.dat new file mode 100644 index 0000000000..2a73123413 --- /dev/null +++ b/stepmania/src/crypto51/rsa400pv.dat @@ -0,0 +1,41 @@ + 30 81 fb + 02 01 00 + 02 + 33 00 a3 07 9a 90 df 0d + fd 72 ac 09 0c cc 2a 78 + b8 74 13 13 3e 40 75 9c + 98 fa f8 20 4f 35 8a 0b + 26 3c 67 70 e7 83 a9 3b + 69 71 b7 37 79 d2 71 7b + e8 34 77 cf + 02 01 03 + 02 + 32 6c af bc 60 94 b3 fe + 4c 72 b0 b3 32 c6 fb 25 + a2 b7 62 29 80 4e 68 65 + fc a4 5a 74 df 0f 8f b8 + 41 3b 52 c0 d0 e5 3d 9b + 59 0f f1 9b e7 9f 49 dd + 21 e5 eb + 02 1a 00 cf 20 + 35 02 8b 9d 86 98 40 b4 + 16 66 b4 2e 92 ea 0d a3 + b4 32 04 b5 cf ce 91 + 02 + 1a 00 c9 7f b1 f0 27 f4 + 53 f6 34 12 33 ea aa d1 + d9 35 3f 6c 42 d0 88 66 + b1 d0 5f + 02 1a 00 8a 15 + 78 ac 5d 13 af 10 2b 22 + b9 99 cd 74 61 f1 5e 6d + 22 cc 03 23 df df 0b + 02 + 1a 00 86 55 21 4a c5 4d + 8d 4e cd 61 77 f1 c7 36 + 90 ce 2a 48 2c 8b 05 99 + cb e0 3f + 02 1a 00 83 ef + ef b8 a9 a4 0d 1d b6 ed + 98 ad 84 ed 13 35 dc c1 + 08 f3 22 d0 57 cf 8d \ No newline at end of file diff --git a/stepmania/src/crypto51/rsa512a.dat b/stepmania/src/crypto51/rsa512a.dat new file mode 100644 index 0000000000..e7edefae70 --- /dev/null +++ b/stepmania/src/crypto51/rsa512a.dat @@ -0,0 +1,35 @@ +30 82 01 50 + 02 01 00 + 30 0d + 06 09 + 2a 86 48 86 f7 0d 01 01 01 + 05 00 + 04 82 01 3a + 30 82 01 36 + 02 01 00 + 02 40 + 0a 66 79 1d c6 98 81 68 de 7a b7 74 19 bb 7f b0 + c0 01 c6 27 10 27 00 75 14 29 42 e1 9a 8d 8c 51 + d0 53 b3 e3 78 2a 1d e5 dc 5a f4 eb e9 94 68 17 + 01 14 a1 df e6 7c dc 9a 9a f5 5d 65 56 20 bb ab + 02 03 01 00 01 + 02 40 + 01 23 c5 b6 1b a3 6e db 1d 36 79 90 41 99 a8 9e + a8 0c 09 b9 12 2e 14 00 c0 9a dc f7 78 46 76 d0 + 1d 23 35 6a 7d 44 d6 bd 8b d5 0e 94 bf c7 23 fa + 87 d8 86 2b 75 17 76 91 c1 1d 75 76 92 df 88 81 + 02 20 + 33 d4 84 45 c8 59 e5 23 40 de 70 4b cd da 06 5f + bb 40 58 d7 40 bd 1d 67 d2 9e 9c 14 6c 11 cf 61 + 02 20 + 33 5e 84 08 86 6b 0f d3 8d c7 00 2d 3f 97 2c 67 + 38 9a 65 d5 d8 30 65 66 d5 c4 f2 a5 aa 52 62 8b + 02 20 + 04 5e c9 00 71 52 53 25 d3 d4 6d b7 96 95 e9 af + ac c4 52 39 64 36 0e 02 b1 19 ba a3 66 31 62 41 + 02 20 + 15 eb 32 73 60 c7 b6 0d 12 e5 e2 d1 6b dc d9 79 + 81 d1 7f ba 6b 70 db 13 b2 0b 43 6e 24 ea da 59 + 02 20 + 2c a6 36 6d 72 78 1d fa 24 d3 4a 9a 24 cb c2 ae + 92 7a 99 58 af 42 65 63 ff 63 fb 11 65 8a 46 1d diff --git a/stepmania/src/crypto51/secblock.h b/stepmania/src/crypto51/secblock.h new file mode 100644 index 0000000000..e07c6a213e --- /dev/null +++ b/stepmania/src/crypto51/secblock.h @@ -0,0 +1,385 @@ +// secblock.h - written and placed in the public domain by Wei Dai + +#ifndef CRYPTOPP_SECBLOCK_H +#define CRYPTOPP_SECBLOCK_H + +#include "config.h" +#include "misc.h" +#include // CodeWarrior doesn't have memory.h +#include + +NAMESPACE_BEGIN(CryptoPP) + +// ************** secure memory allocation *************** + +template +class AllocatorBase +{ +public: + typedef T value_type; + typedef size_t size_type; +#if (defined(_MSC_VER) && _MSC_VER < 1300) + typedef ptrdiff_t difference_type; +#else + typedef std::ptrdiff_t difference_type; +#endif + typedef T * pointer; + typedef const T * const_pointer; + typedef T & reference; + typedef const T & const_reference; + + pointer address(reference r) const {return (&r);} + const_pointer address(const_reference r) const {return (&r); } + void construct(pointer p, const T& val) {new (p) T(val);} + void destroy(pointer p) {p->~T();} + size_type max_size() const {return size_type(-1)/sizeof(T);} +}; + +#define CRYPTOPP_INHERIT_ALLOCATOR_TYPES \ +typedef typename AllocatorBase::value_type value_type;\ +typedef typename AllocatorBase::size_type size_type;\ +typedef typename AllocatorBase::difference_type difference_type;\ +typedef typename AllocatorBase::pointer pointer;\ +typedef typename AllocatorBase::const_pointer const_pointer;\ +typedef typename AllocatorBase::reference reference;\ +typedef typename AllocatorBase::const_reference const_reference; + +template +typename A::pointer StandardReallocate(A& a, T *p, typename A::size_type oldSize, typename A::size_type newSize, bool preserve) +{ + if (oldSize == newSize) + return p; + + if (preserve) + { + typename A::pointer newPointer = a.allocate(newSize, NULL); + memcpy(newPointer, p, sizeof(T)*STDMIN(oldSize, newSize)); + a.deallocate(p, oldSize); + return newPointer; + } + else + { + a.deallocate(p, oldSize); + return a.allocate(newSize, NULL); + } +} + +template +class AllocatorWithCleanup : public AllocatorBase +{ +public: + CRYPTOPP_INHERIT_ALLOCATOR_TYPES + + pointer allocate(size_type n, const void * = NULL) + { + if (n > 0) + return new T[n]; + else + return NULL; + } + + void deallocate(void *p, size_type n) + { + memset(p, 0, n*sizeof(T)); + delete [] (T *)p; + } + + pointer reallocate(T *p, size_type oldSize, size_type newSize, bool preserve) + { + return StandardReallocate(*this, p, oldSize, newSize, preserve); + } + + // VS.NET STL enforces the policy of "All STL-compliant allocators have to provide a + // template class member called rebind". + template struct rebind { typedef AllocatorWithCleanup other; }; +}; + +template +class NullAllocator : public AllocatorBase +{ +public: + CRYPTOPP_INHERIT_ALLOCATOR_TYPES + + pointer allocate(size_type n, const void * = NULL) + { + assert(false); + return NULL; + } + + void deallocate(void *p, size_type n) + { + assert(false); + } +}; + +// this allocator can't be used with standard collections +template > +class FixedSizeAllocatorWithCleanup : public AllocatorBase +{ +public: + CRYPTOPP_INHERIT_ALLOCATOR_TYPES + + pointer allocate(size_type n) + { + if (n <= S) + { + assert(!m_allocated); +#ifndef NDEBUG + m_allocated = true; +#endif + return m_array; + } + else + return m_fallbackAllocator.allocate(n); + } + + pointer allocate(size_type n, const void *hint) + { + if (n <= S) + { + assert(!m_allocated); +#ifndef NDEBUG + m_allocated = true; +#endif + return m_array; + } + else + return m_fallbackAllocator.allocate(n, hint); + } + + void deallocate(void *p, size_type n) + { + if (n <= S) + { + assert(m_allocated); + assert(p == m_array); +#ifndef NDEBUG + m_allocated = false; +#endif + memset(p, 0, n*sizeof(T)); + } + else + m_fallbackAllocator.deallocate(p, n); + } + + pointer reallocate(pointer p, size_type oldSize, size_type newSize, bool preserve) + { + if (oldSize <= S && newSize <= S) + return p; + + return StandardReallocate(*this, p, oldSize, newSize, preserve); + } + + size_type max_size() const {return m_fallbackAllocator.max_size();} + +private: + A m_fallbackAllocator; + T m_array[S]; + +#ifndef NDEBUG +public: + FixedSizeAllocatorWithCleanup() : m_allocated(false) {} + bool m_allocated; +#endif +}; + +//! a block of memory allocated using A +template > +class SecBlock +{ +public: + explicit SecBlock(unsigned int size=0) + : m_size(size) {m_ptr = m_alloc.allocate(size, NULL);} + SecBlock(const SecBlock &t) + : m_size(t.m_size) {m_ptr = m_alloc.allocate(m_size, NULL); memcpy(m_ptr, t.m_ptr, m_size*sizeof(T));} + SecBlock(const T *t, unsigned int len) + : m_size(len) + { + m_ptr = m_alloc.allocate(len, NULL); + if (t == NULL) + memset(m_ptr, 0, len*sizeof(T)); + else + memcpy(m_ptr, t, len*sizeof(T)); + } + + ~SecBlock() + {m_alloc.deallocate(m_ptr, m_size);} + +#if defined(__GNUC__) || defined(__BCPLUSPLUS__) + operator const void *() const + {return m_ptr;} + operator void *() + {return m_ptr;} +#endif +#if defined(__GNUC__) // reduce warnings + operator const void *() + {return m_ptr;} +#endif + + operator const T *() const + {return m_ptr;} + operator T *() + {return m_ptr;} +#if defined(__GNUC__) // reduce warnings + operator const T *() + {return m_ptr;} +#endif + + template + T *operator +(I offset) + {return m_ptr+offset;} + + template + const T *operator +(I offset) const + {return m_ptr+offset;} + + template + T& operator[](I index) + {assert(index >= 0 && (unsigned int)index < m_size); return m_ptr[index];} + + template + const T& operator[](I index) const + {assert(index >= 0 && (unsigned int)index < m_size); return m_ptr[index];} + + typedef typename A::pointer iterator; + typedef typename A::const_pointer const_iterator; + typedef typename A::size_type size_type; + + iterator begin() + {return m_ptr;} + const_iterator begin() const + {return m_ptr;} + iterator end() + {return m_ptr+m_size;} + const_iterator end() const + {return m_ptr+m_size;} + + typename A::pointer data() {return m_ptr;} + typename A::const_pointer data() const {return m_ptr;} + + size_type size() const {return m_size;} + bool empty() const {return m_size == 0;} + + void Assign(const T *t, unsigned int len) + { + New(len); + memcpy(m_ptr, t, len*sizeof(T)); + } + + void Assign(const SecBlock &t) + { + New(t.m_size); + memcpy(m_ptr, t.m_ptr, m_size*sizeof(T)); + } + + SecBlock& operator=(const SecBlock &t) + { + Assign(t); + return *this; + } + + bool operator==(const SecBlock &t) const + { + return m_size == t.m_size && memcmp(m_ptr, t.m_ptr, m_size*sizeof(T)) == 0; + } + + bool operator!=(const SecBlock &t) const + { + return !operator==(t); + } + + void New(unsigned int newSize) + { + m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, false); + m_size = newSize; + } + + void CleanNew(unsigned int newSize) + { + New(newSize); + memset(m_ptr, 0, m_size*sizeof(T)); + } + + void Grow(unsigned int newSize) + { + if (newSize > m_size) + { + m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, true); + m_size = newSize; + } + } + + void CleanGrow(unsigned int newSize) + { + if (newSize > m_size) + { + m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, true); + memset(m_ptr+m_size, 0, (newSize-m_size)*sizeof(T)); + m_size = newSize; + } + } + + void resize(unsigned int newSize) + { + m_ptr = m_alloc.reallocate(m_ptr, m_size, newSize, true); + m_size = newSize; + } + + void swap(SecBlock &b); + +//private: + A m_alloc; + unsigned int m_size; + T *m_ptr; +}; + +template void SecBlock::swap(SecBlock &b) +{ + std::swap(m_alloc, b.m_alloc); + std::swap(m_size, b.m_size); + std::swap(m_ptr, b.m_ptr); +} + +typedef SecBlock SecByteBlock; +typedef SecBlock SecWordBlock; + +template > +class FixedSizeSecBlock : public SecBlock +{ +public: + explicit FixedSizeSecBlock() : SecBlock(S) {} +}; + +template > > +class SecBlockWithHint : public SecBlock +{ +public: + explicit SecBlockWithHint(unsigned int size) : SecBlock(size) {} +}; + +template +inline bool operator==(const CryptoPP::AllocatorWithCleanup&, const CryptoPP::AllocatorWithCleanup&) {return (true);} +template +inline bool operator!=(const CryptoPP::AllocatorWithCleanup&, const CryptoPP::AllocatorWithCleanup&) {return (false);} + +NAMESPACE_END + +NAMESPACE_BEGIN(std) +template +inline void swap(CryptoPP::SecBlock &a, CryptoPP::SecBlock &b) +{ + a.swap(b); +} + +#if defined(_STLPORT_VERSION) && !defined(_STLP_MEMBER_TEMPLATE_CLASSES) +template +inline CryptoPP::AllocatorWithCleanup<_Tp2>& +__stl_alloc_rebind(CryptoPP::AllocatorWithCleanup<_Tp1>& __a, const _Tp2*) +{ + return (CryptoPP::AllocatorWithCleanup<_Tp2>&)(__a); +} +#endif + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/seckey.h b/stepmania/src/crypto51/seckey.h new file mode 100644 index 0000000000..36ecd36a96 --- /dev/null +++ b/stepmania/src/crypto51/seckey.h @@ -0,0 +1,237 @@ +// seckey.h - written and placed in the public domain by Wei Dai + +// This file contains helper classes/functions for implementing secret key algorithms. + +#ifndef CRYPTOPP_SECKEY_H +#define CRYPTOPP_SECKEY_H + +#include "cryptlib.h" +#include "misc.h" +#include "simple.h" + +NAMESPACE_BEGIN(CryptoPP) + +inline CipherDir ReverseCipherDir(CipherDir dir) +{ + return (dir == ENCRYPTION) ? DECRYPTION : ENCRYPTION; +} + +//! . +template +class FixedBlockSize +{ +public: + enum {BLOCKSIZE = N}; +}; + +// ************** rounds *************** + +//! . +template +class FixedRounds +{ +public: + enum {ROUNDS = R}; + +protected: + template + static inline void CheckedSetKey(T *obj, CipherDir dir, const byte *key, unsigned int length, const NameValuePairs ¶m) + { + obj->ThrowIfInvalidKeyLength(length); + int rounds = param.GetIntValueWithDefault("Rounds", ROUNDS); + if (rounds != ROUNDS) + throw InvalidRounds(obj->StaticAlgorithmName(), rounds); + obj->UncheckedSetKey(dir, key, length); + } +}; + +//! . +template // use INT_MAX here because enums are treated as signed ints +class VariableRounds +{ +public: + enum {DEFAULT_ROUNDS = D, MIN_ROUNDS = N, MAX_ROUNDS = M}; + static unsigned int StaticGetDefaultRounds(unsigned int keylength) {return DEFAULT_ROUNDS;} + +protected: + static inline void AssertValidRounds(unsigned int rounds) + { + assert(rounds >= MIN_ROUNDS && rounds <= MAX_ROUNDS); + } + + template + static inline void CheckedSetKey(T *obj, CipherDir dir, const byte *key, unsigned int length, const NameValuePairs ¶m) + { + obj->ThrowIfInvalidKeyLength(length); + int rounds = param.GetIntValueWithDefault("Rounds", obj->StaticGetDefaultRounds(length)); + if (rounds < (unsigned int)MIN_ROUNDS || rounds > (unsigned int)MAX_ROUNDS) + throw InvalidRounds(obj->AlgorithmName(), rounds); + obj->UncheckedSetKey(dir, key, length, rounds); + } +}; + +// ************** key length *************** + +//! . +template +class FixedKeyLength +{ +public: + enum {KEYLENGTH=N, MIN_KEYLENGTH=N, MAX_KEYLENGTH=N, DEFAULT_KEYLENGTH=N}; + enum {IV_REQUIREMENT = IV_REQ}; + static unsigned int StaticGetValidKeyLength(unsigned int) {return KEYLENGTH;} +}; + +/// support query of variable key length, template parameters are default, min, max, multiple (default multiple 1) +template +class VariableKeyLength +{ + // make these private to avoid Doxygen documenting them in all derived classes + CRYPTOPP_COMPILE_ASSERT(Q > 0); + CRYPTOPP_COMPILE_ASSERT(N % Q == 0); + CRYPTOPP_COMPILE_ASSERT(M % Q == 0); + CRYPTOPP_COMPILE_ASSERT(N < M); + CRYPTOPP_COMPILE_ASSERT(D >= N && M >= D); + +public: + enum {MIN_KEYLENGTH=N, MAX_KEYLENGTH=M, DEFAULT_KEYLENGTH=D, KEYLENGTH_MULTIPLE=Q}; + enum {IV_REQUIREMENT = IV_REQ}; + static unsigned int StaticGetValidKeyLength(unsigned int n) + { + if (n < (unsigned int)MIN_KEYLENGTH) + return MIN_KEYLENGTH; + else if (n > (unsigned int)MAX_KEYLENGTH) + return (unsigned int)MAX_KEYLENGTH; + else + { + n += KEYLENGTH_MULTIPLE-1; + return n - n%KEYLENGTH_MULTIPLE; + } + } +}; + +/// support query of key length that's the same as another class +template +class SameKeyLengthAs +{ +public: + enum {MIN_KEYLENGTH=T::MIN_KEYLENGTH, MAX_KEYLENGTH=T::MAX_KEYLENGTH, DEFAULT_KEYLENGTH=T::DEFAULT_KEYLENGTH}; + enum {IV_REQUIREMENT = T::IV_REQUIREMENT}; + static unsigned int StaticGetValidKeyLength(unsigned int keylength) + {return T::StaticGetValidKeyLength(keylength);} +}; + +// ************** implementation helper for SimpledKeyed *************** + +template +static inline void CheckedSetKey(T *obj, Empty empty, const byte *key, unsigned int length, const NameValuePairs ¶m) +{ + obj->ThrowIfInvalidKeyLength(length); + obj->UncheckedSetKey(key, length); +} + +template +static inline void CheckedSetKey(T *obj, CipherDir dir, const byte *key, unsigned int length, const NameValuePairs ¶m) +{ + obj->ThrowIfInvalidKeyLength(length); + obj->UncheckedSetKey(dir, key, length); +} + +//! . +template +class SimpleKeyingInterfaceImpl : public BASE +{ +public: + unsigned int MinKeyLength() const {return INFO::MIN_KEYLENGTH;} + unsigned int MaxKeyLength() const {return (unsigned int)INFO::MAX_KEYLENGTH;} + unsigned int DefaultKeyLength() const {return INFO::DEFAULT_KEYLENGTH;} + unsigned int GetValidKeyLength(unsigned int n) const {return INFO::StaticGetValidKeyLength(n);} + typename BASE::IV_Requirement IVRequirement() const {return (typename BASE::IV_Requirement)INFO::IV_REQUIREMENT;} + +protected: + void AssertValidKeyLength(unsigned int length) {assert(GetValidKeyLength(length) == length);} +}; + +template +class BlockCipherBaseTemplate : public AlgorithmImpl > > +{ +public: + unsigned int BlockSize() const {return BLOCKSIZE;} +}; + +//! . +template +class BlockCipherTemplate : public BASE +{ +public: + BlockCipherTemplate() {} + BlockCipherTemplate(const byte *key) + {SetKey(key, DEFAULT_KEYLENGTH);} + BlockCipherTemplate(const byte *key, unsigned int length) + {SetKey(key, length);} + BlockCipherTemplate(const byte *key, unsigned int length, unsigned int rounds) + {SetKeyWithRounds(key, length, rounds);} + + bool IsForwardTransformation() const {return DIR == ENCRYPTION;} + + void SetKey(const byte *key, unsigned int length, const NameValuePairs ¶m = g_nullNameValuePairs) + { + CheckedSetKey(this, DIR, key, length, param); + } + + Clonable * Clone() const {return new BlockCipherTemplate(*this);} +}; + +//! . +template +class MessageAuthenticationCodeTemplate : public +#ifdef CRYPTOPP_DOXYGEN_PROCESSING + MessageAuthenticationCode +#else + SimpleKeyingInterfaceImpl +#endif +{ +public: + MessageAuthenticationCodeTemplate() {} + MessageAuthenticationCodeTemplate(const byte *key) + {SetKey(key, DEFAULT_KEYLENGTH);} + MessageAuthenticationCodeTemplate(const byte *key, unsigned int length) + {SetKey(key, length);} + + std::string AlgorithmName() const {return StaticAlgorithmName();} + + void SetKey(const byte *key, unsigned int length, const NameValuePairs ¶m = g_nullNameValuePairs) + { + CheckedSetKey(this, Empty(), key, length, param); + } + + Clonable * Clone() const {return new MessageAuthenticationCodeTemplate(*this);} +}; + +// ************** documentation *************** + +//! These objects usually should not be used directly. See CipherModeDocumentation instead. +/*! Each class derived from this one defines two types, Encryption and Decryption, + both of which implement the BlockCipher interface. */ +struct BlockCipherDocumentation +{ + //! implements the BlockCipher interface + typedef BlockCipher Encryption; + //! implements the BlockCipher interface + typedef BlockCipher Decryption; +}; + +/*! \brief Each class derived from this one defines two types, Encryption and Decryption, + both of which implement the SymmetricCipher interface. See CipherModeDocumentation + for information about using block ciphers. */ +struct SymmetricCipherDocumentation +{ + //! implements the SymmetricCipher interface + typedef SymmetricCipher Encryption; + //! implements the SymmetricCipher interface + typedef SymmetricCipher Decryption; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/sha.cpp b/stepmania/src/crypto51/sha.cpp new file mode 100644 index 0000000000..958d9ea07b --- /dev/null +++ b/stepmania/src/crypto51/sha.cpp @@ -0,0 +1,277 @@ +// sha.cpp - modified by Wei Dai from Steve Reid's public domain sha1.c + +// Steve Reid implemented SHA-1. Wei Dai implemented SHA-2. +// Both are in the public domain. + +#include "pch.h" +#include "sha.h" +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +void SHA::Init() +{ + m_digest[0] = 0x67452301L; + m_digest[1] = 0xEFCDAB89L; + m_digest[2] = 0x98BADCFEL; + m_digest[3] = 0x10325476L; + m_digest[4] = 0xC3D2E1F0L; +} + +// start of Steve Reid's code + +#define blk0(i) (W[i] = data[i]) +#define blk1(i) (W[i&15] = rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1)) + +#define f1(x,y,z) (z^(x&(y^z))) +#define f2(x,y,z) (x^y^z) +#define f3(x,y,z) ((x&y)|(z&(x|y))) +#define f4(x,y,z) (x^y^z) + +/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */ +#define R0(v,w,x,y,z,i) z+=f1(w,x,y)+blk0(i)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30); +#define R1(v,w,x,y,z,i) z+=f1(w,x,y)+blk1(i)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30); +#define R2(v,w,x,y,z,i) z+=f2(w,x,y)+blk1(i)+0x6ED9EBA1+rotlFixed(v,5);w=rotlFixed(w,30); +#define R3(v,w,x,y,z,i) z+=f3(w,x,y)+blk1(i)+0x8F1BBCDC+rotlFixed(v,5);w=rotlFixed(w,30); +#define R4(v,w,x,y,z,i) z+=f4(w,x,y)+blk1(i)+0xCA62C1D6+rotlFixed(v,5);w=rotlFixed(w,30); + +void SHA::Transform(word32 *state, const word32 *data) +{ + word32 W[16]; + /* Copy context->state[] to working vars */ + word32 a = state[0]; + word32 b = state[1]; + word32 c = state[2]; + word32 d = state[3]; + word32 e = state[4]; + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3); + R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7); + R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11); + R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15); + R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19); + R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23); + R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27); + R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31); + R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35); + R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39); + R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43); + R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47); + R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51); + R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55); + R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59); + R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63); + R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67); + R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71); + R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75); + R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79); + /* Add the working vars back into context.state[] */ + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + /* Wipe variables */ + a = b = c = d = e = 0; + memset(W, 0, sizeof(W)); +} + +// end of Steve Reid's code + +// ************************************************************* + +void SHA256::Init() +{ + m_digest[0] = 0x6a09e667; + m_digest[1] = 0xbb67ae85; + m_digest[2] = 0x3c6ef372; + m_digest[3] = 0xa54ff53a; + m_digest[4] = 0x510e527f; + m_digest[5] = 0x9b05688c; + m_digest[6] = 0x1f83d9ab; + m_digest[7] = 0x5be0cd19; +} + +#define blk2(i) (W[i&15]+=s1(W[(i-2)&15])+W[(i-7)&15]+s0(W[(i-15)&15])) + +#define Ch(x,y,z) (z^(x&(y^z))) +#define Maj(x,y,z) ((x&y)|(z&(x|y))) + +#define a(i) T[(0-i)&7] +#define b(i) T[(1-i)&7] +#define c(i) T[(2-i)&7] +#define d(i) T[(3-i)&7] +#define e(i) T[(4-i)&7] +#define f(i) T[(5-i)&7] +#define g(i) T[(6-i)&7] +#define h(i) T[(7-i)&7] + +#define R(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+K[i+j]+(j?blk2(i):blk0(i));\ + d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i)) + +// for SHA256 +#define S0(x) (rotrFixed(x,2)^rotrFixed(x,13)^rotrFixed(x,22)) +#define S1(x) (rotrFixed(x,6)^rotrFixed(x,11)^rotrFixed(x,25)) +#define s0(x) (rotrFixed(x,7)^rotrFixed(x,18)^(x>>3)) +#define s1(x) (rotrFixed(x,17)^rotrFixed(x,19)^(x>>10)) + +void SHA256::Transform(word32 *state, const word32 *data) +{ + word32 W[16]; + word32 T[8]; + /* Copy context->state[] to working vars */ + memcpy(T, state, sizeof(T)); + /* 64 operations, partially loop unrolled */ + for (unsigned int j=0; j<64; j+=16) + { + R( 0); R( 1); R( 2); R( 3); + R( 4); R( 5); R( 6); R( 7); + R( 8); R( 9); R(10); R(11); + R(12); R(13); R(14); R(15); + } + /* Add the working vars back into context.state[] */ + state[0] += a(0); + state[1] += b(0); + state[2] += c(0); + state[3] += d(0); + state[4] += e(0); + state[5] += f(0); + state[6] += g(0); + state[7] += h(0); + /* Wipe variables */ + memset(W, 0, sizeof(W)); + memset(T, 0, sizeof(T)); +} + +const word32 SHA256::K[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +}; + +#undef S0 +#undef S1 +#undef s0 +#undef s1 + +// ************************************************************* + +#ifdef WORD64_AVAILABLE + +void SHA512::Init() +{ + m_digest[0] = W64LIT(0x6a09e667f3bcc908); + m_digest[1] = W64LIT(0xbb67ae8584caa73b); + m_digest[2] = W64LIT(0x3c6ef372fe94f82b); + m_digest[3] = W64LIT(0xa54ff53a5f1d36f1); + m_digest[4] = W64LIT(0x510e527fade682d1); + m_digest[5] = W64LIT(0x9b05688c2b3e6c1f); + m_digest[6] = W64LIT(0x1f83d9abfb41bd6b); + m_digest[7] = W64LIT(0x5be0cd19137e2179); +} + +// for SHA512 +#define S0(x) (rotrFixed(x,28)^rotrFixed(x,34)^rotrFixed(x,39)) +#define S1(x) (rotrFixed(x,14)^rotrFixed(x,18)^rotrFixed(x,41)) +#define s0(x) (rotrFixed(x,1)^rotrFixed(x,8)^(x>>7)) +#define s1(x) (rotrFixed(x,19)^rotrFixed(x,61)^(x>>6)) + +void SHA512::Transform(word64 *state, const word64 *data) +{ + word64 W[16]; + word64 T[8]; + /* Copy context->state[] to working vars */ + memcpy(T, state, sizeof(T)); + /* 80 operations, partially loop unrolled */ + for (unsigned int j=0; j<80; j+=16) + { + R( 0); R( 1); R( 2); R( 3); + R( 4); R( 5); R( 6); R( 7); + R( 8); R( 9); R(10); R(11); + R(12); R(13); R(14); R(15); + } + /* Add the working vars back into context.state[] */ + state[0] += a(0); + state[1] += b(0); + state[2] += c(0); + state[3] += d(0); + state[4] += e(0); + state[5] += f(0); + state[6] += g(0); + state[7] += h(0); + /* Wipe variables */ + memset(W, 0, sizeof(W)); + memset(T, 0, sizeof(T)); +} + +const word64 SHA512::K[80] = { + W64LIT(0x428a2f98d728ae22), W64LIT(0x7137449123ef65cd), + W64LIT(0xb5c0fbcfec4d3b2f), W64LIT(0xe9b5dba58189dbbc), + W64LIT(0x3956c25bf348b538), W64LIT(0x59f111f1b605d019), + W64LIT(0x923f82a4af194f9b), W64LIT(0xab1c5ed5da6d8118), + W64LIT(0xd807aa98a3030242), W64LIT(0x12835b0145706fbe), + W64LIT(0x243185be4ee4b28c), W64LIT(0x550c7dc3d5ffb4e2), + W64LIT(0x72be5d74f27b896f), W64LIT(0x80deb1fe3b1696b1), + W64LIT(0x9bdc06a725c71235), W64LIT(0xc19bf174cf692694), + W64LIT(0xe49b69c19ef14ad2), W64LIT(0xefbe4786384f25e3), + W64LIT(0x0fc19dc68b8cd5b5), W64LIT(0x240ca1cc77ac9c65), + W64LIT(0x2de92c6f592b0275), W64LIT(0x4a7484aa6ea6e483), + W64LIT(0x5cb0a9dcbd41fbd4), W64LIT(0x76f988da831153b5), + W64LIT(0x983e5152ee66dfab), W64LIT(0xa831c66d2db43210), + W64LIT(0xb00327c898fb213f), W64LIT(0xbf597fc7beef0ee4), + W64LIT(0xc6e00bf33da88fc2), W64LIT(0xd5a79147930aa725), + W64LIT(0x06ca6351e003826f), W64LIT(0x142929670a0e6e70), + W64LIT(0x27b70a8546d22ffc), W64LIT(0x2e1b21385c26c926), + W64LIT(0x4d2c6dfc5ac42aed), W64LIT(0x53380d139d95b3df), + W64LIT(0x650a73548baf63de), W64LIT(0x766a0abb3c77b2a8), + W64LIT(0x81c2c92e47edaee6), W64LIT(0x92722c851482353b), + W64LIT(0xa2bfe8a14cf10364), W64LIT(0xa81a664bbc423001), + W64LIT(0xc24b8b70d0f89791), W64LIT(0xc76c51a30654be30), + W64LIT(0xd192e819d6ef5218), W64LIT(0xd69906245565a910), + W64LIT(0xf40e35855771202a), W64LIT(0x106aa07032bbd1b8), + W64LIT(0x19a4c116b8d2d0c8), W64LIT(0x1e376c085141ab53), + W64LIT(0x2748774cdf8eeb99), W64LIT(0x34b0bcb5e19b48a8), + W64LIT(0x391c0cb3c5c95a63), W64LIT(0x4ed8aa4ae3418acb), + W64LIT(0x5b9cca4f7763e373), W64LIT(0x682e6ff3d6b2b8a3), + W64LIT(0x748f82ee5defb2fc), W64LIT(0x78a5636f43172f60), + W64LIT(0x84c87814a1f0ab72), W64LIT(0x8cc702081a6439ec), + W64LIT(0x90befffa23631e28), W64LIT(0xa4506cebde82bde9), + W64LIT(0xbef9a3f7b2c67915), W64LIT(0xc67178f2e372532b), + W64LIT(0xca273eceea26619c), W64LIT(0xd186b8c721c0c207), + W64LIT(0xeada7dd6cde0eb1e), W64LIT(0xf57d4f7fee6ed178), + W64LIT(0x06f067aa72176fba), W64LIT(0x0a637dc5a2c898a6), + W64LIT(0x113f9804bef90dae), W64LIT(0x1b710b35131c471b), + W64LIT(0x28db77f523047d84), W64LIT(0x32caab7b40c72493), + W64LIT(0x3c9ebe0a15c9bebc), W64LIT(0x431d67c49c100d4c), + W64LIT(0x4cc5d4becb3e42b6), W64LIT(0x597f299cfc657e2a), + W64LIT(0x5fcb6fab3ad6faec), W64LIT(0x6c44198c4a475817) +}; + +void SHA384::Init() +{ + m_digest[0] = W64LIT(0xcbbb9d5dc1059ed8); + m_digest[1] = W64LIT(0x629a292a367cd507); + m_digest[2] = W64LIT(0x9159015a3070dd17); + m_digest[3] = W64LIT(0x152fecd8f70e5939); + m_digest[4] = W64LIT(0x67332667ffc00b31); + m_digest[5] = W64LIT(0x8eb44a8768581511); + m_digest[6] = W64LIT(0xdb0c2e0d64f98fa7); + m_digest[7] = W64LIT(0x47b5481dbefa4fa4); +} + +#endif + +NAMESPACE_END diff --git a/stepmania/src/crypto51/sha.h b/stepmania/src/crypto51/sha.h new file mode 100644 index 0000000000..9c1cce5ae2 --- /dev/null +++ b/stepmania/src/crypto51/sha.h @@ -0,0 +1,72 @@ +#ifndef CRYPTOPP_SHA_H +#define CRYPTOPP_SHA_H + +#include "iterhash.h" + +NAMESPACE_BEGIN(CryptoPP) + +/// SHA-1 +class SHA : public IteratedHashWithStaticTransform +{ +public: + enum {DIGESTSIZE = 20}; + SHA() : IteratedHashWithStaticTransform(DIGESTSIZE) {Init();} + static void Transform(word32 *digest, const word32 *data); + static const char *StaticAlgorithmName() {return "SHA-1";} + +protected: + void Init(); +}; + +typedef SHA SHA1; + +//! implements the SHA-256 standard +class SHA256 : public IteratedHashWithStaticTransform +{ +public: + enum {DIGESTSIZE = 32}; + SHA256() : IteratedHashWithStaticTransform(DIGESTSIZE) {Init();} + static void Transform(word32 *digest, const word32 *data); + static const char *StaticAlgorithmName() {return "SHA-256";} + +protected: + void Init(); + + static const word32 K[64]; +}; + +#ifdef WORD64_AVAILABLE + +//! implements the SHA-512 standard +class SHA512 : public IteratedHashWithStaticTransform +{ +public: + enum {DIGESTSIZE = 64}; + SHA512() : IteratedHashWithStaticTransform(DIGESTSIZE) {Init();} + static void Transform(word64 *digest, const word64 *data); + static const char *StaticAlgorithmName() {return "SHA-512";} + +protected: + void Init(); + + static const word64 K[80]; +}; + +//! implements the SHA-384 standard +class SHA384 : public IteratedHashWithStaticTransform +{ +public: + enum {DIGESTSIZE = 48}; + SHA384() : IteratedHashWithStaticTransform(64) {Init();} + unsigned int DigestSize() const {return DIGESTSIZE;}; + static const char *StaticAlgorithmName() {return "SHA-384";} + +protected: + void Init(); +}; + +#endif + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/simple.h b/stepmania/src/crypto51/simple.h new file mode 100644 index 0000000000..e26cefd40f --- /dev/null +++ b/stepmania/src/crypto51/simple.h @@ -0,0 +1,230 @@ +// simple.h - written and placed in the public domain by Wei Dai +/*! \file + Simple non-interface classes derived from classes in cryptlib.h. +*/ + +#ifndef CRYPTOPP_SIMPLE_H +#define CRYPTOPP_SIMPLE_H + +#include "cryptlib.h" +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +template +class AlgorithmImpl : public BASE +{ +public: + std::string AlgorithmName() const {return ALGORITHM_INFO::StaticAlgorithmName();} +}; + +//! . +class InvalidKeyLength : public InvalidArgument +{ +public: + explicit InvalidKeyLength(const std::string &algorithm, unsigned int length) : InvalidArgument(algorithm + ": " + IntToString(length) + " is not a valid key length") {} +}; + +//! . +class InvalidRounds : public InvalidArgument +{ +public: + explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {} +}; + +class HashTransformationWithDefaultTruncation : public HashTransformation +{ +public: + virtual void Final(byte *digest) =0; + void TruncatedFinal(byte *digest, unsigned int digestSize); +}; + +//! . +// TODO: look into this virtual inheritance +class ASN1CryptoMaterial : virtual public ASN1Object, virtual public CryptoMaterial +{ +public: + void Save(BufferedTransformation &bt) const + {BEREncode(bt);} + void Load(BufferedTransformation &bt) + {BERDecode(bt);} +}; + +// ***************************** + +template +class Bufferless : public T +{ +public: + Bufferless() {} + Bufferless(BufferedTransformation *q) : T(q) {} + bool IsolatedFlush(bool hardFlush, bool blocking) {return false;} +}; + +template +class Unflushable : public T +{ +public: + Unflushable() {} + Unflushable(BufferedTransformation *q) : T(q) {} + bool Flush(bool completeFlush, int propagation=-1, bool blocking=true) + {return ChannelFlush(NULL_CHANNEL, completeFlush, propagation);} + bool IsolatedFlush(bool hardFlush, bool blocking) + {assert(false); return false;} + bool ChannelFlush(const std::string &channel, bool hardFlush, int propagation=-1, bool blocking=true) + { + if (hardFlush && !InputBufferIsEmpty()) + throw CannotFlush("Unflushable: this object has buffered input that cannot be flushed"); + else + { + BufferedTransformation *attached = AttachedTransformation(); + return attached && propagation ? attached->ChannelFlush(channel, hardFlush, propagation-1, blocking) : false; + } + } + +protected: + virtual bool InputBufferIsEmpty() const {return false;} +}; + +template +class InputRejecting : public T +{ +public: + InputRejecting() {} + InputRejecting(BufferedTransformation *q) : T(q) {} + +protected: + struct InputRejected : public NotImplemented + {InputRejected() : NotImplemented("BufferedTransformation: this object doesn't allow input") {}}; + + // shouldn't be calling these functions on this class + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + {throw InputRejected();} + bool IsolatedFlush(bool, bool) {return false;} + bool IsolatedMessageSeriesEnd(bool) {throw InputRejected();} + + unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking) + {throw InputRejected();} + bool ChannelMessageSeriesEnd(const std::string &, int, bool) {throw InputRejected();} +}; + +template +class CustomSignalPropagation : public T +{ +public: + CustomSignalPropagation() {} + CustomSignalPropagation(BufferedTransformation *q) : T(q) {} + + virtual void Initialize(const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1) =0; + virtual bool Flush(bool hardFlush, int propagation=-1, bool blocking=true) =0; + +private: + void IsolatedInitialize(const NameValuePairs ¶meters) {assert(false);} + bool IsolatedFlush(bool hardFlush, bool blocking) {assert(false); return false;} +}; + +template +class Multichannel : public CustomSignalPropagation +{ +public: + Multichannel() {} + Multichannel(BufferedTransformation *q) : CustomSignalPropagation(q) {} + + void Initialize(const NameValuePairs ¶meters, int propagation) + {ChannelInitialize(NULL_CHANNEL, parameters, propagation);} + bool Flush(bool hardFlush, int propagation=-1, bool blocking=true) + {return ChannelFlush(NULL_CHANNEL, hardFlush, propagation, blocking);} + bool MessageSeriesEnd(int propagation=-1, bool blocking=true) + {return ChannelMessageSeriesEnd(NULL_CHANNEL, propagation, blocking);} + byte * CreatePutSpace(unsigned int &size) + {return ChannelCreatePutSpace(NULL_CHANNEL, size);} + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + {return ChannelPut2(NULL_CHANNEL, begin, length, messageEnd, blocking);} + unsigned int PutModifiable2(byte *inString, unsigned int length, int messageEnd, bool blocking) + {return ChannelPutModifiable2(NULL_CHANNEL, inString, length, messageEnd, blocking);} + +// void ChannelMessageSeriesEnd(const std::string &channel, int propagation=-1) +// {PropagateMessageSeriesEnd(propagation, channel);} + byte * ChannelCreatePutSpace(const std::string &channel, unsigned int &size) + {size = 0; return NULL;} + bool ChannelPutModifiable(const std::string &channel, byte *inString, unsigned int length) + {ChannelPut(channel, inString, length); return false;} + + virtual unsigned int ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking) =0; + unsigned int ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking) + {return ChannelPut2(channel, begin, length, messageEnd, blocking);} + + virtual void ChannelInitialize(const std::string &channel, const NameValuePairs ¶meters=g_nullNameValuePairs, int propagation=-1) =0; + virtual bool ChannelFlush(const std::string &channel, bool hardFlush, int propagation=-1, bool blocking=true) =0; +}; + +template +class AutoSignaling : public T +{ +public: + AutoSignaling(int propagation=-1) : m_autoSignalPropagation(propagation) {} + AutoSignaling(BufferedTransformation *q, int propagation=-1) : T(q), m_autoSignalPropagation(propagation) {} + + void SetAutoSignalPropagation(int propagation) + {m_autoSignalPropagation = propagation;} + int GetAutoSignalPropagation() const + {return m_autoSignalPropagation;} + +private: + int m_autoSignalPropagation; +}; + +//! A BufferedTransformation that only contains pre-existing data as "output" +class Store : public AutoSignaling > +{ +public: + Store() : m_messageEnd(false) {} + + void IsolatedInitialize(const NameValuePairs ¶meters) + { + m_messageEnd = false; + StoreInitialize(parameters); + } + + unsigned int NumberOfMessages() const {return m_messageEnd ? 0 : 1;} + bool GetNextMessage(); + unsigned int CopyMessagesTo(BufferedTransformation &target, unsigned int count=UINT_MAX, const std::string &channel=NULL_CHANNEL) const; + +protected: + virtual void StoreInitialize(const NameValuePairs ¶meters) =0; + + bool m_messageEnd; +}; + +//! A BufferedTransformation that doesn't produce any retrievable output +class Sink : public BufferedTransformation +{ +protected: + // make these functions protected to help prevent unintentional calls to them + BufferedTransformation::Get; + BufferedTransformation::Peek; + BufferedTransformation::TransferTo; + BufferedTransformation::CopyTo; + BufferedTransformation::CopyRangeTo; + BufferedTransformation::TransferMessagesTo; + BufferedTransformation::CopyMessagesTo; + BufferedTransformation::TransferAllTo; + BufferedTransformation::CopyAllTo; + unsigned int TransferTo2(BufferedTransformation &target, unsigned long &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true) + {transferBytes = 0; return 0;} + unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const + {return 0;} +}; + +class BitBucket : public Bufferless +{ +public: + std::string AlgorithmName() const {return "BitBucket";} + void IsolatedInitialize(const NameValuePairs ¶meters) {} + unsigned int Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking) + {return 0;} +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/smartptr.h b/stepmania/src/crypto51/smartptr.h new file mode 100644 index 0000000000..00dab21042 --- /dev/null +++ b/stepmania/src/crypto51/smartptr.h @@ -0,0 +1,215 @@ +#ifndef CRYPTOPP_SMARTPTR_H +#define CRYPTOPP_SMARTPTR_H + +#include "config.h" +#include + +NAMESPACE_BEGIN(CryptoPP) + +template class member_ptr +{ +public: + explicit member_ptr(T *p = NULL) : m_p(p) {} + + ~member_ptr(); + + const T& operator*() const { return *m_p; } + T& operator*() { return *m_p; } + + const T* operator->() const { return m_p; } + T* operator->() { return m_p; } + + const T* get() const { return m_p; } + T* get() { return m_p; } + + T* release() + { + T *old_p = m_p; + m_p = 0; + return old_p; + } + + void reset(T *p = 0); + +protected: + member_ptr(const member_ptr& rhs); // copy not allowed + void operator=(const member_ptr& rhs); // assignment not allowed + + T *m_p; +}; + +template member_ptr::~member_ptr() {delete m_p;} +template void member_ptr::reset(T *p) {delete m_p; m_p = p;} + +// ******************************************************** + +template class value_ptr : public member_ptr +{ +public: + value_ptr(const T &obj) : member_ptr(new T(obj)) {} + value_ptr(T *p = NULL) : member_ptr(p) {} + value_ptr(const value_ptr& rhs) + : member_ptr(rhs.m_p ? new T(*rhs.m_p) : NULL) {} + + value_ptr& operator=(const value_ptr& rhs); + bool operator==(const value_ptr& rhs) + { + return (!m_p && !rhs.m_p) || (m_p && rhs.m_p && *m_p == *rhs.m_p); + } +}; + +template value_ptr& value_ptr::operator=(const value_ptr& rhs) +{ + T *old_p = m_p; + m_p = rhs.m_p ? new T(*rhs.m_p) : NULL; + delete old_p; + return *this; +} + +// ******************************************************** + +template class clonable_ptr : public member_ptr +{ +public: + clonable_ptr(const T &obj) : member_ptr(obj.Clone()) {} + clonable_ptr(T *p = NULL) : member_ptr(p) {} + clonable_ptr(const clonable_ptr& rhs) + : member_ptr(rhs.m_p ? rhs.m_p->Clone() : NULL) {} + + clonable_ptr& operator=(const clonable_ptr& rhs); +}; + +template clonable_ptr& clonable_ptr::operator=(const clonable_ptr& rhs) +{ + T *old_p = m_p; + m_p = rhs.m_p ? rhs.m_p->Clone() : NULL; + delete old_p; + return *this; +} + +// ******************************************************** + +template class counted_ptr +{ +public: + explicit counted_ptr(T *p = 0); + counted_ptr(const T &r) : m_p(0) {attach(r);} + counted_ptr(const counted_ptr& rhs); + + ~counted_ptr(); + + const T& operator*() const { return *m_p; } + T& operator*() { return *m_p; } + + const T* operator->() const { return m_p; } + T* operator->() { return get(); } + + const T* get() const { return m_p; } + T* get(); + + void attach(const T &p); + + counted_ptr & operator=(const counted_ptr& rhs); + +private: + T *m_p; +}; + +template counted_ptr::counted_ptr(T *p) + : m_p(p) +{ + if (m_p) + m_p->m_referenceCount = 1; +} + +template counted_ptr::counted_ptr(const counted_ptr& rhs) + : m_p(rhs.m_p) +{ + if (m_p) + m_p->m_referenceCount++; +} + +template counted_ptr::~counted_ptr() +{ + if (m_p && --m_p->m_referenceCount == 0) + delete m_p; +} + +template void counted_ptr::attach(const T &r) +{ + if (m_p && --m_p->m_referenceCount == 0) + delete m_p; + if (r.m_referenceCount == 0) + { + m_p = r.clone(); + m_p->m_referenceCount = 1; + } + else + { + m_p = const_cast(&r); + m_p->m_referenceCount++; + } +} + +template T* counted_ptr::get() +{ + if (m_p && m_p->m_referenceCount > 1) + { + T *temp = m_p->clone(); + m_p->m_referenceCount--; + m_p = temp; + m_p->m_referenceCount = 1; + } + return m_p; +} + +template counted_ptr & counted_ptr::operator=(const counted_ptr& rhs) +{ + if (m_p != rhs.m_p) + { + if (m_p && --m_p->m_referenceCount == 0) + delete m_p; + m_p = rhs.m_p; + if (m_p) + m_p->m_referenceCount++; + } + return *this; +} + +// ******************************************************** + +template class vector_member_ptrs +{ +public: + vector_member_ptrs(unsigned int size=0) + : _size(size) {ptr = new member_ptr[_size];} + ~vector_member_ptrs() + {delete [] ptr;} + + member_ptr& operator[](unsigned int index) + {assert(index<_size); return ptr[index];} + const member_ptr& operator[](unsigned int index) const + {assert(index<_size); return ptr[index];} + + unsigned int size() const {return _size;} + void resize(unsigned int newSize) + { + member_ptr *newPtr = new member_ptr[newSize]; + for (unsigned int i=0; i &c); // copy not allowed + void operator=(const vector_member_ptrs &x); // assignment not allowed + + unsigned int _size; + member_ptr *ptr; +}; + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/strciphr.cpp b/stepmania/src/crypto51/strciphr.cpp new file mode 100644 index 0000000000..d948c57920 --- /dev/null +++ b/stepmania/src/crypto51/strciphr.cpp @@ -0,0 +1,188 @@ +// strciphr.cpp - written and placed in the public domain by Wei Dai + +#include "pch.h" +#include "strciphr.h" + +NAMESPACE_BEGIN(CryptoPP) + +template +byte AdditiveCipherTemplate::GenerateByte() +{ + PolicyInterface &policy = AccessPolicy(); + + if (m_leftOver == 0) + { + policy.WriteKeystream(m_buffer, policy.GetIterationsToBuffer()); + m_leftOver = policy.GetBytesPerIteration(); + } + + return *(KeystreamBufferEnd()-m_leftOver--); +} + +template +inline void AdditiveCipherTemplate::ProcessData(byte *outString, const byte *inString, unsigned int length) +{ + if (m_leftOver > 0) + { + unsigned int len = STDMIN(m_leftOver, length); + xorbuf(outString, inString, KeystreamBufferEnd()-m_leftOver, len); + length -= len; + m_leftOver -= len; + inString += len; + outString += len; + } + + if (!length) + return; + + assert(m_leftOver == 0); + + PolicyInterface &policy = AccessPolicy(); + unsigned int bytesPerIteration = policy.GetBytesPerIteration(); + unsigned int alignment = policy.GetAlignment(); + + if (policy.CanOperateKeystream() && length >= bytesPerIteration && IsAlignedOn(outString, alignment)) + { + if (IsAlignedOn(inString, alignment)) + policy.OperateKeystream(XOR_KEYSTREAM, outString, inString, length / bytesPerIteration); + else + { + memcpy(outString, inString, length); + policy.OperateKeystream(XOR_KEYSTREAM_INPLACE, outString, outString, length / bytesPerIteration); + } + inString += length - length % bytesPerIteration; + outString += length - length % bytesPerIteration; + length %= bytesPerIteration; + + if (!length) + return; + } + + unsigned int bufferByteSize = GetBufferByteSize(policy); + unsigned int bufferIterations = policy.GetIterationsToBuffer(); + + while (length >= bufferByteSize) + { + policy.WriteKeystream(m_buffer, bufferIterations); + xorbuf(outString, inString, KeystreamBufferBegin(), bufferByteSize); + length -= bufferByteSize; + inString += bufferByteSize; + outString += bufferByteSize; + } + + if (length > 0) + { + policy.WriteKeystream(m_buffer, bufferIterations); + xorbuf(outString, inString, KeystreamBufferBegin(), length); + m_leftOver = bytesPerIteration - length; + } +} + +template +void AdditiveCipherTemplate::Resynchronize(const byte *iv) +{ + PolicyInterface &policy = AccessPolicy(); + m_leftOver = 0; + m_buffer.New(GetBufferByteSize(policy)); + policy.CipherResynchronize(m_buffer, iv); +} + +template +void AdditiveCipherTemplate::Seek(dword position) +{ + PolicyInterface &policy = AccessPolicy(); + unsigned int bytesPerIteration = policy.GetBytesPerIteration(); + + policy.SeekToIteration(position / bytesPerIteration); + position %= bytesPerIteration; + + if (position > 0) + { + policy.WriteKeystream(m_buffer, 1); + m_leftOver = bytesPerIteration - (unsigned int)position; + } + else + m_leftOver = 0; +} + +template +void CFB_CipherTemplate::Resynchronize(const byte *iv) +{ + PolicyInterface &policy = AccessPolicy(); + policy.CipherResynchronize(iv); + m_leftOver = policy.GetBytesPerIteration(); +} + +template +void CFB_CipherTemplate::ProcessData(byte *outString, const byte *inString, unsigned int length) +{ + PolicyInterface &policy = AccessPolicy(); + unsigned int bytesPerIteration = policy.GetBytesPerIteration(); + unsigned int alignment = policy.GetAlignment(); + byte *reg = policy.GetRegisterBegin(); + + if (m_leftOver) + { + unsigned int len = STDMIN(m_leftOver, length); + CombineMessageAndShiftRegister(outString, reg + bytesPerIteration - m_leftOver, inString, len); + m_leftOver -= len; + length -= len; + inString += len; + outString += len; + } + + if (!length) + return; + + assert(m_leftOver == 0); + + if (policy.CanIterate() && length >= bytesPerIteration && IsAlignedOn(outString, alignment)) + { + if (IsAlignedOn(inString, alignment)) + policy.Iterate(outString, inString, GetCipherDir(*this), length / bytesPerIteration); + else + { + memcpy(outString, inString, length); + policy.Iterate(outString, outString, GetCipherDir(*this), length / bytesPerIteration); + } + inString += length - length % bytesPerIteration; + outString += length - length % bytesPerIteration; + length %= bytesPerIteration; + } + + while (length >= bytesPerIteration) + { + policy.TransformRegister(); + CombineMessageAndShiftRegister(outString, reg, inString, bytesPerIteration); + length -= bytesPerIteration; + inString += bytesPerIteration; + outString += bytesPerIteration; + } + + if (length > 0) + { + policy.TransformRegister(); + CombineMessageAndShiftRegister(outString, reg, inString, length); + m_leftOver = bytesPerIteration - length; + } +} + +template +void CFB_EncryptionTemplate::CombineMessageAndShiftRegister(byte *output, byte *reg, const byte *message, unsigned int length) +{ + xorbuf(reg, message, length); + memcpy(output, reg, length); +} + +template +void CFB_DecryptionTemplate::CombineMessageAndShiftRegister(byte *output, byte *reg, const byte *message, unsigned int length) +{ + for (unsigned int i=0; i, AdditiveCipherTemplate<> > > Encryption; + + AdditiveCipherTemplate and CFB_CipherTemplate are designed so that they don't need + to take a policy class as a template parameter (although this is allowed), so that + their code is not duplicated for each new cipher. Instead they each + get a reference to an abstract policy interface by calling AccessPolicy() on itself, so + AccessPolicy() must be overriden to return the actual policy reference. This is done + by the ConceretePolicyHolder class. Finally, SymmetricCipherFinalTemplate implements the constructors and + other functions that must be implemented by the most derived class. +*/ + +#ifndef CRYPTOPP_STRCIPHR_H +#define CRYPTOPP_STRCIPHR_H + +#include "seckey.h" +#include "secblock.h" + +NAMESPACE_BEGIN(CryptoPP) + +template +class AbstractPolicyHolder : public BASE +{ +public: + typedef POLICY_INTERFACE PolicyInterface; + +protected: + virtual const POLICY_INTERFACE & GetPolicy() const =0; + virtual POLICY_INTERFACE & AccessPolicy() =0; +}; + +template +class ConcretePolicyHolder : public BASE, protected POLICY +{ +protected: + const POLICY_INTERFACE & GetPolicy() const {return *this;} + POLICY_INTERFACE & AccessPolicy() {return *this;} +}; + +enum KeystreamOperation {WRITE_KEYSTREAM, XOR_KEYSTREAM, XOR_KEYSTREAM_INPLACE}; + +struct AdditiveCipherAbstractPolicy +{ + virtual unsigned int GetAlignment() const =0; + virtual unsigned int GetBytesPerIteration() const =0; + virtual unsigned int GetIterationsToBuffer() const =0; + virtual void WriteKeystream(byte *keystreamBuffer, unsigned int iterationCount) =0; + virtual bool CanOperateKeystream() const {return false;} + virtual void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, unsigned int iterationCount) {assert(false);} + virtual void CipherSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) =0; + virtual void CipherResynchronize(byte *keystreamBuffer, const byte *iv) {throw NotImplemented("StreamTransformation: this object doesn't support resynchronization");} + virtual bool IsRandomAccess() const =0; + virtual void SeekToIteration(dword iterationCount) {assert(!IsRandomAccess()); throw NotImplemented("StreamTransformation: this object doesn't support random access");} +}; + +template +struct AdditiveCipherConcretePolicy : public BASE +{ + typedef WT WordType; + + unsigned int GetAlignment() const {return sizeof(WordType);} + unsigned int GetBytesPerIteration() const {return sizeof(WordType) * W;} + unsigned int GetIterationsToBuffer() const {return X;} + void WriteKeystream(byte *buffer, unsigned int iterationCount) + {OperateKeystream(WRITE_KEYSTREAM, buffer, NULL, iterationCount);} + bool CanOperateKeystream() const {return true;} + virtual void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, unsigned int iterationCount) =0; + + template + struct KeystreamOutput + { + KeystreamOutput(KeystreamOperation operation, byte *output, const byte *input) + : m_operation(operation), m_output(output), m_input(input) {} + + inline KeystreamOutput & operator()(WordType keystreamWord) + { + assert(IsAligned(m_input)); + assert(IsAligned(m_output)); + + if (!NativeByteOrderIs(B::ToEnum())) + keystreamWord = ByteReverse(keystreamWord); + + if (m_operation == WRITE_KEYSTREAM) + *(WordType*)m_output = keystreamWord; + else if (m_operation == XOR_KEYSTREAM) + { + *(WordType*)m_output = keystreamWord ^ *(WordType*)m_input; + m_input += sizeof(WordType); + } + else if (m_operation == XOR_KEYSTREAM_INPLACE) + *(WordType*)m_output ^= keystreamWord; + + m_output += sizeof(WordType); + + return *this; + } + + KeystreamOperation m_operation; + byte *m_output; + const byte *m_input; + }; +}; + +template > > +class AdditiveCipherTemplate : public BASE +{ +public: + byte GenerateByte(); + void ProcessData(byte *outString, const byte *inString, unsigned int length); + void Resynchronize(const byte *iv); + unsigned int OptimalBlockSize() const {return GetPolicy().GetBytesPerIteration();} + unsigned int GetOptimalNextBlockSize() const {return m_leftOver;} + unsigned int OptimalDataAlignment() const {return GetPolicy().GetAlignment();} + bool IsSelfInverting() const {return true;} + bool IsForwardTransformation() const {return true;} + bool IsRandomAccess() const {return GetPolicy().IsRandomAccess();} + void Seek(dword position); + + typedef typename BASE::PolicyInterface PolicyInterface; + +protected: + void UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length); + + unsigned int GetBufferByteSize(const PolicyInterface &policy) const {return policy.GetBytesPerIteration() * policy.GetIterationsToBuffer();} + + inline byte * KeystreamBufferBegin() {return m_buffer.data();} + inline byte * KeystreamBufferEnd() {return (m_buffer.data() + m_buffer.size());} + + SecByteBlock m_buffer; + unsigned int m_leftOver; +}; + +struct CFB_CipherAbstractPolicy +{ + virtual unsigned int GetAlignment() const =0; + virtual unsigned int GetBytesPerIteration() const =0; + virtual byte * GetRegisterBegin() =0; + virtual void TransformRegister() =0; + virtual bool CanIterate() const {return false;} + virtual void Iterate(byte *output, const byte *input, CipherDir dir, unsigned int iterationCount) {assert(false);} + virtual void CipherSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) =0; + virtual void CipherResynchronize(const byte *iv) {throw NotImplemented("StreamTransformation: this object doesn't support resynchronization");} +}; + +template +struct CFB_CipherConcretePolicy : public BASE +{ + typedef WT WordType; + + unsigned int GetAlignment() const {return sizeof(WordType);} + unsigned int GetBytesPerIteration() const {return sizeof(WordType) * W;} + bool CanIterate() const {return true;} + void TransformRegister() {Iterate(NULL, NULL, ENCRYPTION, 1);} + + template + struct RegisterOutput + { + RegisterOutput(byte *output, const byte *input, CipherDir dir) + : m_output(output), m_input(input), m_dir(dir) {} + + inline RegisterOutput& operator()(WordType ®isterWord) + { + assert(IsAligned(m_output)); + assert(IsAligned(m_input)); + + if (!NativeByteOrderIs(B::ToEnum())) + registerWord = ByteReverse(registerWord); + + if (m_dir == ENCRYPTION) + { + WordType ct = *(const WordType *)m_input ^ registerWord; + registerWord = ct; + *(WordType*)m_output = ct; + m_input += sizeof(WordType); + m_output += sizeof(WordType); + } + else + { + WordType ct = *(const WordType *)m_input; + *(WordType*)m_output = registerWord ^ ct; + registerWord = ct; + m_input += sizeof(WordType); + m_output += sizeof(WordType); + } + + // registerWord is left unreversed so it can be xor-ed with further input + + return *this; + } + + byte *m_output; + const byte *m_input; + CipherDir m_dir; + }; +}; + +template +class CFB_CipherTemplate : public BASE +{ +public: + void ProcessData(byte *outString, const byte *inString, unsigned int length); + void Resynchronize(const byte *iv); + unsigned int OptimalBlockSize() const {return GetPolicy().GetBytesPerIteration();} + unsigned int GetOptimalNextBlockSize() const {return m_leftOver;} + unsigned int OptimalDataAlignment() const {return GetPolicy().GetAlignment();} + bool IsRandomAccess() const {return false;} + bool IsSelfInverting() const {return false;} + + typedef typename BASE::PolicyInterface PolicyInterface; + +protected: + virtual void CombineMessageAndShiftRegister(byte *output, byte *reg, const byte *message, unsigned int length) =0; + + void UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length); + + unsigned int m_leftOver; +}; + +template > +class CFB_EncryptionTemplate : public CFB_CipherTemplate +{ + bool IsForwardTransformation() const {return true;} + void CombineMessageAndShiftRegister(byte *output, byte *reg, const byte *message, unsigned int length); +}; + +template > +class CFB_DecryptionTemplate : public CFB_CipherTemplate +{ + bool IsForwardTransformation() const {return false;} + void CombineMessageAndShiftRegister(byte *output, byte *reg, const byte *message, unsigned int length); +}; + +template +class SymmetricCipherFinalTemplate : public AlgorithmImpl, INFO> +{ +public: + SymmetricCipherFinalTemplate() {} + SymmetricCipherFinalTemplate(const byte *key) + {SetKey(key, DEFAULT_KEYLENGTH);} + SymmetricCipherFinalTemplate(const byte *key, unsigned int length) + {SetKey(key, length);} + SymmetricCipherFinalTemplate(const byte *key, unsigned int length, const byte *iv) + {SetKey(key, length); Resynchronize(iv);} + + void SetKey(const byte *key, unsigned int length, const NameValuePairs ¶ms = g_nullNameValuePairs) + { + ThrowIfInvalidKeyLength(length); + UncheckedSetKey(params, key, length); + } + + Clonable * Clone() const {return static_cast(new SymmetricCipherFinalTemplate(*this));} +}; + +template +void AdditiveCipherTemplate::UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) +{ + PolicyInterface &policy = AccessPolicy(); + policy.CipherSetKey(params, key, length); + m_buffer.New(GetBufferByteSize(policy)); + m_leftOver = 0; +} + +template +void CFB_CipherTemplate::UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length) +{ + PolicyInterface &policy = AccessPolicy(); + policy.CipherSetKey(params, key, length); + m_leftOver = policy.GetBytesPerIteration(); +} + +NAMESPACE_END + +#endif diff --git a/stepmania/src/crypto51/test.cpp b/stepmania/src/crypto51/test.cpp new file mode 100644 index 0000000000..1b832192d0 --- /dev/null +++ b/stepmania/src/crypto51/test.cpp @@ -0,0 +1,166 @@ +// test.cpp - written and placed in the public domain by Wei Dai + +#include "sha.h" +#include "files.h" +#include "rng.h" +#include "rsa.h" +#include "randpool.h" + +#include +#include + +#ifdef CRYPTOPP_WIN32_AVAILABLE +#include +#endif + +#if (_MSC_VER >= 1000) +#include // for the debug heap +#endif + +#if defined(__MWERKS__) && defined(macintosh) +#include +#endif + +USING_NAMESPACE(CryptoPP) +USING_NAMESPACE(std) + +void GenerateRSAKey(unsigned int keyLength, const char *privFilename, const char *pubFilename, const char *seed); +string RSAEncryptString(const char *pubFilename, const char *seed, const char *message); +string RSADecryptString(const char *privFilename, const char *ciphertext); +void RSASignFile(const char *privFilename, const char *messageFilename, const char *signatureFilename); +bool RSAVerifyFile(const char *pubFilename, const char *messageFilename, const char *signatureFilename); + +int (*AdhocTest)(int argc, char *argv[]) = NULL; + +#ifdef __BCPLUSPLUS__ +int cmain(int argc, char *argv[]) +#elif defined(_MSC_VER) +int __cdecl main(int argc, char *argv[]) +#else +int main(int argc, char *argv[]) +#endif +{ +#ifdef _CRTDBG_LEAK_CHECK_DF + // Turn on leak-checking + int tempflag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG ); + tempflag |= _CRTDBG_LEAK_CHECK_DF; + _CrtSetDbgFlag( tempflag ); +#endif + +#if defined(__MWERKS__) && defined(macintosh) + argc = ccommand(&argv); +#endif + + try + { + std::string command, executableName, edcFilename; + + if (argc < 2) + command = 'h'; + else + command = argv[1]; + + switch (command[0]) + { + case 'g': + { + char seed[1024], privFilename[128], pubFilename[128]; + unsigned int keyLength; + + cout << "Key length in bits: "; + cin >> keyLength; + + cout << "\nSave private key to file: "; + cin >> privFilename; + + cout << "\nSave public key to file: "; + cin >> pubFilename; + + cout << "\nRandom Seed: "; + ws(cin); + cin.getline(seed, 1024); + + GenerateRSAKey(keyLength, privFilename, pubFilename, seed); + return 0; + } + case 'r': + { + switch (argv[1][1]) + { + case 's': + RSASignFile(argv[2], argv[3], argv[4]); + return 0; + case 'v': + { + bool verified = RSAVerifyFile(argv[2], argv[3], argv[4]); + cout << (verified ? "valid signature" : "invalid signature") << endl; + return 0; + } + } + } + default: + FileSource usage("usage.dat", true, new FileSink(cout)); + return 1; + } + } + catch(CryptoPP::Exception &e) + { + cout << "\nCryptoPP::Exception caught: " << e.what() << endl; + return -1; + } + catch(std::exception &e) + { + cout << "\nstd::exception caught: " << e.what() << endl; + return -2; + } +} + + +RandomPool & GlobalRNG() +{ + static RandomPool randomPool; + return randomPool; +} + +void GenerateRSAKey(unsigned int keyLength, const char *privFilename, const char *pubFilename, const char *seed) +{ + RandomPool randPool; + randPool.Put((byte *)seed, strlen(seed)); + + RSAES_PKCS1v15_Decryptor priv(randPool, keyLength); + FileSink privFile(privFilename); + priv.DEREncode(privFile); + privFile.MessageEnd(); + + RSAES_PKCS1v15_Encryptor pub(priv); + FileSink pubFile(pubFilename); + pub.DEREncode(pubFile); + pubFile.MessageEnd(); +} + +void RSASignFile(const char *privFilename, const char *messageFilename, const char *signatureFilename) +{ + FileSource privFile(privFilename, true); + RSASSA_PKCS1v15_SHA_Signer priv(privFile); + // RSASSA_PKCS1v15_SHA_Signer ignores the rng. Use a real RNG for other signature schemes! + FileSource f(messageFilename, true, new SignerFilter(GlobalRNG(), priv, new FileSink(signatureFilename))); +} + +bool RSAVerifyFile(const char *pubFilename, const char *messageFilename, const char *signatureFilename) +{ + FileSource pubFile(pubFilename, true); + RSASSA_PKCS1v15_SHA_Verifier pub(pubFile); + + FileSource signatureFile(signatureFilename, true); + if (signatureFile.MaxRetrievable() != pub.SignatureLength()) + return false; + SecByteBlock signature(pub.SignatureLength()); + signatureFile.Get(signature, signature.size()); + + VerifierFilter *verifierFilter = new VerifierFilter(pub); + verifierFilter->Put(signature, pub.SignatureLength()); + FileSource f(messageFilename, true, verifierFilter); + + return verifierFilter->GetLastResult(); +} + diff --git a/stepmania/src/crypto51/trdlocal.h b/stepmania/src/crypto51/trdlocal.h new file mode 100644 index 0000000000..f07b793766 --- /dev/null +++ b/stepmania/src/crypto51/trdlocal.h @@ -0,0 +1,45 @@ +#ifndef CRYPTOPP_TRDLOCAL_H +#define CRYPTOPP_TRDLOCAL_H + +#include "config.h" + +#ifdef THREADS_AVAILABLE + +#include "misc.h" + +#ifdef HAS_WINTHREADS +#include +typedef DWORD ThreadLocalIndexType; +#else +#include +typedef pthread_key_t ThreadLocalIndexType; +#endif + +NAMESPACE_BEGIN(CryptoPP) + +//! thread local storage +class ThreadLocalStorage : public NotCopyable +{ +public: + //! exception thrown by ThreadLocalStorage class + class Err : public OS_Error + { + public: + Err(const std::string& operation, int error); + }; + + ThreadLocalStorage(); + ~ThreadLocalStorage(); + + void SetValue(void *value); + void *GetValue() const; + +private: + ThreadLocalIndexType m_index; +}; + +NAMESPACE_END + +#endif // #ifdef THREADS_AVAILABLE + +#endif diff --git a/stepmania/src/crypto51/words.h b/stepmania/src/crypto51/words.h new file mode 100644 index 0000000000..8849b61071 --- /dev/null +++ b/stepmania/src/crypto51/words.h @@ -0,0 +1,103 @@ +#ifndef CRYPTOPP_WORDS_H +#define CRYPTOPP_WORDS_H + +#include "misc.h" + +NAMESPACE_BEGIN(CryptoPP) + +inline unsigned int CountWords(const word *X, unsigned int N) +{ + while (N && X[N-1]==0) + N--; + return N; +} + +inline void SetWords(word *r, word a, unsigned int n) +{ + for (unsigned int i=0; i> (WORD_BITS-shiftBits); + } + return carry; +} + +inline word ShiftWordsRightByBits(word *r, unsigned int n, unsigned int shiftBits) +{ + assert (shiftBits=0; i--) + { + u = r[i]; + r[i] = (u >> shiftBits) | carry; + carry = u << (WORD_BITS-shiftBits); + } + return carry; +} + +inline void ShiftWordsLeftByWords(word *r, unsigned int n, unsigned int shiftWords) +{ + shiftWords = STDMIN(shiftWords, n); + if (shiftWords) + { + for (unsigned int i=n-1; i>=shiftWords; i--) + r[i] = r[i-shiftWords]; + SetWords(r, 0, shiftWords); + } +} + +inline void ShiftWordsRightByWords(word *r, unsigned int n, unsigned int shiftWords) +{ + shiftWords = STDMIN(shiftWords, n); + if (shiftWords) + { + for (unsigned int i=0; i+shiftWords +#include + +#ifdef CRYPTOPP_WIN32_AVAILABLE +#include +#endif + +#if (_MSC_VER >= 1000) +#include // for the debug heap +#endif + +#if defined(__MWERKS__) && defined(macintosh) +#include +#endif + +USING_NAMESPACE(CryptoPP) +USING_NAMESPACE(std) + +bool RSAVerifyFile(const char *pubFilename, const char *messageFilename, const char *signatureFilename); + +int (*AdhocTest)(int argc, char *argv[]) = NULL; + +#ifdef __BCPLUSPLUS__ +int cmain(int argc, char *argv[]) +#elif defined(_MSC_VER) +int __cdecl main(int argc, char *argv[]) +#else +int main(int argc, char *argv[]) +#endif +{ +#ifdef _CRTDBG_LEAK_CHECK_DF + // Turn on leak-checking + int tempflag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG ); + tempflag |= _CRTDBG_LEAK_CHECK_DF; + _CrtSetDbgFlag( tempflag ); +#endif + +#if defined(__MWERKS__) && defined(macintosh) + argc = ccommand(&argv); +#endif + + try + { + std::string command, executableName, edcFilename; + + if (argc != 4) + { + cout << "\nUsage: RSAPubKeyData.exe publickey_fn data_fn signature_fn" << endl; + return -1; + } + + if( RSAVerifyFile(argv[2], argv[3], argv[4]) ) + { + cout << "The signature is valid." << endl; + } + else + { + cout << "The signature is not valid." << endl; + } + return 0; + } + catch(CryptoPP::Exception &e) + { + cout << "\nCryptoPP::Exception caught: " << e.what() << endl; + return -1; + } + catch(std::exception &e) + { + cout << "\nstd::exception caught: " << e.what() << endl; + return -2; + } +} + +bool RSAVerifyFile(const char *pubFilename, const char *messageFilename, const char *signatureFilename) +{ + FileSource pubFile(pubFilename, true); + RSASSA_PKCS1v15_SHA_Verifier pub(pubFile); + + FileSource signatureFile(signatureFilename, true); + if (signatureFile.MaxRetrievable() != pub.SignatureLength()) + return false; + SecByteBlock signature(pub.SignatureLength()); + signatureFile.Get(signature, signature.size()); + + VerifierFilter *verifierFilter = new VerifierFilter(pub); + verifierFilter->Put(signature, pub.SignatureLength()); + FileSource f(messageFilename, true, verifierFilter); + + return verifierFilter->GetLastResult(); +} + diff --git a/stepmania/src/verify_signature/csharp/VerifySignature.cs b/stepmania/src/verify_signature/csharp/VerifySignature.cs new file mode 100644 index 0000000000..4d0dc9e2d2 --- /dev/null +++ b/stepmania/src/verify_signature/csharp/VerifySignature.cs @@ -0,0 +1,395 @@ +// Based on http://www.jensign.com/VerifySignature/dotnet/JKeyNet/ +// Parameters: +// public_key - X.509 standard SubjectPublicKeyInfo key in binary format +// data_file - the data file whose signature to verify +// signature - the signature of data_file in binary format +using System; +using System.IO; +using System.Text; +using System.Security; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Runtime.InteropServices; + +namespace VerifySignature +{ + + //--- P/Invoke CryptoAPI wrapper classes ----- + public class Win32 + { + + [DllImport("crypt32.dll")] + public static extern bool CryptDecodeObject( + uint CertEncodingType, + uint lpszStructType, + byte[] pbEncoded, + uint cbEncoded, + uint flags, + [In, Out] byte[] pvStructInfo, + ref uint cbStructInfo); + + + [DllImport("crypt32.dll")] + public static extern bool CryptDecodeObject( + uint CertEncodingType, + uint lpszStructType, + byte[] pbEncoded, + uint cbEncoded, + uint flags, + IntPtr pvStructInfo, + ref uint cbStructInfo); + } + + + [StructLayout(LayoutKind.Sequential)] + public struct PUBKEYBLOBHEADERS + { + public byte bType; //BLOBHEADER + public byte bVersion; //BLOBHEADER + public short reserved; //BLOBHEADER + public uint aiKeyAlg; //BLOBHEADER + public uint magic; //RSAPUBKEY + public uint bitlen; //RSAPUBKEY + public uint pubexp; //RSAPUBKEY + } + + + [StructLayout(LayoutKind.Sequential)] + public struct CERT_PUBLIC_KEY_INFO + { + public IntPtr SubjPKIAlgpszObjId; + public int SubjPKIAlgParameterscbData; + public IntPtr SubjPKIAlgParameterspbData; + public int PublicKeycbData; + public IntPtr PublicKeypbData; + public int PublicKeycUnusedBits; + } + + + public class RSAPubKeyData + { + + const uint X509_ASN_ENCODING = 0x00000001; + const uint PKCS_7_ASN_ENCODING = 0x00010000; + + const uint RSA_CSP_PUBLICKEYBLOB = 19; + const uint X509_PUBLIC_KEY_INFO = 8; + + const int AT_KEYEXCHANGE = 1; //keyspec values + const int AT_SIGNATURE = 2; + static uint ENCODING_TYPE = PKCS_7_ASN_ENCODING | X509_ASN_ENCODING ; + + const byte PUBLICKEYBLOB = 0x06; + const byte CUR_BLOB_VERSION = 0x02; + const ushort reserved = 0x0000; + const uint CALG_RSA_KEYX = 0x0000a400; + const uint CALG_RSA_SIGN = 0x00002400; + + + private byte[] keyModulus; // big-Endian + private byte[] keyExponent; // big-Endian + private byte[] publicKeyBlob; //Microsoft PUBLICKEYBLOB format + private uint keySize; //modulus size in bits + private bool verbose = false; + + + public uint keysize + { + get{return keySize;} + } + + public byte[] keymodulus + { + get{return keyModulus;} + } + + public byte[] keyexponent + { + get{return keyExponent;} + } + + public byte[] MSpublickeyblob + { + get{return publicKeyBlob;} + } + + public static string readFile(string file) + { + string finalStr=""; + try + { + // Create an instance of StreamReader to read from a file. + // The using statement also closes the StreamReader. + using (StreamReader sr = new StreamReader(file)) + { + String line; + // Read and display lines from the file until the end of + // the file is reached. + while ((line = sr.ReadLine()) != null) + { + //Console.WriteLine(line); + finalStr = finalStr+line; + } + return finalStr; + } + } + catch (Exception e) + { + // Let the user know what went wrong. + Console.WriteLine("The file could not be read:"); + Console.WriteLine(e.Message); + } + return null; + } + + public static void Main(String[] args) + { + RSAPubKeyData orsakey = new RSAPubKeyData(); + + if(args.Length<3) + { + Console.WriteLine("\nUsage: RSAPubKeyData.exe public_key data_fn signature_fn"); + return; + } + + String publickeyfn = args[0]; + String datafn = args[1]; + String signaturefn = args[2]; + + if (!File.Exists(publickeyfn)) + { + Console.WriteLine("File '{0}' not found.", publickeyfn); + return; + } + if (!File.Exists(datafn)) + { + Console.WriteLine("File '{0}' not found.", datafn); + return; + } + if (!File.Exists(signaturefn)) + { + Console.WriteLine("File '{0}' not found.", signaturefn); + return; + } + + Console.WriteLine("\n\n-------- Trying to decode keyfile as X.509 SubjectPublicKeyInfo format --------"); + if(!orsakey.DecodeSubjectPublicKeyInfo(publickeyfn)) + { + Console.WriteLine("FAILED to decode as X.509 SubjectPublicKeyInfo"); + return; + } + + Console.WriteLine("Decoded successfully as X.509 SubjectPublicKeyInfo"); + + RSAParameters RSAKeyInfo = new RSAParameters(); + RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); + + RSAKeyInfo.Modulus = orsakey.keymodulus; + RSAKeyInfo.Exponent = orsakey.keyexponent; + RSA.ImportParameters(RSAKeyInfo); + + byte[] data = GetFileBytes(datafn); + byte[] signature = GetFileBytes(signaturefn); + + if(RSA.VerifyData(data,"SHA1",signature)) + { + Console.WriteLine("The signature is valid."); + } + else + { + Console.WriteLine("The signature is not valid."); + } + } + + + //---- RSAPublicKey, PKCS #1 format ----- + public bool DecodeRSAPublicKey(String RSAPublicKeyfile) + { + if (!File.Exists(RSAPublicKeyfile)) + return false; + byte[] encodeddata = GetFileBytes(RSAPublicKeyfile); + return DecodeRSAPublicKey(encodeddata); + } + + + + + //---- SubjectPublicKeyInfo, X.509 standard format; e.g. Java getEncoded(); OpenSSL exported etc. + // --- decode first to RSAPublicKey encoded format ---- + public bool DecodeSubjectPublicKeyInfo(String SubjectPublicKeyInfoFile) + { + if (!File.Exists(SubjectPublicKeyInfoFile)) + return false; + byte[] subjectpublickeydata = GetFileBytes(SubjectPublicKeyInfoFile); + + IntPtr pcertpublickeyinfo = IntPtr.Zero ; + uint cbytes=0; + if(Win32.CryptDecodeObject(ENCODING_TYPE, X509_PUBLIC_KEY_INFO, subjectpublickeydata, (uint)subjectpublickeydata.Length, 0, IntPtr.Zero, ref cbytes)) + { + pcertpublickeyinfo = Marshal.AllocHGlobal((int)cbytes); + Win32.CryptDecodeObject(ENCODING_TYPE, X509_PUBLIC_KEY_INFO, subjectpublickeydata, (uint)subjectpublickeydata.Length, 0, pcertpublickeyinfo, ref cbytes); + CERT_PUBLIC_KEY_INFO pkinfo = (CERT_PUBLIC_KEY_INFO) Marshal.PtrToStructure(pcertpublickeyinfo, typeof(CERT_PUBLIC_KEY_INFO) ); + IntPtr pencodeddata = pkinfo.PublicKeypbData; + int cblob = pkinfo.PublicKeycbData ; + byte[] encodeddata = new byte[cblob]; + Marshal.Copy(pencodeddata, encodeddata, 0,cblob) ; //copy bytes from IntPtr to byte[] + Marshal.FreeHGlobal(pcertpublickeyinfo) ; + return DecodeRSAPublicKey(encodeddata); + } + else + { + return false; + } + } + + + + + + //----- decode public key and extract modulus and exponent from RSAPublicKey, PKCS #1 format byte[] ---- + public bool DecodeRSAPublicKey(byte[] encodedpubkey) + { + byte[] publickeyblob ; + + uint blobbytes=0; + if(Win32.CryptDecodeObject(ENCODING_TYPE, RSA_CSP_PUBLICKEYBLOB, encodedpubkey, (uint)encodedpubkey.Length, 0, null, ref blobbytes)) + { + publickeyblob = new byte[blobbytes]; + if(Win32.CryptDecodeObject(ENCODING_TYPE, RSA_CSP_PUBLICKEYBLOB, encodedpubkey, (uint)encodedpubkey.Length, 0, publickeyblob, ref blobbytes)) + if(verbose) + showBytes("CryptoAPI publickeyblob", publickeyblob); + } + else + { + return false; + } + this.publicKeyBlob = publickeyblob; + return DecodeMSPublicKeyBlob(publickeyblob); + } + + + + //---- Microsoft PUBLICKEYBLOB format ----- + public bool DecodeMSPublicKeyBlob(String publickeyblobfile) + { + if (!File.Exists(publickeyblobfile)) + return false; + byte[] publickeyblobdata = GetFileBytes(publickeyblobfile); + return DecodeMSPublicKeyBlob(publickeyblobdata); + } + + + + //----- Microsoft PUBLICKEYBLOB format ---- + public bool DecodeMSPublicKeyBlob(byte[] publickeyblob) + { + PUBKEYBLOBHEADERS pkheaders = new PUBKEYBLOBHEADERS() ; + int headerslength = Marshal.SizeOf(pkheaders); + IntPtr buffer = Marshal.AllocHGlobal( headerslength); + Marshal.Copy( publickeyblob, 0, buffer, headerslength ); + pkheaders = (PUBKEYBLOBHEADERS) Marshal.PtrToStructure( buffer, typeof(PUBKEYBLOBHEADERS) ); + Marshal.FreeHGlobal( buffer ); + + //----- basic sanity check of PUBLICKEYBLOB fields ------------ + if(pkheaders.bType != PUBLICKEYBLOB) + return false; + if(pkheaders.bVersion != CUR_BLOB_VERSION) + return false; + if(pkheaders.aiKeyAlg != CALG_RSA_KEYX && pkheaders.aiKeyAlg != CALG_RSA_SIGN) + return false; + + if(verbose) + { + Console.WriteLine("\n ---- PUBLICKEYBLOB headers ------"); + Console.WriteLine(" btype {0}", pkheaders.bType); + Console.WriteLine(" bversion {0}", pkheaders.bVersion); + Console.WriteLine(" reserved {0}", pkheaders.reserved); + Console.WriteLine(" aiKeyAlg 0x{0:x8}", pkheaders.aiKeyAlg); + String magicstring = (new ASCIIEncoding()).GetString(BitConverter.GetBytes(pkheaders.magic)) ; + Console.WriteLine(" magic 0x{0:x8} '{1}'", pkheaders.magic, magicstring); + Console.WriteLine(" bitlen {0}", pkheaders.bitlen); + Console.WriteLine(" pubexp {0}", pkheaders.pubexp); + Console.WriteLine(" --------------------------------"); + } + //----- Get public key size in bits ------------- + this.keySize = pkheaders.bitlen; + + //----- Get public exponent ------------- + byte[] exponent = BitConverter.GetBytes(pkheaders.pubexp); //little-endian ordered + Array.Reverse(exponent); //convert to big-endian order + this.keyExponent = exponent; + if(verbose) + showBytes("\nPublic key exponent (big-endian order):", exponent); + + //----- Get modulus ------------- + int modulusbytes = (int)pkheaders.bitlen/8 ; + byte[] modulus = new byte[modulusbytes]; + try + { + Array.Copy(publickeyblob, headerslength, modulus, 0, modulusbytes); + Array.Reverse(modulus); //convert from little to big-endian ordering. + this.keyModulus = modulus; + if(verbose) + showBytes("\nPublic key modulus (big-endian order):", modulus); + } + catch(Exception) + { + Console.WriteLine("Problem getting modulus from publickeyblob"); + return false; + } + return true; + } + + + private static byte[] GetFileBytes(String filename) + { + if(!File.Exists(filename)) + return null; + Stream stream=new FileStream(filename,FileMode.Open); + int datalen = (int)stream.Length; + byte[] filebytes =new byte[datalen]; + stream.Seek(0,SeekOrigin.Begin); + stream.Read(filebytes,0,datalen); + stream.Close(); + return filebytes; + } + + + private void PutFileBytes(String outfile, byte[] data, int bytes) + { + FileStream fs = null; + if(bytes > data.Length) + { + Console.WriteLine("Too many bytes"); + return; + } + try + { + fs = new FileStream(outfile, FileMode.Create); + fs.Write(data, 0, bytes); + } + catch(Exception e) + { + Console.WriteLine(e.Message) ; + } + finally + { + fs.Close(); + } + } + + + private static void showBytes(String info, byte[] data) + { + Console.WriteLine("{0} [{1} bytes]", info, data.Length); + for(int i=1; i<=data.Length; i++) + { + Console.Write("{0:X2} ", data[i-1]) ; + if(i%16 == 0) + Console.WriteLine(); + } + Console.WriteLine(); + } + + } +} diff --git a/stepmania/src/verify_signature/java/VerifySignature.java b/stepmania/src/verify_signature/java/VerifySignature.java new file mode 100644 index 0000000000..9b958f56fb --- /dev/null +++ b/stepmania/src/verify_signature/java/VerifySignature.java @@ -0,0 +1,221 @@ +// Based on http://www.thecodeproject.com/useritems/Porting_Java_Public_Key.asp +// Parameters: +// public_key - X.509 standard SubjectPublicKeyInfo key in binary format +// data_file - the data file whose signature to verify +// signature - the signature of data_file in binary format + +/**

    Title: RSA Security

    +* Description: This class generates a RSA private and public key, reinstantiates +* the keys from the corresponding key files.It also generates compatible .Net Public Key, +* which we will read later in C# program using .Net Securtiy Framework +* The reinstantiated keys are used to sign and verify the given data.

    +* +* @author Shaheryar +* @version 1.0 +*/ + +import java.security.*; +import java.security.spec.*; +import java.io.*; +import java.security.interfaces.*; +import java.security.cert.*; +import javax.xml.transform.stream.*; +import javax.xml.transform.dom.*; +import javax.xml.transform.*; +import org.w3c.dom.*; +import javax.xml.parsers.*; + +public class VerifySignature { + + private KeyPairGenerator keyGen; //Key pair generator for RSA + public PrivateKey privateKey; // Private Key Class + public PublicKey publicKey; // Public Key Class + public KeyPair keypair; // KeyPair Class + private Signature sign; // Signature, used to sign the data + /** + * Default Constructor. Instantiates the key paths and signature algorithm. + */ + public VerifySignature() { + try { + + //Get the instance of Signature Engine. + sign = Signature.getInstance("SHA1withRSA"); + } + catch (NoSuchAlgorithmException nsa) { + System.out.println("" + nsa.getMessage()); + } + } + + /** + * Initializes the public and private keys. + */ + private void initializePublicKey(String publickey_fn) { + try { + //Read key files back and decode them from BASE64 + byte[] publicKeyBytes = readKeyBytesFromFile(publickey_fn); + + // Convert back to public and private key objects + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyBytes); + publicKey = keyFactory.generatePublic(publicKeySpec); + + } + catch (IOException io) { + System.out.println( + "Public/ Private Key File Not found."+ io.getCause()); + } + catch (InvalidKeySpecException e) { + System.out.println( + "Invalid Key Specs. Not valid Key files."+ e.getCause()); + } + catch (NoSuchAlgorithmException e) { + System.out.println( + "There is no such algorithm. Please check the JDK ver."+ e.getCause()); + } + } + + /** + * Verifies the signature for the given bytes using the public key. + * @param signature Signature + * @param data Data that was signed + * @return boolean True if valid signature else false + */ + public boolean verifySignature(String publickey_fn, byte[] signature, byte[] data) { + try { + initializePublicKey(publickey_fn); + sign.initVerify(publicKey); + sign.update(data); + return sign.verify(signature); + } + catch (SignatureException e) { + e.printStackTrace(); + } + catch (InvalidKeyException e) { + } + + return false; + } + + /** + * Returns the contents of the file in a byte array. + * @param fileName File Name + * @return byte[] Teh data read from a given file as a byte array. + */ + private byte[] readKeyBytesFromFile(String fileName) throws IOException{ + File file = new File(fileName); + InputStream is = new FileInputStream(file); + + // Get the size of the file + long length = file.length(); + + // You cannot create an array using a long type. + // It needs to be an int type. + // Before converting to an int type, check + // to ensure that file is not larger than Integer.MAX_VALUE. + if (length > Integer.MAX_VALUE) { + // File is too large + } + + // Create the byte array to hold the data + byte[] bytes = new byte[ (int) length]; + + // Read in the bytes + int offset = 0; + int numRead = 0; + while (offset < bytes.length + && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) { + offset += numRead; + } + + // Ensure all the bytes have been read in + if (offset < bytes.length) { + throw new IOException("Key File Error: Could not completely read file " + file.getName()); + } + + // Close the input stream and return bytes + is.close(); + return bytes; + + + } + + + public static void main(String args[]) + { + VerifySignature sm = new VerifySignature(); + + /* + Uncomment next line for first time when you run the code,it will generate the keys. + Afterwards,the application will read the generated key files from the given location. + If you want to generate the key files each time, then you should keep it uncommented always. + */ + if( args.length != 3 ) + { + System.out.println("\nUsage: RSAPubKeyData.exe publickey_fn data_fn signature_fn"); + return; + } + + + String publickeyfn = args[0]; + String datafn = args[1]; + String signaturefn = args[2]; + + + byte[] data = sm.readBytesFromFile(datafn); + byte[] signature = sm.readBytesFromFile(signaturefn); + + if( sm.verifySignature(publickeyfn,signature,data) ) + { + System.out.println("The signature is valid."); + } + else + { + System.out.println("The signature is not valid."); + } + } + + private byte[] readBytesFromFile(String fileName) + { + try + { + File file = new File(fileName); + InputStream is = new FileInputStream(file); + + // Get the size of the file + long length = file.length(); + + // You cannot create an array using a long type. + // It needs to be an int type. + // Before converting to an int type, check + // to ensure that file is not larger than Integer.MAX_VALUE. + if (length > Integer.MAX_VALUE) { + // File is too large + } + + // Create the byte array to hold the data + byte[] bytes = new byte[ (int) length]; + + // Read in the bytes + int offset = 0; + int numRead = 0; + while (offset < bytes.length + && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) { + offset += numRead; + } + + // Ensure all the bytes have been read in + if (offset < bytes.length) { + throw new IOException("Key File Error: Could not completely read file " + file.getName()); + } + + // Close the input stream and return bytes + is.close(); + return bytes; + }catch(IOException ioe) + { + System.out.println("Exception occured while writing file"+ioe.getMessage()); + } + byte[] bytes = new byte[ 1]; + return bytes; + } +} \ No newline at end of file

    ~9jD&JplzoP%; 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 z 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%0A!Yyfl2FWcRbWgDMNFFi zk-O&r{kNbCfL;*P9z4g)V9&lsnp19f$JnB6>V$n?`&Vw4KVQxkkvotBITM{MAsbyN;lcv@~39}wZ-|g~{qei$Xq*oL?cL&)m7ga!o074wi zNo7KXz$$lnm^PN?3=*WF;Tm}9<7t3qKUw@T&#!BlC(0pP?Uh(-mAo47r%c%Q>9#-T zcpS0s^Wu;rtNm$lH1_V!Kmdw$cm7f`w+a*yIo$geEYyFHd%&vEylmtkF;zfp?Wj?3 zB9N*XCQ0sGx*CKrYhRD^f-oU0*PE3PTLK&}g9Enx3?>bl!9)&=LB$qlF&Y{%b_TnX zE$s}xJ><)pY#FVy#$$=kphhc}%RdNmnJ9k}c=<_%qJr!$(Q3C4-xYFaFVPw?R?!rR zvKue|0*3tjW2$TZ5ee}H8YF(DEKZ1g74yjQDZ|aEn=6L4bDf>hRnIyeuK_gV9}7fj zo-cQ)oV9x9zzi)N8-TPLFI_R8C9yCkX5tJ-+Lfw&=LPRA5Hvrm_)d#i`J%Q(otwTS zx*nmsZ+OAF+kZW`s(UjyVO6&d=Xs&@95b#}oj-YEDL!C%cUZGA-?U~UO2|s!Os}Ll z8+VBk<}M&M!II`~4<*cxfb`ve^-%ueL!m0YoRvB)!YX35Q|Z|nZu(>ey z8X{=>7te6pwJlFh_avWYyh-Br>m!Uf}+UXP*!{2Ifqv@&xFekWnsi>TwX9-+)8-u=qy_>rT`^4MC-t~NBBn;8hQ zZRuiGX-n`z8Yi2Rp(&1wV06Wo5v{a3iw>x*#2X}6nI{tF3)FR&!TGkc@maiMt}M$o zJ{Kg&aN}JgO?M49-RTcNZ@Cjo$pr~EWu)m@Nw8;i{P}aff$KI$#V7YxP?5j3n}rWQ zhPx@V4CoF)9Y8w-T@9qQ9kYS1LH!O!pFdlA^tr~ta-)c~;1J>|7wtnf$`ubbLF8ws;{#tIMixcfnG&GcUU2+_0iOGpB_aKboqV z@rtP0E!5Y7T~@zW;rw0XZq(>PDY8A^9Gu8IotWIRCO(JGfH zA&y#RLsFKWAxg+r3CxhBxdU$yCCndzC^kv+XAfzkQ{!W!Q{!tH*Y{RZb}xc{j{JJLD*U#743c?EhsEP z<55uVMm%FFDDRi|nbrRwhy~@tf};C&SOsOl65l>ar-O1)P0vkDb^5&YC1-}kqb{d- zlzO?UW^Aul&vz957BIx3K#P25SQL)%c?dffPua@?;IDJpR*7lZUF-XKO>6!*oCox+ z7k48I2*pPW2vNeEi7+OAQrx#h30a+s8Id&C<1SG`);6ZNB+X9|MwBq+C>9!D!b8y- zKN~gGBKFId(1=eN3TdtzrV3%c6?0`JpWsnuxnZCLtt2~>X|@=Tq;ZnTP-#@+${%oe z1umpYWZG2VhMhKikkn{RNEGFz*m#p0gqL|vp4(h>FnT%44iEEOxWLaS$@dKzX0>B~ zvG^+oL=FeJ{mJhT!d+oyCCKEbnYj+%(4))}Rv~=L=qdM`*VIEwCegk(Ii3U+`E}|n zF#k*3EoE}hEEx|?`m|7TBI25fGi-)4b{?fnjwj@O%Kr}qQIq~eP(!E?t0N8b-mBXC z*TCmp#MVfM@6O3lrZL{Hsu^<()n_=xtAKTJWLUh^x=`}=Qmay6sZb~&sx^rcqG*`Z zN$D>mN|+nHL{FNxc_?9?1)^vq&2t_~$evyr-;vOo8ec54VghaM{{)SN3&8*4Zm9ym zLNXo&;J<~E6A{5TBY;0E&wLS>c=YdBwlz+f_AVe80LO zp6I9YiT)S`pMs%+Pn0lcAvu}EN$do#C}C*aFtL+T1c(x{T?|Dcshc`T7>xvtj~m=+ ze6a+7efFQqFz0!K+MDGE6_S1S4|GUGkO5%B%I}jGw*QTCI93MzlJy*m0ki^^|N)g9yg63RbL3^~gGt>BFIG$;I7P0JkRuaS?j z3{XI{3=paEXHu*3CsO6lL|5fcq{^S7p~{~~mA}SE<*)I@D+Ao>W5UY7u^>3V{%0Ae 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