From b02a5af1fe031e37a893e0b74271aab37070b395 Mon Sep 17 00:00:00 2001 From: Reggie Burnett Date: Fri, 25 Feb 2005 20:36:21 +0000 Subject: [PATCH] --- CHANGES | 621 +++++++++++++++++++++++++++++++++ COPYING | 343 ++++++++++++++++++ Client.build | 174 +++++++++ EXCEPTIONS | 99 ++++++ ICSharpCode.SharpZipLib.dll | Bin 0 -> 122880 bytes MySQLClient.Design.csproj | 241 +++++++++++++ MySQLClient.Design.csproj.user | 48 +++ MySQLClient.csproj.user | 48 +++ MySQLClient.sln | 49 +++ MySQLEULA.txt | 252 +++++++++++++ MySql.Data.csproj | 419 ++++++++++++++++++++++ MySqlClient.build | 152 ++++++++ README | 36 ++ commercial-banner.txt | 12 + gpl-banner.txt | 19 + 15 files changed, 2513 insertions(+) create mode 100644 CHANGES create mode 100644 COPYING create mode 100644 Client.build create mode 100644 EXCEPTIONS create mode 100644 ICSharpCode.SharpZipLib.dll create mode 100644 MySQLClient.Design.csproj create mode 100644 MySQLClient.Design.csproj.user create mode 100644 MySQLClient.csproj.user create mode 100644 MySQLClient.sln create mode 100644 MySQLEULA.txt create mode 100644 MySql.Data.csproj create mode 100644 MySqlClient.build create mode 100644 README create mode 100644 commercial-banner.txt create mode 100644 gpl-banner.txt diff --git a/CHANGES b/CHANGES new file mode 100644 index 0000000..fdf499f --- /dev/null +++ b/CHANGES @@ -0,0 +1,621 @@ +1-20-05 - Version 1.0.4 + + Bug #7243 calling prepare causing exception [fixed] + Fixed another small problem with prepared statements + Bug #7258 MySqlCommand.Connection returns an IDbConnection [fixed] + Bug #7345 MySqlAdapter.Fill method throws Error message : Non-negative number required [fixed] + Bug #7478 Clone method bug in MySqlCommand [fixed] + Bug #7612 MySqlDataReader.GetString(index) returns non-Null value when field is Null [fixed] + Bug #7755 MySqlReader.GetInt32 throws exception if column is unsigned [fixed] + Bug #7704 GetBytes is working no more [fixed] + Bug #7724 Quote character \222 not quoted in EscapeString [fixed] + Fixed problem that causes named pipes to not work with some blob functionality + Fixed problem with shared memory connections + Bug #7436 Problem with Multiple resultsets... [fixed] + Added or filled out several more topics in the API reference documentation + +12-10-04 - Version 1.0.3-gamma + + - Made MySQL the default named pipe name + - Now SHOW COLLATION is used upon connection to retrieve the full list of charset ids + - Fixed Invalid character set index: 200 (Bug #6547) + - Installer now includes options to install into GAC and create Start Menu items + - Bug #6863 - Int64 Support in MySqlCommand Parameters [fixed] + - Connections now do not have to give a database on the connection string + - Bug #6770 - MySqlDataReader.GetChar(int i) throws IndexOutOfRange Exception [fixed] + - Fixed problem where multiple resultsets having different numbers of columns would cause a problem + - Bug #6983 Exception stack trace lost when re-throwing exceptions [fixed] + - Fixed major problem with detecting null values when using prepared statements + - Bug #6902 Errors in parsing stored procedure parameters [fixed] + - Bug #6668 Integer "out" parameter from stored procedure returned as string [fixed] + - Bug #7032 MySqlDateTime in Datatables sorting by Text, not Date. [fixed] + - Bug #7133 Invalid query string when using inout parameters [fixed] + - Bug #6831 Test suite fails with MySQL 4.0 because of case sensitivity of table names [fixed] + - Bug #7132 Inserting DateTime causes System.InvalidCastException to be thrown [fixed] + - Bug #6879 InvalidCast when using DATE_ADD-function [fixed] + - Bug #6634 An Open Connection has been Closed by the Host System [fixed] + - Added ServerThread property to MySqlConnection to expose server thread id + - Added Ping method to MySqlConnection + - Changed the name of the test suite to MySql.Data.Tests.dll + +11-15-04 - Version 1.0.2-gamma + + - Fixed problem with MySqlBinary where string values could not be used to update extended text columns + - Fixed Installation directory ignored using custom installation (Bug #6329) + - Fixed problem where setting command text leaves the command in a prepared state + - Fixed double type handling in MySqlParameter(string parameterName, object value) (Bug #6428) + - Fixed Zero date "0000-00-00" is returned wrong when filling Dataset (Bug #6429) + - Fixed problem where calling stored procedures might cause an "Illegal mix of collations" problem. + - Added charset connection string option + - Fixed #HY000Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ (Bug #6322) + - Added the TableEditor CS and VB sample + - Fixed Charset-map for UCS-2 (Bug #6541) + - Updated the installer to include the new samples + - Fixed Long inserts take very long time (Bug #5453) + - Fixed Objects not being disposed (Bug #6649) + - Provider is now using character set specified by server as default + +10-27-04 - Version 1.0.1-beta 2 + + - Fixed BUG #5602 Possible bug in MySqlParameter(string, object) constructor + - Fixed BUG #5458 Calling GetChars on a longtext column throws an exception + - Fixed BUG #5474 cannot run a stored procedure populating mysqlcommand.parameters + - Fixed BUG #5469 Setting DbType throws NullReferenceException + - Fixed problem where connector was not issuing a CMD_QUIT before closing the socket + - Fixed BUG #5392 MySqlCommand sees "?" as parameters in string literals + - Fixed problem with ConnectionInternal where a key might be added more than once + - CP1252 is now used for Latin1 only when the server is 4.1.2 and later + - Fixed BUG #5388 DataReader reports all rows as NULL if one row is NULL + - Virtualized driver subsystem so future releases could easily support client or embedded server support + - Field buffers being reused to decrease memory allocations and increase speed + - Fixed problem where using old syntax while using the interfaces caused problems + - Using PacketWriter instead of Packet for writing to streams + - Refactored compression code into CompressedStream to clean up NativeDriver + - Added test case for resetting the command text on a prepared command + - Fixed problem where MySqlParameterCollection.Add() would throw unclear exception when given a null value (Bug #5621) + - Fixed construtor initialize problems in MySqlCommand() (Bug #5613) + - Fixed Parsing the ';' char (Bug #5876) + - Fixed missing Reference in DbType setter (Bug #5897) + - Fixed System.OverflowException when using YEAR datatype (Bug #6036) + - Added Aggregate function test (wasn't really a bug) + - Fixed serializing of floating point parameters (double, numeric, single, decimal) (Bug #5900) + - IsNullable error (Bug #5796) + - Fixed problem where connection lifetime on the connect string was not being respected + - Fixed problem where Min Pool Size was not being respected + - Fixed MySqlDataReader and 'show tables from ...' behaviour (Bug #5256) + - Implemented SequentialAccess + - Fixed MySqlDateTime sets IsZero property on all subseq.records after first zero found (Bug #6006) + - Fixed Can't display Chinese correctly (Bug #5288) + - Fixed Russian character support as well + - Fixed Method TokenizeSql() uses only a limited set of valid characters for parameters (Bug #6217) + - Fixed NET Connector source missing resx files (Bug #6216) + - Fixed DBNull Values causing problems with retrieving/updating queries. (Bug #5798) + - Fixed Yet Another "object reference not set to an instance of an object" (Bug #5496) + - Fixed problem in PacketReader where it could try to allocate the wrong buffer size in EnsureCapacity + - Fixed GetBoolean returns wrong values (Bug #6227) + - Fixed IndexOutOfBounds when reading BLOB with DataReader with GetString(index) (Bug #6230) + + +09-01-04 - Version 1.0.0-beta [released] + - Fixed BUG# 3889 Thai encoding not correctly supported + - Updated many of the test cases + - Fixed problem with using compression + - Bumped version number to 1.0.0 for beta 1 release + - Added COPYING.rtf file for use in installer + - Removed all of the XML comment warnings (I'll clean them up better later) + - Removed some last references to ByteFX + +08-30-04 - Version 0.9.0 + + - Added test fixture for prepared statements + - All type classes now implement a SerializeBinary method for sending their data to a PacketWriter + - Added PacketWriter class that will enable future low-memory large object handling + - Fixed many small bugs in running prepared statements and stored procedures + - Changed command so that an exception will not be throw in executing a stored procedure with parameters in old syntax mode + - SingleRow behavior now working right even with limit + - GetBytes now only works on binary columns + - Logger now truncates long sql commands so blob columns don't blow out our log + - host and database now have a default value of "" unless otherwise set + - FIXED BUG# 5214 Connection Timeout seems to be ignored + - Added test case for bug# 5051: GetSchema not working correctly + - Fixed problem where GetSchema would return false for IsUnique when the column is key + - MySqlDataReader GetXXX methods now using the field level MySqlValue object and not performing conversions + - FIXED BUG# 5097: DataReader returning NULL for time column + - Added test case for LOAD DATA LOCAL INFILE + - Added replacetext custom nant task + - Added CommandBuilderTest fixture + - Added Last One Wins feature to CommandBuilder + - Fixed persist security info case problem + - Fixed GetBool so that 1, true, "true", and "yes" all count as trueWL# 2024 Make parameter mark configurable + - Added the "old syntax" connection string parameter to allow use of @ parameter marker + - Fixed Bug #4658 MySqlCommandBuilder + - Fixed Bug #4864 ByteFX.MySqlClient caches passwords if 'Persist Security Info' is false + - Updated license banner in all source files to include FLOSS exception + - Added new .Types namespace and implementations for most current MySql types + - Added MySqlField41 as a subclass of MySqlField + - Changed many classes to now use the new .Types types + - Changed type enum int to Int32, short to Int16, and bigint to Int64 + - Added dummy types UInt16, UInt32, and UInt64 to allow an unsigned parameter to be made + - Connections are now reset when they are pulled from the connection pool + - Refactored auth code in driver so it can be used for both auth and reset + - Added UserReset test in PoolingTests.cs + - Connections are now reset using COM_CHANGE_USER when pulled from the pool + - Implemented SingleResultSet behavior + - Implemented support of unicode + - Added char set mappings for utf-8 and ucs-2 + - fixed Bug #4520 time fields overflow using bytefx .net mysql driver + - Modified time test in data type test fixture to check for time spans where hours > 24 + - Fixed Bug #4505 Wrong string with backslash escaping in ByteFx.Data.MySqlClient.MySqlParameter + - Added code to Parameter test case TestQuoting to test for backslashes + - Fixed Bug #4486 mysqlcommandbuilder fails with multi-word column names + - Fixed bug in TokenizeSql where underscore would terminate character capture in parameter name + - Added test case for spaces in column names + - Fixed bug# 4324 - MySqlDataReader.GetBytes don't works correctly + - Added GetBytes() test case to DataReader test fixture + - Now reading all server variables in InternalConnection.Configure into Hashtable + - Now using string[] for index map in CharSetMap + - Added CRInSQL test case for carriage returns in SQL + - setting maxPacketSize to default value in Driver.ctor + - Fixed bug #4442 - Setting MySqlDbType on a parameter doesn't set generic type + - Removed obsolete column types Long and LongLong + - Fixed bug# 4071 - Overflow exception thrown when using "use pipe" on connection string + - Changed "use pipe" keyword to "pipe name" or just "pipe" + - Allow reading multiple resultsets from a single query + - Added flags attribute to ServerStatusFlags enum + - Changed name of ServerStatus enum to ServerStatusFlags + - Fixed BUG #4386 - Inserted data row doesn't update properly + - Fixed bug #4074 - Error processing show create table + - Change Packet.ReadLenInteger to ReadPackedLong and added packet.ReadPackedInteger that alwasy reads integers packed with 2,3,4 + - Added syntax.cs test fixture to test various SQL syntax bugs + - Fixed bug# 4149 Improper handling of time values. Now time value of 00:00:00 is not treated as null. + - Moved all test suite files into TestSuite folder + - Fixed bug where null column would move the result packet pointer backward + - Added new nant build script + - Fixed BUG #3917 - clear tablename so it will be regen'ed properly during the next GenerateSchema. + - Fixed bug #3915 - GetValues was always returning zero and was also always trying to copy all fields rather than respecting the size of the array passed in. + - Implemented shared memory access protocol + - Implemented prepared statements for MySQL 4.1 + - Implemented stored procedures for MySQL 5.0 + - Renamed MySqlInternalConnection to InternalConnection + - SQL is now parsed as chars, fixes problems with other languages + - Added logging and allow batch connection string options + - Fixed bug #3888 - RowUpdating event not set when setting the DataAdapter property + - Fixed bug in char set mapping + - Implemented 4.1 authentication + - Improved open/auth code in driver + - Improved how connection bits are set during connection + - Database name is now passed to server during initial handshake + - Changed namespace for client to MySql.Data.MySqlClient + - Changed assembly name of client to MySql.Data.dll + - Changed license text in all source files to GPL + +================================================================== +Transition to BitKeeper complete +================================================================== +6/18/2004 +* Added the MySqlClient.build Nant file +* Removed the mono batch files +* Moved some of the unused files into notused folder so nant build file can use wildcards + +6/17/2004 (this note covers several weeks of work) +* Implemented shared memory accesss +* Major revamp in code structure +* Prepared statements now working for MySql 4.1.1 and later + +5/21/2004 +* Finished implementing auth for 4.0, 4.1.0, and 4.1.1 +* Changed namespace from MySQL.Data.MySQLClient back to MySql.Data.MySqlClient +* Fixed bug in CharSetMapping where it was trying to use text names as ints + +5/17/2004 (and changes up to this date) +* Changed namespace to MySQL.Data.MySQLClient +* Integrated auth changes from UC2004 + + +====================================================================== +ACQUIRED BY MYSQL +====================================================================== +3/17/2004 +Fixed bug where calling any of the GetXXX methods on a datareader before or after reading data would not throw +the appropriate exception (thanks Luca Morelli ) +Added TimeSpan code in parameter.cs to properly serialize a timespan object to mysql time format (thanks Gianluca Colombo ) + +3/16/2004 +Added TimeStamp to parameter serialization code. Prevented DataAdatper updates from working right (thanks MIchael King) + +3/14/2004 +Fixed a misspelling in MySqlHelper.cs (thanks Patrick Kristiansen) + +=============0.76 released=============================== + +3/12/2004 +MySql - Driver now using charset number given in handshake to create encoding + +3/11/2004 +MySql - Changed command editor to point to MySqlClient.Design + +3/4/2004 +Common - Fixed bug in Version.isAtLeast +Common - Changed DBConnectionString to support changes done to MySqlConnectionString +Common - Removed SqlCommandEditor and DataAdapterPreviewDialog + +3/3/2004 +MySql - Using new long return values in many places +MySql - Integrated new CompressedStream class + +3/2/2004 +MySql - Changed ConnectionString and added attributes to allow it to be used in MySqlClient.Design +MySql - Changed packet.cs to support newer lengths in ReadLenInteger +MySql - changed other classes to use new properties and fields of MySqlConnectionString +MySql - ConnectionInternal is now using PING to see if the server is alive + +3/1/2004 +MySql - Moved toolbox bitmaps into resource/ +MySql - Changed field.cs to allow values to come directly from row buffer + +2/25/2004 +MySql - Changed to use the new driver.Send syntax +MySql - Using a new packet queueing system +MySql - started work handling the "broken" compression packet handling + +2/20/2004 +Common - Fixed bug in StreamCreator where failure to connect to a host would continue +to loop infinitly (thanks Kevin Casella) + +2/8/2004 +MySql - Improved connectstring handling +MySql - Moved designers into Pro product + +2/4/2004 +MySql - Removed some old commented out code from command.cs +MySql - Fixed a problem with compression + +2/2/2004 +MySql - Fixed connection object where an exception throw prior to the connection opening would not leave + the connection in the connecting state (thanks Chris Cline ) + +1/31/2004 +MySql - Added GUID support +MySql - Fixed sequence out of order bug (thanks Mark Reay) + +=========================== 0.75 released ============================= + +1/26/2004 +MySql - Enum values now supported as parameter values (thanks Philipp Sumi) +1/22/2004 +MySql - Year datatype now supported + +1/21/2004 +MySql - fixed compression + +1/20/2004 +MySql - Fixed bug where a parameter with a TimeSpan as the value would not serialize properly +MySql,Common - Fixed bug where default ctor would not set default connection string values +MySql - Added some XML comments to some members +MySql - Work to fix/improve compression handling + +1/13/2004 +MySql,Common - Improved ConnectionString handling so that it better matches the standard set by SqlClient. +MySql - A MySqlException is now thrown if a username is not included in the connection string +MySql- Localhost is now used as the default if not specified on the connection string +MySql - An exception is now thrown if an attempt is made to set the connection string while the connection is open +MySql - Small changes to ConnectionString docs +MySql,common - Removed MultiHostStream and MySqlStream. Replaced it with Common/StreamCreator +MySql - Added support for Use Pipe connection string value +MySql - Added Platform class for easier access to platform utility functions +MySql - Fixed small pooling bug where new connection was not getting created after IsAlive fails +Common - Added Platform.cs and StreamCreator.cs + +12/30/2003 +MySql - Fixed Field.cs to properly handle 4.1 style timestamps +MySql - Changed Common.Version to Common.DBVersion to avoid name conflict + + +12/29/2003 +MySql - Fixed field.cs so that text columns return the right field type (thanks beni27@gmx.net) + +12/22/2003 +MySql - Added MySqlError class to provide some reference for error codes (thanks Geert Veenstra) + +------------0.74 released ------------------------ + +12/6/2003 +MySql - Added Unix socket support (thanks Mohammad DAMT [md@mt.web.id]) + +12/4/2003 +MySql - only calling Thread.Sleep when no data is available +MySql - improved escaping of quote characters in parameter data +MySql - removed misleading comments from parameter.cs + +12/1/2003 +Mysql -fixed pooling bug +MySql - same pooling bug fixed again!! ;-) + +11/30/2003 +MySql - Fixed ConnectionSTring editor dialog (thanks marco p (pomarc)) +Common - UserId now supported in connection strings (thanks Jeff Neeley) +MySql - Attempting to create a parameter that is not input throws an exception (thanks Ryan Gregg) + +11/29/2003 +MySql - Added much documentation + +11/26/2003 +MySql - checked in new MultiHostStream capability. Big thanks to Dan Guisinger for this. he originally submitted the code and idea of supporting multiple machines on the connect string. + +11/25/2003 +MySql - Added alot of documentation. Still alot to do. + +11/24/2003 +MySql - Fixed speed issue with 0.73 + +11/14/2003 +MySql - changed to Thread.Sleep(0) in MySqlDataStream to help optimize the case where it doesn't need to wait (thanks Todd German) +11/1/2003 +MySql - Prepopulating the idlepools to MinPoolSize + +10/31/2003 +MySql - Fixed MySqlPool deadlock condition as well as stupid bug where CreateNewPooledConnection + was not ever adding new connections to the pool. + Also fixed MySqlStream.ReadBytes and ReadByte to not use TicksPerSecond which does not appear + to always be right. + (thanks Matthew J. Peddlesden) +MySql - Fix for precision and scale (thanks Matthew J. Peddlesden) + +10/28/2003 +MySql - Added Thread.Sleep(1) to stream reading methods to be more cpu friendly (thanks Sean McGinnis) + +10/24/2003 +MySql - Fixed problem where ExecuteReader would sometime return null (thanks Lloyd Dupont ) + +10/17/2003 +MySql - Fixed major bug with null field handling (thanks Naucki) + +10/15/2003 +MySql - enclosed queries for max_allowed_packet and characterset inside try catch (and set defaults) +MySql - fixed problem where socket was not getting closed properly (thanks Steve!) + +10/14/2003 +MySql - Fixed problem where ExecuteNonQuery was not always returning the right value + +10/13/2003 +MySql - Fixed InternalConnection to not use @@session.max_allowed_packet but use @@max_allowed_packet. (Thanks Miguel) + +10/12/2003 +MySql - Added many new XML doc lines + +10/10/2003 +MySql - Fixed sql parsing to not send empty queries (thanks Rory) +MySql - Fixed problem where the reader was not unpeeking the packet on close +MySql - Fixed problem where user variables were not being handled (thanks Sami Vaaraniemi) +MySql - Fixed loop checking in the MySqlPool (thanks Steve M. Brown) + +10/7/2003 +MySql - Fixed ParameterCollection.Add method to match SqlClient (thanks Joshua Mouch) +Common & MySql - Fixed ConnectionSTring parsing to handle no and yes for boolean and not lowercase values (thanks Naucki) + +10/3/2003 +MySql - Added InternalConnection class, changes to pooling +Common - Implemented Persist Security Info + +9/26/2003 +Common - Added security.cs and version.cs to project + +9/25/2003 +MySql - Fixed DateTime handling in Parameter.cs (thanks Burkhard Perkens-Golomb) +MySql - Fixed parameter serialization where some types would throw a cast exception +MySql - Fixed DataReader to convert all returned values to prevent casting errors (thanks Keith Murray) +MySql - Added code to Command.ExecuteReader to return null if the initial SQL command throws an exception (thanks Burkhard Perkens-Golomb) + +9/24/2003 +MySql - Fixed ExecuteScalar bug introduced with restructure + +9/23/2003 +MySql - Restructure to allow for LOCAL DATA INFILE and better sequencing of packets +MySql - Fixed several bugs related to restructure. + +9/10/2003 +MySql - Early work done to support more secure passwords in Mysql 4.1. Old passwords in 4.1 not supported yet + +8/22/2003 +MySql- Parameters appearing after system parameters are now handled correctly (Adam M. (adammil)) +MySql - strings can now be assigned directly to blob fields (Adam M.) + +8/20/2003 +MySql - Fixed float parameters (thanks Pent) + +8/7/2003 +MySql - Improved Parameter ctor and ParameterCollection.Add methods to better match SqlClient (thx Joshua Mouch ) +MySql - Corrected Connection.CreateCommand to return a MySqlCommand type +MySql - Fixed connection string designer dialog box problem (thanks Abraham Guyt) + +7/24/2003 +MySql - Fixed problem with sending commands not always reading the response packet (thanks Joshua Mouch ) +MySql - Fixed parameter serialization where some blobs types were not being handled (thanks Sean McGinnis ) + +7/22/2003 +MySql - Removed spurious MessageBox.show from DataReader code (thanks Joshua Mouch ) + +7/17/2003 +MySql - Fixed a nasty bug in the split sql code (thanks everyone! :-) ) + +*************Released 0.71*********************** +7/15/2003 +MySql - Fixed bug in MySqlStream where too much data could attempt to be read (thanks Peter Belbin) + +7/11/2003 +MySql - Implemented HasRows (thanks Nash Pherson) +MySql - Fixed bug where tables with more than 252 columns cause an exception ( thanks Joshua Kessler ) +MySql - Fixed bug where SQL statements ending in ; would cause a problem ( thanks Shane Krueger ) +MySql - Fixed bug in driver where error messsages were getting truncated by 1 character (thanks Shane Krueger) + +7/6/2003 +========MySql=============== +* Made MySqlException serializable (thanks Mathias Hasselmann) + +========PgSql=============== +* Made PgSqlException serializable (thanks Mathias Hasselmann) + +***********Released 0.70********************* + +6/25/2003 +========MySql=============== +* Updated some of the character code pages to be more accurate +* Fixed problem where readers could be opened on connections that had readers open +* Release of 0.70 + +6/20/2003 +========MySql=============== +* Moved test to separate assembly MySqlClientTests + +6/19/2003 +========MySql=============== +* Fixed stupid problem in driver with sequence out of order (Thanks Peter Belbin) + +6/18/2003 +========MySql=============== +* Added some pipe tests +* Increased default max pool size to 50 +* Compiles with Mono 0-24 + +6/17/2003 +========MySql=============== +* Fixed connection and data reader dispose problems +* Added String datatype handling to parameter serialization + +6/13/2003 +========MySql=============== +* Fixed sequence problem in driver that occured after thrown exception + (thanks Burkhard Perkens-Golomb) + +6/10/2003 +========MySql=============== +* Added support for CommandBehavior.SingleRow to DataReader +* Fixed command sql processing so quotes are better handled (thanks Theo Spears) + +6/9/2003 +========MySQL=============== +* Fixed parsing of double, single, and decimal values to account for non-English separators. + You still have to use the right syntax if you using hard coded sql, but if you use parameters + the code will convert floating point types to use '.' appropriately internal both into the server + and out. + [ Thanks anonymous ] +* Added MySqlStream class to simplify timeOuts and driver coding. +* Fixed DataReader so that it is closed properly when the associated connection is closed. + [thanks smishra] +* Made client more SqlClient compliant so that DataReaders have to be closed before the connection + can be used to run another command +* Improved DBNull.Value handling in the fields +* Added several unit tests +* Fixed MySqlException so that the base class is actually called :-o +* Improved driver coding + +=============PgSql================= +* Too many changes to document. Still basic structuring of driver. Driver not really usable yet. + + + +5/28/2003 +* Fixed bug where NextResult was returning false on the last resultset +* Added more tests for MySQL +* Improved casting problems by equating unsigned 32bit values to Int64 and usigned 16bit values to Int32, etc + +5/6/2003 +* Added new ctor for MySqlParameter for (name, type, size, srccol) +* Fixed bug in MySqlDataReader where it didn't check for null fieldlist before returning field count + +4/23/2003 +* Started adding MySqlClient unit tests (added MySqlClient/Tests folder and some test cases) +* Fixed some things in Connection String handling + +4/7/2003 +* Moved INIT_DB to MySqlPool. I may move it again, this is in preparation of the conference. + +4/6/2003 +* Fixed bug inside CommandBuilder that prevented inserts from happening properly +* Reworked some of the internals so that all three execute methods of Command worked properly +* FIxed many small bugs found during benchmarking + +4/5/2003 +* The first cut of CoonectionPooling is working. "min pool size" and "max pool size" are respected. + +4/3/2003 +* Work to enable multiple resultsets to be returned +* Character sets are handled much more intelligently now. The driver queries MySQL at startup for the default character set. + That character set is then used for conversions if that code page can be loaded. If not, then the default code + page for the current OS is used. + +3/31/2003 +* Added code to save the inferred type in the name,value ctor of Parameter +* Also, inferred type if value of null parameter is changed using Value property +* Converted all files to use proper Camel case. MySQL is now MySql in all files. PgSQL is now PgSql +* Added attribute to PgSql code to prevent designer from trying to show + +3/17/2003 +* Added MySQLDbType property to Parameter object and added proper conversion code to convert from DbType to MySQLDbType) +* Removed unused ObjectToString method from MySQLParameter.cs +* Fixed Add(..) method in ParameterCollection so that it doesn't use Add(name, value) instead. +* Fixed IndexOf and Contains in ParameterCollection to be aware that parameter names are now stored without @ +* Fixed Command.ConvertSQLToBytes so it only allows characters that can be in MySQL variable names +* Fixed DataReader and Field so that blob fields read their data from Field.cs and GetBytes works right +* Added simple query builder editor to CommandText property of MySQLCommand +* Fixed CommandBuilder and Parameter serialization to account for Parameters not storing @ in their names +* Removed MySQLFieldType enum from Field.cs. Now using MySQLDbType enum + +3/15/2003 +* Added Designer attribute to several classes to prevent designer view when using VS.Net + +3/13/2003 +* Fixed Initial catalog typo in ConnectionString designer +* Removed 3 parameter ctor for MySQLParameter that conflicted with (name, type, value) +* changed MySQLParameter so paramName is now stored without leading @ (this fixed null inserts when using designer) +* Changed TypeConverter for MySQLParameter to use the ctor with all properties + +0.68 +======================================================================== +Note that this build has not been checked out with Mono. + +3/10/2003 +* Fixed sequence issue in driver + +3/9/2003 +* Added DbParametersEditor to make parameter editing more like SqlClient +* Fixed Command class so that parameters can be edited using the designer + +3/7/2003 +* Update connection string designer to support Use Compression flag + +2/15/2003 +* Fixed string encoding so that European characters like ä will work correctly + +2/9/2003 +* Creating base classes to aid in building new data providers +* Added support for UID key in connection string + +2/10/2003 +* Field, parameter, command now using DBNull.Value instead of null +* CommandBuilder using DBNull.Value +* CommandBuilder now builds insert command correctly when an auto_insert field is not present +* Field now uses typeof keyword to return System.Types (performance) + +0.65 +==================== +* MySQLCommandBuilder now implemented +* Transaction support now implemented (not all table types support this) +* GetSchemaTable fixed to not use xsd (for Mono) +* Driver is now Mono-compatible!! +* TIME data type now supported +* More work to improve Timestamp data type handling +* Changed signatures of all classes to match corresponding SqlClient classes + +0.60 +====================== +* Protocol compression using SharpZipLib (www.icsharpcode.net) +* Named pipes on Windows now working properly +* Work done to improve Timestamp data type handling +* Implemented IEnumerable on DataReader so DataGrid would work + +0.50 +====================== +* Speed increased dramatically by removing bugging network sync code +* Driver no longer buffers rows of data (more ADO.Net compliant) +* Conversion bugs related to TIMESTAMP and DATETIME fields fixed diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..87ccb44 --- /dev/null +++ b/COPYING @@ -0,0 +1,343 @@ +GNU General Public License +************************** + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software--to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Library General Public License instead.) You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The "Program", below, + refers to any such program or work, and a "work based on the Program" + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term "modification".) Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, the commands you use may + be called something other than `show w' and `show c'; they could even be + mouse-clicks or menu items--whatever suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Library General + Public License instead of this License. + diff --git a/Client.build b/Client.build new file mode 100644 index 0000000..d3827e2 --- /dev/null +++ b/Client.build @@ -0,0 +1,174 @@ + + MySQLClient Managed Provider for MySQL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/EXCEPTIONS b/EXCEPTIONS new file mode 100644 index 0000000..fa34342 --- /dev/null +++ b/EXCEPTIONS @@ -0,0 +1,99 @@ +MySQL FLOSS License Exception + +The MySQL AB Exception for Free/Libre and Open Source Software-only +Applications Using MySQL Client Libraries (the "FLOSS Exception"). + + +Exception Intent +We want specified Free/Libre and Open Source Software ("FLOSS") applications +to be able to use specified GPL-licensed MySQL client libraries (the +"Program") despite the fact that not all FLOSS licenses are compatible with +version 2 of the GNU General Public License (the "GPL"). + + +Legal Terms and Conditions +As a special exception to the terms and conditions of version 2.0 of the +GPL: + +0. You are free to distribute a Derivative Work that is formed entirely from + the Program and one or more works (each, a "FLOSS Work") licensed under + one or more of the licenses listed below in section 1, as long as: + + a. You obey the GPL in all respects for the Program and the Derivative + Work, except for identifiable sections of the Derivative Work which + are not derived from the Program, and which can reasonably be + considered independent and separate works in themselves, + + b. all identifiable sections of the Derivative Work which are not + derived from the Program, and which can reasonably be considered + independent and separate works in themselves, + + (i) are distributed subject to one of the FLOSS licenses listed + below, and + + (ii) the object code or executable form of those sections are + accompanied by the complete corresponding machine-readable + source code for those sections on the same medium and under the + same FLOSS license as the corresponding object code or + executable forms of those sections, and + + c. any works which are aggregated with the Program or with a Derivative + Work on a volume of a storage or distribution medium in accordance + with the GPL, can reasonably be considered independent and separate + works in themselves which are not derivatives of either the Program, + a Derivative Work or a FLOSS Work. + +If the above conditions are not met, then the Program may only be copied, +modified, distributed or used under the terms and conditions of the GPL or +another valid licensing option from MySQL AB. + +1. FLOSS License List + +License name Version(s)/Copyright Date +Academic Free License 2.0 +Apache Software License 1.0/1.1/2.0 +Apple Public Source License 2.0 +Artistic license From Perl 5.8.0 +BSD license "July 22 1999" +Common Public License 1.0 +GNU Library or "Lesser" General Public License (LGPL) 2.0/2.1 +Jabber Open Source License 1.0 +MIT License (As listed in file MIT-License.txt) - +Mozilla Public License (MPL) 1.0/1.1 +Open Software License 2.0 +PHP License 3.0 +Python license (CNRI Python License) - +Python Software Foundation License 2.1.1 +Sleepycat License "1999" +W3C License "2001" +X11 License "2001" +Zlib/libpng License - +Zope Public License 2.0 + +Due to the many variants of some of the above licenses, we require that any +version follow the 2003 version of the Free Software Foundation's Free +Software Definition (http://www.gnu.org/philosophy/free-sw.html) or version +1.9 of the Open Source Definition by the Open Source Initiative +(http://www.opensource.org/docs/definition.php). + +2. Definitions + + a. Terms used, but not defined, herein shall have the meaning provided in + the GPL. + + b. Derivative Work means a derivative work under copyright law. + +3. Applicability + +This FLOSS Exception applies to all Programs that contain a notice placed by +MySQL AB saying that the Program may be distributed under the terms of this +FLOSS Exception. If you create or distribute a work which is a Derivative +Work of both the Program and any other work licensed under the GPL, then +this FLOSS Exception is not available for that work; thus, you must remove +the FLOSS Exception notice from that work and comply with the GPL in all +respects, including by retaining all GPL notices. You may choose to +redistribute a copy of the Program exclusively under the terms of the GPL by +removing the FLOSS Exception notice from that copy of the Program, provided +that the copy has never been modified by you or any third party. + +$Id: FLOSS-exception.txt,v 1.5 2004/07/15 15:24:19 z Exp $ diff --git a/ICSharpCode.SharpZipLib.dll b/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..6bd7b5a850bad2a7aaeda3a93dab86b81071db8f GIT binary patch literal 122880 zcmeFa2Yg(`)i-=~@9y2EcD>SF$+ER;jO0bDwkt3$xKRV9SIHDtz!J6>WU4nS1O!3= z8;nJXu}upJgwUJmB|t*AO~+syLJ2tZbOL_=|1;8!_RZp%&8x?whW&U1%1N@Rtvr zBtiJi1Kk4{0o@-^2wVJgt#k|6zX6D8n!fSd-};pKlv-CU2LoHnMXpA z8LhnwduIbAys_=Xc?@B}Z!!eZ+I#H0G!PZ9N(S1RE%0_NDE58ydkK6mf$t^oy#&6O z!1ogPUIO1s;Cl&tFM;nR@Vx~7erccIAsz-_AYi&|5khyAx{mf=Mf-)< zpV)uyKkjO)dglFKlst7+-&rGeJh}N+ExPvco6flYn=ije&bv8u=Bvl_gxgDU>ux=R z7I_vl5mx3ftj7@x>T#^i%_hLY?Rp+Rl4Swl8`?zVK{A%25#!d#^q@*aE9ZnvBL;{z zy|WKUo@0Wh&xwU}U$kyv zk;hJzdhL|oGgAFDtQ*l-wPzlU(e~2Zp_aTx`pg*1*W|Ab?VR?GDPj;KF&X9vUSRa7+IyzI za+xk5@SxDPC#j)b zdvD<3AKuaDYgzr#(&3L@GNi6^BNS$)j zyL-G;_S)NB6V~4RtM)e=$7vf5>Obi9-`X?RJbKTc?jAAn$-55!>17YRRB^+@t5>bY z*gM}l{mwT_pWgoC&>cViVYPSrrhxEKCfT) z#)SD#uKn3Je|qiZo{zhC`{$brcHHy)<8N8Bdd6D|TRgjeFx=>vzHjiC&-}3Lon21y z9{9^C`l!mv&?D!?N}p-CXYLVqotusYUODdmtKXmbV)@@U9CPI}Z|<<&m1}Ol`^MLQ z6Pa*V*I8wEw~jyR;rnix_rPPZb5?(P?_G~BFMaP`WBIx}P9D40tDoF<+Pan1jq5$< z*l#Z!5}N({AB~?gFtKNT*^SeB7KL6ae}CoXz_L-dYQZ~J`Leq&tN3Ew_5L5v{i>w? zyC=-4wqo%{}h_8(VV-*ZZE*?j#bGq7UP=<-eH9`EZ7AE9~A-sjQFsurz&@7BZ}nK5XDFTXqO z_Vj6c-BUhtaF)|I_} z=sBMKpSa5yJG1flU;Ndcv1Y%$y7yjx+JcGu^sK%0?P;&Qd0gn-$zP0rW9LI|edwmA zRz0}k%$M%m>*LM$v=960;fF7H;(=$|m)&*9&#%9Gd++Eq4=giZe_@9sHXQos@o$c7 zU3A=CtM{4tq+U1o=z&DKY3D~mcVD}t^w)LodZ#V^TyLR`9pTu4>V8_j80VqIQA|e- zYrZMbJaOy*2m5J$T^ouCKz_Qip=ydlChaaJ50#gRphRT4{ap$Elr7)R$upWOV2&hz zMwUU7lZ<{hU8PB@MDrEVB8`H%(@>bjcs0W1AUpvUfbwoAeBJ!ksy5n2Td%2}I*^xNB#u%`zc#RL)1p zAm&jsn=9kI9GO=?+s);?;?9+r-=kIW?ZvYwhI))H zWnim3ic57V=O?t+^%I&aJ<(uWsJA08nfMS0C=Q-Y-N-^MJi2#nmJI8jwOI&H`8MlS z_5bbqbwdQFm^Lz`uPQMz5RWIzf53r$db0e7IQa2o`44f-x1KEjAviFv z!yBy%CU(-}<4}9EB;tA;JUEHELak~pQ#w^Yz1fI{g76-x*U&`yIhfE==$~QtKmpm* z1xkMmZMcgE|3_rtC?N~vln^-KcAqv2A;z~=qi95<)2G4pWU0D2(Mi)o4mdOiIi*gb zk_m7~tZ4O|XvOrf$4S-BiJmz<_7FyIXV`0bEljh#oCw0NFlSk@y8iq00 z7sJ2SayJFb5$u?x+mSRZ9B3pu+yYH5iWC^;rdWW*RW&d{tay-pi^Q8%n{*BBm7mk+ zxKYVIuV$Zf2%z1D2BnstG02Ri^Mln;1IAGVQYlab>eiro(1E#nIJ~5u-q3QkQQ1T+i*j{v*e*fUYG%#ASdZO_?u|rj+m@k? z(DK*|8_@7LWD*Q}hj`1ZhgKjgEMRVwX^ zbjeVUwtZKUD6xZP%g7?*T&>4Ppch)o^f;LEMYC${c z0v({|Tp*-=kxOAGBh>pPlbG(YV`5|}9^I40UkiqdC5lurSK%_k9IA#OT~mOK3m>#F=LJ;Uz9yi4wark$*CAdZD=s&1+SFPO}^ zmVjSIvWCZ-9sy#(4P_x;8uM9DRf^)ei78d&JQ4`aq25V@SQ7a+>$Z!w9nt)H{9tgM zxTbeD(Nmzf$mv&9YH4L#_NzyOvF1LY1=kHtznBG;7OC;w0V2(nsw<30dPgK1jiwlj z1P!yN%`m!yrf3)@4yv8c_Bp-8F>YvR1^2+vW=g*1GPR>vGb3o4k(tx#=d5#NNj(Yz z&l5~UjfRlfQ0nt9)#HbwK{MB_&<%5GybEy?)0c@I!qj>e!0+_KcO3GQfcojxdW14{kvv29B)H7r7OJ^QB_mFN z9XOS{u5)ls%=;t1e_F(a!>d&ya7#vO=B!gB(H4#|I8pL*N4~NHgY7mXAYPy7JOoe8&>N}llU}wyFG)#-CzJ-|b%`E&s8XcBHK#IB%Sy&C#icdv8`S5Ab zQ%C2wIzEl~PUuG&2MubRnmt+Q9XMtiz1q>LO30Q_C|y|h#;1dP4gjt8_NY`cpu+A- zLk(CpNF87oMi5t>K`d-Z%-ho?Re4oi9u3Bha|z~Fcu1kd2z0zJJ_B{Zd4aMo%MB_{ z{yu*frrmbx75O{>Wij7CZyi2|>5*bSL%nz82o!SHmryMp`t9X>r@ z-0-xYh6W~C%CS@hWyoQ& zCyO-}(NqF1CGc1rUZ)DZdWMuD(<9%NgiXsMhA`~YEnj>l@DTiz=ziVu`xc^4Of|S< zNUEY~tQ;Xv^3c*@nJwjdMk>v)whr4en};h%w6v#77by0G5@@J9L$PS{_KHM(YhCXd z$WtjLiLrShIQ6nb8p9OzlKcAUEmM?w1bVRQNyFqLXM5zR`UpcOd>(5-+7 zToJVbX>`Boi&iCv_1*z-3@PD8N3gfntDP7hpOc4Wj=c?IP0!HOVYCcKwj)&qi+8e# z(Ng6>iBG0Rj;c(>F+DH`_qUW6;fNGlCL;HiEl@Tpd0L?za;;>})ge;1GMG-DI8wT;1~|Gf zn)i!XE9`@~M>Oe9>u48p1eq!RkdnLDuM?H|($uKIsP*~LwwVQOmws1cDyMGl7-Ox) z18%EoqEv^-t|FptkJea%bJ_pO{ zNSVV?FnzG-ipRW#bj>5htHx?FszSRbRqad$3ZUkv#Nj!*EaOmgdLhwhbdsAM5iYcGVieTG49lv2mijflYpRT0xI<19sCKg?+x0>Q*o-16>QK&7Ld?O-D zut0yrQp*zxMtQe(J2sh3yI?-^XmAlYr)_)QAz3bPDS9+#{69h5S3h|^`b*~|4ky&C zG`#kNBMDKg$_gXY`)0n~1+$VXb2Zq;t&~9^EtF1D66}DH5m+NT&M}^+)GtOICGY@x z1EzN3b$&Q<6!%4N7D}%3*Yxfn&{~D=K!^6W2o!@lSBY5H>-@u<0x;9Lx}2=|E;&=< zWK#T*VB&Q8H>@-X_lzMF1)dIL^mHhZ8IDAf^^UI4xgi3Q>|-WXU#s#R9?-4u+SnE! z3s&99VFXZNm`Rb=2}TnW44nf&(%1<#&E})^_%uXv!vQYB@scK58pFxN7*hj0jU|QI zIlFqtW8wbV<(81T~K-=+NtQI zcSOPFn+p<{9gP5ZnnYQMeJI%bXaaVO8$j_asGMng1(t45DqSqEsuwpgug6X9_(>iHAT^VP5~CL>Dh1FUeluq z+&AKyegqcqA)}$xY$)>wu&zHB4dJ@p7e61d+^YV~rvGw1|7~tP&&rF}^Eq1ETF*-n zJtIMWJ%tdK zK@Vk_sjDS;JEK)uxYi!MZv$GIg~|2k^;y_LY!CKi;ff(t4k=b#+%kl(i(9EZS*&)j zV3$&nh0W;P_zxjk)whNQqbWLK#FqmagqNc>r7L?kL-Tqof>6I*!ObGw%#yGwr)yO% zuZChphJ}&d8T4grmAd(Ayo^!sg8P1AWQ=v`-9TKawoyM@C0*Wf`fbFQfH~cWR?e1~ z$jd0;p*w!DLWs>)QL#lMU<5$}{s%>g!PLRlKyo}jMp<&*dnpSFLV9=PNb6If-uXm* z3VDkR?rxdj5d}RV!&XZ(CErM?*>Z}(Z4DE1byD_G5o;?q6i^mOi8cjSpwAGAYeeaEgYUPnz)X}d?(Y8V2s9BWlB zZUIf*F7>xW72%djqaj^`8tP|A`>>vfC=F6mL=>BR5oG5WDlf*zJ`7c`n|CQq?4u!J zLSsZd;p`h8r-Nj}$>~k0PsPo3E)1TVsk+eLJOLZi5W15_!bYMcpc>VkfOIJM?r3SJ zOPwNAr4y}sh9jWa!sG^nY z^{`5u#nLUb)e`l|(4#4UwtAGPnj3T7RSD@)wAeC=FGJYmh*l*qRyjAX$6Otj@xsA@ z@p1^;*MV+C!aAn1838ESgM-*Tv09N!L4Q&~^$aHuTW#-S90?_I;@DdU zLKzi9^5aku^0_peX-QEMdo#WHAYHZt)S&#IRpJbuN_WhNJ$Fd$0ju8VOrG>zJlf&V z_bTeSQw)Mo@>BkB{KsgIv%3>qxF?E-d}ewtgl05kaMy-z6lTf-Z&~dRIF1$P@>@|y zb>UbVQR2 zEw1Cv2Gck=A`blyY6C22cud>b3TGtm+~Zb>SRJszekL0Z@4O#16LtXl;?A37mObyz zmNupzXU6;igcA0Rxe7~X%a`68sgu3%YfAkxXO^*JOLWz-IPtXvEb9J(DZpPa1q9~0 z`S~dT$OYQwSLR-k^NW3PW{SM+F1E?1 z3MnT@Nj`7UEw5|aiK=+F3j;sT=a|(vN26lGccRvx9tUu9P>)tB2)9MWd-3xgzp3KV zEk*N#f_QD#TR4Z9*bH_cbeDb6R+&AB*2$dC&Jen0A9T&QE}mYfwtT0cH%r2P%irv? z{OPI4dYe7vb?Po^g>I@gIe|~H=gjtQ0yAUrOs8iE!irPn6!0sHDvU;YWc2fRjsoh& za}(OFP@~syVcf`%YaG*w_oY<q_8=51GGzT~IE)zm(#fn6Jyu)s=_22TQpgDs$-@-0Tj)m7MzH_b*xnkHEu1yT^AxEj{(lHumK$3vdRhL9t%lh!(T=O ztSPL#<&`@t*^?+#|6_Wx`H_+p-V28~yi%O8`vVvPpq26=zT&ucpH%aQm4RnSM zm$*`ULXNGNx!28l9BV5BjpR1z5ZOaz^~B^7pZ zq*b9R#AuZYaZswlsj%9z<(7$6X(vbI`Kiohhru!jQyO=ZNY_k5e;FAf3jstd-cpD6 z!(OnEbDae%Mf2*P)CY5f^AEbLLE#HnFbnz4Y6x$Dq;*U1Gt~(aIuIQhP4gh z=5m>4Rx#WsK!%+*dMXQluR+H1yN9>cU<1_zl3u z7;Dq3FzGtA7EsV|_Rr8tp}M#~=#1Hhu(v=`vcqAzimr4EV+}V$L%q@R+^`f)oC}Ah zDrxt20d8K@0-?(NQOC*1p|nrONt2gyWz~9E=`x7UsmKu({gHJR`~&Kex)mISTjtyb zCQuN3U4XWl3p=Glq^eT21e1eqez>qJa)h1n*IA|-7p?CMboPWj8~hmVq7as+N$Eqm z_H{{#-|2!}K)KHzEcd)V7-<+&Nbh@)T>;kvVHL%=VE9N`PTsTdd zVa9(6xbiVGs1IcGI+d>vjHXBO^M6o2+rXH>VuJQF1!=}N_}MkyVVTTw|Wv4 z{wBXVfw2&?x7pOY2D0*96r@GV-`9n{70gu`+C=hJ2s_b%=>_Lr$s6ts2#-s;n|l3~ z?!e)=a_458FFyr{xoPTTp~N{y&+qYO2-P!0TrTrb!M>p?k1?ap+{*ZC5Y$K~j)<@f zq(A~oy1!Frdvjyji0^}D<3QV~r0>a|CV{szdpaU&zK=ovr6PaA^bAojdtrNL^O-$K z6*igOa{lTN;KFX9uY^#BB|7Ap3DR!}Im1gTYY?1<(g<92V*A}$EyHY?hheCEN-v=c zN-u|NE&FU~r|4^=os_-BTR#PyCb3j2NaFU7mp99FsimQ`kRxHJhzq*&oH4k^&nH>P zCzlos&Cmv)UvcL{mpJ@&Xk+JX$shY>9B}xin8oB+=ijae2;=-P}4Zw-Vzx8{*<@V}BmXtznG-4?yjy$QDYQ+Cm{!_byv^ zs9vUMG{*-PBR=7{1`pPf<658M_+PaKPepK@=ePaNQbERDnaiJ{`s9%U`NDR|&*_sz zDD9s5@)VwB#hTBV&#3k9`ZI;H4H9_E~6qQO#J{vHh-3Rg+p%P??>AymN9Z zE?JO)V@P?daKQ50DX%rSiC8DHA`_mbROqjtWd&x0gLXJn%wwsAhpLNtELBB9Xkf?+ zS;5px0X#F*k?@;VnPe5z-w-ad+ds0(NaF;GQAyZA4DcAc6fEDeU^xqxv*5!81r=hT zW_mMjR_BBfu7pcl#Aab;g;i0UX;q@R6*E}MltHO(l1zu9gu-rLLnk=|#NK(e(eTk? z&|fujp}-hWo-|L+g?#l%y&h%-Qw}C37=QfF<#w62PtM}h`?^XK+bg!rdViPfegvU= zSbj}nrIV<8{y-NGExwUEd0|GJBN$i$nl(;{sf@Rk9KBr*Vdd-(|bJganaAFR1Dl_W}I2cyQ!EnU^#(>jc9>9PMKgc!5 z9oNNc@BBKu;5qyYVIBHu+z0tI@nawtVkR- z@TV5S4Q)HrKLYxR1x}4FZcE5l-GNmNjB_Vu8Cl$TQ}6Sj2IsPE@XK|X%q9DSp7?Nf z_EHEIWXI{5rHGlAG&k#+Wr*n+=3vg%GXspMG?ERH5$TkYQgMtA8l)bPx(#htB!u=t zJg{VDFCi_#SUd&}OqR7c=|-ldE|o87R;Ks8kN+}@W-l9*zC2$Z;xEbmRPujEd{kVQ zT|Ov%)u8l>d|Jw{WZKSN&7eAa4TDJbS_S;23T|c~4{#_!u?n;A9sFNR64&V&R#FUM zHH8onR3F()J%W|1tQ6S{ z;n|`+xW^WAE=h<_0kWAQm{ErN=+wmzwRQnl1RhJ>>rJ-x^alk1S zI}%{Wgeh#8Feo#lyLMFhqSHDm{L#4`!9X;b@&=+~lbq(sVUr$+ws*xp2QK7_C9;fp zL*C6g^1q<1s^H07Ru%S|(MU&wFWTD?^GEmSs0&2L;54l#dSFMT<&8nJG@c=T6R1sQ zG}%$-i%#jV{n4%tD-dn$Cf&^f0+Zv(!wy>EspP6@NSoS(Sx<99&$Cb9i2Mxv|jxzU1j2dmwzWNb4 zR7aAY7{?(r}4b@;uee--V9Khjz1FZZSX;EQyIeC1|x zyD}dS}osn5c3;-F8fFm0K+V7O?{n}Ivyavcb z4CZ1a>Tnk;VPWYYR(C9|t_VX})Q_T-GP#sOE|#B1*eP+0Xe_@VplD_46H2GcZ+S4k z*^mIv_HrVEg{Yinc{>YAxI#do^@$Ob0k&H6xMrul!W9Ql-giZd__cccWzj`WoHY=K zUMqaSWsg>}?thpog^y-smF#14lONr%lAzcmDSL%{tI&>E8C{$10umSe|z$l8@w z7#Ly1eW{I>g}8;EKXscOu1cI7jfJc2ux*DUiAKvdt*Yf#WSMNEW8=KqP45KbfsOJA z3P-F62)zQc!ATeRYOa+Cr&vU!6!yOHoW=(t{*?l^s#jT6pdh>Nsq;A2yxN~(q##Nw zMw24`MX(PO1FZK&_&=>w*P}J@--Al_LPFyo=K2$QR2}v}b*K?|B7$y5;m{Csmi!1q zBT8M3wc}0l+yIU26#B$AWHby(ifhkT;NFy`~&Kd2&yu) z<}l1@RoG~~KWClQz$rF?kzx}VQ6_LY?s_QW7g5F!3O36MVMS=cixA2Bmt!!tU&STqc!T&6NQ z0@UZuaB0F)7zET{{OVscR@ynf5nGn3A>->1wMwA_*w3Mt zi&fv!Fc$e#odyhx@`msbjEx}!R%z#|#7OiI^#hJI13e=yqJXUO6`<1vfs|tLs0++L zX%%kB#MeVP#ta}fxHM__Q(i$ZVUuALay2VI79LY18JK_gHJC% zJtH(kQzkqE5b7hT>@Qf-)h*V#R8`@!Ly*HxhLyGKsP{p~zys?XPz*Fk0*WepNFv5# z0dU4`1#6JPFgC()gVe1nSgTL{x`69odj!_d^z< z1(Fy#=~~ryYHX_hx|QPj-`rnPM`3@ho4GD4Ks$R2>mRCGAdAT+w>_#M^qr5+wOg<= zEZWxW_Qf@%Ft}%7z=(_XGsw{_?hI#$sESYr>pCY_SCNeCie)UL1a)jFO3ht!b=~CwZI0Z0Dq(V3v)41DieOOvK<54}ch)dfx!5 z>k37}2KC65HenmMPKCDoD?Gy2@ZKzaHfd!_jtYToG&BQ9E6F7dWG6zgmvOKN| zFj#@5(0!7wbJ>OvlnR7w_zjFiY)% zFhj-KAzL?|2<9<5XP~#tTo0M(AU2pnlMa%EbWk}us5~zoBnMOnVVMVsPgn$JQEg1t zOoM;Op23nPf;HbxSR-2&7RP1K2JZlU9*7!?bR_JyO*&R{U6uzcJdZbNL~skjS>1V( zPve>QlBNh2hB4GUWT1X_*n_(gHAk{I02VfUR;i_U~d9;srDAgXqWBHtOzXmRU zy4rt!nB!1Jm)d{k2zAn9HS8ZhHYoi#(`x@&@}C%#{s*hfvd&TF&~h_>el^L#O!E?5hAxRLc+8p zV&9=~a*`g0Z)_H~3Z9n$BMRM=7B}Ik5ovi5E%M>f@R+RJv(Pj5lH1Iy_`l0n=tMmu zeIN`)R={rJ^n~=1K*Y@x1FQ>6srOVU``l<3-=oG?9m$!3G3yaQLs$bEqAC)(Iv~~B zbu0J~_pANIig|@4eg5X=F5Mi75``GD6T2|xG$%qN{!HgMf;(A)Wo?D zxI4O(KRv@y)Lhb}`rl4M%L~=gq3I{(NLEIiII;9XmC4>^2C&A&v24&d*|>k!t|55SgVyxw$|9`c{Gr zk!A{;db~!OlysUh#Rj`MQ_0A_2A{@l;$&jjA7!fc$`fdyqT z(|HE6LE!bXvQoMsLt6D+iey8Ev>+SNE6K9k?^U$D+Ufsk+VySsqC3ckCmPeGx-Nqo zf3s#3a)%>cWKwiL;Py?uA>HQc9rc($y`E3bD3?U_D*%;)0PbsqU4#O3SB|-Q@JJ!m zM!`*Ox=-Ud;(vR8-{!6;ePwK`!__TMY!9a~0T-lvxmD432QuK6D95k@Ti7^R0?!58 z+3NPd%X;P+pxEuo-BGC+W?HSyTLTYwtOM!9jMe6?1!R;1xgGvSn|CN6n4?G|HUmv+ z^VR`k4CC&57<<9Y2wQgPn4f_pcJwNb40GEY-z>oG2;PCPa6J53AO!~0*7%S%A8vR= zx>D~2{K-bE(kg3>VSlZ)4!il4T{TBXI^c)7MY_Uapq6p}yxpquV@I|s(2m2|*oj+i zRrTEox@%V^Dsliv8t&eAAoVO!!a1A!S$6$cr2vlvN6dU%nSX$JgWUWMnPHH^1zYcR~a> z=1NiXEgK9)D8o==jWx_(X$=FJVb(C#Xq63{d@cIIZU}GJ5FXJGjx~g%4dMFmaDRAY z0(WD7gW}f6OT*h+!%cg+wf(ZWopZy(t$H)!ChD!IS>q<6R?Mt*6ESOqiB_mGBdqPr zIybSMH4;3Gv_=M!E36vZ8otu1iCFdcUt>k_zt)Q3|4?fL{?}RCtxW9c4>u%saoB0N zG~8&1N5O@zX$bFXjcN$*X6v-uqNpsq12)`XH3X86#x_5* ze0k%sW@ya~9QwY#+&ZxiYn zI=gV#y%Vl)9xT&D5svIks$r}&kUn}iVTaprV=Q5{S#4mw4a5;cMYu86&WA~*UG2-lxc8R? zT5?&qHBnYc`Jk)K&tIn(ziLr3>EK)dte}kTZedqRsd$!+7YF8w0499E^uy*hDY1s zofA7+qph9o6?S+`0?yny_?Z;b`!SZgdWao>1cVhS+FUDCXx9Uh<9!KrB+YZ{N5wpM;T%8$3k zqx@QH9OC0Fpr`KFVL{aV62+QdVs?0!M5`U1fHN!(8`cCAm|#tCI%}6@sSjL##M%W} zyI8xR&z`r#6BBbxYvOWyS$L9OXH9a*O~$R$ni@%1lYljOynC`Ow%{5gCXP(w>I_6edzLd1yls@ zDwqG2GAr}mXd2p#`PuRqU6`^0HE=q4(;P3vLp@l(aqVh(1_CgzFuh^Vn6W631D6_n z^|EI|y#TqGHL-(WhH&yI!xUa$FM+=c`#yY0Bk&_#$r^aEF5KH`dA*(ST5#0ztOK^Z z;@5#NmdU8?KTo(l{hz0*XP!rs^~?+SKk*~poy)w4=-9UrZBo+1)1tdP%A~B7$Dwgt zKVY?xRO}c7a5&jooZn~Q8Gw0~h`GwZ=aEX#E0sEK9rKM_?a!g(=;Mw69qgW3h9~Ja zf}Y9}6T1f9q~8d~WsKgDMtRL&CIArHM+IlG264(G%BU zi;uTrO9dsx8{EkAEjO}npom00**D#&H~SW&V%^8Q2$ujibxGQ_=)9k(%4b*{r$b09 z!}2%+B5@MHeQBI*?&`aXMFUo_?`}krJKzP3fCuA4sJVqAo`aek5qBZV#nO`~p#+Ar zDORu(?sgeGx3LsbdY zcVi0RcY6;Tr*bQh8ytySalE`;UYnD+elT(0mc()EmrHoZ&t&3qyj6nxj|PJ(Z!x5@RelhXH?EQo6+Q=lj|UR88*|AK8 z<2O6~UC82As(8;efs$2h^(ZWNbA(Ps<+Z|k(~S-H(hG25MC?Ihb%->lAl|l+9R0^Cb})oo*hTm8 zFT`mR|3mnPX>+2g-pPq{*3TL!f*=i3MGmR!`P?8g+HYpLpd&%)&Wk~H@((fS@tFy( znlq`UkKKvh2& zcIv00Bqgk6axkkLhv017HsOM~6Zf1dtV*5}jeQ5Q?VE7Sa93p+t#V)I0FJS#Y#esW za4hn`&MM22LD+^@Q!1G1YD_Z7lx-)gB6UB{+c~s(_{4GDQNd8l>nJ0%)9(tapmE6! zgIf~9>qeb{uBl&Or{gZz#poO97wY;fblqd4$w zH-x05PmzhJ@{Xxh<*T#w!O?cS6^eai4zvVt7llBa94z2-qw>~ya$1~u`trwNY+?`8 zQf-4DxYQ96yuqb-*M6(l=l@P`$~%bvA461AB|Kwx{WhDgMx`+Tqs8Ir84%^c)7X~h zzayOgJIP?ZAX8|C6X~ifF|bM~aTGjR;Y7N4KN0`Tp;rNjQvO$X8pPe9$)bPkkI&-GXd`~!8*l$J&HVKYVn`v~9g zlhMG>oH4giuQ8`B=JsNiOJTKM@o0F>rq&K#WX4=P7TG~P{!c7*)$TCtxevAr{r)Tp z`E17)`;yp$#9eML@&cyMw|1pt`5pxp_9sJQaK{Ie$KyyUwp{bMbQv}zOHKc>vP32A zQy}bN!o)#x?2rXIa0oK6(%%wNhsMV|0a3xHpLmIc;=g)pj^^R^J;1oUIVXiMag4LT zH~Zd2mDtyVG~opc*Eqm0Q1@^?>@?qwCmRB0-^Q)t6Iy_8d23QQHe1tGb7a^%<_u2j zJYcLypcz|K2v|XJM>y0XS-i4Ei@~-!s0_OQZ)lO*9Lu*wYb>~Axkn##%gl1KnCt8k zZ9JO6UyOhKbY)~hJFcJZO0=S%d*^mPx74Fm{ak%UgZ*54#{Pg2(9e~uqT>@P=uvq` z(AHr@IRV|i2G^O0{|-8KJ;-p)-Gb|5!0`4~?XL*mMEVuP;fHHa18+Lgn-G2g*jIqv zgY;_%-$D9F#1BB;lZem9H4)d|$XkN&EnIJ~9$a_h!i=STfeW9K(bfUyV#IF*&PIeC zNG||h&L$bTK-+rYmE;Y|o{MgETwXS){RVta=m z{Q$zlfPWw2e+T?wqz%Lu1BS2gXpiE$0`VSPZy~Q2;hzv53^+Fl&cem_jJ}Ps*Wv0w z{0&_D0bYXZbKpjiz7}~$A^iyAd@uStNMC}yvvE--yi-(;un*}&5nqMyX5e@bKMnC; zBK!a$zQm(p8$p|eyd40$9^ovcmm_`y@@_=@FkGzTIHZ4%eD>jbz#c#xx6MTkwSe7< zi}h{<{8hkrN2sF=+Y5h3I|VSlJAX9Naa{0BJo)<};J-si-Fp}p z^=~CEw*5R@_ac4*@He8|4!Ax-nm*}^h~JKjdh|!Yb_9(5z6saaxL}uMJhEM#z-a*P z+qiy@yv;~ojIb5y{SoIF;rKWU=?8ILiTJAse}eENjfR{!1KGMA3wg=+WRot)D zRw4cc;K$*jeIYLG26gc(T#d;88^TWkUxw>yTo>TF4X}rB-HH5F2rt1k3)g$N&PP7W zaGX*1*k|hyP62!};@!B|SARj8A5Z@U;$NfA)kw2Hc|hn1q<2BQ9~bQ=`NU3(=q>C0 zHLfd=eg=qIHneDZ(P)$nS>+!9Plp@j>GjjXrGFZWAhqZ7XgRkllF~c{1w19 zk~YE(NV9wr7xhmk9PzsmPC)*_fE|JGeq28T>@P^4gnW)Qj{na9qg@`4i}u(?7z6w& zgdD4j5Pu!;T@XJIxY%#kc0!oI^)xQh??>JwTqBXj`7*5(;fn|xaIM9~zM;G?1Ds=L z4X$@_U5fOv2!Dc$_T^(-j{{Fbx)JdixM=stLp?6?@iNjixE{wf0qNU;Q;YbI5Wa196+GD z<5Sapi9Y$>31!iCRaOd>nx2K5K?8*YepT3~GW;m)lQUca=Oh>FFMQs$%sJmxl7F|5 zdcR_Pd#s$nuH3)yBjgW94?kinNF$&?nw}x(xE_V;k$!=gu@)vA$5o7(c#x;fFKYv{ zlaJUiqkdLT--igz%NES+R#aJ+Cx0%?kdLg!$p-I(O+tO7%a1jpH{9=4+o@8oo$}+W zb@&XK`_Wb`PzE|AR#MwZ|W0rsebnjf84WR{Mmsw8+R*v`&3W(gcF{M z+_~R*L%j#?RloXEe`CcL&usVFYZtW5d~RxD&Q+y5y?ova$>23hc6s>W1IC=V-rDy! zPp|nw{l;Z`-1P0iQ+{owmU ze)~InPd(|)ed|X5<{R^`zuqo(_luWJIOW-R|G2NNUir;m_Iz;lH(&nzjLm=g%f#R9 zwrTSR%U^it4=ro5e?0BP^LBh}{$B01Q#})IJ^ZP$H=AdV8dkU4$fqV~t-Z0wn_gPE zWXS3L2iVvCytK}K@P%l2(*-3z`^!{sc8%Zv>LwoALG`v)ixQ@0FHmdzXc3cYnZs zWAYVG-|(y0`Z+iL{o7GD?7#8DYp33R?W6y^WyXUI7mmF5(#zkwvn_GU1y_!qw`59X z+c|$J`|QVGAAQqLcb`0W<;vp{mo#NQ8Te@U-5U?oPI><)jiW!FIR3Anjz8h{uP-|F zq`w|^VCo<5?f3O})4zD==|6m$eIohX#Fx%{ZS!;IoVWVb9j`iL?WYfqdwbe7-@NhJ z#?tPtZ(o?-zkbP#ou58nPU>?1qH`~Nrthd*E?Btf_Nk{GUgkOAca={~9W(m8Jugn| zwd(~L?WhUIJ>L2L|d|G@yNR`jqZ8M#sNa51oAP zGY9VR;gbEo`sRRr67Q7mwc@cCb{mmBJ9GJr-OfB9l8ts$c-f-Y8uMOF6 z-n!>bXnXgEr+&8n@#n7n{i(0b_~^DTMt)NB>3g3IfB1$ketFHDKP^0O)Zd@H>cejX z->&}2BOA|HeEien`q!-g=0~qy_|WoMmuFW!c>BagRJu ze|_Eju=|1?coUqAAGZmnZO)H+j- zw{e#-^D)X8Y50CQyNNru@^kR2vVQ;yp7tT8vX|-{0DL!VVG{}l%`|D5rV!K9`!GR1 z{tLXlTs%GZ4qqH$m)aIiMV?b5dFTAWpK%IWp{w`dk)I4UTRiFMm=BDTnIjzJf$14C zQ>gjF77ANInyHXjPosll3?j4z;aP5(f_X{GDEV94sLPe#kfMBJ;cSr0vMoR;K4&bg ztY8lL!^|f?r{A)Y0mxR$RBo$`WH@C8@mb?a^I!5wEQilQ<>CIR-uRd0i6!NAet$%M zcuHYs^tkSck3~Qk7Uhjsc@vzx!gJUnA1vdxE+5Ho+Uj%b%235rKb7WSLdV(`9mxlYK|`J;w==0{KQ?bN%dWGi=$ImB734cwGJDs zV!bE8Uq~N|68L;KztBoQqXkX`)^HXc+aN(tFn$~mOn#p$$nSUtoAIXHZiGRzZv=v9 zTe=598nl8zyml?Zm-8Z15vLNjY%==bjRutp;+~qvF!SoDSZ+STh;2fXv*pZ=?vy3Z zh8kw`QMP%QN)&+bjdJ*^sK3=xP*r0ZutvO4GE0Fb+Kt#_XXVJYE3%$wo3Jj7FT?^j z7(WUBq=ZqF8Se!=gikpxWInsvu(McMGr+=~K^+36iym!X^a<<;d_3tBZ0zRxq{U}1 zrujhM2<&7KMojO0l#efp(TXs=@KiEG`{hKbNAc4{it<+9Xfz3b zIvP!%P8e>9(QqMP%XCNI$eiB$>l|e=$FG{?#~$8E3jN1g(USRrci~uPGj69clzBk7 zN|aOyH$b4uirym5N~LDRS+i7+IBSq<5T_c6E+I}`5`{vXDlZC(I9ta`85UPc2oNYF zA}}mQAOr}M8W9*4BM<@v3WEp?ixCI`0;NL)hQ$bk0D+wyLvi=4e0K!H<3e0T}|@9-ugLBOqG zLfgK?LQdJ|pj#iSJ6IV4t^+Fz;E^uLX=EYFd?@mEQ8LFpr4U840AF+9>zVMyg4E}( zEMd7R8>>Q-H{SN)M4cx%L?ycVh9Pxiw`#ZYyNFwaqzlrt&V?BWj{JIM4_D1)kg}S_ z4gl9`@JJeKU*uq=?uqY@oNhIi1fa4sRP1DNe3^X&sH~EF7KfYJM}W#Q+$=Tj`j}QZ zrkfK#f}C(XntcSSY;0<{)p2;5eFR7r7S6$?GDM5pB4e_kEgn*kR?1-PV_MPn=5k~d z_A#w;u&?Hnk>S_Jw93IFV@{5YyFR8>4)%OpPB|9MJ_5GLQZp3i_8!=_iPQt!lIEy% zJ4E~nWypHmuApiGjRGf3`oMuv(u9fd9T*K9PRW`g=J+A1FeMv59C2cc)Fs2@i?7NI ze7K=A7>%iyUWt%Xn-oylLL7{sU{N&h{3wG5kcimfo1z3rWb1$^Lx4o64v4}7NTlh2 z#4+kiene_5GA-eLtmG-%lNjmiALghxM~@HT`T4K$KfF*3YIOAp7>3oS86@|9I$6{49D(-XBvsv`0@LEbRoq?=l#`2U@3n! z4;$sc3f`-3Wa9+Vcix^2!cXsu0hA>Hy)Vir%VFXrrkdOZKj#MvQhWx)BXHWBNzloK zxS@h|o}L|na%NR_I|fF2HlQ?5;J4uY4T{FBZP38Ss##dy3JpW{&V_G>LqqXv^kIY7 zGflMvFZ>2+byQ#^!1$~-{x?@)pRa*QJ$@AOv)d!ygq8}-R>?tfb!Aw%hI3`DzQ+O| z8skxFhiS$aEBRt;*_QLAzKpO>3~e$Q#t&c6MwN|<9qjjQq9+64@v{?TM)8FQj^f?m zj~||H5I9as2(Prq@YCg+jDu;_)ozs*4lD>Qd^19LRBs`}_k3BM5LbdTZ3)$vzKd!_ z@6qF>q_=I`zb;rk8j ztR6THiZZ@j{TsBKoq~2tu%*6>I0p3D+ax^w{^F=#W1RT zCsS|rP`uyRj37(B!5FVM&IqVhP#xgV-p2)4@OI;(&cmY)3(y_|=UNBLcv}+2IPz)_ zZG-2hP@B>bkCd1F;KPRJxbCRig6p3MsMdK+vpKZ)CIR3>)Kp!k9mD?3c0f!1TkSXm z?cgt`CywmD1rM&S6Qs!E1+naX=NnLjtB0zUDix~%`!>JNGnoF7!}9d09r6G-dqU6T z$hvlDH^pKxkIl7uJe|jHgR)|;iDj|o6Z-*QnxWisKo;YQr|leiG2V0Ory;_95!zDe zF)?=2`e|mtK#?8Hv;(-c_e={M+h>E{V za!8&>zU$}kJGfky1kvW=b%OAAu&T?G-?x!A!r7JKPk9yY%}AMMRi^Me5Nd+xLwC6R z?d|rNdY^@nWl`J=iO&L3wv7opyMqc^7>MlE9MC!_-Hf!NTeyd$N*nQhsg?bdZ#U^1 z>7#S}6wC+l^Bw$xZ#u-!0t}zQL#gzMs!(yeCFfY?aO`7?lbOXfRFT$PR_# z-vQt@qlvZ0&IQF_u!-wT90vlS(WgulPKio~C|WG)D=4Q{W%uI1pj5RtvbVrTUnW2s zU(?wW*)4t}y&J*=7yA&F8b^lqD@X=o8FLbQ+)nPRBJvId_PP5I0Y18n6#TqDxD_#- zCSx!$Qjt*TRF&FUQ6S0a!KcoF+qRdQC-8xZ-e(|oybcy$HARN9roNiqPX$`5(ACE{ zeM5Ug!-=crilfjS>O1Jw;2ZmzmL5^lF+aX-+7YpWN-w?IkD(L0QztNQ9SbVz8|JD~ zZ>Pgna#zI`Ce_}XSd~BGRUG+idS4Pi5l8-^y^(sNDUPr=OV>k$Hxar4gUC2uP%B*n zft}&TR1OxvB1%kd()9`|PJ;o9PM89j%8?kX203XH6Q3Uxd1IlBN6Sn+T83U{{bMeG zd`M5mtzt>&fit|1romxSaJ^oXOB{vshKgj{$gLGDE(3cm<< z>jPmVz?$8D4ege}Gv>~|E)RXOSYE>vk-Ua6EgFUn<=D^p<@}zDtgQ?E@;H^F*w4<4 zC50UneDJph2B!;rYgKM5bAiwUH>w_Y-=lXF6e9Nyv_jh~_>OHZ_*Os>egXW1LOKQT z`?mq#TnOLN_FsXnQDed2KBN4ccNrO3vPRp_RY-O;6II!r7}(jQ3Q`I<27#KRG2Rpn zd@`ANM*OEzL$RGFtwK9r*hg6*R&2+KuPppl;EsJS{N@$xJM?--{O=OI@XEP@JuuE= zS`6nkaCfPMdtmkWh^!Ag$nAzNVIY*rvlQnZ@P=DH&T6-BaP$fuhy2v}X%u(TN_KgJug}Q6a?eAOq18xNpI1GkqNLoAHcHVJ^O$PC})qjugl6D2z;Y{H$&#Y1>(f zOZUkhYGm*02Bip2EO640^@z^mQoNd2v%T|uL5Mp+iIKHE5ON7LHmD?8t zOIttOQ!MGI39jWSbmBOrvetoM4rBF3qJGp7x*@6S$H3jDVyy;?FW#}!g~P0-lMVb3PiG4 zGGOabCWdM02LPcXQMB$>bnf3a9j-jHdu^SLq0Lauza#{(;fhbKZq$yeyB@|WY{_$7hq_luS5wwLrw`} zXr#|n?JDTY469Ln?$6T`Amvg3BO_980St#K6s$g9R+{Kh>lZdF7rg+vfNsu5RfW zq7Krn48<}SMk0e@iXiopzBhlW;jRGEE7;az0i@3%Ot!ThUa*lOzd>c&prLMAtY|1a z=aqgEm2A;}oJ-|7bofjZdir|Mho6J@o3KZkhsJ*dLcI%NHqz$`NwX?_H*gX!N&SZS zc>kU9h8cg(El>Xoobc?nWytZ6mPR9f9_ne_Fg)116txnrTQn*d50?h+xPk%7`b@U|*n!!A6|pLf}{5 zr5J^$fX$_4f%?>tK(s80&oaeQe)Vb04sQhC;DzPmlV-GqSWB+8@iG$VmRHU!PZfDm z1)Kf4M+pp@P9oYkZg>WphnQv@Gf_~E2RNrv3Qv9nA*S<@AM(g10m%5`&!BvhPY%13 z>V8Q^%6xK0goZwiQwzc7q@JOgH{+4S-q+b{>@3{Uss+LYK!{9-Y4Y?&M&z;rW4S$x z$J%^xIDSDsJjX!+E%e2oW#R8i!rm&lIo@WxyI|o(#PQ`VHeW_S&B1GsEq-K^qU2+G zcJeTk*bQH4;Wt`3@V=4I(rB<_`}krYAjMZK1-s-!_38!5qF?gbV`M?J{A6Mv^_#>s z5HV;6)Ff~zh~iZQ=_R1j1V=y=nQ{+cuHP4Ow}Vw7BMqB{^V!XQzX-Uc0^e>1M5c_& z65QdIWSL*)3p~|{&xj*i7gGXR8>-8cAjU!}n%b)w*N-Sf?}#O6HuuIa1|uPV{1P@B z6S{~HGh%uv0Z@jscoh_m0tESK z9_9QJ*EUn6oPq^$6dz=;w`bE{`8nhF77x-3xqP9SSzM!9r8UVKo_&zr2XLelTP<_e$m zFZRQI@nxXv7`k&&FU(W%yr@3)`XaM9FNBfLpL52?P*W2&?8HucM?BMxN6~}X z{g7cIoXRk}kD!6R@+So^!?JL5h|$3Jxd^I(ceV;1*ZKb%Pu~Uwe)Lw+z)7(G2Q;=t zU%sZh&CD99owD?5BPlTaxD6$(mBu>$qG~z5Ma^~(p6e(+)rOfYFZPizJGu8ZYSuIR zBA;&{AYOeEZ&BE)fE8Z-od3nzo4{9DobAIi&)H8xNCIR5vLFNk31k5k6@`!lNDU;A zAc@i@Avr)aBrywuF)>l3)}jTAmRc9Iw8gq%wNdt@C36}gGeF)@?$0!3`x$_6F-?_<+ z5D$jr2{d2gCrcPYW#|2!}C@jklU!yokYYxrYzaCM}~yisd`n$g`Yw zJ)~j2G>@+7<-;}F$dWO_FgS;vlX~m-?x*zV55>PR zki}C}d8yPfi7=Tk^P4!)1qwzTpM>Xd(L-ufSh<-+NnZ5Bv=r6$O2(RcfkA-{L)D26 zV*)TBU4{fi7_aw<6TMQ&UVg?=oY|_l_Q9s2S0{);}?q`!}I+i zdBx#}xjo67DJs3d`os0O?H?L8#$InHg*2v9%VpsOt zW`M$VrjH;1MurJ}OkJ|MpClL!xB+{t3s+)cNFC4XFmRI7NL&gylBa#iZfx%IdIJYc zX0kv=V0PloS;!-e+_2%{KA8)URWiB^`HZ6rAU5C=Zv z0C;l1fu!#sClUgo(JK;y^*DYakem?A2v}hQ3Bxk`QT*m^#u%Kw9K=B&xM(jUn0GCX zuAX@}99;==OXKj80m=kbqhqO#t!KB%kb7L)lF?p}eiotdEE*}Jurph1kFr`RsSlO zGSd53^D&~onUDDX^Z7{VzkrX#{uVr>;ptyPi*Uo{jx=now2qfHCTp)JV$Iy>BY&x1 z{p%udBC@Z4Js>uOr}xp`o00FuA#9@KH}%m;cB`i2__obR5mfmk<4@%9)}$Th6|JLJ z91C9_^b4KDw(r1kp3~r0+Rc|E@$dYK_$2{_f9PWdnRHwXlYx?s9zdjHY#;5t-i(-V zY;^FBv4=J?c;V})6l@>YNFkv<*tWB`9j=ZeQOWo#V|eGs9DZDA>=`&YY}aAzSW=_Y zjJHl&^|4G%OV%}rDPnIoFrpS6&JV|()Vr46l6o)VqlZzo{SA>iJ&eH`$ytmtzhoaz z9dgN0YSX=$Y0#i4A~6nu^p36xx{@2Q^pKwSH?K?f&pV2HCm04<6u_a2*2ie;gEG0* z{nn4uBk}!1q!59OQ3NtZ$te-G=TgWfao3J%ds%`QNBS1Wt#x+PV-$bL{);cF&atXQ8#GAGJH*2i9e{A}-VJmOt2Iz7yA?-q059A1sE zJiOP&`Z1b{&F#Y))O%osAsLexXgdNBkk@dvqt9bYpHz^R;2x8Y^-2nf+puJ6hdZj# z(n&)7+3zC^4{c&v(U6e^PF^|>U5SLBXoC8W3z~yPXU6K2Ad*a{hk7u3K3`~vTOVt= zxEq~ubABOzhHIRAs$9}&vdY-Cy#xu2(bM+Apm}8!;GVJ<>6CpC)bRGGhoC|g$U75v z&n1XEYlK&1$U;YsLkzFwkyOUH?VrM0^uZXJ7+V~lM%;#2h)U7(=wL>o95_9+(0yCC zBo!c+`GE%B)O+*a$cXc%o{N#Pg!~sm!pwNutXZPBW>%gWWGbJygu$JYiE}FHSyGbV zzE&DDoK1Kx?s>pih~;CNlvl7kDZWKtneGJ7wS8EB-*C6Nq&u z6^`_buJNZf=EdSY3_gs>{s00_!C_!~g&;o_+Ymk*_p##2OT`y`T0(qc)B#xna5 zolNN%W}}Z~=FR?#_=)lf&0yci@izaAI!R;nx!X+LrH;>oTcwnvd zgR;UzgBL3SQMs5Epu|H||Zwi}C&;pw8TL^H(!)zZ@W-Kn);3o6wQ!-YsO z;gm>of}}*@%?v;%3)4;WmX`$SSi0sFGOB2eX)$qZo>W8B???$|4a4DLJc?2n`9>Ee z+Q2^6O&idpfO&@R2<0!*4_wa7@bsdub~|`Ia~YquO{apu&YX~k**qI`&P{T_!M3kx zQRvH?bd#;vL>NaO#0<8d!AJJ8sWWRw?Xdi!mYSRlf8yi;R3{x~?9U|7zj_=opmB8xjBi&xzS`z2D2 zMq)HyOuD2MQDH`I>`m{+;Fv#*@%nu?<2^I;!oM|RxZey)%|W4tLE-CoOEA|YB(TLa zjW~0d3~+}6&Ntj@1{^4TEN>^*qT%5ylC2!$y6qTOzJGJ1KPmjV7Zj6M1B%HmCFX^mc@0+6!DH6Uo;{nb%%{u2&S4x5hr~Ymo zHEkB(O=C91<#rRM0IdvjWdu&O#Z@hC@w?SN5hektz#WUjZq6x`usqS2d6UJf0GYPo zxCC)HCs?**85hDM8eB$>&*s?JB+cS^fPQ|;Ad$fqi|k~B8$ZCqzcu&pAX|TgDNjlc zM<&Mw4mxo{7iNY7zd7~527sgjTtpDIF1*v9l)o*)A#5Gy?x)C>yKzg2B*$NSbBga= z9u+Kk6T~heBQB;@Tk(=+N{S1ovm+k^ThAR4>*8_sTSs9Bk5O)1VVMv_>Tzf?-_0cD zzYv~|O?^Mh8&knSZ&bp_8wP#cVYeeHXUT;L1rK%P^?` zYZ+2sF#W{Ii|E_7;=ND)YvD<4q<8QZ-j$OaNGU`g>w(H-4IAP23DX4s&HfbJT>(p{ zhfPE_Y)% zSV-O^fZ>SzH{gS}QX=}139&51SWIq_09+I@ToMouwh1Gdg5lx2GGnlaU2#O2>bn0DtnC58=dAq$457<{`OuT1-dkN#V5?2X_`6 zl}?RgVYcVvpl?ZRV^dJ~O(Sa*)`x+?F>UStqBCT;PZ5ses8Jk+%={BjG8zmvNf>-k zHKztMuYzqbH74hzv7orOb6ToP*h{+?J=#i&P4HNS#Kk!>Y+%@xYuIeE{PQj~+8wvV}bG9u5@3mt@XG zwhl&y=>6xBh-Ix{7-Zw06$t9(wcoNw8@`JMsu1C!5vENa)* z-k;&&^s#^eb_rmy0^BQrg$aNiYwkXlpbO{V--qWJdEjJ>K`&3Wlxlz`RN<|=n&}o- z=DE|uJTJg56e-3YDKW8gdIsHVliD~F!;p}6Cd0F#fZmzElw26}dDiV>@gJCdcnq_g zwN4KUEEg}0ql1!fa;;r!XgiEh7(EY0_Fss7Y)nv)D9vzeru8zuc2ynv#=POpWClSv%5)VZaWi?_YiP^kf&Fc9{*s->kMoiPlQ@qqloq-LD z-P+KIIx@}H5j#bKv{Ge!;wuj$HlH!pt~OIJu`hfYvlWD7!u&R*ty9>2#cC!YjS(T` z{f7<7y5Ui8BTdq_7$N`lIX>au0XrufZI*ZD_hHOri{kXKg4de-!8sPVA^;dCzSFh< z?-ZjT=D+tx9HR@)FsTWD5hU$Zlvi&XS{#0cMW)#L$_EfDGLW<^St16IG&ce=y{Jxk zXsE=y$T7Q2R-EW3wGhh=tSeH6ZaGtRnUo=GEhJ@4wyJ?a4ND3c$cNLz)(h(-#*iXI zVs7`6()?E+&gx7uc2;X-KRm7$$vJ%{HYFcf>RX5sVVzGYfe_ z2zqqkio`7m!8z-tkqFy>Q$k=)XwYtp@g3MQr*hB|6~kJ?H0M+}xNvQ$JCMScv}7fN ze(Q&0FRUnRne%%V_g6dLcVcI}L_R_2>Fd6l^YrB>aGP@iw+Sb3^W*xi*~3x%7=xmL za!C~ojPRfsSZ=uT33I2s*@naMC1f?gk7a1K8MaDg#p?tg&LqM#C3yN$jJI*NyD2mo zFi1CNv?MjWFvYs{O=J!KOh3gnO6s>K75CeDGO0iXiEd-4#m;ZB;YDdiHY17M9U>YG zb;9>;qnvCEGSCv6W(6xyOc&g;;$2DkZ(HjWV;$XPnEHMlt zO{S%ft9dvf!Sn&e7_8Mw9i@O$zh{kso$GX-R*vl?MsVz_iSDh)$7Grjuh!jmZ1=;U zruL$lpZ~W99lYXNr|BIa?uG3!ul`}VRP6o6FV+3>& zgZe}rbDe%>v_3Wd_oE;?j5)EW|3UwlsYd@eN)~0Imy3u3x4{Pp5=}eOqFijTTr5&SpKNr2bC#-ia z)rD$u9`!C86FsjBo6MueDB+fXW8YZ6OcJ1svQH=lPh5lLb7v1jxS%n{i7|<`!^IfW z@xNT>DU?lIJ)9D@y~-Me;{mTRdv@o8j~Uwy4vq3~wDkCJFnmNEOmgQ3-CkSQU08yY&77M&BZg! zj9vIW^-J(>=dphj<9vASeOZjS=)&9k3XLv#KbX?{ECBepRXw;!8l4_;h;lX?kza(R zw|5`I_K;cI0`S7!u{18Babz!YjqfjBGmk&;k<|NpK6)sLOn61+o^V{kDI?x&@-SNh z4R_eh0aI`K3U7L2y_q}&y%`x_&yDG*V7AX@X?ZjG%A&4sKe(r_z=GYSgH9Qlb-0zw zBrs<<_D3?MPDW<$^LW}bguZ6w$T`!*ntr?>>1Kl>E`pUfy!E{_piYtvwyE-gE5tyP z@_)(ig}Ha^f6=Wimv&OJrvfPn&iu9Xew2c56w+!-xzLh)-m1IDiCmRzbb4>yK2}+t3lc_L9tIK`HC$HJ_(#%Fh6ocfyEe(?m*x1_d<2jKMmHrk3Q;Wo3MM{?4p4i^@tn>>`*jjiMtUKGgQ)M$Ga9x{m$_-jl&837wy z1RG2O_Vh^bzNab2*518%IDO9;5Ekd1T}MQ8 zdT7&D&ipnuIFunxxaY)lBup68H?E+~It2q)8DnXD=%CaVmHkk7|6Q&gyFeee7mvQe zf2?bF02D(%{$J^xtzWW!V>ESI>FBE=sz&B^oC*2mYz?V|;wf^%#zo?WFCM7X*4BL7 zDizGhh?QKBb8uaXy}X&XQ;mlOO1XgK!H=6W@qLk8@dy^X>Ihs1fZXyZ4lkv-$AI(42lzo}ghm_!QWDuthlSa3xRaP~oIGxB+ z+&W9=u_j1T$K}XU^JQ^1_LST2#vq~LZyP&|9$!Exvl}?#B3e3H7)9*3|1DfaB$2jh z#AKHoq-ktG(|1QiOR@c!nPS>z!^ik-!yQT9SX4^}^w)|6#wF5HhI6v56kbigEU7cq z^>w6Hra4XzZQIb!c}?b6i#KQ?_1k2TlZ|VSyf{X=b9L)!mp(V7Nu#X1fE4=a~32!tvvKZ4ECKrLl&- zL*k%ILQeOL#TTDrTzzkXO`+e_hsM)g5Ytf=X%3vu18gqQAM(2!K03dk#bH{wd(lN= z{G5Fn;^#U2d}L2G!cZ3UE%Jw;^f}en2X5{hPv5(E^nM_L&+q+^PvPB$u^0w7WZnh^ zvT2I0Q{sdVBusk{X&+4xm$8qov*c~+EbA2i&@?gPzPCZ@MFzUN2k*d$a___N)m6o}PYh+4h&f|}MpCvLU8rhC(k538PXB+X*ZV6w;T!)E79gD(F`^bom zeL^_>r8dloOY;YVrP=crvY0jkb3U3(R=e8p+SBHBbl%a2nbT3n`4{$&t=ZQ9ap^h3 z$mUU*sC1|k2_7`klA`y)4#)5OFe*V}PhFUGAGpgDDWe_Rx6!RI^5oj&Mhx5w-Tu@9 zClx#Q#;&M`lZ1K;?sd5ye0@?McH2byk-*pCS<;)54N=5i$c=pNNC4Q4;vyYzle$&>r3Nu&E&wCVlK z?xcRkliW}K_=JHOjZ;0Dy%}TsnH%`Zfyv0Yw4W+%+Fc)JSmE`Tzr)s**X{It41?42 zH_+)gJqHcX5wXBBF(>DAm7S_Igg1FRJtuNaUs3P$kiGdtSJ-74i};#eIye$XYqE3D%H%v>`fH_XwF{wdPz;PvYadzYHYE%}U-If3tcqcQ{wCk!nwVz>|1qyt;L zaW3Gm&1hE2)+RH?<129a_`$D~pcF3}hVXl07BWWWMkNfTV$@>NmxJyxy41PRm_Gb= zjok>9F4A~;odEhPC-S{Hmal|eQZM-dNfMI8x9RIyHeT^BWokd#XWIDDK11(_L4_oh3Nko_DF+l1UGhl{{XJ*r7d*bD|f#zojG%yo-Yk*tXLmhDR2O!=_0r%MnK8(UmYFQwwT4kpJh*CO zyuN(ArJ$29?_8HVA1mh+5Dl%!DK4(Ce$kt&#w2TKLa0u3#fxeQj)Vla+=%qxw)Uj_ z7pFL09H@AIvsnrjGMi4#`dNZPMXH&f&^b{Yv$-?nvy(wf(FV!wLo_fHBiyp!{Nk#w&DAo?GIOG}1=9+q;YJ3GS@DN6e?Z;%h<7|*fw$wiZ3fI$ zT^-G>t2lL4{>!miIT3bCt5nJDW?SF*`Af@6;8qR%88UhN+?KW#^o&1@q4cs_elZzu z({OpRo{o8f#LlrW!(hfFcV(j)lsO#rxgS5UQ6ur=JPl6r;~ew?{NxoUo^%hpajB5A zb7Ia8SK#fAS6w9ZUiA~0^EGW&>1s?(dxZW=Yz{hfo#mqI`CihEe%kEv)BG!;X)z3y z8b|xHQVLVNYC?8mwpX1gv_|NKLa!3~BcZ#6z9#fzp$U^2YMRi}$>iT8^kShu6#84C zW2SsM*{h~Zp`U!APfcO$?}~Xr4(*o+?G$>o(C37X%%$rDp)-Y^CG=dOcL;q%=u5dw zi=IlUexF4Cr%cV7irkw@^A%Ic=eI)tCUk5b?N866{rAPZHJ|1m3B4n!2JV4NlAs51xAQP8 z6Q3pMGq|Oo=R8kPjHcTZe09linflu*6DM?iOI9mR21>wu_j-w8J`its1%l5`LG9`$ z)XjJ~-`Rt=g?9`30mM#GYt_%h=iU0(I#aDz4+wf4CBhFg5E`1DCbs(x%93Y zFX$F$Cwv~n8Rc|)LeTr_Y(dWpO4sKJdKGAxnyfnn9RV7LTcy7xD8@y%0{v}$8%kv~ z8YkXV{S!>R;^p>u5718`3%>J*&n%$3C0q!IZa)*$?&@=SaP#$Z@E4C8--#CKKQfql zP|ym!Uwl3bv2DR^=+Zwb?3w8c9;{?1MbYVK(0rk@#h%=>s`QZ7c+Li`^HhL_#Qz%M&?&SZ)Qt`JkAepM z6`*l`@=p|VrhgA?^8HW4=6%?^)w}@tED0EyheKc942%HH@z76=@HG723DD**fzk-) zp9RNaVe=P3)>_(!`AmwL0S>pj$t^F2+-Am5hRPU9ZaDV~|8rv)`_E%$!q1+Vr!hNo z#m-je^vA@W4Vox)jL>Tw+GL42PyEalI#1|Aq18gq6S_iZv(R>-7YXeXdWFzULbnOs zA@mNRKNI?p(A`3x6#Bf-mxR79^iM+H7y6OVqe8zB>K(?k3==w1=oq0V37sr7U+Aeq z&k{Oc=u)A}g*FO3U+9HG*9pB;=tiMe3*8Eupnd`x)+M7Mad9l8Nim-wpYM$$eISm0 zjQy)|EZO~_ZYi}e{Z|~z<#W(;`o|AvS|$t46MBl!S)iw=QqaZyl|okt?Gn0C=r*Bu z34II{aS44#=m$bS9nQF7;^~?wG&Q~nZBlytYS0N{lM_#EIYnrZ(60$SC%y%KYQ_9@ zF^A&YVRM1dZlM>8y-Dw7@r-Me@Z2W!M?&uxx<}|M@vLiq5%Whvj|%-vs7|1qexY$f z6NHXT=ynR!Wr?%V8eAoGtI*qo-Xru8p}z(F>U{WET>n#U+<-Km5>Hwr^lL&tO=K?V z5zLdI(BUI)hIy2jM~`5<8DgF!=0c%o2rV7KoLM4flRr&jzDVr9If8kzS?G;o&-@&x z21d3xUUlEd*%*cVLg+)Fr>I9@e~Nlc%zK5tDfE!gkA!|A^b4WhQ4AF)bS!9rDjCIg zsRCw{?I!)-wLQ8~J2wf(0 zmC%cXepBdHp|^paqIM-y!Uu)!7W$;n=Y_s1bidH|gdP$4g;0MA!zKt#Ng=n)lv3DC z0`;QhpY6h298KJH+Q*pap7T z>eHZSq!znQQJtxjp;zc;P_1rDWy^54(1%m0IZuiGAB27&)Hj+w$B&+g*51&6j%Hio zjA0KFJBGc?C^4stdD562F1PRu`!65Eu;+-MdZ8^*KD)-;4gY;(e&!0x6El{2$hfo` zA?8e>%o(k=Aji-*iTMUG=Z&S!Orb{R;;~H2!m%HNXVutGK+hffFT}z=QL9_h$Y;N_ zfj>&4R{s<>i~FDpjs_WC%5H7SEut>aF(D}ZSbj8 zm(cY>FBN*Z(5utC5tc1*fw~TS64c{j|9tw*PLg^Ne3H~#pb1K6ussh59VIkf=wzV< zLQfZ3D%5bR%&36QEYDa1d73hofwl`>olf)m47LWB!jD#0Ae2_uNZ9YgK0*B$_6h2K zF+VDNPR+a-`gUd}d6r~SKPy2|A7PJiNG9{4S!_Bp*W%n4(}Ta3d4v0${(6Gin0Y6$jFZ4B`e-io^p`T1( zs+}zQF_On*(Pm`Un~-*N)&bB-S?_@sWU&^sXOJ=#N$TGSm89Y(lBNosDs&cTf+`hS zDRjBeW}#g|FB5vT&>Mx`DfD4bv{XW$pGZmG6tk1Xk&Ma7cP1Wz45nO;imPW5LrogP z`W_E+g4!l@hu9mRyTtrU&=LC2lkfM8(ErZ)nsq>T?|{BI?Q_uI z6f6pk&>s|3fsQJy0j(-r2ijBE3p!%@A3@KUz8|!4`a7WCp8h`QebfI6`uFJt7#*k0 zI0dwH#u=b%X3XI-5B~NHt8xb+r}^9C`MNtU3N^YDhoEFGBFWz#Pop~x^X9#ogzpB( z#j6eo+L+P@F4!k9PTVwkdeuma$P+zH1SMma$GQkg!&=nHlNfGG$_95XR-D`K-Oy33OYRB6!za2utXEP4uVqtrT! zUV~eb+GNoIxFxAaEcz?llGT2Tg5E?RKW4@XYh+p8Jp1S_kIs(vqd9)H{oWV9TuJBO9m>z zju>*u_g$_gs~U@D`Rai-ShT=bg_W%Rg5K3NzT1F~2->5*fpAllAFByrZJnZK2-@R6 z#m{i%7R?p3+@eK-S}Z!xAB4|-i&hHSW>KgAbhzy@NcH>Uu)FCgi?;Zm1KMxV_3$}W z9kpn?KMnT*#ACezHC+AJzYimTY>S@pzlQVn=Ln*fzk?Hm>m%qdI9uTDhhaYk!ljOK`jf!=(%c>MU8$1!47WjD9@wYm zsm&H$gZSpFI|Xg@9|>FzwA&&btOwd>QCzT!cV(O^u}i)zP%{J#s4QF(UZ%P%ni~8Z zw*u_9=;UCsTByd#k%R+kc5pdP;#_CZ*92{~=o~@!TT~wm!slK=8`TBDWW7jLpUKz< z)Vg3C-2`n^-xlP?CSK&3pXIPfjWtMeaFJSI5p!^nYAF(*Qbvo_WQ&+s@@`& z^is9XBFec`ZMNu-!PoHh-A;?BpI=wI1#M98AnhyEtYXGzv~`7A9zo-Dqgoe1Q*=lj z6tqX`%4#)|FFMp7{QNOxYNntK z>PRp~uTk|DDO_Z@M(wbO8riN6T11V!P}R%JxQ+f$OqJ?T>kJY->rjUbQe83i*rzyQ zzNA)N8k30i?-Glyj9HF5hL;N(P+Q>Et**4_W}vldr$x8NoR0S|PuXxU#UM6y^lOGE zb!olYzmRA^y$zr1RmmcvJ&I|+SPnHIVxIM?O(=S$uJ=DM>}B1nwp;Yfus;CZZ;*O( z*qgdf?Tesyb-y}f(O-uh(gP}X3Avaa{W6s)$n>z6sTmPek9Q1}5%j6PTwM}D@1SPy z5Hz4ztFBPbTEtp)g*s%>gt$1M_N9z(qm=X&>Ip&b>ijtET%itIx3l8BK(o#fpZ*1L zvCcQua)VTDT%vQO+Ae57t%yr;zNPjpGdw%v(w(bRNlh4KIp0>#8sxt$?sBzB?YD@% z;U;y&qV4EmH>t6;5)S2F;A~QJ1ic%0IPNxewOVeFj9;!+?G`;5R|U6ik#Mt|tJM>N zOk1#79X3eXg3YQ0AN8^PSjRT2*z=5>2jaZ?yQ(mZG1L{NM;P=!7 z*}83X;(Ka=MQrtNP^&GXhTNbI3Nm%`2Ib~!L#e4H&JR?sAS267YJ;EwHEejC+OA6K z>2pA(2)eRC5G149je?B6Y*+USGWxPzJrzOq@cFtR)8F2zj#$L@>{b=Kf;{*5*`D31 z##+So>{d0yBDQC@s&b3ip53aN43akFHnqVbwr;nn8!ck%wnN=-5o^wm)Uy_`McJti zSj2L;U5#uMSwti6R5Jt(s8^8oJJn`ECI|0S`LGe(u3*}i>ONvs;w4LmmXAiT0~uXP(5K0b?HI%xckPu%Q0rXE>O zo<^7UsCYEz;oA75itiyZxek@w0fjhe5yV{dj;(gZGBp0Vn+hQas2tT znkmR=;qso^H3U5?=w0bo-c$Pxk{SDZ>Zo<&Ecrb(a|dI1S2wzov0tz< zg3{Dq)b^cpGg5!3o)To_{7}6vh_NTD50(3N`XqYY`K!tnbiE3VdfPdyDlO^)`be!4 zWOV6cwN20-b>*mo&d2I?i@q~zIX^}Fsqj=k81;ekH#Nf`|ISf=bB?G57O}rQqE=h< zi&6DJS6cLIaQVC1Zqd`D5`iAE=q0#)qV`$z7Ti8jhb{VG)aB|QD*g_M-TyD}{D;c7 z$d`1vI;tuy8kJNJ)NYU(pLCb=PqoRSDM?42Pt{KAb9&M`^>4M?qS;BkK(AYLHh6xn z4qL=o^5@Ebr-_}jUvgH(0W=gt>ufpz0NRqO56ttrXl()#tgOrCWo#kyR2#@z;e zD=AsIbfrZ%z^7aL?-4iAI~)Mbq;O?O$8l)Bb6PTy!z zS?VROlk`&-ElIu1HC`VUv{9`}O;!{1CHEUSKa5LOS^CJ&iHx>R)SG@GZvLaG%hg1^ z-J%hriS9Q@O&+}r=qW)PBqt{6qk^tig`=-@P15lXkPFdwT-kb-Mf2e{MOR1AcU(ET zUl8>=QBBnc1Z`AbM|{)tQHxpx#XcyKsf$N{&oxcYu;_}>aVk&uTlAgLHvt_LG@!me zx(eu$hfKH~;F6~|Tl9dS9Tq(^IvH*?zcfCd8GVy0UuQl{G@xEa428PiBDU;>`Uyd1 z)Lf`XK0==+2McwHAk#M%>g5)(Z!FYZ7O`(E)SE0~-&m-3Sj4`uP(NZ3`^G~3szK5> zPS-~)V&8bOj{g;7H!B3E=xmGFH=d$PETYt>>E(jh+Pnj_E`my&)Ae41q-G96ev#cA-=qz1r(MvHqU1#Y{zc%4GlbWqdb`zOCb+%q@ z5qs@9`m;yrHlWTN6Q_#x%*TjK3tg8~OY}C2n7bu< zmqpCo68)4#%-s^b-yrF=OZ8EUIEpRR@sCrMJ($;>uIB4(izxL1J;x%BV$aq!f=up~ z>#hhYaTe+a4U*ig(EBW6?pEr<7JYNfFIVb9afJVUVnAEYX$L ztq5yKOY~;z_PsGxs!DISZg-4H1lna0SC^~xZb1WT7xKDVAF*y11Rrr#>jO`j*g2xE z*0H}eh`Lm*+n*-dsCJKeM{esCH_zK+9(C1dnvqMMu2GM=Y9r|FF;BYA)jK5IyP7`F z(+^ripUd^L5w|B@U)TFh4AP=}L%6s^3!Zm{(H`~Tn0>B#>$XS#easuK#t71554l$B zBjA#WwaT`!U$~le$}ejn0`ef`fpncY-J8cD8W#Q`0$s7TO^=OqTUD6JlDU4jPGH-LKevlexwO?3C^lHbwifa*=labKz**=xdG zl~(8;(EENbNXqYWeJFww)#W<&MdOn?xIxdb=*RvBixuB9i(9QG#TlCf; zsOFCn4m^|97TqOiKz)#&tgh8v|7&>uBmHdmcXjz2VV`kot8Nl>z4~3oa`#s4f0J$| zhU@g!{b8RC?(1~?TY?mG_j+9}Xh8iTW1Vxo?zd<^(D(EX>+{`=M72#fy=}t%EhA2S zUzhyJAf36|{e8XNqC}vZ^y+tvTUsVo2=tW}O~|~^eXD-mqN$mWI=AT?-xZ%oZI640 z-fxgdwo|A4*>G8#nW%Q^a*Hm@j8nJkD=oS@^9uLvdWS_f!tD-SeURY>)K4<6cHg1r zyl=RCkd8G0z3Y%c_hl{zI%v@oncsEasSkf(+*~YeCMA8hUL8RV z?z{Et28q=7==zTgmw%iTr|!|~4DvhUF@M)vEs7Pi)1s8|d))WvM=Z)3|18j6gJi98 zm#+RBc@C(;@p0;2eWgWbg3G=7uti@JwR0D5N%W)qGZ%_1*~j zTs^H@e8R}hmGzhOXBHir z_^kUSox*QWQAY0sKXkvW^CReU^@?6T+_ zcUzP_DN((t4_QC65cZaXZZ7W`d5A;{#?-}OP` zCQ|<$fwVerGU=o-q(MKvu~GG~!Fdue|0mb$;nT4kZW2Bx=4SkS6`kl|jHHgLnljYv zQY~V0snBQ+#{a_+|5`=6p4i+kas4odas5>2y>X14_Acxc9kgfuMB8I89Q=E*M}>Ye zC9g>F(O8uE0r+vL-NM;O@(j#FbNJ8VdVJ3RB|y$tCf2{(rG1O6sVxA|o z4AhjPOXM;BJyxEe~BP^~(|CN6>Io5cKMu^%+M)Go34rBLR;m$kQl7T0fx9vXf7NNoNk^xs0Gb^dts z;uNN?29&#MX}&?s(LRUe(S9T-cAJaYXg=-3HYRpTGPIpJ-p16FKOwA3dJwnz5N409 zWyY21bxFHww8*r#xDEUNx4p^9PepQfKIJ#LXVNl$G;MB64O2(?#O7|XAr0FY`%e?; z(@=6YX%Dx+|4l1;Jm;WDWh61}26YKL_F?a+37{^OD}MfOHTw9}MaOumaGou+OlTcw zxJ+Bb#>gD4Z$=M~w^=J;Yos0S6*E)hQdbC{V{O8{Btzj&2%*t>$gqwLdweR6&&dy@ z)J*COpAlopIa8?7eCoVQ^xthY|5=H5pHOVhf`8gL_$rEKBSW3on|{ia&Q7s0l==|P zG1K;%HtjF*{Lk2dS|+S!|YP(B5$Sj@WDyx&zcvcYwOogP?Bp zn-kjqPF!CE#l6MSs&ryJ;HXz&<5F*cx>d7`5ZGpF^=I+Joha%e|>vK$ofSi}_Ze zw+p>j=tDvu75ZDDF9>~2=v$!6z>RxE-V>XT#2nDYQy%irT#wyo7fpHGvl!-QK?kNR zhs{+&w+g*c=#PZ%0v)HHoARb-oc_aG)$CUR#znJn@xCU~L zfQ|>9tWVGR2WU~wzdZ?hVUEjtn(lMQdl#$oa#BH8<*b8*y*alb_1puRs<<{^20!&M zb1s`IGN&r8;HSzP_Eg!cQ>3|{bg}ixwf|IkGg7Nlb1S^5imUpQ^_1K??_^z&8xnef zw^>5b=0dT#7C!l=AXRpAohEs*9z2ga7fQU$rK3)&>Ty#?_(&_fx9hW}p6a_@mw-;z)l-Xn_exxo^+i*c_#P7TVs-!2pehn+i-ad7 zhdi>!cCx;5)I|4W%{Rf5wUal|Js>_`&=d3CL|IIQ&1-sIoiQa z`5#ka1C#ZJJnZq+oAOG*lchYMSh54^+PuWTTN2}2D1Gb&(zoTM1Qx6N^44L!;PJc( zFu$7jIDAr`*YpRY{NVP%lz)g#BKTaJHy?ibumhd+{6MO_RT)qt^AjaSajHmHk-%C{6B(oLGIf~#ZCDkFU~tIs8Ru^u;AZ; zTXj*vFkh;}cU)Wa(gIiTpPKJd#_3fBezOZoA|dnxD<^)=9=ssi*gybEDNT?^{g-vIUNM$lNj8Z=%r)JVMsGzH(U z`_))|5oo5q1ayKP0L|7LL38m1yB{Y$YzCbn=9&6Bm}d#MIl`wz-vFBh`WDb~y#usT zT&pFn8u7DS;;I*)O~PR{PLA-a7JWNtyTsKc(yqgo@P4fC-v`>S9|YZ?e+7D_ehhSz zei9Tb;GkRe3!vLX<{Kr(?Gob-iE*dIc&Eg;OJclVVti0+j_9);bIu-Pg z>om~At}{T7xXyI>)l3gdf0l=G&hb#r5)b8E;Gvx59?Ch=OFt=I`Wfr3bR3oGO-9%W zVxKMcxv)q1dYR`lyv%`_-do(@>?OB3-W@QPcy9+?;Jq8PTx=@Erdn)jyo_tP_ddAR zdmjXC^8N~RwZzgQv9wDphs5Tv*c=g?qY}$!UdpU|gFk&=ETB6`<#yFOr_KeJW z5c6COKKUgPpL6i+!n4Re`4#^<;9~nMQMY^U_B`cz*)tyJ>=t@Y^Un4bdzX68^RDxL z(|fgdoA(y)o!&>hk9(i-{@$DFo8?>JtMRSyHT&9q7yB;vZS(E$-RZl}_lWOzz7Ks~ ze}X^XzrlaCe~bUe{>S~#`uF+Y_aE`Q0_lM%f$4!$17`&01QrIW0yTlJ2UY~S0~ZJS z16KsT9oQ1s7PuwwK;U$<$CSpLgf!qTim@9ouF)8WV9pKd0p)2UKE-c>GSRC}LMdfqY%v*Qi>dgghvk@u zZ*68^oN*d@p40JlO9{@aormvQ&Q>R3FZy`wE6>3#7rEF`K2}t~T`!UR=>(WS#Bt`}!kCDX0n3&FZ$E4HeFUQloTj*2cUqfAgEQ|Ip z2sQa>{JfJj=<`D{M~8hUi=}D&8xB2_=>J3Ot zPJ+g3eDy_|3e9(*CbM*EfpGrlH=`Bb5& zfuDmmko0u$bI^881)U9k4%)2(&?213tkG7T4D(!}3lZAE{i$pZD}^pcTZnagpc=<<8gp2Dcj92r^)k@AR4wQ|h|^K`p@nd;Bc=}YN!0-Q6#5EB{Z@rQpT>4- z%sN3GjGdZ6Kf-xfj`|qVIqGka%fV>sLiqVRD9#4couJcoH*8MU7r{J3=qY+VY)%D5 zj_DqlPZN3uzNSF#37w@ch5ebJ$UQv(a}g-=4c|jJs#sqEn-Wk*&C}lmJx_lNbUDsW zLO$rLK|A$#K)du7&~E)*(6#zHgt`dSQQy|z1Kp&*4|=u!0q8aQCb(|ax4`@zp*QJU zVZKHG5cCoKBe?zw)WO@zpMXB5ZwGx`-vRoBz6`X11I`d-ji^?jg@^K(#_^8l#Z zc?cXlppH7pc^GuO^DEE^&aXkUoJT>`qlMHeXh6Ppwt(7`wmn> z=hfFR$aM~aI?hp0m$UN?bnMPiP>*x;L#!e@nSaIL!dU?7ciKS%&Nk4XGY9WOW1I&; zW1akfR>Pc~pmC17ADp3MN?j^%c72|)Xjj>%T{(g-G%u0oF!Ww=GCLlLx|WW5nvR+| z33VhNwJaaCBp>xGA2lQ&bu1rsBp)>^AN3<2bt@lrBOfD$eAJG7)Utfkk9^dyeAJM9 z)T?~dk$m)kSV-dEtc7h&-7TTBR9SJ=>V}T?;y63*1(R8ZYSV zUh|c{!X7%+n$E_yj+W*Xs%m{_S7?o@SaE)+u}c*-wS+pR7pmfpM$oe2mbTVV!-|%W zLNukVT^;Mck~KV7Uen4d6wbN}H9(Hml`Rcjp^mcF_U^8*-B+Xl45k>!eKFb#^wl zwN5kMI~j9y@RE>WS<&4!$P<2s;L=uPLKL%wp{~_!O=MNv*4o+C(Aw1*7Ph#pr3EQR zjGd~C;X)nZ1kYRw*mButA%Cd^6bhWN+XlZUTVFskgfI=gHeALT)k zQety~Jj3P^D1l@RJx74}h;~`TtS)W|HMEL}o+YR0Q4F*RH^8nv&RK#R}zLi#sV-G+LG>aGS$)0E$k zqOxW46`4OY|3s~a|>>Ru2wFY9PVg{Pui=jhS?SY z^IEz)S1Sgt=x9cJBSw%e8`7{6Iu}x@vZBuQt&M0{(Do`Z7dN!DtU!OF=7tb{FzTYU z4b3g49cgLn3@Hp7nu=FTbar0U*3o3!$Fmu%s;jNtdZ*SD+bqUY zvKLR2KASm_TpUd6F$qAc17&PrR;c!Hge;gy>{1%hE{Fso*k(?;JxMkgo0QwRJ?9*JW7Jp4F=))Y;h4+|F(QRi-m! zTqDwbi7-te=qj{wNcV0Pva+G8aWz>qqX`#%kTSA88q(3)3~eiI9W0!%SqcZS4dGDK z(b2HJyt%VWg)Gm;ZaW@<6b(?pa7{zwQ65?wYEkfD+ZHtQ;i^XI$~sN#Xx^dSVHZ(! zhC}8U22#M`e6)ZWX^oPT?crpux1)j8$jwlP$PS%QmEBP}EdgyZA!c~|FenZNL*1de zIx1fWq_de7F`P0(p<_pbRfInCoYEy#WfhC+78aG1*3GR|a$D$%}L-(wzDvK5^DqA$4tZ1$-U06vo-0XvK0g;hd zp34Ur6_+le7d+?%k8?^Fnuj2YLpO+n2gSjIT=1YccvvnJ2MBD%ONF44sh&9WZCg7wPG zj#%fzM%JNlrGlP@=P0PMP-$^lFD<;(-MQ<{z(zc>@sXKfd0S&ci&Z_iME5AGAhzue z!?j`vqhs6}SSM9`SBL3rx;r{hH`T(nwIMbxs@Phrg!t{K3K(uHHqmUNI!z_AVuaw@ zft1ZZx2)1yF`-e$d2MYR=Fh99Hq2WR0$*A?XFUtrJ@Oi|j_GCvZ+x#E3PN1uKf7zg;2r)=eRqGIgTAZCooB7(ZAm@GELo?up8=bH%SvCRe@^`MaE@O+c6elIM=v`A#|RM2EAMNK@0IQIHo|lyBoW@J3`b% zjCo3{7Z$OBEiWxvBBuFEN>Oo^)Rh%iR8_0;(yFQms9IQ5US3zdU`c7!0##C4S-l_( z7FSiEilNG};&EPBiTPHA%Qos_wke%LMQK|X zR?kywx>nBXfR*wEZ6PLWg_y((#2f>9A>(nv%#a=CM5TgMt%a#9>W&hJ`^CZ@4d6(OZq zib6S=3Kdb2P7I7%v2NBC8Wa#i@YSnTQxmFg_ZpOELuXV5Ei9_3D=M#CfVP%OKv-OX zu?oBQB}*3-k<3+#>gF%0SXx=7<{NK|>dK&SRpPy>w7j&qx&mm?(uH*u9Puous6d-u z%SD4hHICGNjQ+8tDV0sF!p#~DEo?g30jbq8F2jlj>nT=&q+_#C%&3oR*wd;~=wS;} z+qIyfb2T#_b4Cu1k@xK2*h>zsb9DkmrpIWaJIc(Wfi=?e{EoKnc559r)1F==D0xIc zBt*nX!k8%~`s*gtQw-lRH}4ctuxKoEc`^x`$wSgo)O3D#ry1u9gZZH@+7F5ki^xow z*}&1d9j0Q$U>i#Y9SmYq7EVb-@If)dVu%Rk^Xe+fOBPiu!QgUU9iK(zG?kYvI-Ad` z+J#|b@dAuk=b_6MhmtZu^UCH`(6+b&qeTp5=he-ZaqhgjqGDk*f6>yqlBEkPt$z#) zxUxi#3rnkuBmjJrS1g(zj)x(LW#~YLzzdg_SC^er5#dO;s&HToftO&h%zA|{NT@5W^i-NnQeoQ9psh^San3PX5x zi?!QWige*#o+AQj&F%18+DgmRTA>@q(tvnsj#_yEmmx#eMW-@|D^|a9&OEV=Ov_)1#GXji?vaGYT zVxBmg0Xij+bJG0(=dx}kGHa~D!2%LVI&JKFA!^>%>|y#R|# z#tB?_9J#$xV!kA@H*152u1M1h_jy@KH1tQ6+>bAjkl;XDb^%4^5*@ejPs_B?u zrf5ujWvy%5E(j@E8L?)JD69!Ja0M62E(nF%D_WY^j&>pk8k?J?>*nh=)qyDymKj!K zF{z6K>6OjvFp08ysJi$Dg_OgqW8Q_7u7z}}p{c3vOC35wYcN3la<_`sFAXwO5yLN7 zj?u)hwaL(PY!caRm34*@GXL!8Gy@k!Cz~TJ*hv@Ey0XnIRD~IHc_@RgOQ*1;T~*EE?V@V!*Yc8KFRm+c<*}k7k`sj2Og8pFB70 zp{NBz!s<3EwXGBkKNxIb)m#aHB`L1HLbZ%%GdYW}8FVhkNJy2C%oXF@a&!^sr%0BR zVi?sCYDdG&2SP*C7Ma<#G+u60jD;G2YxVSq8!^EQDTSWt3l_h))S8VbB!WIOi^% zCnLpjjsT0w>m;dVRn=lJY{iIl)=jTFh3Un!AYTjx1$70}XDU>Ajwt4$BS$ICFk{}3 zYRA}(%ecq~3}HM)D((B-hFQYmd>cE53VvLg;%gxB%0;Hd-=?0ZV zJC#@`WPdpJ@yb^J(7{77RbY1$&=c*YObnF(X(vD+5B6%s810c}Bm+G<-BR4P=8Sg9aD zDu^N~^$(EBLxM{C2SWX$f+7`xszUjE&+lH}c{#Cn`%k5r#CPsJ_nhDPo!{?wey?-x zTvL@^1T6K}P++G>0A4!Fm!x_jshx)q>t0QkbC-uhE#bh zsE>??tDrMg($=G6XD^>SN2-y0&CI2-QA^k;c{4XLGCy}|OrHL=>G13#(dO9P{OH8U z94*I(aoX_mridx7j7|EOVQP48_O*3)fX2*Pb7qJugY+7ld`@ z@A$L$?(F%A@i`A@a%Sejuu_1&gHa^XT_isU&hv<@H3peUB4wgp4MMp2%kg0m&4DziP7c5Knwy>&@nKR_IC6e?g2d{~)Wu8lSgpqT2BEU5uGMPKFDO28cSs_# zY|I@j3@g$|%KYLA5v4y{TX>Q6*VV-^es{~YTEzE7MT_INs>)O0uF14+)bItdLB0U9 zYbV$^w_*$BSRk#)`;}?GCBbHf+1R$m|tj)RiaV71dJLCY=#yebYng#N8J2jjm ze7DdW9rN+7C6AE;e-(-H}jJk>0c@(40XnNV&1OZ|je zMW3PcEHvdZl@6v{7D zU+8qBy0p4{3l-lHzi45)m&M%@fMQ3Y?YM}{b~4M~kyno3%98KsD$G;4 z*<05kjf^#uWKEMmU1+UEDd;#SIa|58fLzq-ei>#fd}}U7mlCmtK7jMVmgLhZ3B(Lz zBhAhE;d0sbyv)@mwF2rBL@}GEm{yhg9ai6LyU=uPV=LT`YiackXGqcn2;1wzh8?*L zEa`bYsU!G%hz)9onuGS3tr>Owzd*S%~zTU)>dy1QWtbON)^ z8n55uW2Xdv+Op-t1F;zyXgo*zs}vc~9Rm`^3C4%_KA@N5-48f)GPR&+Tn+;o>`)2b}h%GKsF|-Oc2;b+~c!zo%8^+ zydJKnFVyR9;fAM*=rgy?d%`C6@xth7Qp@k|?nL%vLbMn%a= zzb@m`#PEy=brIb_II^x4Gj+p!a?r-t*qZp_uo5@0(kiZ$#rxZ8O*yL;*`ixW)?BWl_Uh}QJ_$jY zI!7Y?a>_C?a(QD>I=0F}N|=E(Z4q8DRcu2hc?M+3r+Iy5Ug1vYJKqt>?t~2xtht)U z!!3o|qJ5Fy0w;@YtD)*T+yEUq(EyP%U%WVoK%U-4!Yu<8a=ppt z2_3)4{~(*f#Ktb!ut3+N(U42PI+v ze?25+tHhT(%$=}|857Sj%1+R>(F+&~%UbK5>`?EdpWh}F>qOa6lBs1TSDtR4e_>fu zFO;=m#+46;!{IUHWsBP^}3uVzRLMhcI7YpW;L=y}L)mR%w1x6sE@30BG z@z+??Y{7r2+>U=()`UN0ZTN>}t@YZdNj;Ud);rZob?T|Cwcb-5>OJMwZrj#FpJ7-Fp67dkXQNo9;rY4>4_)8p$QBN2)F{2g6+4x< zs&ht;+dmh0*SBL!zM%0K@%wqW>lhDjsnv^ua(RNbBxZq%6wy}KH-STB*`MX7PJkX6lZT1Pa9%f?+tfm zr*N-=@v6u9o}<|@o-w?$@JjT&C){g0#q%tXmcg{j6PiCe;y%N|rL3+^SeTly7NLnb3r$@PtrLj!ks9$PCQYZ;v?+4{7se{uCJg4gp zO>-@&FHu_Jd(}(4Nvi7c$m3f_z1%(tyb_Wr>Al0*9i&OJU*fOk+tysrQ+2L*nK~7I zPv9m;%^!n5#xu0z%uM^%xT>^T;qC(cYBX-&2zY6>s0G*!i))&r%ha6YY>~QaEv+=t zRcdH{Z$NL2`5n|bu3t3R^8vo!!E^f`a&AiVQgcnv-$o5lQur@YdIM~AhXoaXzr+*E zXSjC@xSj61)4CH;LnCRe70q_(9L>BMy_TF?o&?+L^tIr%l15bJpUrhqOTBxLbDw+jVw81*QOtr#vys^D4ECFXF^0Jvh}nP zT_inaIQ5)!k4Bog1TS^(hR0hyNg7+rrJM8a$JMYi5 zjcM{S1C5)el6y)$j)uYS$FsbRMG5d^=D)u%;svgE<4xX+@tip*|KQn zx}g!UsPY86pf%Ut2ETo#b){p)6L)BYdCQ*h@Y-yXbfD(5ut4WMW148Y5eaYU%M#RS z)-&$eIiLudbW7Fq-}==!r5n}8v|^;~1Y?bRj!hAbc3>7ia|X>a#uN7Uw?z?!BC8Z# zyTfCC+|3?t$5B%=vMr)*q|>GKTIlnzS&bSxUZXP&ZCin__0-dgz`4oymTZqS`e`FA zy^eP1Rg`V^*xVDXG?RC!8MWx=u6bpV7ZKAZswFy@v^Ld$rV+EYiN+|BVIZ{br+d4qm7^#@h*)!f7jfsv zyVIsrV+XmjYun}^os0xT#yOfUQigFb+ScZ@f``}ORv&5=ADcK$!fpTP%yIQ@$2n!GY(a@BX#_vWwv za5|4IMkLAiBVeojHp^&aaTmrA2#Z2X*g!>wuazZkS)Q6mQzw!!yJCKgqQ>hmYlFM5 z6?$ZG`4yaZzdoGXCxheJz}G_sv#F7<<4&Gu^ieEbB4)9;#iF}g-0Kj-yiPudr?MZS zy?ZX6GLa3Jwv)wfo#vWGrm}1*mH2%R*QGi~JA_VLWFB)vhNwuiVQ zS!egS8RZlA$zbe4+8bnad+egfeMd67qwz)%@0n#d8IRZW*GA}Aw9313Y|39Pl9eJe z)vE|a8B^D1k+f_A<@*}1xIQM!doO7sK`M?UYHqaU6jM&h+HBH23XS34{Z6HD|F zpzaQKaOQsXnFGI9+gm%I^rG;bpt29zHDZtMd(6zOU0b&>kbn(;|LgEqKdhv$viLpXQPN-RhpL}n$yhk+5KRMWjR^2wTe zGr1P7@r-x-G+Sa@;ttFAlSFk|nUpL>+RHuM9ABtiLw)5JmGRj)P43o~h- z+nm?vMOay$Sdw8nQW8`1`PfLt+`%Qr7OgH@{-2+S!3wyd#%Adt^&r@h2f&MW&P)SI zWulYW4U>RIsW;2iq1QtiPv>OVIMB2*%>({Gjx@XJHc7JOP9sdBm`c>ucx~;;atoIlb&h0L z+J<^3wdyaqlH6{;v!GFDxo2AE*irP3={Qm59%DN!-5=>|>F>sIHuBW%GpcKCT)QUR z9$hP1W)40p&mmfCA4Cryqg>It&f9g6GAPDbR$ek|Kmo?1!njdSh+C3&Fk-Jma!oe)0WR4xW1Tql9HS{(@vF2(l>-#Z;!$!!euf8RWOS z)4jZ$Am~XKds8ma+nZ87O0$V{CXvo3(tCQ+{e#?20VJWD2~M&)$)`$*AfHVGEuZzE z3;UBL*MC^O^dF{L9+3HbBI$yBUUvrlok31LxB(DI@Rv;v(u$M3P6jy?Q^|B;^GiMH zLSG`COP3P4T>laEnc7oI6^4X-;i&;ZEA(Z-qR>a}UJ&soSq7L@9a`ix_!NL1;7{mr z0Q4(St5>2{uVkt4Od<`oe0c2&2VObnl6!POJGtb39eDkkOJ2OtlT4~&GOa^ShrA92 z9p0z|FD`V+0Ua)0$YePjKc3WkO_F=9EJ*16nJ&o-@EmAyc#{r~>+ohB-lD_B3+Xh6 zR7!_5oXSGXAe)A+3@`;@iz$x9RKACoy(H7c!hTPcGaBhZ7?jN?C@Aa~e+v6yS&%F2 zPjlYqYeK%%pl(wX&=@8RNIVLCIgy?3Y%&lc2_5L)B~vOvW*3KEioM4_w^a}SZs3v)=~2e87JU6I>^+zwoDJQxa21Sf-2!BfH0 z!RcT*7!F2*v0x&&5KIPB!E`ViT%ns`h z-TVl}eVPOXe;Q4LA==;N@1~^t=fzF`1^LSP3`kHJDkkhZQ%VNeeAZLXQz>64dt#Ln zYW@kDQ}d4@oLywO(2d{J;pLx2<5-BtU?diy4^k+Kz zRXTtrI{kf-Dx08Z;hf!k**y+Cy7+|C3k*1LeQ9=h$T|t!pL}Ne^WXo}t>1d}TW=|R z?6X5X-+3&5>|?*UZ+vy}4-Wm{d;k19pZfYQefrJc{=5DE_?1^4`t*gbJ^RKhU;g(a zKe7DH4<7tj<;VLz`PEbZ{c9I$?|C+HH231?KX?4QnU5d)?UnR*zF+=_NACXp7lSYS z%7;%LTt4`Xsn32jcVysu&%OAk8^7>JS6-Y+Uire(@`IDh6MvY@Na<#JdV8T>|K?xy zI#{;((f-X}h6*UfOpxs@rI{Z7lS%jb4=hNCdwI>Byp(Iu!}ROXm7h;Acdttc5_I?| zZJBKz0`U6}^KbK0y}ZmwpZ>$(kjSF$srs1|Unu8H(3{Rki5?JEe}f*UCTMcxUe4?F z0e{TvI53cA%IlNKWz)UXLd>O_GJI!~r~=K3d~pDvz#qtDlG#)U{Oh?)s((-oU?GfD zom@_JC@O6J1&9@?@P-Uv3;X*ARgW773!7in?ArXA)V;K!W*5Ek-uJzFB!ov!?I(a7 zT^G&>&m3?w59M;;=jSco;fHpG{q*mGU;uOreT*lI>4HdUs^6i?nPjeiu+Y~( zDDt2s^~E>kfb2gESk5>truJw03lBu_qwhVLOxSagejsXsiIGY6@X2P<`s(S~m)RRt z2U7MxqS*6D=0FiuSrixSGM$L4K3qIrPMN)K{Z1cP7h}G`>N_t|Kg7r{I|22 zF?G=4gI-qyFDq&P$uj#@5j_spe0yjOxKWfoKw&6gk{GDbNQ+`&P7nq%Z`7B^C?1*> z9mr-hJcJ~}3FFB=kl8B~eV@=G>qYY$P##;>SD4I(XW7C<4e6i6#xfR5Zc4s~sSy;0 z5dySw9m^G4kFDL#>oO&R`zzQp7J_;L@GkpdI1`rS6NP4o_J<`_yW&cw^ z-uwubx3KxY68e_{lzP%nIDhLido!8B85*WE-=sEQ!kwe`*B;FDQ4L7{nSe+y^?5nT zdl>zBiF^KFW}j3@;idjUAJfRw0$ZVqAp_B@{hR-y!>c;{>yKp~Y!)FudhyY-3Wi-rg%2YbaY=J$g8m&HzN^Fk=N{jl@1|AUOLF^K*m9Z)%-f*=I0#*S8JPM!qy8jY3?u$Av`O~(;%MJCM z<81=<(X}=Gtfjrrrc&|m!BMjxJmE_3YHQyu=u)6df!9I-d&4D>-)3`bo518P+R9b$ zJb&+bHQ*hly0Xu=d(bBC3Qy0>bL5w|Ih!DVJI(b3$8pZ}`Sav|{GYsPdly&qPA^$xyf3WzGs^msGwYPQYueVRBaBR|h;{N}f~h>#(S|bHGoW=b zdrHPXgT#Bw_BO!3LYsJRrr;h2#@l)G*-?Ksi!LURL65f~!6QSYoX}dr{Qh@{f9B+i^y4#J{^u zZ*J4)ZJzdVKgy~ro5v5Ydm1WZsZWVNv;3DwFwOh!~ zMgt{T!VLF&wDRtqo_EddS~<8K|K8=>4l_z+3;8)fMx@n_owjGV-A|VST?%w5(4|0^ z0$mDpDbS@rmjYc1{3uZ1E38U@=U3kOqkwD|$1VlB6zEc*OMxy0x)kVApi6-+1-caI QQlLwLE(N+2cr6t8f7@721^@s6 literal 0 HcmV?d00001 diff --git a/MySQLClient.Design.csproj b/MySQLClient.Design.csproj new file mode 100644 index 0000000..dc20e14 --- /dev/null +++ b/MySQLClient.Design.csproj @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MySQLClient.Design.csproj.user b/MySQLClient.Design.csproj.user new file mode 100644 index 0000000..b57d1dd --- /dev/null +++ b/MySQLClient.Design.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/MySQLClient.csproj.user b/MySQLClient.csproj.user new file mode 100644 index 0000000..ea3dc75 --- /dev/null +++ b/MySQLClient.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/MySQLClient.sln b/MySQLClient.sln new file mode 100644 index 0000000..7a2c1d0 --- /dev/null +++ b/MySQLClient.sln @@ -0,0 +1,49 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data.Tests", "TestSuite\MySql.Data.Tests.csproj", "{92CB29DF-61DE-4277-8DC6-D3587C7311EE}" + ProjectSection(ProjectDependencies) = postProject + {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F} = {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F} + EndProjectSection +EndProject +Project("{20D4826A-C6FA-45DB-90F4-C717570B9F32}") = "MySqlCeClient", "MySqlCeClient\MySqlCeClient.csdproj", "{C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsApplication1", "..\WindowsApplication1\WindowsApplication1.csproj", "{BB7D4210-F5D7-43A2-BEC0-AF142A48E766}" + ProjectSection(ProjectDependencies) = postProject + {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F} = {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data", "MySql.Data.csproj", "{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Debug.ActiveCfg = Debug|.NET + {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Debug.Build.0 = Debug|.NET + {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Release.ActiveCfg = Release|.NET + {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Release.Build.0 = Release|.NET + {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Debug.ActiveCfg = Debug|Pocket PC + {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Debug.Build.0 = Debug|Pocket PC + {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Debug.Deploy.0 = Debug|Pocket PC + {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Release.ActiveCfg = Release|Pocket PC + {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Release.Build.0 = Release|Pocket PC + {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Release.Deploy.0 = Release|Pocket PC + {BB7D4210-F5D7-43A2-BEC0-AF142A48E766}.Debug.ActiveCfg = Debug|.NET + {BB7D4210-F5D7-43A2-BEC0-AF142A48E766}.Debug.Build.0 = Debug|.NET + {BB7D4210-F5D7-43A2-BEC0-AF142A48E766}.Release.ActiveCfg = Release|.NET + {BB7D4210-F5D7-43A2-BEC0-AF142A48E766}.Release.Build.0 = Release|.NET + {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Debug.ActiveCfg = Debug|.NET + {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Debug.Build.0 = Debug|.NET + {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Release.ActiveCfg = Release|.NET + {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/MySQLEULA.txt b/MySQLEULA.txt new file mode 100644 index 0000000..89fabbf --- /dev/null +++ b/MySQLEULA.txt @@ -0,0 +1,252 @@ + License Agreement for Commercial Use of MySQL[tm] Software + +This Agreement ("License") is between MySQL AB, a Swedish company +("Licensor"), and the customer ("Licensee") identified on the electronic order +form submitted on behalf of Licensee (the "Order Form"). In consideration of +the mutual promises, covenants and conditions contained herein, the +sufficiency of which is hereby acknowledged, the parties agree as follows. + +1. License Grant. +"Licensed Software" means a complete and unchanged copy of the object code +version of the MySQL relational database management software identified in the +Order Form and posted on a special download page of the MySQL AB web site (the +"Download Page") made available to Licensee immediately after payment as +provided in Section 4. Subject to payment and the other terms and conditions +hereof, Licensor grants to Licensee a limited, non-exclusive and +non-transferable right to: (a) make one copy of the Licensed Software for each +license purchased (each, a "Licensed Copy"); (b) compile and/or link each +Licensed Copy to one copy of the Licensee software identified in the Order +Form (the "Licensee Application") without modifying the Licensed Software +(each, an "Integrated Product"); and (c) load and use the Licensed Copy +portion of an Integrated Product on one machine or instrument in the operating +system environment(s), and on the hardware platform(s) specified in the Order +Form, and solely for running and extracting data from, the Licensee +Application. "Use" means operation by one person for internal business +purposes in accordance with the terms and conditions hereof. Licensed Copies +shall be deemed accepted by Licensee immediately upon download. Licensee may +make one additional copy of each Licensed Copy for backup and archival +purposes only. + +2. Transfer. +Only after Licensee has linked or compiled a Licensed Copy as permitted in +Section 1, Licensee may transfer to a third party (the "Transferee") the right +to use such copy as described in Section 1. As a condition to any such +transfer: (a) Licensee must deliver the Licensed Copy and any backup copy to +the Transferee along with a copy of this License (including the Sales Order); +and (b) the Transferee must accept the terms and conditions of this License. +Any and all of Licensee's rights to a Licensed Copy shall terminate upon +transfer of the right to use such copy. A Transferee's rights are limited to +the use rights described in Section 1(c), and do not include the linking, +compilation or copying rights (except for backup and archival copies) +described in Section 1. If you did not purchase this License directly from +MySQL AB, then you are a Transferee. Licensee and any Transferee must comply +with all applicable export laws and regulations. + +3. Restrictions. +Licensee may use the Licensed Software only as expressly provided in Section +1. Without limiting the foregoing, Licensee shall not: (a) lease, license, +use, make available, distribute or modify all or any part of the Licensed +Software to any third party, except as otherwise expressly permitted herein; +(b) use the Licensed Software to operate in or as a time-sharing, outsourcing, +service bureau, application service provider or managed service provider +environment; (c) lease, license, use, make available or distribute the +Licensed Software as a general SQL server, as a stand alone application or +with applications other than the Licensee Application under this License; (d) +copy the Licensed Software onto any public or distributed network; (e) +distribute Integrated Products pursuant to a public or open source license; +(f) port the Licensed Software to any operating system other than as described +in the Order Form; or (g) change any proprietary rights notices which appear +in the Licensed Software. Except as otherwise provided in Section 2, the +rights granted to Licensee herein are rights that may be exercised solely by +Licensee. + +4. Price and payment. +No later than thirty (30) days after submission of the Order Form, Licensee +shall remit one non-refundable license fee per Licensed Copy as posted on +http://order.mysql.com on the date Licensee submitted the Order Form (the +"License Fee"). All payments shall be made in Euros or U.S. dollars. Licensee +shall be responsible for paying all local, state, federal and international +sales, value added, excise and other taxes and duties payable in connection +with this License, other than taxes based upon Licensor's net income. Licensee +shall not be permitted to access the Download Page until Licensor has received +payment in full. + +5. Termination. +Licensor may terminate this License immediately if the Licensee shall breach +any of the provisions of this License and such breach remains uncured 30 days +after receipt of notice. In the event that Licensee becomes liquidated, +dissolved, bankrupt or insolvent, whether voluntarily or involuntarily, or +shall take any action to be so declared, Licensor shall have the right to +terminate this License immediately. Upon expiration, cancellation or other +termination of this License, Licensee shall immediately: (a) discontinue +distribution of Integrated Products that include Licensed Software; and (b) +destroy all copies of the Licensed Software, including (without limitation) as +linked or compiled in any Integrated Product. Sections 4 through 10 shall +survive the termination of this License for any reason. + +6. Proprietary Rights. +Licensee agrees that the copyright, patent, trade secrets and all other +intellectual proprietary rights of whatever nature in the Licensed Software +and related documentation, including derivative works, are and shall remain +the exclusive property of Licensor and any third party suppliers. Nothing in +this License should be construed as transferring any aspects of such rights to +Licensee or any third party. Licensor reserves any and all rights not +expressly granted herein. MySQL is a trademark of MySQL AB, and shall not be +used by Licensee without Licensor's express written authorization. Licensee +shall include in the Integrated Products a conspicuous notice that the +Integrated Products include software whose copyright is owned by MySQL AB. + +7. Disclaimer of Warranties. +THE LICENSED SOFTWARE IS LICENSED "AS IS," WITHOUT ANY WARRANTIES WHATSOEVER. +LICENSOR EXPRESSLY DISCLAIMS, AND LICENSEE EXPRESSLY WAIVES, ALL WARRANTIES, +WHETHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTIBILITY, FITNESS +FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, SYSTEM INTEGRATION, +NON-INTERFERENCE AND ACCURACY OF INFORMATIONAL CONTENT. LICENSOR DOES NOT +WARRANT THAT THE LICENSED SOFTWARE WILL MEET LICENSEE'S REQUIREMENTS OR THAT +THE OPERATION OF THE LICENSED SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR +THAT ERRORS WILL BE CORRECTED. THE ENTIRE RISK OF THE LICENSED SOFTWARE'S +QUALITY AND PERFORMANCE IS WITH LICENSEE. Without limiting the generality of +the foregoing disclaimer, Licensee acknowledges that the Licensed Software is +not specifically designed, manufactured or intended for use in the planning, +construction, maintenance, control or direct operation of nuclear facilities, +aircraft navigation, control or communication systems, weapons systems or +direct life support systems. + +8. Indemnification. +Licensee hereby indemnifies and agrees to defend Licensor against any and all +damages, judgments and costs (including reasonable attorneys' fees) related to +any claim based upon: (a) an allegation that the Licensee Application +infringes the intellectual property of a third party; (b) use of the Licensed +Software in a manner prohibited under this License or in a manner for which +the Licensed Software was not designed; (c) integration or use of the Licensed +Software with the Licensee Application (where use of the Licensed Software +alone would not infringe); (d) changes made by Licensee to the Licensed +Software (where use of unmodified Licensed Software would not infringe); (e) +changes made, or actions taken, by Licensor upon Licensee's direct +instructions; or (f) bodily injury, property damage or any other damage or +injury due to the use or inability to use an Integrated Product. + +9. Limitation of Liability. +LICENSOR SHALL HAVE NO LIABILITY WITH RESPECT TO ITS OBLIGATIONS UNDER THIS +AGREEMENT OR OTHERWISE FOR CONSEQUENTIAL, EXEMPLARY, SPECIAL, INDIRECT, +INCIDENTAL OR PUNITIVE DAMAGES, INCLUDING (WITHOUT LIMITATION) ANY LOST +PROFITS OR LOST SAVINGS (WHETHER RESULTING FROM IMPAIRED OR LOST DATA, +SOFTWARE OR COMPUTER FAILURE OR ANY OTHER CAUSE), EVEN IF IT HAS BEEN ADVISED +OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANY OTHER PROVISION IN +THIS AGREEMENT, THE LIABILITY OF LICENSOR FOR ANY REASON AND UPON ANY CAUSE OF +ACTION SHALL BE LIMITED TO THE AMOUNT PAID TO LICENSOR BY LICENSEE UNDER THIS +AGREEMENT. THIS LIMITATION APPLIES TO ALL CAUSES OF ACTION IN THE AGGREGATE, +INCLUDING (WITHOUT LIMITATION) BREACH OF CONTRACT, BREACH OF WARRANTY, +NEGLIGENCE, MISREPRESENTATIONS AND OTHER TORTS. THE PARTIES AGREE THAT THE +REMEDIES AND LIMITATIONS HEREIN ALLOCATE THE RISKS BETWEEN THE PARTIES AS +AUTHORIZED BY APPLICABLE LAWS. THE LICENSE FEES ARE SET IN RELIANCE UPON THIS +ALLOCATION OF RISK AND THE EXCLUSION OF CERTAIN DAMAGES AS SET FORTH IN THIS +AGREEMENT. + +10. Miscellaneous. + +10.1 Interpretation. +Failure by Licensor to exercise any right or remedy does not signify +acceptance of the event giving rise to such right or remedy. No action arising +out of this License may be brought by Licensee more than one year after the +cause of action has accrued. If any part of this License is held by a court of +competent jurisdiction to be illegal or unenforceable, the validity or +enforceability of the remainder of this License shall not be affected and such +provision shall be deemed modified to the minimum extent necessary to make +such provision consistent with applicable law and, in its modified form, such +provision shall be enforceable and enforced. Licensor reserves the right not +to accept any Order Form. Any invoice issued by Licensor in connection with +this License shall be deemed a part of this Agreement. To the extent of any +inconsistency between an Order Form and an invoice issued by Licensor, the +terms and conditions of the invoice shall prevail; Licensee shall be deemed to +have accepted an invoice upon payment of such invoice. In the event that +Licensee placed an order by telephone or through an authorized sales +representative, the invoice issued by Licensor shall constitute the Order +Form. The terms and conditions of this Agreement shall replace and serve as a +novation of the terms and conditions of any commercial (i.e., non-GPL) license +purchased online by Licensee prior to August 2002. + +10.2 Binding. +This Agreement will be binding upon and inure to the benefit of the parties, +their respective successors and permitted assigns. Except as otherwise +provided in Section 2, without the prior written consent of Licensor, Licensee +may not assign this License or its rights or obligations under this License to +any person or party, whether by operation of law or otherwise; any attempt by +Licensee to assign this License without Licensor's prior written consent shall +be null and void. There are no intended third party beneficiaries of this +License. The parties are, and shall remain, independent contractors; nothing +in this License is designed to create, nor shall create between them, a +partnership, joint venture, agency, or employment relationship. + +10.3 Governing Law; Dispute Forum. +If Licensee's residence, principal place of business or place of organization +is in the United States of America ("USA"), then this License shall be deemed +to have been executed in the USA and shall be governed by the laws of the +State of Delaware, without regard to the conflict of laws provisions thereof. +If Licensee's residence, principal place of business or place of organization +is in any country other than the USA, then this License shall be deemed to +have been executed in Sweden and shall be governed by the laws of Sweden, +without regard to the conflict of laws provisions thereof. In no event shall +the United Nations Convention on Contracts for the International Sale of Goods +apply to, or govern, this License. The parties consent to the exclusive +jurisdiction of the courts of Sweden and the USA, as provided in this Section. +In the event that Licensor initiates an action in connection with this License +or any other dispute between the parties, the exclusive jurisdiction of such +action shall be in: (a) Newark, Delaware, if Licensee's residence, principal +place of business or place of organization is in the USA; or (b) Uppsala, +Sweden, if Licensee's residence, principal place of business or place of +organization is in any country other than the USA. In the event that Licensee +initiates an action in connection with this License or any other dispute +between the parties, the exclusive jurisdiction of such action shall be in +Stockholm, Sweden. Notwithstanding the foregoing, either party may bring a +counterclaim in an action in the same jurisdiction in which the originating +claim was filed, and either party may enforce any judgment rendered by such +court in any court of competent jurisdiction. Licensee shall comply at its own +expense with all relevant and applicable laws related to use and distribution +of the Licensed Software as permitted in this License. Notwithstanding the +foregoing, Licensor may seek injunctive or other equitable relief in any +jurisdiction in order to protect its intellectual property rights. The parties +have agreed to execute this License in the English language, and the English +language version of the Agreement will control for all purposes. Any action +brought under this License shall be conducted in the English language. +Licensee shall be responsible for Licensor's attorneys fees and other expenses +associated with the enforcement of this License or the collection of any +amounts due under this License. + +10.4 Notice. +Unless otherwise agreed, any notice under this License shall be delivered and +addressed to Licensee at the address set forth on the Order Form, and to +Licensor at Bangardsgatan 8, 753 20, Uppsala, Sweden. Notice shall be deemed +received by any party: (a) on the day given, if personally delivered or if +sent by confirmed facsimile transmission, receipt verified; (b) on the third +day after deposit, if mailed by certified, first class, postage prepaid, +return receipt requested mail, or by reputable, expedited overnight courier; +or (c) on the fifth day after deposit, if sent by reputable, expedited +international courier. Either party may change its address for notice +purposes upon notice in accordance with this Section. Licensor may identify +Licensee as a commercial licensee, including on the MySQL web site. + +10.5 GPL. +The GPL License shall continue to apply to any and all uses and distributions +of the Licensed Software undertaken by Licensee either prior to the Effective +Date, after termination, or otherwise outside the scope of this License. This +Agreement shall not be deemed to replace or otherwise amend any Licensee +rights or obligations pursuant to the GPL License with respect to any uses of +the Licensed Software described in the preceding sentence. + +10.6 Entire Agreement. +This Agreement (including the Order Form and the invoice) comprises the entire +agreement, and supercedes and merges all prior proposals, understandings and +agreements, oral and written, between the parties relating to the subject +matter of this License. This Agreement may be amended or modified only in a +writing executed by both parties. To the extent of any conflict or +inconsistency between this License and any invoice or other document submitted +by Licensee to Licensor, this License will control. Licensor's acceptance of +any document shall not be construed as an acceptance of provisions which are +in any way in conflict or inconsistent with, or in addition to, this License, +unless such terms are separately and specifically accepted in writing by an +authorized officer of Licensor. + +10.7 Print this License. +For record keeping purposes, we encourage Licensee to print this License and +the Order Form on the date that the Order Form is submitted. diff --git a/MySql.Data.csproj b/MySql.Data.csproj new file mode 100644 index 0000000..97fde58 --- /dev/null +++ b/MySql.Data.csproj @@ -0,0 +1,419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MySqlClient.build b/MySqlClient.build new file mode 100644 index 0000000..dea48e8 --- /dev/null +++ b/MySqlClient.build @@ -0,0 +1,152 @@ + + MySQLClient Managed Provider for MySQL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README b/README new file mode 100644 index 0000000..11ad956 --- /dev/null +++ b/README @@ -0,0 +1,36 @@ +MySQL Connector/Net 1.0.4 (formerly ByteFX.Data) +MySQL AB's ADO.Net Driver for MySQL +Copyright (c) 2004 MySQL AB + +CONTENTS + +* License +* Documentation Location + + +LICENSE + +MySQL Connector/Net is licensed under the GPL or a commercial license +from MySQL AB. + +If you have licensed this product under the GPL, please see the COPYING +file for more information. + +If you have licensed this product under a commercial license from +MySQL AB, please see the file "MySQLEULA.txt" that comes with this +distribution for the terms of the license. + +If you need non-GPL licenses for commercial distribution please contact +me or . + + +DOCUMENTATION LOCATION + +The documentation currently exists in MSDN help format and is located in the 'doc' +directory. + +-- +This software is OSI Certified Open Source Software. +OSI Certified is a certification mark of the Open Source Initiative. + + diff --git a/commercial-banner.txt b/commercial-banner.txt new file mode 100644 index 0000000..095393f --- /dev/null +++ b/commercial-banner.txt @@ -0,0 +1,12 @@ +// Copyright (C) 2004 MySQL AB & MySQL Finland AB +// +// This software is distributed with NO WARRANTY OF ANY KIND. No author or +// distributor accepts any responsibility for the consequences of using it, or +// for whether it serves any particular purpose or works at all, unless he or +// she says so in writing. Refer to the MySQLEULA.txt file for details. +// +// Every copy of this file must include a copy of the License, normally in a +// plain ASCII text file named MySQLEULA.txt. The License grants you the right to +// copy, modify and redistribute this file, but only under certain conditions +// described in the License. Among other things, the License requires that +// the copyright notice and this notice be preserved on all copies diff --git a/gpl-banner.txt b/gpl-banner.txt new file mode 100644 index 0000000..3e5b0f9 --- /dev/null +++ b/gpl-banner.txt @@ -0,0 +1,19 @@ +// Copyright (C) 2004 MySQL AB +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as published by +// the Free Software Foundation +// +// There are special exceptions to the terms and conditions of the GPL +// as it is applied to this software. View the full text of the +// exception in file EXCEPTIONS in the directory of this software +// distribution. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA