From: Marc Alff Date: July 14 2010 3:53pm Subject: bzr commit into mysql-trunk-bugfixing branch (marc.alff:3104) List-Archive: http://lists.mysql.com/commits/113597 Message-Id: <20100714155355.A53C945E80@linux-su11.site> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2696897272185909511==" --===============2696897272185909511== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/malff/BZR_TREE/mysql-trunk-bugfixing-55087/ based on revid:marc.alff@stripped 3104 Marc Alff 2010-07-14 [merge] local merge modified: client/mysqlbinlog.cc client/mysqltest.cc libmysql/Makefile.shared mysql-test/include/ctype_numconv.inc mysql-test/r/ctype_binary.result mysql-test/r/ctype_cp1251.result mysql-test/r/ctype_latin1.result mysql-test/r/ctype_ucs.result sql/filesort.cc sql/item_strfunc.cc === modified file 'client/mysqlbinlog.cc' --- a/client/mysqlbinlog.cc 2010-07-08 21:20:08 +0000 +++ b/client/mysqlbinlog.cc 2010-07-09 11:24:18 +0000 @@ -2032,6 +2032,7 @@ int main(int argc, char** argv) { usage(); free_defaults(defaults_argv); + my_end(my_end_arg); exit(1); } === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-07-08 21:20:08 +0000 +++ b/client/mysqltest.cc 2010-07-09 01:19:57 +0000 @@ -6338,7 +6338,7 @@ void free_win_path_patterns() for (i=0 ; i < patterns.elements ; i++) { const char** pattern= dynamic_element(&patterns, i, const char**); - my_free(*pattern); + my_free((void *) *pattern); } delete_dynamic(&patterns); } === modified file 'libmysql/Makefile.shared' --- a/libmysql/Makefile.shared 2010-07-08 21:20:08 +0000 +++ b/libmysql/Makefile.shared 2010-07-09 11:18:36 +0000 @@ -52,7 +52,7 @@ mystringsextra= strto.c dbugobjects = dbug.lo mysysheaders = mysys_priv.h my_static.h vioheaders = vio_priv.h -mysysobjects1 = my_init.lo my_static.lo my_malloc.lo my_realloc.lo \ +mysysobjects1 = my_init.lo my_static.lo my_malloc.lo \ my_create.lo my_delete.lo mf_tempfile.lo my_open.lo \ my_file.lo my_read.lo my_write.lo errors.lo \ my_error.lo my_getwd.lo my_div.lo \ === modified file 'mysql-test/include/ctype_numconv.inc' --- a/mysql-test/include/ctype_numconv.inc 2010-07-07 06:00:46 +0000 +++ b/mysql-test/include/ctype_numconv.inc 2010-07-09 05:39:41 +0000 @@ -1607,6 +1607,25 @@ drop function f1; --echo # --echo # +--echo # Bug#54668 User variable assignments get wrong type +--echo # +SET @x=md5('a'); +SELECT charset(@x), collation(@x); +SET @x=old_password('a'); +SELECT charset(@x), collation(@x); +SET @x=password('a'); +SELECT charset(@x), collation(@x); +SET @x=sha('a'); +SELECT charset(@x), collation(@x); +SET @x=sha1('a'); +SELECT charset(@x), collation(@x); +SET @x=astext(point(1,2)); +SELECT charset(@x), collation(@x); +SET @x=aswkt(point(1,2)); +SELECT charset(@x), collation(@x); + + +--echo # --echo # Bug#52159 returning time type from function and empty left join causes debug assertion --echo # CREATE FUNCTION f1() RETURNS TIME RETURN 1; === modified file 'mysql-test/r/ctype_binary.result' --- a/mysql-test/r/ctype_binary.result 2010-07-07 06:00:46 +0000 +++ b/mysql-test/r/ctype_binary.result 2010-07-09 05:39:41 +0000 @@ -2567,6 +2567,37 @@ drop function f1; # End of WL#2649 Number-to-string conversions # # +# Bug#54668 User variable assignments get wrong type +# +SET @x=md5('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +SET @x=old_password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +SET @x=password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +SET @x=sha('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +SET @x=sha1('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +SET @x=astext(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +SET @x=aswkt(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +binary binary +# # Bug#52159 returning time type from function and empty left join causes debug assertion # CREATE FUNCTION f1() RETURNS TIME RETURN 1; === modified file 'mysql-test/r/ctype_cp1251.result' --- a/mysql-test/r/ctype_cp1251.result 2010-07-07 06:00:46 +0000 +++ b/mysql-test/r/ctype_cp1251.result 2010-07-09 05:39:41 +0000 @@ -2649,6 +2649,37 @@ drop function f1; # End of WL#2649 Number-to-string conversions # # +# Bug#54668 User variable assignments get wrong type +# +SET @x=md5('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +SET @x=old_password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +SET @x=password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +SET @x=sha('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +SET @x=sha1('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +SET @x=astext(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +SET @x=aswkt(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +cp1251 cp1251_general_ci +# # Bug#52159 returning time type from function and empty left join causes debug assertion # CREATE FUNCTION f1() RETURNS TIME RETURN 1; === modified file 'mysql-test/r/ctype_latin1.result' --- a/mysql-test/r/ctype_latin1.result 2010-07-07 06:00:46 +0000 +++ b/mysql-test/r/ctype_latin1.result 2010-07-09 05:39:41 +0000 @@ -2977,6 +2977,37 @@ drop function f1; # End of WL#2649 Number-to-string conversions # # +# Bug#54668 User variable assignments get wrong type +# +SET @x=md5('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +SET @x=old_password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +SET @x=password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +SET @x=sha('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +SET @x=sha1('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +SET @x=astext(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +SET @x=aswkt(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +latin1 latin1_swedish_ci +# # Bug#52159 returning time type from function and empty left join causes debug assertion # CREATE FUNCTION f1() RETURNS TIME RETURN 1; === modified file 'mysql-test/r/ctype_ucs.result' --- a/mysql-test/r/ctype_ucs.result 2010-07-07 06:00:46 +0000 +++ b/mysql-test/r/ctype_ucs.result 2010-07-09 05:39:41 +0000 @@ -3809,6 +3809,37 @@ drop function f1; # End of WL#2649 Number-to-string conversions # # +# Bug#54668 User variable assignments get wrong type +# +SET @x=md5('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +SET @x=old_password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +SET @x=password('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +SET @x=sha('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +SET @x=sha1('a'); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +SET @x=astext(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +SET @x=aswkt(point(1,2)); +SELECT charset(@x), collation(@x); +charset(@x) collation(@x) +ucs2 ucs2_general_ci +# # Bug#52159 returning time type from function and empty left join causes debug assertion # CREATE FUNCTION f1() RETURNS TIME RETURN 1; === modified file 'sql/filesort.cc' --- a/sql/filesort.cc 2010-07-08 21:20:08 +0000 +++ b/sql/filesort.cc 2010-07-09 01:19:57 +0000 @@ -355,7 +355,7 @@ void filesort_free_buffers(TABLE *table, table->sort.sort_keys= NULL; my_free(table->sort.buffpek); table->sort.buffpek= NULL; - table->sort.buffpek_len= NULL; + table->sort.buffpek_len= 0; } my_free(table->sort.addon_buf); === modified file 'sql/item_strfunc.cc' --- a/sql/item_strfunc.cc 2010-07-07 06:38:11 +0000 +++ b/sql/item_strfunc.cc 2010-07-09 05:39:41 +0000 @@ -72,7 +72,12 @@ String *Item_str_ascii_func::val_str(Str DBUG_ASSERT(fixed == 1); if (!(collation.collation->state & MY_CS_NONASCII)) - return val_str_ascii(str); + { + String *res= val_str_ascii(str); + if (res) + res->set_charset(collation.collation); + return res; + } DBUG_ASSERT(str != &ascii_buf); --===============2696897272185909511== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///home/malff/BZR_TREE/mysql-trunk-bugfixing-\ # 55087/ # testament_sha1: f10458c7e10e84f046cd692b4e6ce1a28076f398 # timestamp: 2010-07-14 09:53:55 -0600 # base_revision_id: marc.alff@stripped\ # 33ewzyn4cxqcsjky # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWaQw+P4AD25fgFAwWPf//36n zgS////6YBZNzoOtt8p97ju26s2LtbFCgkoAAdu2Wl3medO1u9ltvV571u4dAJ7VmrGinocVDJzu 8JKRk0qbxqaaTwjIZFDT0nqGNJpoAAaASUACMgEQmQaNKGgNAAABoEVP1TCYTQYmJkAZGRpgBNDQ DTQBIUQEyBGRo0p5JnoKaZNDRkAaAaAiomJpVP09BNo0mST2qep7Kn6nlJ+iho0DQAGgRSEATQBJ 5GRlGaamJJp6gGgAAZhyDDwSnBKoSl0JYTaO0tfOy81R6sItoiudiYzqIIEPw2A6n+7/Lj0oCoE6 uZ9n0qFYF1gYGxS7tWEWBJTJLKxGf9wuG91nd8NvokU7r/P1r9g0B55zUSDnW3DndKc7hz0s12Yr HMEGeaki+VFKUUkUkUkXga8Er0JaWizEeN9rAlJKAhOuLYGSno9uoy1otH0SdE2tyyhg8JXQlcln e8DB6JhtvStBbKf3KIMRoGkHYtHyccOFx5JHBI1JDENsbbbbbbabTaMvHgJHRUytbBkY2uheE3uy Pe62SPppCTCypbdJdCoy5llzhS4PfWtjtfQyrsd9K0uvqWV6ZKPGSmMUbpjS2hYUMj49y32/BID6 TZqOXmRdy3sOZRQFruNtODNjOx2Qph2LZfCkcfl9NaQE86QFuSy2BppXVEhs/w1JS1L1S2pLt5ru ycLpj6muSIfRIgRZrzR8ZySKQy4ZxelXzEDRsvuvKIkQVEP7HLQ8UTOiiilKxWDxRQN3C8x8rY98 cUrb8n06qqSy9R4gztawfZMoakufvPVOuh62bL+fw1m7yb28UCyywxzfhStUeHuEQBG8D380H9SD s+M5Sc5k5zmTnOZOc5k/nLR6nEUPUFhQIUCMapCS8MPQEtnRAS91Q4iKAg26M33+5sG2wbbBtwER EBUIGL0ooGJbp2CVm57wJ6jUdANYkzYTJDBBmBUqk/O1gtFMblzZuYFO5b3eO9TqwIlyFda5VkTK 5S7ITKESI2J8qvuS+Yl9EnDzYF5BMvG7Nc6131azXgodANSFtUeJJAZCuoTABiQ0CzAkUtsN3sC4 pTVmm4xjIXKiAOCRhWotuxkkrWpJL8q1rI3JKharXfy767Tm7fPf5bq0Ng9iEF9IBvYBZNaLIndM iiyLAgtAmNbQOpBOtKE7BVJLOdSDdO2gRIAqVEihsUh6gmFqgY1ybuQW0hUZAL/oYuypgWFoULKI lW+SSE0pB6FBSjaWWpIiZMllgSGgCl2BYriTpE0opOJoQweTG0v5ndg58KMZKYhYeFs2ozVCXkkC cAWq67/j4uLS7LHMaJVltr7fARQok5KToTZu0yDqiDNL3JTpC+E8GCDO7OglJrdFJF1Uv0i8BFtR I335tsZMMeZLNKlAdIJJEYh8zL6AQwDUzo0kN/5dolw1+ZdG2IjSNDBBz8Dbr1ajQhBfNSRmXRnW 2v8Ei03wk4qleTUEhAxcJZeLqSrtZ2kPFxGD9IaJeRLFektbHnm9Kkx1emwqgWYS7P1w3hLlLY1s Qab9ganXgOi43NRjtxTy5C1B4QLlpnNeZILC4ghTKXLaZyq3ILDCKKbwIKyqS6VYhAokVqpYu1ZE qGg0UMXWKXGfIa1N4pqzK1PHwaVuc5ydjTMQYrCpb1QeAkf9SO6X0BqcAxEvTesc2BOEDbSOVwdE mVdnb6CWzmJRYAA99433bzzWwxN0lvDgYrvzuWbSXbEr8vErXFEjI4HeofgI44U8T49CKg8RZA0s RJJPEE4UHM9eHDiIxn5R47eCW3PaHmYzH0uTY06v76jj0vFjguIXmlgyHGZsdx3h0w23LESZM9A7 NJF8czsh5nieL9FoUMSnAtCoybjjQ3aNkyJjOGcSpAinHg4HQOBgwYI2NpFfjQKkbfRhy48aGDDv Ah5GMJZMqPR6B0R6TEZk8vtNWnv9/aQXLUNzCWVmMl8BpNx22QfFTI8DKDhs+WmrZ9Dn1IpP7ZCR Jj9qKSHGzJvPhO5cqSoHjtocGTpRIF2ao01ayHNaKZHQ0HEwNy7yRUsw0Bkcj1Nm8wNvPZ/TBkUm BgKp4x4ouJw5odEFMRQ8aUQKBSwkPjAGtCSDdvEy3oNiTm+UmKhQmEqTjFpdf+K6gsUmi86pVO+R LkGtInhIxt9obEzMQ2WR0XuPLmug45L0nG8HGok1IMpZoqO5HnIbeXyW5taO/I4HNLlhw2r+Mw+w kHgvqNXpyEzKdtC8i+UGYyiIy2pPgUdxmXYQFnccMOG/iJm72JBq5QTmx1YxXMaTwM5lVo5F7dpJ NfgbDI4FWhMSH+4z+Akevcrr8xcQbveLxk7FCgU6LHg+5oOqkPOCmSYQ2GBPJ0du9M7AVGoWbS0v OAZ141S52bLYI0avK8OXUL0JvhYVifU3m07u8escdEeOolGomgd7nb0RBQcwMjlpPODEaRiRtQi6 QwPZyfCLOhkixAc4yzHRcl4qeUFgaOaKesh1LSIWHFSwz47VyzPelEEONyZckNnsds2yNazewawq yDMZljyCh5FQyJJ4zJ+1KwGZvQoF4MA12oQBgrsASNBxSekOsoOCBt7dRwRIew2A9i+SXYG9996K ozgwanVNmm3DTFJw9VxA7aNGdGPhCbBQrDZPyzTMG1MzXdKb0CoqEDm+6bdRO5q/ZxnZBz6kR9TK 9ByBhuHRJL8JsPLFMzAUtFrHGgmZxg7E5CMkmoGw4eV2m+gebR1dyYOJn7zIyq0v3mlNgjekSsyg PNJHaSDtLv2bTM5fy8iQmSKl2FCRpLMgMqxQNiuZGEMRHp7mtHmpE05kUok1vSVzUwPL30r2SOB+ hWTSY7J2B18n6SqRuHzS+xA9InnmT5B72cOThzm1GQCIYGA5I2YJDmIFHKbnGg0eXtxvQdHlMDap g3s/RXJLpo6okNKajTw8KbHEiiRYCI7e0AKmpwb4IUGMI7TYn2J2120n3EqkHRMXmoeRWQuHpyNZ 6Q7w8cjU+8lxnEoksKTTtpJWJOj3IwUWpZSVgyXJYuWghYGhaCEJySi2IMFisKCFBGdqwXV5lIO6 CIHQvoEDRyroPJLeoNNoY6i6qFI03KFHEpk5kQSYBNigck/epB/g+Scy870XwAzBNYEgEhQ/EVXO iGuHmZ9QEQkIwaE2CdVX94RDsKJAQ/Qrb/KQHxEgPgytUC1/00xyT/oighFOn8lVAmoE5w6MUurc ag56nzfaxsbGxsbG6h7A93dybbbbbb81gxYJEQO2CS98gZIqHHRBIs0HajQmoXn3oNUvOU7Ehy5+ ckHoQU8jnM62ESB7Bn6TUiOKFHEjmBn+OpNh+Q3aaMdUopFhspli+XbgptBEs1Ek5JKMN7+IbBX7 CS72PA6kYlzC0shC0jOTyQknbdpPFpMkEBC75uvcYlDZBL1jesCLSSWtvlPuUu8E3LbYtO6scMEX bnqBnbFE9wIf9XMPLSo2iAaBDjS0gtwmn8hOyuIpFZELs6iHWEALeQZlXA/2HNRjPp3Nhx+dnn0O RZI7zpxaFnqegQXVqVNLHzKymHBCWBW73NS8Ydwv9TKFMOJLHsL9Z+ZJgmpfqc3i5h79jFS5uWkZ jUSyMTfoKm77UJW0MD3u5iczaF6/6X6B0A/L1yD1IQke/I1b17bZ813hI7hTmEjl6a1E4wGprC0G ATkY4BgOzardetgyPOYTOjdESYGxjTxS+ZQ95U6c4oZEEwidFDOUsvmZlEEbWaQ1mmmL56rRhMZU WCU7TgS6Kx5A56dtHEsM8kiV1V6FhQObi/YkicS6xaiomBXM8W4+YLRQMfuggD4rwCVyZVyhVfwQ 8tQh6Ob8SHTnCEHtJISNtw4rA8rTSb54s31hV0dB9XkIqUPkUqPDru4rdZ5WinqWHU7EVmVRs5ck oNRfWYepjpUKaPOrKIPU1IPVCo3l5euG0zos+5McDsQ5kuJuTIDIOBzPHeeeHljbiarD/D5S6qwM Ly+tmaMu7Tp2nIr6CHqO+q+TtC88dy95gnSCVlAyD6HIdG78PpRTEidnD4uKrJ/TCdNkIaYQlCfL b35bs+Vu+aLSuO0hxYYKqu4lhdlxnaPLvNMMHKZabKPnu7HvqDTP2NNIZDfT5RaTgUNuxKxyfVIz ecJHmkS4GlrTY0MYQOIHBI2iFAXAr0cdN1LG4YeI4vq4mcoHvNU8sV+9U0webW+cVXo7mvolSA/E l864MKa2ENI9LG+mbJuMiUpnYtOvyJ2FUzVirktsVDs2bM2pJtO2dUOS5tr8qc9n6SlEst5kZIeX F6stbbeJL2PeLbxZLHgEVKolgxQb7yGaw1EaVm8Yn40XkLqvOIQfeLvJq8rYX95VkAmldoXLwKox WEwCjgMEAJZZFpAAO1jrSogJEu6aHSPY3HXkILek9PojdutCKWPeUEmw45zofR4yYyGI2J6k6xPY u1ZZAZEix9fMmMc80PDXQcUMsTEQvnMjTurNBIDuELjntMRPzqd+D7KSU4e5J5rz1nVcwaignOZo DpdmIA8lv3inrTsbitcAq6dMPlKUoAnICqYUGEMqeIdEJGmw4jAQowFiXi5DWvZDInjWdyGxdZkt N5XswPBDsC1DetwmCGUO1CUBUzGMWYgHnihvDVN/tv2FhT7PMyLKHwzKlK3UFVqEzcaTwmicwWwn YWamgrNZcRSX3JuAhnCAs1jXHCUty5Z9i8UWF5Wtq/lWIe4cF5nzQ7jqFTyAS4XokCGwQ/MGj8+y 0R8JZzb24GEJdjiB3Cfo+q/Ncy3IAbliEH44nip2cXgQRJAK9QHMAKOnXu9vInQ6r9TxMCMTjaQh zqUjSppXqHDh9gmTrCi2PV8g0hYexoNR6edaF/wE19Q7bQmQXG3uL3wdYej5iNQZShvCeQ5u1N3U IvVku0ncbo9yKYAvad58hUAMWq6gtXUQRMgBgcF1h7VqgBlA1JcOtGgWaRm5N4FEC5RVDRVauk9u xsCGkltuZHiEa1yQAkmdfd1vaDkBqPfIsAN4FqWZjgHieI4hkgQg4HpXdyDrD0GfSOS6/pSQKnyU rPkQJSiQkyDv7ZnIzyz5ldZgHuToX4KcDuabV0FCXYvgtYL6zlqqYhithkDUQJIYl67DQF6SCC5R DAzW5/PrDjYcIJel+CEp6OJuE2iacgyM6ESSUYE6SMEmCyEKLzc8ylBCB8SlohVVgE0lRbBuDEJy hbY0qiTsBiaNyBoqaTFK+p9guQ4EwLV+QbjPkHspUfXI+hpvEhVIhV+YagmiWLrNOcM/tmev4fjB I8qrg5n3ZiBqKxg2OgmBqsCs5+wmPBbfRPZADGEAbayK/XfiIDjYvwqNA2m/tJIXmhNniBlEaiTN ZCt+gNba2In/j7hvccO42eF2izT0zqlS50WZ3HmsKQg+XCIiIiI/vYIclHdqA4h8Gs+okG/L2bzW podCzwKw2bj4O4+E+qTMCMbBK+j7WtzBzPIO8obkV0kziazYKcaGCULaEM+0lo/M8Q/EJlMVgDSF iLYfC3CBULT1WEJg7LjVx3VumqkRdRRJEPL/U+lEA+4B2N3JdSUQgx0A+YQzoQMFFdg6NNvMSwaM S3G6f6QsUZ0Oht9ow7vqOeiGj1EyxEArkmSwdC9ZvVSsWpAgIWsqOZFbWl5MZEQWREiqqmuVMAog EiQvVCigT3Fa4ikCXheVrX0vlIiIw/oPDA8hAPyt4CY+hNfcS82DGNjAbRvSO5bUrQA98KpG5Ymw D2sbE2NpsbGr0AevQbNe5fYkeltttttsY3baNAi1gHYfcXAaxHUlBpHYQEbKJsEZdoGiB9wVpNak 2ieCdAzXh8mn2DQX8i3ljK2X07eNRY4hgIoAB7Ktttt/WFgFQmBbDASvmmApsMCoJrmRcZqVpgKe 0gLQ6GXVK1vP/Zg9DHoBpeKQnHJIFJLAVQe+cwXdhLavAWQhOBALHtuMRHciQB+qWdfzFJjhMvjf OQUQaLhoOxsMluBOqPIExa3aFaXelamo5ByXxA7t5Gl909AECMOBrYlpALg7cCMEk4ciQvOdK34D 8Al0ZEaAMTzKsg5H8FOmKHiVmzY2omhwQ3h5BkAGYAOx2D2rMA7B6FWUXnEg/RtNdIPksOlTvFJH zqTSrt+kgWCeVy7C3MWlTm62nUVX1ngb1kYh0Dc2FqgZ0ufEksW00h0dhvWoRGZcIC7pAOtgQ4qJ TtiREtRUR4JaDAKixUmQQSFTKkJVmJzVkoah4Vl8S0W7iCCxFD0hjN+yVNzB0aBM5MKgxeZ/8Xck U4UJCkMPj+A= --===============2696897272185909511==--