From 58e2ca68bb86e6d1e086ab978f4b8d434ffef184 Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Mon, 29 May 2017 14:52:50 +0530 Subject: [PATCH 001/128] Raise version number after cloning 5.5.57 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 68358acf754..2905c37cc09 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=57 +MYSQL_VERSION_PATCH=58 MYSQL_VERSION_EXTRA= From def68691ce5a97f6a717fc6d33a4f1d26c063ac6 Mon Sep 17 00:00:00 2001 From: Piotr Obrzut Date: Thu, 1 Jun 2017 15:25:04 +0200 Subject: [PATCH 002/128] Bug#26181622 MSI BUILD FAIL DUE TO DUPLICATED FILE ID Fixed generated mysql_server.wxs not to contain duplicates, or too long ids --- packaging/WiX/create_msi.cmake.in | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/packaging/WiX/create_msi.cmake.in b/packaging/WiX/create_msi.cmake.in index 95cbbb3d437..b306c0c70d3 100644 --- a/packaging/WiX/create_msi.cmake.in +++ b/packaging/WiX/create_msi.cmake.in @@ -218,22 +218,37 @@ MACRO(GENERATE_GUID VarName) OUTPUT_STRIP_TRAILING_WHITESPACE) ENDMACRO() -SET(INC_VAR 0) +# Make sure that WIX identifier created from a path matches all the rules: +# - it is shorter than 72 characters +# - doesn't contain reserver characters ('+', '-' and '/') +# ID_SET contains a global list of all identifiers which are too long. +# Every time we use an identifier which is too long we use its index in +# ID_SET to shorten the name. +SET_PROPERTY(GLOBAL PROPERTY ID_SET) MACRO(MAKE_WIX_IDENTIFIER str varname) STRING(REPLACE "/" "." ${varname} "${str}") + STRING(REPLACE "+" "p" ${varname} "${str}") + STRING(REPLACE "-" "m" ${varname} "${str}") STRING(REGEX REPLACE "[^a-zA-Z_0-9.]" "_" ${varname} "${${varname}}") STRING(LENGTH "${${varname}}" len) + # FIXME: the prefix length has to be controlled better # Identifier should be smaller than 72 character - # We have to cut down the length to 70 chars, since we add 2 char prefix + # We have to cut down the length to 40 chars, since we add prefixes # pretty often - IF(len GREATER 70) - STRING(SUBSTRING "${${varname}}" 0 67 shortstr) - MATH(EXPR INC_VAR ${INC_VAR}+1) - SET(${varname} "${shortstr}${INC_VAR}") + IF(len GREATER 40) + STRING(SUBSTRING "${${varname}}" 0 37 shortstr) + GET_PROPERTY(LOCAL_LIST GLOBAL PROPERTY ID_SET) + LIST(FIND LOCAL_LIST "${${varname}}" STRING_ID) + IF(${STRING_ID} EQUAL -1) + LIST(APPEND LOCAL_LIST "${${varname}}") + SET_PROPERTY(GLOBAL PROPERTY ID_SET "${LOCAL_LIST}") + LIST(LENGTH LOCAL_LIST STRING_ID) + MATH(EXPR STRING_ID "${STRING_ID}-1" ) + ENDIF() + SET(${varname} "${shortstr}${STRING_ID}") ENDIF() ENDMACRO() - FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) FILE(RELATIVE_PATH dir_rel ${topdir} ${dir}) IF(dir_rel) From 1bb43334fc8e349624c2dd168dffb789e1550633 Mon Sep 17 00:00:00 2001 From: Piotr Obrzut Date: Fri, 2 Jun 2017 19:17:30 +0200 Subject: [PATCH 003/128] Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLED Temporary revert of the VS2008 redist check. --- packaging/WiX/create_msi.cmake.in | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/packaging/WiX/create_msi.cmake.in b/packaging/WiX/create_msi.cmake.in index b306c0c70d3..ae6a5773dce 100644 --- a/packaging/WiX/create_msi.cmake.in +++ b/packaging/WiX/create_msi.cmake.in @@ -218,37 +218,6 @@ MACRO(GENERATE_GUID VarName) OUTPUT_STRIP_TRAILING_WHITESPACE) ENDMACRO() -# Make sure that WIX identifier created from a path matches all the rules: -# - it is shorter than 72 characters -# - doesn't contain reserver characters ('+', '-' and '/') -# ID_SET contains a global list of all identifiers which are too long. -# Every time we use an identifier which is too long we use its index in -# ID_SET to shorten the name. -SET_PROPERTY(GLOBAL PROPERTY ID_SET) -MACRO(MAKE_WIX_IDENTIFIER str varname) - STRING(REPLACE "/" "." ${varname} "${str}") - STRING(REPLACE "+" "p" ${varname} "${str}") - STRING(REPLACE "-" "m" ${varname} "${str}") - STRING(REGEX REPLACE "[^a-zA-Z_0-9.]" "_" ${varname} "${${varname}}") - STRING(LENGTH "${${varname}}" len) - # FIXME: the prefix length has to be controlled better - # Identifier should be smaller than 72 character - # We have to cut down the length to 40 chars, since we add prefixes - # pretty often - IF(len GREATER 40) - STRING(SUBSTRING "${${varname}}" 0 37 shortstr) - GET_PROPERTY(LOCAL_LIST GLOBAL PROPERTY ID_SET) - LIST(FIND LOCAL_LIST "${${varname}}" STRING_ID) - IF(${STRING_ID} EQUAL -1) - LIST(APPEND LOCAL_LIST "${${varname}}") - SET_PROPERTY(GLOBAL PROPERTY ID_SET "${LOCAL_LIST}") - LIST(LENGTH LOCAL_LIST STRING_ID) - MATH(EXPR STRING_ID "${STRING_ID}-1" ) - ENDIF() - SET(${varname} "${shortstr}${STRING_ID}") - ENDIF() -ENDMACRO() - FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) FILE(RELATIVE_PATH dir_rel ${topdir} ${dir}) IF(dir_rel) From b5258c7134398b7b0c7b915c2c6c22e8decba453 Mon Sep 17 00:00:00 2001 From: Piotr Obrzut Date: Mon, 5 Jun 2017 08:09:07 +0200 Subject: [PATCH 004/128] Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLED Corrected the revert. --- packaging/WiX/create_msi.cmake.in | 31 +++++++++++++++++++++++++++++++ packaging/WiX/mysql_server.wxs.in | 26 -------------------------- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/packaging/WiX/create_msi.cmake.in b/packaging/WiX/create_msi.cmake.in index ae6a5773dce..b306c0c70d3 100644 --- a/packaging/WiX/create_msi.cmake.in +++ b/packaging/WiX/create_msi.cmake.in @@ -218,6 +218,37 @@ MACRO(GENERATE_GUID VarName) OUTPUT_STRIP_TRAILING_WHITESPACE) ENDMACRO() +# Make sure that WIX identifier created from a path matches all the rules: +# - it is shorter than 72 characters +# - doesn't contain reserver characters ('+', '-' and '/') +# ID_SET contains a global list of all identifiers which are too long. +# Every time we use an identifier which is too long we use its index in +# ID_SET to shorten the name. +SET_PROPERTY(GLOBAL PROPERTY ID_SET) +MACRO(MAKE_WIX_IDENTIFIER str varname) + STRING(REPLACE "/" "." ${varname} "${str}") + STRING(REPLACE "+" "p" ${varname} "${str}") + STRING(REPLACE "-" "m" ${varname} "${str}") + STRING(REGEX REPLACE "[^a-zA-Z_0-9.]" "_" ${varname} "${${varname}}") + STRING(LENGTH "${${varname}}" len) + # FIXME: the prefix length has to be controlled better + # Identifier should be smaller than 72 character + # We have to cut down the length to 40 chars, since we add prefixes + # pretty often + IF(len GREATER 40) + STRING(SUBSTRING "${${varname}}" 0 37 shortstr) + GET_PROPERTY(LOCAL_LIST GLOBAL PROPERTY ID_SET) + LIST(FIND LOCAL_LIST "${${varname}}" STRING_ID) + IF(${STRING_ID} EQUAL -1) + LIST(APPEND LOCAL_LIST "${${varname}}") + SET_PROPERTY(GLOBAL PROPERTY ID_SET "${LOCAL_LIST}") + LIST(LENGTH LOCAL_LIST STRING_ID) + MATH(EXPR STRING_ID "${STRING_ID}-1" ) + ENDIF() + SET(${varname} "${shortstr}${STRING_ID}") + ENDIF() +ENDMACRO() + FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) FILE(RELATIVE_PATH dir_rel ${topdir} ${dir}) IF(dir_rel) diff --git a/packaging/WiX/mysql_server.wxs.in b/packaging/WiX/mysql_server.wxs.in index 2092d0ebe3d..3eb81ec532c 100644 --- a/packaging/WiX/mysql_server.wxs.in +++ b/packaging/WiX/mysql_server.wxs.in @@ -61,32 +61,6 @@ - - - - - - - - Installed OR VS08REDISTX64 - - - - - - - Installed OR VS08REDISTX86 - - - From 790770c26438520d3dd139009ce51e3873d5fd9b Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Fri, 7 Jul 2017 17:43:40 +0530 Subject: [PATCH 005/128] Bug#26400146 - 5.5 AND 5.6 DOCKER PACKAGES MISSING MYSQLCHECK UPGRADE NOT POSSIBLE - Add mysqlcheck tool to docker rpms for upgrade --- packaging/rpm-docker/mysql.spec.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packaging/rpm-docker/mysql.spec.in b/packaging/rpm-docker/mysql.spec.in index 497ae395577..cc4e7bc541e 100644 --- a/packaging/rpm-docker/mysql.spec.in +++ b/packaging/rpm-docker/mysql.spec.in @@ -178,7 +178,7 @@ for f in msql2mysql mysqlaccess mysqlaccess.conf mysqlbug mysql_convert_table_fo done for f in innochecksum myisamchk myisam_ftdump myisamlog myisampack \ - mysqlbinlog mysqlcheck mysql_client_test mysql_config_editor \ + mysqlbinlog mysql_client_test mysql_config_editor \ mysqld_multi mysqld_safe mysqldumpslow mysql_embedded mysqlimport \ mysql_plugin mysql_secure_installation mysqlshow mysqlslap mysqltest \ perror replace resolveip resolve_stack_dump; do @@ -232,6 +232,7 @@ rm -r $(readlink var) var %attr(755, root, root) %{_sbindir}/mysqld %attr(755, root, root) %{_bindir}/mysql %attr(755, root, root) %{_bindir}/mysqladmin +%attr(755, root, root) %{_bindir}/mysqlcheck %attr(755, root, root) %{_bindir}/mysqldump %attr(755, root, root) %{_bindir}/mysql_config %attr(755, root, root) %{_bindir}/mysql_install_db From 6a6d5bc98abdd25b32590fea7ef6572ecc355d7e Mon Sep 17 00:00:00 2001 From: Deepa Dixit Date: Tue, 25 Jul 2017 11:49:51 +0530 Subject: [PATCH 006/128] Bug#26161247: MTR: --NOREORDER IS SEARCHING FOR TEST SCRIPT ONLY IN MAIN SUITE Issue: ------ Running MTR with the --no-reorder option by specifying test cases on the command line, without prefixing the suite name results in an error saying the test case was not found in the main suite. This is because MTR looks for the test case only in the main suite, and no other suites. Fix: ---- The fix involves searching for the test in every suite if only the test name is specified. This back-ports two bug fixes: Bug#24967869 and Bug#24365783 Reviewed-by: Pavan Naik RB: 16812 --- mysql-test/lib/mtr_cases.pm | 66 ++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm index e8d24eb399f..ce7d4e690c6 100644 --- a/mysql-test/lib/mtr_cases.pm +++ b/mysql-test/lib/mtr_cases.pm @@ -1,5 +1,5 @@ # -*- cperl -*- -# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -143,7 +143,13 @@ sub collect_test_cases ($$$$) { if ( @$opt_cases ) { - # A list of tests was specified on the command line + # A list of tests was specified on the command line. + # Among those, the tests which are not already collected will be + # collected and stored temporarily in an array of hashes pointed + # by the below reference. This array is eventually appeneded to + # the one having all collected test cases. + my $cmdline_cases; + # Check that the tests specified was found # in at least one suite foreach my $test_name_spec ( @$opt_cases ) @@ -162,20 +168,56 @@ sub collect_test_cases ($$$$) { } if ( not $found ) { - $sname= "main" if !$opt_reorder and !$sname; - mtr_error("Could not find '$tname' in '$suites' suite(s)") unless $sname; - # If suite was part of name, find it there, may come with combinations - my @this_case = collect_one_suite($sname, [ $tname ]); - if (@this_case) + if ( $sname ) { - push (@$cases, @this_case); - } - else - { - mtr_error("Could not find '$tname' in '$sname' suite"); + # If suite was part of name, find it there, may come with combinations + my @this_case = collect_one_suite($sname, [ $tname ]); + + # If a test is specified multiple times on the command line, all + # instances of the test need to be picked. Hence, such tests are + # stored in the temporary array instead of adding them to $cases + # directly so that repeated tests are not run only once + if (@this_case) + { + push (@$cmdline_cases, @this_case); + } + else + { + mtr_error("Could not find '$tname' in '$sname' suite"); + } + } + else + { + if ( !$opt_reorder ) + { + # If --no-reorder is passed and if suite was not part of name, + # search in all the suites + foreach my $suite (split(",", $suites)) + { + my @this_case = collect_one_suite($suite, [ $tname ]); + if ( @this_case ) + { + push (@$cmdline_cases, @this_case); + $found= 1; + } + @this_case= collect_one_suite("i_".$suite, [ $tname ]); + if ( @this_case ) + { + push (@$cmdline_cases, @this_case); + $found= 1; + } + } + } + if ( !$found ) + { + mtr_error("Could not find '$tname' in '$suites' suite(s)"); + } } } } + # Add test cases collected in the temporary array to the one + # containing all previously collected test cases + push (@$cases, @$cmdline_cases) if $cmdline_cases; } if ( $opt_reorder && !$quick_collect) From d75f8a174218fd0ada64222d2a538f7aace897bc Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Wed, 23 Aug 2017 09:16:12 +0530 Subject: [PATCH 007/128] Bug#24763131 LOCAL-INFILE DEFAULT SHOULD BE DISABLED Problem & Analysis: Slave's Receiver thread, Applier thread and worker threads are created with LOCAL-INFILE option enabled. As the document says https://dev.mysql.com/doc/refman/5.7/en/load-data-local.html, there are some issues if a thread enables local infile. This flag should be enabled with care. But for the above mentioned internal threads, server is enabling it at the time of creation. Fix: Further analysis on the code shows that none of threads really need this flag to be enabled at any time as Slave never executes "LOAD DATA LOCAL INFILE" after reading it from Relay log. Applier thread removes "LOCAL" before start executing the query. --- sql/slave.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/sql/slave.cc b/sql/slave.cc index 1e641ac6d7e..e533bc09b3d 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -2109,7 +2109,6 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type) thd->slave_thread = 1; thd->enable_slow_log= opt_log_slow_slave_statements; set_slave_thread_options(thd); - thd->client_capabilities = CLIENT_LOCAL_FILES; mysql_mutex_lock(&LOCK_thread_count); thd->thread_id= thd->variables.pseudo_thread_id= thread_id++; mysql_mutex_unlock(&LOCK_thread_count); From ebd96c314953f5c0073ff5846484fd5e438fe0ad Mon Sep 17 00:00:00 2001 From: Tor Didriksen Date: Tue, 15 Aug 2017 13:15:19 +0200 Subject: [PATCH 008/128] Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE (SIG 6 -STRINGS/CTYPE-UTF8.C:5151) Backport from 5.7 to 5.5 Field_set::val_str() should return String("", 0, cs) rather than String(NULL, 0, cs) --- mysql-test/r/case.result | 16 ++++++++++++++++ mysql-test/t/case.test | 12 ++++++++++++ sql/field.cc | 12 ++++++------ 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/mysql-test/r/case.result b/mysql-test/r/case.result index 40d900a0389..be712114a29 100644 --- a/mysql-test/r/case.result +++ b/mysql-test/r/case.result @@ -220,3 +220,19 @@ a d 3 11120436154190595086 drop table t1, t2; End of 5.0 tests +# +# Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE +# (SIG 6 -STRINGS/CTYPE-UTF8.C:5151) +# +set @@sql_mode=''; +CREATE TABLE t1(c1 SET('','')CHARACTER SET ucs2) engine=innodb; +Warnings: +Note 1291 Column 'c1' has duplicated value '' in SET +INSERT INTO t1 VALUES(990101.102); +Warnings: +Warning 1265 Data truncated for column 'c1' at row 1 +SELECT COALESCE(c1)FROM t1 ORDER BY 1; +COALESCE(c1) + +DROP TABLE t1; +set @@sql_mode=default; diff --git a/mysql-test/t/case.test b/mysql-test/t/case.test index e1c807fe32b..c2d8f44e953 100644 --- a/mysql-test/t/case.test +++ b/mysql-test/t/case.test @@ -173,3 +173,15 @@ select t1.a, (case t1.a when 0 then 0 else t1.b end) d from t1 drop table t1, t2; --echo End of 5.0 tests + +--echo # +--echo # Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE +--echo # (SIG 6 -STRINGS/CTYPE-UTF8.C:5151) +--echo # + +set @@sql_mode=''; +CREATE TABLE t1(c1 SET('','')CHARACTER SET ucs2) engine=innodb; +INSERT INTO t1 VALUES(990101.102); +SELECT COALESCE(c1)FROM t1 ORDER BY 1; +DROP TABLE t1; +set @@sql_mode=default; diff --git a/sql/field.cc b/sql/field.cc index 15571afefb8..e98c17fabae 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -8257,13 +8257,13 @@ String *Field_set::val_str(String *val_buffer, ulonglong tmp=(ulonglong) Field_enum::val_int(); uint bitnr=0; + /* + Some callers expect *val_buffer to contain the result, + so we assign to it, rather than doing 'return &empty_set_string. + */ + *val_buffer= empty_set_string; if (tmp == 0) { - /* - Some callers expect *val_buffer to contain the result, - so we assign to it, rather than doing 'return &empty_set_string. - */ - *val_buffer= empty_set_string; return val_buffer; } From be901b60ae59c93848c829d1b0b2cb523ab8692e Mon Sep 17 00:00:00 2001 From: Nisha Gopalakrishnan Date: Wed, 16 Aug 2017 13:58:25 +0530 Subject: [PATCH 009/128] Bug#26390632: CREATE TABLE CAN CAUSE MYSQL TO EXIT. Analysis ======== CREATE TABLE of InnoDB table with a partition name which exceeds the path limit can cause the server to exit. During the preparation of the partition name, there was no check to identify whether the complete path name for partition exceeds the max supported path length, causing the server to exit during subsequent processing. Fix === During the preparation of partition name, check and report an error if the partition path name exceeds the maximum path name limit. This is a 5.5 patch. --- sql/ha_partition.cc | 150 +++++++++++++++++++++++--------------- sql/sql_partition.cc | 169 +++++++++++++++++++++++++++---------------- sql/sql_partition.h | 6 +- 3 files changed, 200 insertions(+), 125 deletions(-) diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index aadac36e2ee..414f9d52536 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -624,7 +624,7 @@ int ha_partition::create(const char *name, TABLE *table_arg, int ha_partition::drop_partitions(const char *path) { List_iterator part_it(m_part_info->partitions); - char part_name_buff[FN_REFLEN]; + char part_name_buff[FN_REFLEN + 1]; uint num_parts= m_part_info->partitions.elements; uint num_subparts= m_part_info->num_subparts; uint i= 0; @@ -657,9 +657,12 @@ int ha_partition::drop_partitions(const char *path) { partition_element *sub_elem= sub_it++; part= i * num_subparts + j; - create_subpartition_name(part_name_buff, path, - part_elem->partition_name, - sub_elem->partition_name, name_variant); + if ((ret_error= create_subpartition_name(part_name_buff, path, + part_elem->partition_name, + sub_elem->partition_name, + name_variant))) + error= ret_error; + file= m_file[part]; DBUG_PRINT("info", ("Drop subpartition %s", part_name_buff)); if ((ret_error= file->ha_delete_table(part_name_buff))) @@ -670,9 +673,11 @@ int ha_partition::drop_partitions(const char *path) } else { - create_partition_name(part_name_buff, path, - part_elem->partition_name, name_variant, - TRUE); + if ((ret_error= create_partition_name(part_name_buff, path, + part_elem->partition_name, + name_variant, TRUE))) + error= ret_error; + file= m_file[i]; DBUG_PRINT("info", ("Drop partition %s", part_name_buff)); if ((ret_error= file->ha_delete_table(part_name_buff))) @@ -714,8 +719,8 @@ int ha_partition::rename_partitions(const char *path) { List_iterator part_it(m_part_info->partitions); List_iterator temp_it(m_part_info->temp_partitions); - char part_name_buff[FN_REFLEN]; - char norm_name_buff[FN_REFLEN]; + char part_name_buff[FN_REFLEN + 1]; + char norm_name_buff[FN_REFLEN + 1]; uint num_parts= m_part_info->partitions.elements; uint part_count= 0; uint num_subparts= m_part_info->num_subparts; @@ -757,10 +762,11 @@ int ha_partition::rename_partitions(const char *path) { sub_elem= sub_it++; file= m_reorged_file[part_count++]; - create_subpartition_name(norm_name_buff, path, - part_elem->partition_name, - sub_elem->partition_name, - NORMAL_PART_NAME); + if ((ret_error= create_subpartition_name(norm_name_buff, path, + part_elem->partition_name, + sub_elem->partition_name, + NORMAL_PART_NAME))) + error= ret_error; DBUG_PRINT("info", ("Delete subpartition %s", norm_name_buff)); if ((ret_error= file->ha_delete_table(norm_name_buff))) error= ret_error; @@ -773,9 +779,11 @@ int ha_partition::rename_partitions(const char *path) else { file= m_reorged_file[part_count++]; - create_partition_name(norm_name_buff, path, - part_elem->partition_name, NORMAL_PART_NAME, - TRUE); + if ((ret_error= create_partition_name(norm_name_buff, path, + part_elem->partition_name, + NORMAL_PART_NAME, TRUE))) + error= ret_error; + DBUG_PRINT("info", ("Delete partition %s", norm_name_buff)); if ((ret_error= file->ha_delete_table(norm_name_buff))) error= ret_error; @@ -825,10 +833,12 @@ int ha_partition::rename_partitions(const char *path) { sub_elem= sub_it++; part= i * num_subparts + j; - create_subpartition_name(norm_name_buff, path, - part_elem->partition_name, - sub_elem->partition_name, - NORMAL_PART_NAME); + if ((ret_error= create_subpartition_name(norm_name_buff, path, + part_elem->partition_name, + sub_elem->partition_name, + NORMAL_PART_NAME))) + error= ret_error; + if (part_elem->part_state == PART_IS_CHANGED) { file= m_reorged_file[part_count++]; @@ -840,10 +850,12 @@ int ha_partition::rename_partitions(const char *path) (void) sync_ddl_log(); } file= m_new_file[part]; - create_subpartition_name(part_name_buff, path, - part_elem->partition_name, - sub_elem->partition_name, - TEMP_PART_NAME); + if ((ret_error= create_subpartition_name(part_name_buff, path, + part_elem->partition_name, + sub_elem->partition_name, + TEMP_PART_NAME))) + error= ret_error; + DBUG_PRINT("info", ("Rename subpartition from %s to %s", part_name_buff, norm_name_buff)); if ((ret_error= file->ha_rename_table(part_name_buff, @@ -857,9 +869,11 @@ int ha_partition::rename_partitions(const char *path) } else { - create_partition_name(norm_name_buff, path, - part_elem->partition_name, NORMAL_PART_NAME, - TRUE); + if ((ret_error= create_partition_name(norm_name_buff, path, + part_elem->partition_name, + NORMAL_PART_NAME, TRUE))) + error= ret_error; + if (part_elem->part_state == PART_IS_CHANGED) { file= m_reorged_file[part_count++]; @@ -871,9 +885,11 @@ int ha_partition::rename_partitions(const char *path) (void) sync_ddl_log(); } file= m_new_file[i]; - create_partition_name(part_name_buff, path, - part_elem->partition_name, TEMP_PART_NAME, - TRUE); + if ((ret_error= create_partition_name(part_name_buff, path, + part_elem->partition_name, + TEMP_PART_NAME, TRUE))) + error= ret_error; + DBUG_PRINT("info", ("Rename partition from %s to %s", part_name_buff, norm_name_buff)); if ((ret_error= file->ha_rename_table(part_name_buff, @@ -1477,7 +1493,7 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info, { List_iterator part_it(m_part_info->partitions); List_iterator t_it(m_part_info->temp_partitions); - char part_name_buff[FN_REFLEN]; + char part_name_buff[FN_REFLEN + 1]; uint num_parts= m_part_info->partitions.elements; uint num_subparts= m_part_info->num_subparts; uint i= 0; @@ -1687,10 +1703,15 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info, do { partition_element *sub_elem= sub_it++; - create_subpartition_name(part_name_buff, path, - part_elem->partition_name, - sub_elem->partition_name, - name_variant); + if ((error= create_subpartition_name(part_name_buff, path, + part_elem->partition_name, + sub_elem->partition_name, + name_variant))) + { + cleanup_new_partition(part_count); + DBUG_RETURN(error); + } + part= i * num_subparts + j; DBUG_PRINT("info", ("Add subpartition %s", part_name_buff)); if ((error= prepare_new_partition(table, create_info, @@ -1708,9 +1729,14 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info, } else { - create_partition_name(part_name_buff, path, - part_elem->partition_name, name_variant, - TRUE); + if ((error= create_partition_name(part_name_buff, path, + part_elem->partition_name, + name_variant, TRUE))) + { + cleanup_new_partition(part_count); + DBUG_RETURN(error); + } + DBUG_PRINT("info", ("Add partition %s", part_name_buff)); if ((error= prepare_new_partition(table, create_info, new_file_array[i], @@ -1967,8 +1993,8 @@ int ha_partition::del_ren_cre_table(const char *from, { int save_error= 0; int error= HA_ERR_INTERNAL_ERROR; - char from_buff[FN_REFLEN], to_buff[FN_REFLEN], from_lc_buff[FN_REFLEN], - to_lc_buff[FN_REFLEN], buff[FN_REFLEN]; + char from_buff[FN_REFLEN + 1], to_buff[FN_REFLEN + 1], from_lc_buff[FN_REFLEN + 1], + to_lc_buff[FN_REFLEN + 1], buff[FN_REFLEN + 1]; char *name_buffer_ptr; const char *from_path; const char *to_path= NULL; @@ -2015,13 +2041,16 @@ int ha_partition::del_ren_cre_table(const char *from, i= 0; do { - create_partition_name(from_buff, from_path, name_buffer_ptr, - NORMAL_PART_NAME, FALSE); + if ((error= create_partition_name(from_buff, from_path, name_buffer_ptr, + NORMAL_PART_NAME, FALSE))) + DBUG_RETURN(error); if (to != NULL) { // Rename branch - create_partition_name(to_buff, to_path, name_buffer_ptr, - NORMAL_PART_NAME, FALSE); + if ((error= create_partition_name(to_buff, to_path, name_buffer_ptr, + NORMAL_PART_NAME, FALSE))) + DBUG_RETURN(error); + error= (*file)->ha_rename_table(from_buff, to_buff); if (error) goto rename_error; @@ -2066,9 +2095,9 @@ create_error: name_buffer_ptr= m_name_buffer_ptr; for (abort_file= file, file= m_file; file < abort_file; file++) { - create_partition_name(from_buff, from_path, name_buffer_ptr, NORMAL_PART_NAME, - FALSE); - (void) (*file)->ha_delete_table((const char*) from_buff); + if (!create_partition_name(from_buff, from_path, name_buffer_ptr, NORMAL_PART_NAME, + FALSE)) + (void) (*file)->ha_delete_table((const char*) from_buff); name_buffer_ptr= strend(name_buffer_ptr) + 1; } DBUG_RETURN(error); @@ -2077,12 +2106,12 @@ rename_error: for (abort_file= file, file= m_file; file < abort_file; file++) { /* Revert the rename, back from 'to' to the original 'from' */ - create_partition_name(from_buff, from_path, name_buffer_ptr, - NORMAL_PART_NAME, FALSE); - create_partition_name(to_buff, to_path, name_buffer_ptr, - NORMAL_PART_NAME, FALSE); - /* Ignore error here */ - (void) (*file)->ha_rename_table(to_buff, from_buff); + if (!create_partition_name(from_buff, from_path, name_buffer_ptr, + NORMAL_PART_NAME, FALSE)) + if (!create_partition_name(to_buff, to_path, name_buffer_ptr, + NORMAL_PART_NAME, FALSE)) + /* Ignore error here */ + (void) (*file)->ha_rename_table(to_buff, from_buff); name_buffer_ptr= strend(name_buffer_ptr) + 1; } DBUG_RETURN(error); @@ -2707,7 +2736,7 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) char *name_buffer_ptr; int error= HA_ERR_INITIALIZATION; handler **file; - char name_buff[FN_REFLEN]; + char name_buff[FN_REFLEN + 1]; bool is_not_tmp_table= (table_share->tmp_table == NO_TMP_TABLE); ulonglong check_table_flags; DBUG_ENTER("ha_partition::open"); @@ -2777,8 +2806,10 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) file= m_is_clone_of->m_file; for (i= 0; i < m_tot_parts; i++) { - create_partition_name(name_buff, name, name_buffer_ptr, NORMAL_PART_NAME, - FALSE); + if ((error= create_partition_name(name_buff, name, name_buffer_ptr, + NORMAL_PART_NAME, FALSE))) + goto err_handler; + if (!(m_file[i]= file[i]->clone(name_buff, m_clone_mem_root))) { error= HA_ERR_INITIALIZATION; @@ -2793,8 +2824,9 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) file= m_file; do { - create_partition_name(name_buff, name, name_buffer_ptr, NORMAL_PART_NAME, - FALSE); + if ((error= create_partition_name(name_buff, name, name_buffer_ptr, + NORMAL_PART_NAME, FALSE))) + goto err_handler; if ((error= (*file)->ha_open(table, name_buff, mode, test_if_locked))) goto err_handler; m_num_locks+= (*file)->lock_count(); diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 5358535e9f9..65d4da0f2f6 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -5958,8 +5958,8 @@ static bool write_log_changed_partitions(ALTER_PARTITION_PARAM_TYPE *lpt, DDL_LOG_ENTRY ddl_log_entry; partition_info *part_info= lpt->part_info; DDL_LOG_MEMORY_ENTRY *log_entry; - char tmp_path[FN_REFLEN]; - char normal_path[FN_REFLEN]; + char tmp_path[FN_REFLEN + 1]; + char normal_path[FN_REFLEN + 1]; List_iterator part_it(part_info->partitions); uint temp_partitions= part_info->temp_partitions.elements; uint num_elements= part_info->partitions.elements; @@ -5983,14 +5983,18 @@ static bool write_log_changed_partitions(ALTER_PARTITION_PARAM_TYPE *lpt, ddl_log_entry.next_entry= *next_entry; ddl_log_entry.handler_name= ha_resolve_storage_engine_name(sub_elem->engine_type); - create_subpartition_name(tmp_path, path, - part_elem->partition_name, - sub_elem->partition_name, - TEMP_PART_NAME); - create_subpartition_name(normal_path, path, - part_elem->partition_name, - sub_elem->partition_name, - NORMAL_PART_NAME); + if (create_subpartition_name(tmp_path, path, + part_elem->partition_name, + sub_elem->partition_name, + TEMP_PART_NAME)) + DBUG_RETURN(TRUE); + + if (create_subpartition_name(normal_path, path, + part_elem->partition_name, + sub_elem->partition_name, + NORMAL_PART_NAME)) + DBUG_RETURN(TRUE); + ddl_log_entry.name= normal_path; ddl_log_entry.from_name= tmp_path; if (part_elem->part_state == PART_IS_CHANGED) @@ -6011,12 +6015,13 @@ static bool write_log_changed_partitions(ALTER_PARTITION_PARAM_TYPE *lpt, ddl_log_entry.next_entry= *next_entry; ddl_log_entry.handler_name= ha_resolve_storage_engine_name(part_elem->engine_type); - create_partition_name(tmp_path, path, - part_elem->partition_name, - TEMP_PART_NAME, TRUE); - create_partition_name(normal_path, path, - part_elem->partition_name, - NORMAL_PART_NAME, TRUE); + if ((create_partition_name(tmp_path, path, part_elem->partition_name, + TEMP_PART_NAME, TRUE)) || + (create_partition_name(normal_path, path, + part_elem->partition_name, + NORMAL_PART_NAME, TRUE))) + DBUG_RETURN(TRUE); + ddl_log_entry.name= normal_path; ddl_log_entry.from_name= tmp_path; if (part_elem->part_state == PART_IS_CHANGED) @@ -6055,7 +6060,7 @@ static bool write_log_dropped_partitions(ALTER_PARTITION_PARAM_TYPE *lpt, DDL_LOG_ENTRY ddl_log_entry; partition_info *part_info= lpt->part_info; DDL_LOG_MEMORY_ENTRY *log_entry; - char tmp_path[FN_LEN]; + char tmp_path[FN_REFLEN + 1]; List_iterator part_it(part_info->partitions); List_iterator temp_it(part_info->temp_partitions); uint num_temp_partitions= part_info->temp_partitions.elements; @@ -6094,10 +6099,12 @@ static bool write_log_dropped_partitions(ALTER_PARTITION_PARAM_TYPE *lpt, ddl_log_entry.next_entry= *next_entry; ddl_log_entry.handler_name= ha_resolve_storage_engine_name(sub_elem->engine_type); - create_subpartition_name(tmp_path, path, - part_elem->partition_name, - sub_elem->partition_name, - name_variant); + if (create_subpartition_name(tmp_path, path, + part_elem->partition_name, + sub_elem->partition_name, + name_variant)) + DBUG_RETURN(TRUE); + ddl_log_entry.name= tmp_path; if (write_ddl_log_entry(&ddl_log_entry, &log_entry)) { @@ -6113,9 +6120,10 @@ static bool write_log_dropped_partitions(ALTER_PARTITION_PARAM_TYPE *lpt, ddl_log_entry.next_entry= *next_entry; ddl_log_entry.handler_name= ha_resolve_storage_engine_name(part_elem->engine_type); - create_partition_name(tmp_path, path, - part_elem->partition_name, - name_variant, TRUE); + if ((create_partition_name(tmp_path, path, part_elem->partition_name, + name_variant, TRUE))) + DBUG_RETURN(TRUE); + ddl_log_entry.name= tmp_path; if (write_ddl_log_entry(&ddl_log_entry, &log_entry)) { @@ -8194,29 +8202,28 @@ static uint32 get_next_subpartition_via_walking(PARTITION_ITERATOR *part_iter) } -/* - Create partition names +/** + Create partition names. This method is used to calculate the + partition name, service routine to the del_ren_cre_table method. + The output buffer size should be FN_REFLEN + 1(terminating '\0'). - SYNOPSIS - create_partition_name() - out:out Created partition name string - in1 First part - in2 Second part - name_variant Normal, temporary or renamed partition name + @param [out] out Created partition name string + @param in1 First part + @param in2 Second part + @param in3 Third part + @param name_variant Normal, temporary or renamed partition name + @param translate Flag to determine whether to convert a table name + to it its corresponding filename. - RETURN VALUE - NONE - - DESCRIPTION - This method is used to calculate the partition name, service routine to - the del_ren_cre_table method. + @retval true Error. + @retval false Success. */ -void create_partition_name(char *out, const char *in1, +bool create_partition_name(char *out, const char *in1, const char *in2, uint name_variant, bool translate) { - char transl_part_name[FN_REFLEN]; + char transl_part_name[FN_REFLEN + 1]; const char *transl_part; if (translate) @@ -8226,35 +8233,50 @@ void create_partition_name(char *out, const char *in1, } else transl_part= in2; + + // Check if the path name for partition exceeds maximum path length. if (name_variant == NORMAL_PART_NAME) - strxmov(out, in1, "#P#", transl_part, NullS); + { + if ((strlen(in1) + strlen(transl_part) + 3) > FN_REFLEN) + { + my_error(ER_PATH_LENGTH, MYF(0), in2); + return true; + } + } + else + if ((strlen(in1) + strlen(transl_part) + 8) > FN_REFLEN) + { + my_error(ER_PATH_LENGTH, MYF(0), in2); + return true; + } + + if (name_variant == NORMAL_PART_NAME) + strxnmov(out, FN_REFLEN, in1, "#P#", transl_part, NullS); else if (name_variant == TEMP_PART_NAME) - strxmov(out, in1, "#P#", transl_part, "#TMP#", NullS); + strxnmov(out, FN_REFLEN, in1, "#P#", transl_part, "#TMP#", NullS); else if (name_variant == RENAMED_PART_NAME) - strxmov(out, in1, "#P#", transl_part, "#REN#", NullS); + strxnmov(out, FN_REFLEN, in1, "#P#", transl_part, "#REN#", NullS); + + return false; } -/* - Create subpartition name +/** + Create subpartition name. This method is used to calculate the + subpartition name, service routine to the del_ren_cre_table method. + The output buffer size should be FN_REFLEN + 1(terminating '\0'). - SYNOPSIS - create_subpartition_name() - out:out Created partition name string - in1 First part - in2 Second part - in3 Third part - name_variant Normal, temporary or renamed partition name + @param [out] out Created partition name string + @param in1 First part + @param in2 Second part + @param in3 Third part + @param name_variant Normal, temporary or renamed partition name - RETURN VALUE - NONE - - DESCRIPTION - This method is used to calculate the subpartition name, service routine to - the del_ren_cre_table method. + @retval true Error. + @retval false Success. */ -void create_subpartition_name(char *out, const char *in1, +bool create_subpartition_name(char *out, const char *in1, const char *in2, const char *in3, uint name_variant) { @@ -8262,15 +8284,36 @@ void create_subpartition_name(char *out, const char *in1, tablename_to_filename(in2, transl_part_name, FN_REFLEN); tablename_to_filename(in3, transl_subpart_name, FN_REFLEN); + + // Check if the path name for subpartition exceeds maximum path length. if (name_variant == NORMAL_PART_NAME) - strxmov(out, in1, "#P#", transl_part_name, + { + if ((strlen(in1) + strlen(transl_part_name) + + strlen(transl_subpart_name) + 7) > FN_REFLEN) + { + my_error(ER_PATH_LENGTH, MYF(0), in3); + return true; + } + } + else + if ((strlen(in1) + strlen(transl_part_name) + + strlen(transl_subpart_name) + 12) > FN_REFLEN) + { + my_error(ER_PATH_LENGTH, MYF(0), in3); + return true; + } + + if (name_variant == NORMAL_PART_NAME) + strxnmov(out, FN_REFLEN, in1, "#P#", transl_part_name, "#SP#", transl_subpart_name, NullS); else if (name_variant == TEMP_PART_NAME) - strxmov(out, in1, "#P#", transl_part_name, + strxnmov(out, FN_REFLEN, in1, "#P#", transl_part_name, "#SP#", transl_subpart_name, "#TMP#", NullS); else if (name_variant == RENAMED_PART_NAME) - strxmov(out, in1, "#P#", transl_part_name, + strxnmov(out, FN_REFLEN, in1, "#P#", transl_part_name, "#SP#", transl_subpart_name, "#REN#", NullS); + + return false; } uint get_partition_field_store_length(Field *field) diff --git a/sql/sql_partition.h b/sql/sql_partition.h index f232eaa0629..cfaab903f04 100644 --- a/sql/sql_partition.h +++ b/sql/sql_partition.h @@ -1,7 +1,7 @@ #ifndef SQL_PARTITION_INCLUDED #define SQL_PARTITION_INCLUDED -/* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -272,10 +272,10 @@ char *generate_partition_syntax(partition_info *part_info, const char *current_comment_start); #endif -void create_partition_name(char *out, const char *in1, +bool create_partition_name(char *out, const char *in1, const char *in2, uint name_variant, bool translate); -void create_subpartition_name(char *out, const char *in1, +bool create_subpartition_name(char *out, const char *in1, const char *in2, const char *in3, uint name_variant); From f2f6025a445d9a799ccce27bc9124c3a63c28764 Mon Sep 17 00:00:00 2001 From: Arun Kuruvila Date: Thu, 24 Aug 2017 14:19:38 +0530 Subject: [PATCH 010/128] Bug#26482173: TLS CIPHER NEGOTIATION INCORRECTLY MATCHES ON LAST BYTE ONLY (YASSL) Description:- TLS cipher negociation happens incorrectly leading to the use of a different Analysis:- YaSSL based MySQL server will compare only the last byte of each cipher sent in the Client Hello message. This can cause TLS connections to fail, due to the server picking a cipher which the client doesn't actually support. Fix:- A fix for detecting cipher suites with non leading zeros is included as YaSSL only supports cipher suites with leading zeros. --- extra/yassl/README | 8 ++ extra/yassl/certs/ca-cert.pem | 96 ++++++++++++------------ extra/yassl/certs/client-cert.pem | 99 ++++++++++++------------ extra/yassl/certs/server-cert.pem | 120 +++++++++++++++--------------- extra/yassl/include/openssl/ssl.h | 4 +- extra/yassl/src/yassl_imp.cpp | 6 +- extra/yassl/src/yassl_int.cpp | 13 +++- 7 files changed, 182 insertions(+), 164 deletions(-) diff --git a/extra/yassl/README b/extra/yassl/README index a3d4f60f561..de1bf5132aa 100644 --- a/extra/yassl/README +++ b/extra/yassl/README @@ -12,6 +12,14 @@ before calling SSL_new(); *** end Note *** +yaSSL Release notes, version 2.4.4 (8/8/2017) + This release of yaSSL fixes an interop issue. A fix for detecting cipher + suites with non leading zeros is included as yaSSL only supports cipher + suites with leading zeros. Thanks for the report from Security Innovation + and Oracle. + + Users interoping with other SSL stacks should update. + yaSSL Release notes, version 2.4.2 (9/22/2016) This release of yaSSL fixes a medium security vulnerability. A fix for potential AES side channel leaks is included that a local user monitoring diff --git a/extra/yassl/certs/ca-cert.pem b/extra/yassl/certs/ca-cert.pem index 7e64eb47961..8b34ea43dd2 100644 --- a/extra/yassl/certs/ca-cert.pem +++ b/extra/yassl/certs/ca-cert.pem @@ -1,40 +1,13 @@ ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIJAJpBR82hFGKMMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD -VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G -A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3 -dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe -Fw0xNDA3MTEwMzIwMDhaFw0xNzA0MDYwMzIwMDhaMIGUMQswCQYDVQQGEwJVUzEQ -MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3 -dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns -LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D -mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx -i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J -XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc -/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI -/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB -+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU -J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290 -aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t -MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYD -VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAeXgMbXmIkfw6FZz5J2IW8CEf -+n0/oqgyHvfyEal0FnRe3BjK8AAq1QMGJjDxR4P9Mm787apPfQxjYDEvfAy/mWaH -7ScIhi3EM+iYIxz+o9uaSU78WkLvccM/rdxKqNKjHQmsMwR7hvNtAFmjyNvRPHP2 -DpDWXkngvzZjCHulsI81O1aMETVJBBzQ57pWxQ0KkY3Wt2IZNBJSTNJtfMU9DxiB -VMv2POWE0tZxFewaNAvwoCF0Q8ijsN/ZZ9rirZNI+KCHvXkU4GIK3/cxLjF70TIq -Cv5dFO/ZZFDkg5G8cA3XiI3ZvIQOxRqzv2QCTlGRpKKFFYOv8FubKElfsrMD2A== ------END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: - 9a:41:47:cd:a1:14:62:8c - Signature Algorithm: sha1WithRSAEncryption + b7:b6:90:33:66:1b:6b:23 + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Validity - Not Before: Jul 11 03:20:08 2014 GMT - Not After : Apr 6 03:20:08 2017 GMT + Not Before: Aug 11 20:07:37 2016 GMT + Not After : May 8 20:07:37 2019 GMT Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption @@ -65,23 +38,50 @@ Certificate: X509v3 Authority Key Identifier: keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:9A:41:47:CD:A1:14:62:8C + serial:B7:B6:90:33:66:1B:6B:23 X509v3 Basic Constraints: CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 79:78:0c:6d:79:88:91:fc:3a:15:9c:f9:27:62:16:f0:21:1f: - fa:7d:3f:a2:a8:32:1e:f7:f2:11:a9:74:16:74:5e:dc:18:ca: - f0:00:2a:d5:03:06:26:30:f1:47:83:fd:32:6e:fc:ed:aa:4f: - 7d:0c:63:60:31:2f:7c:0c:bf:99:66:87:ed:27:08:86:2d:c4: - 33:e8:98:23:1c:fe:a3:db:9a:49:4e:fc:5a:42:ef:71:c3:3f: - ad:dc:4a:a8:d2:a3:1d:09:ac:33:04:7b:86:f3:6d:00:59:a3: - c8:db:d1:3c:73:f6:0e:90:d6:5e:49:e0:bf:36:63:08:7b:a5: - b0:8f:35:3b:56:8c:11:35:49:04:1c:d0:e7:ba:56:c5:0d:0a: - 91:8d:d6:b7:62:19:34:12:52:4c:d2:6d:7c:c5:3d:0f:18:81: - 54:cb:f6:3c:e5:84:d2:d6:71:15:ec:1a:34:0b:f0:a0:21:74: - 43:c8:a3:b0:df:d9:67:da:e2:ad:93:48:f8:a0:87:bd:79:14: - e0:62:0a:df:f7:31:2e:31:7b:d1:32:2a:0a:fe:5d:14:ef:d9: - 64:50:e4:83:91:bc:70:0d:d7:88:8d:d9:bc:84:0e:c5:1a:b3: - bf:64:02:4e:51:91:a4:a2:85:15:83:af:f0:5b:9b:28:49:5f: - b2:b3:03:d8 + Signature Algorithm: sha256WithRSAEncryption + 0e:93:48:44:4a:72:96:60:71:25:82:a9:2c:ca:60:5b:f2:88: + 3e:cf:11:74:5a:11:4a:dc:d9:d8:f6:58:2c:05:d3:56:d9:e9: + 8f:37:ef:8e:3e:3b:ff:22:36:00:ca:d8:e2:96:3f:a7:d1:ed: + 1f:de:7a:b0:d7:8f:36:bd:41:55:1e:d4:b9:86:3b:87:25:69: + 35:60:48:d6:e4:5a:94:ce:a2:fa:70:38:36:c4:85:b4:4b:23: + fe:71:9e:2f:db:06:c7:b5:9c:21:f0:3e:7c:eb:91:f8:5c:09: + fd:84:43:a4:b3:4e:04:0c:22:31:71:6a:48:c8:ab:bb:e8:ce: + fa:67:15:1a:3a:82:98:43:33:b5:0e:1f:1e:89:f8:37:de:1b: + e6:b5:a0:f4:a2:8b:b7:1c:90:ba:98:6d:94:21:08:80:5d:f3: + bf:66:ad:c9:72:28:7a:6a:48:ee:cf:63:69:31:8c:c5:8e:66: + da:4b:78:65:e8:03:3a:4b:f8:cc:42:54:d3:52:5c:2d:04:ae: + 26:87:e1:7e:40:cb:45:41:16:4b:6e:a3:2e:4a:76:bd:29:7f: + 1c:53:37:06:ad:e9:5b:6a:d6:b7:4e:94:a2:7c:e8:ac:4e:a6: + 50:3e:2b:32:9e:68:42:1b:e4:59:67:61:ea:c7:9a:51:9c:1c: + 55:a3:77:76 +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIJALe2kDNmG2sjMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD +VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G +A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3 +dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe +Fw0xNjA4MTEyMDA3MzdaFw0xOTA1MDgyMDA3MzdaMIGUMQswCQYDVQQGEwJVUzEQ +MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3 +dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns +LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D +mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx +i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J +XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc +/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI +/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB ++TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU +J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290 +aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t +MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAt7aQM2YbayMwDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEADpNIREpylmBxJYKpLMpgW/KI +Ps8RdFoRStzZ2PZYLAXTVtnpjzfvjj47/yI2AMrY4pY/p9HtH956sNePNr1BVR7U +uYY7hyVpNWBI1uRalM6i+nA4NsSFtEsj/nGeL9sGx7WcIfA+fOuR+FwJ/YRDpLNO +BAwiMXFqSMiru+jO+mcVGjqCmEMztQ4fHon4N94b5rWg9KKLtxyQuphtlCEIgF3z +v2atyXIoempI7s9jaTGMxY5m2kt4ZegDOkv4zEJU01JcLQSuJofhfkDLRUEWS26j +Lkp2vSl/HFM3Bq3pW2rWt06UonzorE6mUD4rMp5oQhvkWWdh6seaUZwcVaN3dg== +-----END CERTIFICATE----- diff --git a/extra/yassl/certs/client-cert.pem b/extra/yassl/certs/client-cert.pem index 38330d5380e..9262ad60991 100644 --- a/extra/yassl/certs/client-cert.pem +++ b/extra/yassl/certs/client-cert.pem @@ -2,13 +2,13 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - b6:63:af:8f:5d:62:57:a0 - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Programming, CN=www.wolfssl.com/emailAddress=info@wolfssl.com + b9:bc:90:ed:ad:aa:0a:8c + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Validity - Not Before: Jul 11 17:39:44 2014 GMT - Not After : Apr 6 17:39:44 2017 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Programming, CN=www.wolfssl.com/emailAddress=info@wolfssl.com + Not Before: Aug 11 20:07:37 2016 GMT + Not After : May 8 20:07:37 2019 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) @@ -37,51 +37,52 @@ Certificate: 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 X509v3 Authority Key Identifier: keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 - DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL/OU=Programming/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:B6:63:AF:8F:5D:62:57:A0 + DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com + serial:B9:BC:90:ED:AD:AA:0A:8C X509v3 Basic Constraints: CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 85:10:90:c5:5d:de:25:8c:f2:57:7b:2d:14:1c:05:f9:71:63: - 40:b0:e3:c1:c1:2e:13:2a:7a:b7:d6:24:58:87:eb:03:fb:0d: - af:e0:f4:d0:c8:bc:51:36:10:4f:79:cc:4f:66:7d:af:99:cb: - 7b:ce:68:94:c6:36:aa:42:6e:8c:78:5b:b2:85:ca:d1:e1:a8: - 31:d1:81:d9:f9:c1:a3:9e:34:43:ef:0a:79:7d:3e:83:61:fc: - 14:5c:d1:dd:bc:0e:d7:51:b7:71:6e:41:7e:8b:2c:5a:9a:cb: - 77:4b:6a:f5:06:ff:02:af:1e:e6:63:4f:bc:44:d9:3f:56:9e: - 09:9c:43:f9:55:21:32:46:82:09:86:a9:7b:74:1c:9e:5a:2a: - bf:03:79:91:cb:f2:29:7f:c9:15:82:89:b9:53:cd:7e:07:90: - a9:5d:76:e1:19:5e:0d:58:b8:59:d5:0d:df:23:ab:6b:63:76: - 19:9e:9c:df:b0:57:49:6c:d0:86:97:c3:6c:3c:fa:e0:56:c2: - 1b:e3:a1:42:1a:58:62:85:9d:74:19:83:08:af:59:90:f8:99: - bd:67:d3:4a:ea:0e:c9:ca:61:8a:0d:8a:42:cc:90:e9:2e:c2: - 54:73:7f:5e:af:8d:e2:32:cb:45:20:d6:19:4d:5b:77:31:cc: - 0f:2d:c0:7e + Signature Algorithm: sha256WithRSAEncryption + 33:85:08:b4:58:0e:a2:00:03:74:de:77:fb:d1:2b:76:9c:97: + 90:20:21:a2:e8:2e:22:50:26:04:76:ba:5b:47:79:e5:52:f7: + c4:0d:79:ff:62:3f:05:7c:c3:08:6c:e0:b7:81:d0:ce:c6:c9: + 46:b9:8e:4b:5f:56:79:4b:13:b6:d1:6b:66:4b:ce:00:0d:e3: + 76:5e:fb:cb:b5:5d:12:31:05:f1:bb:39:f6:86:90:ca:92:56: + a4:a0:75:21:b6:1d:4c:96:c3:45:eb:5a:91:94:32:d3:59:b8: + c9:73:1f:03:a9:81:63:e0:43:c0:1e:c8:65:be:3b:a7:53:c3: + 44:ff:b3:fb:47:84:a8:b6:9d:00:d5:6b:ae:87:f8:bb:35:b2: + 6c:66:0b:11:ee:6f:fe:12:ed:59:79:f1:3e:f2:d3:61:27:8b: + 95:7e:99:75:8d:a4:9f:34:85:f1:25:4d:48:1e:9b:6b:70:f6: + 66:cc:56:b1:a3:02:52:8a:7c:aa:af:07:da:97:c6:0c:a5:8f: + ed:cb:f5:d8:04:5d:97:0a:5d:5a:2b:49:f5:bd:93:e5:23:9b: + 99:b5:0c:ff:0c:7e:38:82:b2:6e:ab:8a:c9:a7:45:ab:d6:d7: + 93:35:70:07:7e:c8:3d:a5:fe:33:8f:d9:85:c0:c7:5a:02:e4: + 7c:d6:35:9e -----BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIJALZjr49dYlegMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD -VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEQMA4G -A1UECgwHd29sZlNTTDEUMBIGA1UECwwLUHJvZ3JhbW1pbmcxGDAWBgNVBAMMD3d3 -dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe -Fw0xNDA3MTExNzM5NDRaFw0xNzA0MDYxNzM5NDRaMIGUMQswCQYDVQQGEwJVUzEQ -MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEQMA4GA1UECgwHd29s -ZlNTTDEUMBIGA1UECwwLUHJvZ3JhbW1pbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns -LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQrKnx0mr2qKlIHR9am -NrIHMo7Quml7xsNEntSBSP0taKKLZ7uhdcg2LErSG/eLus8N+e/s8YEee5sDR5q/ -Zcx/ZSRppugUiVvkNPfFsBST9Wd7Onp44QFWVpGmE0KN0jxAnEzv0YbfN1EbDKE7 -9fGjSjXk4c6W3xt+v06X0BDoqAgwga8gC0MUxXRntDKCb42GwohAmTaDuh5AciIX -11JlJHOwzu8Zza7/eGx7wBID1E5yDVBtO6M7o5lencjZDIWz2YrZVCbbbfqsu/8l -TMTRefRx04ZAGBOwY7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuhutMCAwEAAaOB/DCB -+TAdBgNVHQ4EFgQUM9hFZtdohxh+VA1wJ5HHJteFZcAwgckGA1UdIwSBwTCBvoAU -M9hFZtdohxh+VA1wJ5HHJteFZcChgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRAwDgYDVQQKDAd3b2xmU1NM -MRQwEgYDVQQLDAtQcm9ncmFtbWluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t -MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAtmOvj11iV6AwDAYD -VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAhRCQxV3eJYzyV3stFBwF+XFj -QLDjwcEuEyp6t9YkWIfrA/sNr+D00Mi8UTYQT3nMT2Z9r5nLe85olMY2qkJujHhb -soXK0eGoMdGB2fnBo540Q+8KeX0+g2H8FFzR3bwO11G3cW5BfossWprLd0tq9Qb/ -Aq8e5mNPvETZP1aeCZxD+VUhMkaCCYape3QcnloqvwN5kcvyKX/JFYKJuVPNfgeQ -qV124RleDVi4WdUN3yOra2N2GZ6c37BXSWzQhpfDbDz64FbCG+OhQhpYYoWddBmD -CK9ZkPiZvWfTSuoOycphig2KQsyQ6S7CVHN/Xq+N4jLLRSDWGU1bdzHMDy3Afg== +MIIEyjCCA7KgAwIBAgIJALm8kO2tqgqMMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD +VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG +A1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWluZy0yMDQ4MRgw +FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s +ZnNzbC5jb20wHhcNMTYwODExMjAwNzM3WhcNMTkwNTA4MjAwNzM3WjCBnjELMAkG +A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTAT +BgNVBAoMDHdvbGZTU0xfMjA0ODEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMjA0ODEY +MBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv +bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwwPRK/45 +pDJFO1PIhCsqfHSavaoqUgdH1qY2sgcyjtC6aXvGw0Se1IFI/S1oootnu6F1yDYs +StIb94u6zw357+zxgR57mwNHmr9lzH9lJGmm6BSJW+Q098WwFJP1Z3s6enjhAVZW +kaYTQo3SPECcTO/Rht83URsMoTv18aNKNeThzpbfG36/TpfQEOioCDCBryALQxTF +dGe0MoJvjYbCiECZNoO6HkByIhfXUmUkc7DO7xnNrv94bHvAEgPUTnINUG07ozuj +mV6dyNkMhbPZitlUJttt+qy7/yVMxNF59HHThkAYE7BjtXJOMMSXhIYtVi/XFfd/ +wK71/Fvl+6G60wIDAQABo4IBBzCCAQMwHQYDVR0OBBYEFDPYRWbXaIcYflQNcCeR +xybXhWXAMIHTBgNVHSMEgcswgciAFDPYRWbXaIcYflQNcCeRxybXhWXAoYGkpIGh +MIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96 +ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWlu +Zy0yMDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEW +EGluZm9Ad29sZnNzbC5jb22CCQC5vJDtraoKjDAMBgNVHRMEBTADAQH/MA0GCSqG +SIb3DQEBCwUAA4IBAQAzhQi0WA6iAAN03nf70St2nJeQICGi6C4iUCYEdrpbR3nl +UvfEDXn/Yj8FfMMIbOC3gdDOxslGuY5LX1Z5SxO20WtmS84ADeN2XvvLtV0SMQXx +uzn2hpDKklakoHUhth1MlsNF61qRlDLTWbjJcx8DqYFj4EPAHshlvjunU8NE/7P7 +R4Sotp0A1Wuuh/i7NbJsZgsR7m/+Eu1ZefE+8tNhJ4uVfpl1jaSfNIXxJU1IHptr +cPZmzFaxowJSinyqrwfal8YMpY/ty/XYBF2XCl1aK0n1vZPlI5uZtQz/DH44grJu +q4rJp0Wr1teTNXAHfsg9pf4zj9mFwMdaAuR81jWe -----END CERTIFICATE----- diff --git a/extra/yassl/certs/server-cert.pem b/extra/yassl/certs/server-cert.pem index f56cba9de70..5504c822fae 100644 --- a/extra/yassl/certs/server-cert.pem +++ b/extra/yassl/certs/server-cert.pem @@ -2,11 +2,11 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Validity - Not Before: Jul 11 17:20:14 2014 GMT - Not After : Apr 6 17:20:14 2017 GMT + Not Before: Aug 11 20:07:37 2016 GMT + Not After : May 8 20:07:37 2019 GMT Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption @@ -37,32 +37,32 @@ Certificate: X509v3 Authority Key Identifier: keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:9A:41:47:CD:A1:14:62:8C + serial:B7:B6:90:33:66:1B:6B:23 X509v3 Basic Constraints: CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 3d:8c:70:05:5b:62:4b:bf:6c:b6:48:61:01:10:1d:5e:05:ba: - 55:94:2c:ae:59:6f:97:80:5d:6c:86:ec:9a:eb:15:45:44:e4: - 56:f8:75:ca:8a:45:32:f4:c7:e1:fa:f2:98:1c:91:d3:3f:e8: - 0e:c9:1b:fa:e1:79:99:67:0e:0d:6b:8a:ec:1a:2c:59:c4:34: - 04:8d:39:77:cd:b5:e9:60:5b:82:bf:34:ce:ed:c6:4f:3f:b4: - 5c:4d:8a:b4:f4:0a:04:12:a0:56:c1:e1:33:37:a1:54:87:48: - e9:81:c2:0f:8f:6f:d3:52:4c:4c:32:4c:6b:9f:3a:04:8f:77: - 5d:ad:dc:3d:2b:f2:c9:df:3c:60:5d:d8:fc:86:72:7c:3d:d0: - 84:4b:8c:df:26:43:fe:c0:cc:5b:e1:36:b3:3d:32:28:a3:ef: - 0c:20:d6:b1:50:39:d6:67:a9:8b:84:bc:92:34:eb:19:23:e8: - 10:8f:ea:bd:18:8c:93:27:3c:74:75:8e:58:04:fa:2a:74:44: - 7d:fc:4d:39:df:54:17:ba:78:e1:5d:6a:70:d3:7c:a2:80:81: - e6:19:51:91:c3:44:51:ec:bb:88:a9:53:e1:d7:a9:8c:28:f4: - 21:1c:42:51:09:b4:12:6d:a0:d6:25:09:85:c6:2a:0c:af:a7: - 58:e6:52:8b + Signature Algorithm: sha256WithRSAEncryption + 51:fe:2a:df:07:7e:43:ca:66:8d:15:c4:2b:db:57:b2:06:6d: + 0d:90:66:ff:a5:24:9c:14:ef:81:f2:a4:ab:99:a9:6a:49:20: + a5:d2:71:e7:1c:3c:99:07:c7:47:fc:e8:96:b4:f5:42:30:ce: + 39:01:4b:d1:c2:e8:bc:95:84:87:ce:55:5d:97:9f:cf:78:f3: + 56:9b:a5:08:6d:ac:f6:a5:5c:c4:ef:3e:2a:39:a6:48:26:29: + 7b:2d:e0:cd:a6:8c:57:48:0b:bb:31:32:c2:bf:d9:43:4c:47: + 25:18:81:a8:c9:33:82:41:9b:ba:61:86:d7:84:93:17:24:25: + 36:ca:4d:63:6b:4f:95:79:d8:60:e0:1e:f5:ac:c1:8a:a1:b1: + 7e:85:8e:87:20:2f:08:31:ad:5e:c6:4a:c8:61:f4:9e:07:1e: + a2:22:ed:73:7c:85:ee:fa:62:dc:50:36:aa:fd:c7:9d:aa:18: + 04:fb:ea:cc:2c:68:9b:b3:a9:c2:96:d8:c1:cc:5a:7e:f7:0d: + 9e:08:e0:9d:29:8b:84:46:8f:d3:91:6a:b5:b8:7a:5c:cc:4f: + 55:01:b8:9a:48:a0:94:43:ca:25:47:52:0a:f7:f4:be:b0:d1: + 71:6d:a5:52:4a:65:50:b2:ad:4e:1d:e0:6c:01:d8:fb:43:80: + e6:e4:0c:37 -----BEGIN CERTIFICATE----- -MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQUFADCBlDELMAkGA1UEBhMCVVMx +MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz -bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTQwNzEx -MTcyMDE0WhcNMTcwNDA2MTcyMDE0WjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM +bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTYwODEx +MjAwNzM3WhcNMTkwNTA4MjAwNzM3WjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP @@ -76,24 +76,24 @@ sxEyyZKYhOLJ+NA7bgNCyh8OjjwwgckGA1UdIwSBwTCBvoAUJ45nEXTDJh0/7TNj s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN -AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYDVR0TBAUwAwEB/zAN -BgkqhkiG9w0BAQUFAAOCAQEAPYxwBVtiS79stkhhARAdXgW6VZQsrllvl4BdbIbs -musVRUTkVvh1yopFMvTH4frymByR0z/oDskb+uF5mWcODWuK7BosWcQ0BI05d821 -6WBbgr80zu3GTz+0XE2KtPQKBBKgVsHhMzehVIdI6YHCD49v01JMTDJMa586BI93 -Xa3cPSvyyd88YF3Y/IZyfD3QhEuM3yZD/sDMW+E2sz0yKKPvDCDWsVA51mepi4S8 -kjTrGSPoEI/qvRiMkyc8dHWOWAT6KnREffxNOd9UF7p44V1qcNN8ooCB5hlRkcNE -Uey7iKlT4depjCj0IRxCUQm0Em2g1iUJhcYqDK+nWOZSiw== +AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAt7aQM2YbayMwDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQsFAAOCAQEAUf4q3wd+Q8pmjRXEK9tXsgZtDZBm/6UknBTvgfKk +q5mpakkgpdJx5xw8mQfHR/zolrT1QjDOOQFL0cLovJWEh85VXZefz3jzVpulCG2s +9qVcxO8+KjmmSCYpey3gzaaMV0gLuzEywr/ZQ0xHJRiBqMkzgkGbumGG14STFyQl +NspNY2tPlXnYYOAe9azBiqGxfoWOhyAvCDGtXsZKyGH0ngceoiLtc3yF7vpi3FA2 +qv3HnaoYBPvqzCxom7OpwpbYwcxafvcNngjgnSmLhEaP05Fqtbh6XMxPVQG4mkig +lEPKJUdSCvf0vrDRcW2lUkplULKtTh3gbAHY+0OA5uQMNw== -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: - 9a:41:47:cd:a1:14:62:8c - Signature Algorithm: sha1WithRSAEncryption + b7:b6:90:33:66:1b:6b:23 + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Validity - Not Before: Jul 11 03:20:08 2014 GMT - Not After : Apr 6 03:20:08 2017 GMT + Not Before: Aug 11 20:07:37 2016 GMT + Not After : May 8 20:07:37 2019 GMT Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption @@ -124,32 +124,32 @@ Certificate: X509v3 Authority Key Identifier: keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:9A:41:47:CD:A1:14:62:8C + serial:B7:B6:90:33:66:1B:6B:23 X509v3 Basic Constraints: CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 79:78:0c:6d:79:88:91:fc:3a:15:9c:f9:27:62:16:f0:21:1f: - fa:7d:3f:a2:a8:32:1e:f7:f2:11:a9:74:16:74:5e:dc:18:ca: - f0:00:2a:d5:03:06:26:30:f1:47:83:fd:32:6e:fc:ed:aa:4f: - 7d:0c:63:60:31:2f:7c:0c:bf:99:66:87:ed:27:08:86:2d:c4: - 33:e8:98:23:1c:fe:a3:db:9a:49:4e:fc:5a:42:ef:71:c3:3f: - ad:dc:4a:a8:d2:a3:1d:09:ac:33:04:7b:86:f3:6d:00:59:a3: - c8:db:d1:3c:73:f6:0e:90:d6:5e:49:e0:bf:36:63:08:7b:a5: - b0:8f:35:3b:56:8c:11:35:49:04:1c:d0:e7:ba:56:c5:0d:0a: - 91:8d:d6:b7:62:19:34:12:52:4c:d2:6d:7c:c5:3d:0f:18:81: - 54:cb:f6:3c:e5:84:d2:d6:71:15:ec:1a:34:0b:f0:a0:21:74: - 43:c8:a3:b0:df:d9:67:da:e2:ad:93:48:f8:a0:87:bd:79:14: - e0:62:0a:df:f7:31:2e:31:7b:d1:32:2a:0a:fe:5d:14:ef:d9: - 64:50:e4:83:91:bc:70:0d:d7:88:8d:d9:bc:84:0e:c5:1a:b3: - bf:64:02:4e:51:91:a4:a2:85:15:83:af:f0:5b:9b:28:49:5f: - b2:b3:03:d8 + Signature Algorithm: sha256WithRSAEncryption + 0e:93:48:44:4a:72:96:60:71:25:82:a9:2c:ca:60:5b:f2:88: + 3e:cf:11:74:5a:11:4a:dc:d9:d8:f6:58:2c:05:d3:56:d9:e9: + 8f:37:ef:8e:3e:3b:ff:22:36:00:ca:d8:e2:96:3f:a7:d1:ed: + 1f:de:7a:b0:d7:8f:36:bd:41:55:1e:d4:b9:86:3b:87:25:69: + 35:60:48:d6:e4:5a:94:ce:a2:fa:70:38:36:c4:85:b4:4b:23: + fe:71:9e:2f:db:06:c7:b5:9c:21:f0:3e:7c:eb:91:f8:5c:09: + fd:84:43:a4:b3:4e:04:0c:22:31:71:6a:48:c8:ab:bb:e8:ce: + fa:67:15:1a:3a:82:98:43:33:b5:0e:1f:1e:89:f8:37:de:1b: + e6:b5:a0:f4:a2:8b:b7:1c:90:ba:98:6d:94:21:08:80:5d:f3: + bf:66:ad:c9:72:28:7a:6a:48:ee:cf:63:69:31:8c:c5:8e:66: + da:4b:78:65:e8:03:3a:4b:f8:cc:42:54:d3:52:5c:2d:04:ae: + 26:87:e1:7e:40:cb:45:41:16:4b:6e:a3:2e:4a:76:bd:29:7f: + 1c:53:37:06:ad:e9:5b:6a:d6:b7:4e:94:a2:7c:e8:ac:4e:a6: + 50:3e:2b:32:9e:68:42:1b:e4:59:67:61:ea:c7:9a:51:9c:1c: + 55:a3:77:76 -----BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIJAJpBR82hFGKMMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD +MIIEqjCCA5KgAwIBAgIJALe2kDNmG2sjMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3 dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe -Fw0xNDA3MTEwMzIwMDhaFw0xNzA0MDYwMzIwMDhaMIGUMQswCQYDVQQGEwJVUzEQ +Fw0xNjA4MTEyMDA3MzdaFw0xOTA1MDgyMDA3MzdaMIGUMQswCQYDVQQGEwJVUzEQ MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3 dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI @@ -163,11 +163,11 @@ XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290 aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t -MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYD -VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAeXgMbXmIkfw6FZz5J2IW8CEf -+n0/oqgyHvfyEal0FnRe3BjK8AAq1QMGJjDxR4P9Mm787apPfQxjYDEvfAy/mWaH -7ScIhi3EM+iYIxz+o9uaSU78WkLvccM/rdxKqNKjHQmsMwR7hvNtAFmjyNvRPHP2 -DpDWXkngvzZjCHulsI81O1aMETVJBBzQ57pWxQ0KkY3Wt2IZNBJSTNJtfMU9DxiB -VMv2POWE0tZxFewaNAvwoCF0Q8ijsN/ZZ9rirZNI+KCHvXkU4GIK3/cxLjF70TIq -Cv5dFO/ZZFDkg5G8cA3XiI3ZvIQOxRqzv2QCTlGRpKKFFYOv8FubKElfsrMD2A== +MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAt7aQM2YbayMwDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEADpNIREpylmBxJYKpLMpgW/KI +Ps8RdFoRStzZ2PZYLAXTVtnpjzfvjj47/yI2AMrY4pY/p9HtH956sNePNr1BVR7U +uYY7hyVpNWBI1uRalM6i+nA4NsSFtEsj/nGeL9sGx7WcIfA+fOuR+FwJ/YRDpLNO +BAwiMXFqSMiru+jO+mcVGjqCmEMztQ4fHon4N94b5rWg9KKLtxyQuphtlCEIgF3z +v2atyXIoempI7s9jaTGMxY5m2kt4ZegDOkv4zEJU01JcLQSuJofhfkDLRUEWS26j +Lkp2vSl/HFM3Bq3pW2rWt06UonzorE6mUD4rMp5oQhvkWWdh6seaUZwcVaN3dg== -----END CERTIFICATE----- diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h index 0609dfc0592..0cce783de35 100644 --- a/extra/yassl/include/openssl/ssl.h +++ b/extra/yassl/include/openssl/ssl.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. This program is free software; you can redistribute it and/or modify @@ -35,7 +35,7 @@ #include "rsa.h" -#define YASSL_VERSION "2.4.2" +#define YASSL_VERSION "2.4.4" #if defined(__cplusplus) diff --git a/extra/yassl/src/yassl_imp.cpp b/extra/yassl/src/yassl_imp.cpp index f190761604d..c5892388eaf 100644 --- a/extra/yassl/src/yassl_imp.cpp +++ b/extra/yassl/src/yassl_imp.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -1578,6 +1578,10 @@ void ServerHello::Process(input_buffer& input, SSL& ssl) ssl.SetError(badVersion_error); return; } + if (cipher_suite_[0] != 0x00) { + ssl.SetError(unknown_cipher); + return; + } ssl.set_pending(cipher_suite_[1]); ssl.set_random(random_, server_end); if (id_len_) diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp index f041850f85f..34a1c3b73a2 100644 --- a/extra/yassl/src/yassl_int.cpp +++ b/extra/yassl/src/yassl_int.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -1399,12 +1399,17 @@ void SSL::matchSuite(const opaque* peer, uint length) // start with best, if a match we are good, Ciphers are at odd index // since all SSL and TLS ciphers have 0x00 first byte for (uint i = 1; i < secure_.get_parms().suites_size_; i += 2) - for (uint j = 1; j < length; j+= 2) - if (secure_.use_parms().suites_[i] == peer[j]) { + for (uint j = 0; (j + 1) < length; j+= 2) { + if (peer[j] != 0x00) { + continue; // only 0x00 first byte supported + } + + if (secure_.use_parms().suites_[i] == peer[j + 1]) { secure_.use_parms().suite_[0] = 0x00; - secure_.use_parms().suite_[1] = peer[j]; + secure_.use_parms().suite_[1] = peer[j + 1]; return; } + } SetError(match_error); } From f7316aa0c9a3909fc7498e7b95d5d3af044a7e21 Mon Sep 17 00:00:00 2001 From: Ajo Robert Date: Thu, 24 Aug 2017 17:03:21 +0530 Subject: [PATCH 011/128] Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL)) Backport of Bug#19143243 fix. NAME_CONST item can return NULL_ITEM type in case of incorrect arguments. NULL_ITEM has special processing in Item_func_in function. In Item_func_in::fix_length_and_dec an array of possible comparators is created. Since NAME_CONST function has NULL_ITEM type, corresponding array element is empty. Then NAME_CONST is wrapped to ITEM_CACHE. ITEM_CACHE can not return proper type(NULL_ITEM) in Item_func_in::val_int(), so the NULL_ITEM is attempted compared with an empty comparator. The fix is to disable the caching of Item_name_const item. --- sql/item.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sql/item.h b/sql/item.h index 8caa2bc5f9f..9f4e1d24424 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1,7 +1,7 @@ #ifndef ITEM_INCLUDED #define ITEM_INCLUDED -/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -1552,6 +1552,12 @@ public: return TRUE; } + virtual bool cache_const_expr_analyzer(uchar **arg) + { + // Item_name_const always wraps a literal, so there is no need to cache it. + return false; + } + int save_in_field(Field *field, bool no_conversions) { return value_item->save_in_field(field, no_conversions); From 765519694d2c1515c56f7f7aadaf8004b5ad8a45 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Thu, 17 Aug 2017 22:59:41 +0300 Subject: [PATCH 012/128] Enable basic XA between MyRocks and the binlog This allows basic master crash-safety - Un-comment and update relevant parts of the code - Make rocksdb_rpl suite work like other MyRocks testsuites (load the MyRocks plugin, don't start if it is not compiled in, etc) - For now, disable all tests in the rocksdb_rpl suite. - MariaDB-fication of rpl_rocksdb_2p_crash_recover test. --- storage/rocksdb/ha_rocksdb.cc | 23 ++++++++--------- .../rocksdb_rpl/include/have_rocksdb.inc | 10 ++++++++ .../rocksdb_rpl/include/have_rocksdb.opt | 12 +++++++++ storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf | 17 +++++++++++++ .../r/rpl_rocksdb_2pc_crash_recover.result | 10 ++++---- .../rocksdb/mysql-test/rocksdb_rpl/suite.opt | 2 ++ .../rocksdb/mysql-test/rocksdb_rpl/suite.pm | 25 +++++++++++++++++++ .../mysql-test/rocksdb_rpl/t/disabled.def | 18 +++++++++++++ .../rpl_rocksdb_2pc_crash_recover-master.opt | 2 +- .../t/rpl_rocksdb_2pc_crash_recover-slave.opt | 2 +- .../t/rpl_rocksdb_2pc_crash_recover.test | 10 ++++---- storage/rocksdb/rdb_datadic.cc | 11 +++++--- storage/rocksdb/rdb_datadic.h | 1 - storage/rocksdb/rdb_mariadb_port.h | 3 +++ 14 files changed, 116 insertions(+), 30 deletions(-) create mode 100644 storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.inc create mode 100644 storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.opt create mode 100644 storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf create mode 100644 storage/rocksdb/mysql-test/rocksdb_rpl/suite.opt create mode 100644 storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm create mode 100644 storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index 293d995126a..bfc7ffd921c 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -170,7 +170,6 @@ static std::shared_ptr properties_collector_factory; Rdb_dict_manager dict_manager; Rdb_cf_manager cf_manager; Rdb_ddl_manager ddl_manager; -const char *m_mysql_gtid; Rdb_binlog_manager binlog_manager; #ifndef _WIN32 @@ -1668,8 +1667,11 @@ protected: public: const char *m_mysql_log_file_name; my_off_t m_mysql_log_offset; +#ifdef MARIAROCKS_NOT_YET + // TODO: MariaDB probably doesn't need these at all: const char *m_mysql_gtid; const char *m_mysql_max_gtid; +#endif String m_detailed_error; int64_t m_snapshot_timestamp = 0; bool m_ddl_transaction; @@ -1856,13 +1858,10 @@ public: rollback(); return true; } else { -#ifdef MARIAROCKS_NOT_YET - my_core::thd_binlog_pos(m_thd, &m_mysql_log_file_name, - &m_mysql_log_offset, &m_mysql_gtid, - &m_mysql_max_gtid); + mysql_bin_log_commit_pos(m_thd, &m_mysql_log_offset, + &m_mysql_log_file_name); binlog_manager.update(m_mysql_log_file_name, m_mysql_log_offset, - m_mysql_max_gtid, get_write_batch()); -#endif + get_write_batch()); return commit_no_binlog(); } } @@ -2683,26 +2682,25 @@ static bool rocksdb_flush_wal(handlerton* hton __attribute__((__unused__))) */ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) { -#ifdef MARIAROCKS_NOT_YET // This is "ASYNC_COMMIT" feature which is only in webscalesql bool async=false; -#endif Rdb_transaction *&tx = get_tx_from_thd(thd); if (!tx->can_prepare()) { return HA_EXIT_FAILURE; } -#ifdef MARIAROCKS_NOT_YET // disable prepare/commit if (prepare_tx || (!my_core::thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))) { /* We were instructed to prepare the whole transaction, or this is an SQL statement end and autocommit is on */ +#ifdef MARIAROCKS_NOT_YET // disable prepare/commit std::vector slave_gtid_info; my_core::thd_slave_gtid_info(thd, &slave_gtid_info); for (const auto &it : slave_gtid_info) { rocksdb::WriteBatchBase *const write_batch = tx->get_blind_write_batch(); binlog_manager.update_slave_gtid_info(it.id, it.db, it.gtid, write_batch); } +#endif if (tx->is_two_phase()) { if (thd->durability_property == HA_IGNORE_DURABILITY || async) { @@ -2713,10 +2711,10 @@ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) if (!tx->prepare(rdb_xid_to_string(xid))) { return HA_EXIT_FAILURE; } - if (thd->durability_property == HA_IGNORE_DURABILITY + if (thd->durability_property == HA_IGNORE_DURABILITY ) #ifdef MARIAROCKS_NOT_YET && - THDVAR(thd, flush_log_at_trx_commit)) { + THDVAR(thd, flush_log_at_trx_commit)) #endif { #ifdef MARIAROCKS_NOT_YET @@ -2733,7 +2731,6 @@ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) DEBUG_SYNC(thd, "rocksdb.prepared"); } -#endif return HA_EXIT_SUCCESS; } diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.inc b/storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.inc new file mode 100644 index 00000000000..1f762d38c64 --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.inc @@ -0,0 +1,10 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'rocksdb' AND support IN ('YES', 'DEFAULT', 'ENABLED')`) +{ + --skip Test requires engine RocksDB. +} + +--disable_query_log +# Table statistics can vary depending on when the memtables are flushed, so +# flush them at the beginning of the test to ensure the test runs consistently. +set global rocksdb_force_flush_memtable_now = true; +--enable_query_log diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.opt b/storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.opt new file mode 100644 index 00000000000..36d7dda1609 --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/include/have_rocksdb.opt @@ -0,0 +1,12 @@ +--loose-enable-rocksdb +--loose-enable-rocksdb_global_info +--loose-enable-rocksdb_ddl +--loose-enable-rocksdb_cf_options +--loose-enable_rocksdb_perf_context +--loose-enable_rocksdb_perf_context_global +--loose-enable-rocksdb_index_file_map +--loose-enable-rocksdb_dbstats +--loose-enable-rocksdb_cfstats +--loose-enable-rocksdb_lock_info +--loose-enable-rocksdb_trx +--loose-enable-rocksdb_locks diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf b/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf new file mode 100644 index 00000000000..2beaf514cee --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf @@ -0,0 +1,17 @@ +!include include/default_my.cnf + +[server] +skip-innodb +default-storage-engine=rocksdb + + +sql-mode=NO_ENGINE_SUBSTITUTION +explicit-defaults-for-timestamp=1 +loose-rocksdb_lock_wait_timeout=1 +loose-rocksdb_strict_collation_check=0 + +loose-rocksdb-flush-log-at-trx-commit=0 + +# The following is to get rid of the harmless +# "Deadlock found when trying to get lock" errors, see MDEV-12285. +log-warnings=1 diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/r/rpl_rocksdb_2pc_crash_recover.result b/storage/rocksdb/mysql-test/rocksdb_rpl/r/rpl_rocksdb_2pc_crash_recover.result index 59d1a231327..cf3fe03a305 100644 --- a/storage/rocksdb/mysql-test/rocksdb_rpl/r/rpl_rocksdb_2pc_crash_recover.result +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/r/rpl_rocksdb_2pc_crash_recover.result @@ -1,19 +1,19 @@ DROP TABLE IF EXISTS t1; create table t1 (a int primary key, msg varchar(255)) engine=rocksdb; SET GLOBAL ROCKSDB_ENABLE_2PC = ON; -SET SESSION debug="d,crash_commit_after_prepare"; +SET SESSION debug_dbug="d,crash_commit_after_prepare"; insert into t1 values (1, 'dogz'); select * from t1; a msg SET GLOBAL ROCKSDB_ENABLE_2PC = ON; -SET SESSION debug="d,crash_commit_after_log"; +SET SESSION debug_dbug="d,crash_commit_after_log"; insert into t1 values (2, 'catz'), (3, 'men'); select * from t1; a msg 2 catz 3 men SET GLOBAL ROCKSDB_ENABLE_2PC = ON; -SET SESSION debug="d,crash_commit_after"; +SET SESSION debug_dbug="d,crash_commit_after"; insert into t1 values (4, 'cars'), (5, 'foo'); select * from t1; a msg @@ -22,7 +22,7 @@ a msg 4 cars 5 foo SET GLOBAL ROCKSDB_ENABLE_2PC = OFF; -SET SESSION debug="d,crash_commit_after_log"; +SET SESSION debug_dbug="d,crash_commit_after_log"; insert into t1 values (6, 'shipz'), (7, 'tankz'); select * from t1; a msg @@ -31,7 +31,7 @@ a msg 4 cars 5 foo SET GLOBAL ROCKSDB_ENABLE_2PC = OFF; -SET SESSION debug="d,crash_commit_after"; +SET SESSION debug_dbug="d,crash_commit_after"; insert into t1 values (8, 'space'), (9, 'time'); select * from t1; a msg diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/suite.opt b/storage/rocksdb/mysql-test/rocksdb_rpl/suite.opt new file mode 100644 index 00000000000..f5dc0ce891c --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/suite.opt @@ -0,0 +1,2 @@ +--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --default-storage-engine=rocksdb + diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm b/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm new file mode 100644 index 00000000000..79c630f87f1 --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm @@ -0,0 +1,25 @@ +package My::Suite::Rocksdb; + +# +# Note: ../rocksdb_sys_vars/suite.pm file has a similar +# function. If you modify this file, consider modifying that one, too. +# +@ISA = qw(My::Suite); +use My::Find; +use File::Basename; +use strict; + +sub is_default { not $::opt_embedded_server } + +my $sst_dump= +::mtr_exe_maybe_exists( + "$::bindir/storage/rocksdb$::opt_vs_config/sst_dump", + "$::path_client_bindir/sst_dump"); +return "RocksDB is not compiled, no sst_dump" unless $sst_dump; +$ENV{MARIAROCKS_SST_DUMP}="$sst_dump"; + +# Temporarily disable testing under valgrind, due to MDEV-12439 +return "RocksDB tests disabled under valgrind" if ($::opt_valgrind); + +bless { }; + diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def new file mode 100644 index 00000000000..c45236fbd37 --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def @@ -0,0 +1,18 @@ + +# rpl_rocksdb_2pc_crash_recover + +consistent_snapshot_mixed_engines : Didn't try with MariaDB, yet +multiclient_2pc : Didn't try with MariaDB, yet +rpl_crash_safe_wal_corrupt : Didn't try with MariaDB, yet +rpl_gtid_crash_safe : Didn't try with MariaDB, yet +rpl_gtid_crash_safe_wal_corrupt : Didn't try with MariaDB, yet +rpl_gtid_rocksdb_sys_header : Didn't try with MariaDB, yet +rpl_no_unique_check_on_lag : Didn't try with MariaDB, yet +rpl_no_unique_check_on_lag_mts : Didn't try with MariaDB, yet +rpl_rocksdb_snapshot : Didn't try with MariaDB, yet +rpl_rocksdb_snapshot_without_gtid : Didn't try with MariaDB, yet +rpl_rocksdb_stress_crash : Didn't try with MariaDB, yet +rpl_skip_trx_api_binlog_format : Didn't try with MariaDB, yet +singledelete_idempotent_recovery : Didn't try with MariaDB, yet +singledelete_idempotent_table : Didn't try with MariaDB, yet + diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-master.opt b/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-master.opt index 74c2de37100..f8f297c567c 100644 --- a/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-master.opt +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-master.opt @@ -1 +1 @@ ---gtid_mode=ON --enforce_gtid_consistency --log_bin --log_slave_updates --rocksdb_flush_log_at_trx_commit=1 --rocksdb_write_disable_wal=OFF +--log_bin --log_slave_updates --rocksdb_flush_log_at_trx_commit=1 diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-slave.opt b/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-slave.opt index c747adc94d5..7a3f630fda2 100644 --- a/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-slave.opt +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover-slave.opt @@ -1 +1 @@ ---gtid_mode=ON --enforce_gtid_consistency --log_bin --log_slave_updates +--log_bin --log_slave_updates diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover.test b/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover.test index ea1fe3e34d6..3aa006c84be 100644 --- a/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover.test +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/t/rpl_rocksdb_2pc_crash_recover.test @@ -10,7 +10,7 @@ create table t1 (a int primary key, msg varchar(255)) engine=rocksdb; SET GLOBAL ROCKSDB_ENABLE_2PC = ON; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -SET SESSION debug="d,crash_commit_after_prepare"; +SET SESSION debug_dbug="d,crash_commit_after_prepare"; --error 0,2013 insert into t1 values (1, 'dogz'); --enable_reconnect @@ -19,7 +19,7 @@ select * from t1; SET GLOBAL ROCKSDB_ENABLE_2PC = ON; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -SET SESSION debug="d,crash_commit_after_log"; +SET SESSION debug_dbug="d,crash_commit_after_log"; --error 0,2013 insert into t1 values (2, 'catz'), (3, 'men'); --enable_reconnect @@ -28,7 +28,7 @@ select * from t1; SET GLOBAL ROCKSDB_ENABLE_2PC = ON; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -SET SESSION debug="d,crash_commit_after"; +SET SESSION debug_dbug="d,crash_commit_after"; --error 0,2013 insert into t1 values (4, 'cars'), (5, 'foo'); --enable_reconnect @@ -37,7 +37,7 @@ select * from t1; SET GLOBAL ROCKSDB_ENABLE_2PC = OFF; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -SET SESSION debug="d,crash_commit_after_log"; +SET SESSION debug_dbug="d,crash_commit_after_log"; --error 0,2013 insert into t1 values (6, 'shipz'), (7, 'tankz'); --enable_reconnect @@ -46,7 +46,7 @@ select * from t1; SET GLOBAL ROCKSDB_ENABLE_2PC = OFF; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -SET SESSION debug="d,crash_commit_after"; +SET SESSION debug_dbug="d,crash_commit_after"; --error 0,2013 insert into t1 values (8, 'space'), (9, 'time'); --enable_reconnect diff --git a/storage/rocksdb/rdb_datadic.cc b/storage/rocksdb/rdb_datadic.cc index d2404c2f8b1..4b3dedfedfe 100644 --- a/storage/rocksdb/rdb_datadic.cc +++ b/storage/rocksdb/rdb_datadic.cc @@ -3961,12 +3961,10 @@ void Rdb_binlog_manager::cleanup() {} write succeeded or not is not possible here. @param binlog_name Binlog name @param binlog_pos Binlog pos - @param binlog_gtid Binlog max GTID @param batch WriteBatch */ void Rdb_binlog_manager::update(const char *const binlog_name, const my_off_t binlog_pos, - const char *const binlog_max_gtid, rocksdb::WriteBatchBase *const batch) { if (binlog_name && binlog_pos) { // max binlog length (512) + binlog pos (4) + binlog gtid (57) < 1024 @@ -3974,7 +3972,7 @@ void Rdb_binlog_manager::update(const char *const binlog_name, uchar value_buf[RDB_MAX_BINLOG_INFO_LEN]; m_dict->put_key( batch, m_key_slice, - pack_value(value_buf, binlog_name, binlog_pos, binlog_max_gtid)); + pack_value(value_buf, binlog_name, binlog_pos, NULL)); } } @@ -4009,7 +4007,6 @@ bool Rdb_binlog_manager::read(char *const binlog_name, @param buf Preallocated buffer to set binlog info. @param binlog_name Binlog name @param binlog_pos Binlog pos - @param binlog_gtid Binlog GTID @return rocksdb::Slice converted from buf and its length */ rocksdb::Slice @@ -4038,15 +4035,21 @@ Rdb_binlog_manager::pack_value(uchar *const buf, const char *const binlog_name, // store binlog gtid length. // If gtid was not set, store 0 instead +#ifdef MARIAROCKS_NOT_YET const uint16_t binlog_gtid_len = binlog_gtid ? (uint16_t)strlen(binlog_gtid) : 0; rdb_netbuf_store_uint16(buf + pack_len, binlog_gtid_len); +#endif pack_len += sizeof(uint16); + // MariaDB: + rdb_netbuf_store_uint16(buf + pack_len, 0); +#ifdef MARIAROCKS_NOT_YET if (binlog_gtid_len > 0) { // store binlog gtid memcpy(buf + pack_len, binlog_gtid, binlog_gtid_len); pack_len += binlog_gtid_len; } +#endif return rocksdb::Slice((char *)buf, pack_len); } diff --git a/storage/rocksdb/rdb_datadic.h b/storage/rocksdb/rdb_datadic.h index 9c7cd956eb3..2711ace9e47 100644 --- a/storage/rocksdb/rdb_datadic.h +++ b/storage/rocksdb/rdb_datadic.h @@ -1082,7 +1082,6 @@ public: bool init(Rdb_dict_manager *const dict); void cleanup(); void update(const char *const binlog_name, const my_off_t binlog_pos, - const char *const binlog_max_gtid, rocksdb::WriteBatchBase *const batch); bool read(char *const binlog_name, my_off_t *const binlog_pos, char *const binlog_gtid) const; diff --git a/storage/rocksdb/rdb_mariadb_port.h b/storage/rocksdb/rdb_mariadb_port.h index 1661338030f..627674905cc 100644 --- a/storage/rocksdb/rdb_mariadb_port.h +++ b/storage/rocksdb/rdb_mariadb_port.h @@ -49,4 +49,7 @@ typedef struct my_io_perf_struct my_io_perf_t; std::vector split_into_vector(const std::string& input, char delimiter); +void +mysql_bin_log_commit_pos(THD *thd, ulonglong *out_pos, const char **out_file); + #endif From fba53e777564704016bbe3a105fa5419c82979a8 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 18 Aug 2017 15:42:58 +0300 Subject: [PATCH 013/128] Make MyRocks test stable: Data_length may vary slightly as well --- .../r/rocksdb_flush_memtable_on_analyze_basic.result | 4 ++-- .../t/rocksdb_flush_memtable_on_analyze_basic.test | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb_sys_vars/r/rocksdb_flush_memtable_on_analyze_basic.result b/storage/rocksdb/mysql-test/rocksdb_sys_vars/r/rocksdb_flush_memtable_on_analyze_basic.result index 165f3811f84..905feec9b1a 100644 --- a/storage/rocksdb/mysql-test/rocksdb_sys_vars/r/rocksdb_flush_memtable_on_analyze_basic.result +++ b/storage/rocksdb/mysql-test/rocksdb_sys_vars/r/rocksdb_flush_memtable_on_analyze_basic.result @@ -48,11 +48,11 @@ a b 3 3 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment -t1 ROCKSDB 10 Fixed # # 69 0 0 0 4 NULL NULL NULL latin1_swedish_ci NULL +t1 ROCKSDB 10 Fixed # # # 0 0 0 4 NULL NULL NULL latin1_swedish_ci NULL ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment -t1 ROCKSDB 10 Fixed # # 24 0 0 0 4 NULL NULL NULL latin1_swedish_ci NULL +t1 ROCKSDB 10 Fixed # # # 0 0 0 4 NULL NULL NULL latin1_swedish_ci NULL DROP TABLE t1; diff --git a/storage/rocksdb/mysql-test/rocksdb_sys_vars/t/rocksdb_flush_memtable_on_analyze_basic.test b/storage/rocksdb/mysql-test/rocksdb_sys_vars/t/rocksdb_flush_memtable_on_analyze_basic.test index c7e04f89498..574375cd1ea 100644 --- a/storage/rocksdb/mysql-test/rocksdb_sys_vars/t/rocksdb_flush_memtable_on_analyze_basic.test +++ b/storage/rocksdb/mysql-test/rocksdb_sys_vars/t/rocksdb_flush_memtable_on_analyze_basic.test @@ -37,10 +37,10 @@ INSERT INTO t1 (b) VALUES (3); --sorted_result SELECT * FROM t1; ---replace_column 5 # 6 # +--replace_column 5 # 6 # 7 # SHOW TABLE STATUS LIKE 't1'; ANALYZE TABLE t1; ---replace_column 5 # 6 # +--replace_column 5 # 6 # 7 # SHOW TABLE STATUS LIKE 't1'; DROP TABLE t1; From 575afea7864f0118464e55fd4435ddcb317ac0e8 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 18 Aug 2017 16:22:05 +0300 Subject: [PATCH 014/128] MyRocks: Remove todo-#ifdef in Rdb_trx_info_aggregator::process_tran --- storage/rocksdb/ha_rocksdb.cc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index bfc7ffd921c..31bece23cd4 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -3143,11 +3143,7 @@ public: const auto state_it = state_map.find(rdb_trx->GetState()); DBUG_ASSERT(state_it != state_map.end()); -#ifdef MARIAROCKS_NOT_YET - const int is_replication = (thd->rli_slave != nullptr); -#else - const int is_replication= false; -#endif + const int is_replication = (thd->rgi_slave != nullptr); uint32_t waiting_cf_id; std::string waiting_key; rdb_trx->GetWaitingTxns(&waiting_cf_id, &waiting_key), From c52ffbeba9e90fb5df04de450406734f2abc89be Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 18 Aug 2017 16:26:12 +0300 Subject: [PATCH 015/128] Remove garbage code --- storage/rocksdb/ha_rocksdb.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index 31bece23cd4..bf124584759 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -3838,8 +3838,6 @@ static int rocksdb_init_func(void *const p) { rocksdb::Options main_opts(*rocksdb_db_options, cf_options_map->get_defaults()); -#ifdef MARIAROCKS_NOT_YET -#endif rocksdb::TransactionDBOptions tx_db_options; tx_db_options.transaction_lock_timeout = 2; // 2 seconds tx_db_options.custom_mutex_factory = std::make_shared(); From 5ac61b2af0cf37eeed5050a91819d6d273f037a5 Mon Sep 17 00:00:00 2001 From: Anushree Prakash B Date: Fri, 8 Sep 2017 18:29:07 +0530 Subject: [PATCH 016/128] Bug#26372491 - RCE THROUGH THE MISHANDLE OF BACKSLASH DESCRIPTION: =========== The bug is related to incorrect parsing of SQL queries when typed in on the CLI. The incorrect parsing can result in unexpected results. ANALYSIS: ======== The scenarios mainly happens for identifier names with a typical combination of backslashes and backticks. The incorrect parsing can either result in executing additional queries or can result in query truncation. This can impact mysqldump as well. FIX: === The fix makes sure that such identifier names are correctly parsed and a proper query is sent to the server for execution. (cherry picked from commit 31a372aa1c2b93dc75267d1f05a7f7fca6080dc0) --- client/mysql.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/mysql.cc b/client/mysql.cc index d09499c120a..715d74f18b2 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -2119,7 +2119,10 @@ static bool add_line(String &buffer,char *line,char *in_string, if (*in_string || inchar == 'N') // \N is short for NULL { // Don't allow commands in string *out++='\\'; - *out++= (char) inchar; + if ((inchar == '`') && (*in_string == inchar)) + pos--; + else + *out++= (char) inchar; continue; } if ((com=find_command(NullS,(char) inchar))) From 1da916c37e5107b27297fc9e22c3da7772bb097d Mon Sep 17 00:00:00 2001 From: "mysql-builder@oracle.com" <> Date: Wed, 13 Sep 2017 12:14:06 +0530 Subject: [PATCH 017/128] From e6862cf1ff3ab11189f5d312055eccb56212a300 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 3 Oct 2017 00:13:58 +0000 Subject: [PATCH 018/128] Windows MSI : dump server error log to MSI log on installation failure. On failure, installer executes rollback actions, among them removing newly created data directory with all files in it. This patch makes installer at dump mariadb error log to installer log, before removing the files. This should make troubleshooting a little easier. --- win/packaging/ca/CustomAction.cpp | 45 ++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/win/packaging/ca/CustomAction.cpp b/win/packaging/ca/CustomAction.cpp index 56df4ae791e..98c8c844b6b 100644 --- a/win/packaging/ca/CustomAction.cpp +++ b/win/packaging/ca/CustomAction.cpp @@ -767,6 +767,49 @@ extern "C" UINT __stdcall PresetDatabaseProperties(MSIHANDLE hInstall) LExit: return WcaFinalize(er); } + +static BOOL FindErrorLog(const wchar_t *dir, wchar_t * ErrorLogFile, size_t ErrorLogLen) +{ + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + wchar_t name[MAX_PATH]; + wcsncpy_s(name,dir, MAX_PATH); + wcsncat_s(name,L"\\*.err", MAX_PATH); + hFind = FindFirstFileW(name,&FindFileData); + if (hFind != INVALID_HANDLE_VALUE) + { + _snwprintf(ErrorLogFile, ErrorLogLen, + L"%s\\%s",dir, FindFileData.cFileName); + FindClose(hFind); + return TRUE; + } + return FALSE; +} + +static void DumpErrorLog(const wchar_t *dir) +{ + wchar_t filepath[MAX_PATH]; + if (!FindErrorLog(dir, filepath, MAX_PATH)) + return; + FILE *f= _wfopen(filepath, L"r"); + if (!f) + return; + char buf[2048]; + WcaLog(LOGMSG_STANDARD,"=== dumping error log %S === ",filepath); + while (fgets(buf, sizeof(buf), f)) + { + /* Strip off EOL chars. */ + size_t len = strlen(buf); + if (len > 0 && buf[len-1] == '\n') + buf[--len]= 0; + if (len > 0 && buf[len-1] == '\r') + buf[--len]= 0; + WcaLog(LOGMSG_STANDARD,"%s",buf); + } + fclose(f); + WcaLog(LOGMSG_STANDARD,"=== end of error log ==="); +} + /* Remove service and data directory created by CreateDatabase operation */ extern "C" UINT __stdcall CreateDatabaseRollback(MSIHANDLE hInstall) { @@ -774,7 +817,6 @@ extern "C" UINT __stdcall CreateDatabaseRollback(MSIHANDLE hInstall) UINT er = ERROR_SUCCESS; wchar_t* service= 0; wchar_t* dir= 0; - hr = WcaInitialize(hInstall, __FUNCTION__); ExitOnFailure(hr, "Failed to initialize"); WcaLog(LOGMSG_STANDARD, "Initialized."); @@ -804,6 +846,7 @@ extern "C" UINT __stdcall CreateDatabaseRollback(MSIHANDLE hInstall) } if(dir) { + DumpErrorLog(dir); ExecRemoveDataDirectory(dir); } LExit: From bea99275de3871ea286ab935d4d9d6fe26dd45b8 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 5 Oct 2017 15:07:21 +0200 Subject: [PATCH 019/128] MDEV-13595: mariadb-10.2.8/storage/maria/ma_loghandler.c:2730]: (style) Array index 'chunk_offset' is used before limits check. In fact just a cosmetic fix, code was safe because translog_get_first_chunk_offset return offsets inside the page. --- storage/maria/ma_loghandler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/maria/ma_loghandler.c b/storage/maria/ma_loghandler.c index e2e52546fc9..2118b3b6ce6 100644 --- a/storage/maria/ma_loghandler.c +++ b/storage/maria/ma_loghandler.c @@ -2741,7 +2741,7 @@ static my_bool translog_recover_page_up_to_sector(uchar *page, uint16 offset) DBUG_PRINT("enter", ("offset: %u first chunk: %u", (uint) offset, (uint) chunk_offset)); - while (page[chunk_offset] != TRANSLOG_FILLER && chunk_offset < offset) + while (chunk_offset < offset && page[chunk_offset] != TRANSLOG_FILLER) { uint16 chunk_length; if ((chunk_length= From dbeffabc83ed01112e09d7e782d44f044cfcb691 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 6 Oct 2017 00:08:36 -0700 Subject: [PATCH 020/128] Fixed the bug mdev-11574. Do not build an index merge of two indexes when one index is an infix of the other index. --- mysql-test/r/range_vs_index_merge.result | 81 +++++++++++++++++++ .../r/range_vs_index_merge_innodb.result | 81 +++++++++++++++++++ mysql-test/t/range_vs_index_merge.test | 53 ++++++++++++ sql/opt_range.cc | 39 +++++++-- 4 files changed, 246 insertions(+), 8 deletions(-) diff --git a/mysql-test/r/range_vs_index_merge.result b/mysql-test/r/range_vs_index_merge.result index 6813c40a5cf..bc46a4fdd0b 100644 --- a/mysql-test/r/range_vs_index_merge.result +++ b/mysql-test/r/range_vs_index_merge.result @@ -1807,4 +1807,85 @@ id state capital 7 Pennsylvania Harrisburg 8 Virginia Richmond DROP TABLE t1; +# +# mdev-11574: do not build index merge of two indexes when +# one index is an infix of the other index +# +set names utf8; +CREATE DATABASE world; +use world; +CREATE TABLE Country ( +Code char(3) NOT NULL default '', +Name char(52) NOT NULL default '', +SurfaceArea float(10,2) NOT NULL default '0.00', +Population int(11) NOT NULL default '0', +Capital int(11) default NULL, +PRIMARY KEY (Code), +UNIQUE INDEX (Name) +); +CREATE TABLE City ( +ID int(11) NOT NULL auto_increment, +Name char(35) NOT NULL default '', +Country char(3) NOT NULL default '', +Population int(11) NOT NULL default '0', +PRIMARY KEY (ID), +INDEX (Population), +INDEX (Country) +); +CREATE TABLE CountryLanguage ( +Country char(3) NOT NULL default '', +Language char(30) NOT NULL default '', +Percentage float(3,1) NOT NULL default '0.0', +PRIMARY KEY (Country, Language), +INDEX (Percentage) +); +DROP INDEX Country ON City; +CREATE INDEX CountryName ON City(Country,Name); +CREATE INDEX Name ON City(Name); +select * from City +where +Country='FIN' AND Name IN ('Lahti','Imatra') OR +Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR +Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR +Country='DEU' AND Name IN ('Berlin', 'Bonn') OR +Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR +Country='PRT' AND Name IN ('Braga', 'Porto') OR +Country='FRA' AND Name IN ('Paris', 'Marcel') OR +Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR +Country='NOR' AND Name IN ('Oslo', 'Bergen') OR +Country='ITA' AND Name IN ('Napoli', 'Venezia'); +ID Name Country Population +175 Antwerpen BEL 446525 +176 Gent BEL 224180 +3068 Berlin DEU 3386667 +3087 Bonn DEU 301048 +3242 Lahti FIN 96921 +2974 Paris FRA 2125246 +1466 Napoli ITA 1002619 +1474 Venezia ITA 277305 +2808 Bergen NOR 230948 +2807 Oslo NOR 508726 +2928 Warszawa POL 1615369 +2931 Wroclaw POL 636765 +2918 Braga PRT 90535 +2915 Porto PRT 273060 +3580 Moscow RUS 8389200 +3581 St Petersburg RUS 4694000 +3048 Stockholm SWE 750348 +3051 Uppsala SWE 189569 +explain select * from City +where +Country='FIN' AND Name IN ('Lahti','Imatra') OR +Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR +Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR +Country='DEU' AND Name IN ('Berlin', 'Bonn') OR +Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR +Country='PRT' AND Name IN ('Braga', 'Porto') OR +Country='FRA' AND Name IN ('Paris', 'Marcel') OR +Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR +Country='NOR' AND Name IN ('Oslo', 'Bergen') OR +Country='ITA' AND Name IN ('Napoli', 'Venezia'); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE City range CountryName,Name CountryName 38 NULL 22 Using index condition; Using where +DROP DATABASE world; set session optimizer_switch='index_merge_sort_intersection=default'; diff --git a/mysql-test/r/range_vs_index_merge_innodb.result b/mysql-test/r/range_vs_index_merge_innodb.result index 13fbc0ac3ef..a6ec200538d 100644 --- a/mysql-test/r/range_vs_index_merge_innodb.result +++ b/mysql-test/r/range_vs_index_merge_innodb.result @@ -1808,5 +1808,86 @@ id state capital 7 Pennsylvania Harrisburg 8 Virginia Richmond DROP TABLE t1; +# +# mdev-11574: do not build index merge of two indexes when +# one index is an infix of the other index +# +set names utf8; +CREATE DATABASE world; +use world; +CREATE TABLE Country ( +Code char(3) NOT NULL default '', +Name char(52) NOT NULL default '', +SurfaceArea float(10,2) NOT NULL default '0.00', +Population int(11) NOT NULL default '0', +Capital int(11) default NULL, +PRIMARY KEY (Code), +UNIQUE INDEX (Name) +); +CREATE TABLE City ( +ID int(11) NOT NULL auto_increment, +Name char(35) NOT NULL default '', +Country char(3) NOT NULL default '', +Population int(11) NOT NULL default '0', +PRIMARY KEY (ID), +INDEX (Population), +INDEX (Country) +); +CREATE TABLE CountryLanguage ( +Country char(3) NOT NULL default '', +Language char(30) NOT NULL default '', +Percentage float(3,1) NOT NULL default '0.0', +PRIMARY KEY (Country, Language), +INDEX (Percentage) +); +DROP INDEX Country ON City; +CREATE INDEX CountryName ON City(Country,Name); +CREATE INDEX Name ON City(Name); +select * from City +where +Country='FIN' AND Name IN ('Lahti','Imatra') OR +Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR +Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR +Country='DEU' AND Name IN ('Berlin', 'Bonn') OR +Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR +Country='PRT' AND Name IN ('Braga', 'Porto') OR +Country='FRA' AND Name IN ('Paris', 'Marcel') OR +Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR +Country='NOR' AND Name IN ('Oslo', 'Bergen') OR +Country='ITA' AND Name IN ('Napoli', 'Venezia'); +ID Name Country Population +175 Antwerpen BEL 446525 +176 Gent BEL 224180 +3068 Berlin DEU 3386667 +3087 Bonn DEU 301048 +3242 Lahti FIN 96921 +2974 Paris FRA 2125246 +1466 Napoli ITA 1002619 +1474 Venezia ITA 277305 +2808 Bergen NOR 230948 +2807 Oslo NOR 508726 +2928 Warszawa POL 1615369 +2931 Wroclaw POL 636765 +2918 Braga PRT 90535 +2915 Porto PRT 273060 +3580 Moscow RUS 8389200 +3581 St Petersburg RUS 4694000 +3048 Stockholm SWE 750348 +3051 Uppsala SWE 189569 +explain select * from City +where +Country='FIN' AND Name IN ('Lahti','Imatra') OR +Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR +Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR +Country='DEU' AND Name IN ('Berlin', 'Bonn') OR +Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR +Country='PRT' AND Name IN ('Braga', 'Porto') OR +Country='FRA' AND Name IN ('Paris', 'Marcel') OR +Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR +Country='NOR' AND Name IN ('Oslo', 'Bergen') OR +Country='ITA' AND Name IN ('Napoli', 'Venezia'); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE City range CountryName,Name CountryName 38 NULL 20 Using index condition; Using where +DROP DATABASE world; set session optimizer_switch='index_merge_sort_intersection=default'; SET SESSION STORAGE_ENGINE=DEFAULT; diff --git a/mysql-test/t/range_vs_index_merge.test b/mysql-test/t/range_vs_index_merge.test index 5d12d46c9e9..84b87579e85 100644 --- a/mysql-test/t/range_vs_index_merge.test +++ b/mysql-test/t/range_vs_index_merge.test @@ -1241,6 +1241,59 @@ WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9 DROP TABLE t1; +--echo # +--echo # mdev-11574: do not build index merge of two indexes when +--echo # one index is an infix of the other index +--echo # + +set names utf8; + +CREATE DATABASE world; + +use world; + +--source include/world_schema.inc + +--disable_query_log +--disable_result_log +--disable_warnings +--source include/world.inc +--enable_warnings +--enable_result_log +--enable_query_log + +DROP INDEX Country ON City; +CREATE INDEX CountryName ON City(Country,Name); +CREATE INDEX Name ON City(Name); + +--disable_query_log +--disable_result_log +--disable_warnings +ANALYZE TABLE City; +--enable_warnings +--enable_result_log +--enable_query_log + +let $q= +select * from City +where + Country='FIN' AND Name IN ('Lahti','Imatra') OR + Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR + Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR + Country='DEU' AND Name IN ('Berlin', 'Bonn') OR + Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR + Country='PRT' AND Name IN ('Braga', 'Porto') OR + Country='FRA' AND Name IN ('Paris', 'Marcel') OR + Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR + Country='NOR' AND Name IN ('Oslo', 'Bergen') OR + Country='ITA' AND Name IN ('Napoli', 'Venezia'); + +eval $q; +eval explain $q; + + +DROP DATABASE world; + #the following command must be the last one in the file set session optimizer_switch='index_merge_sort_intersection=default'; diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 3563058282b..7b29e8b2b7b 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -8990,6 +8990,34 @@ bool sel_trees_can_be_ored(RANGE_OPT_PARAM* param, DBUG_RETURN(!common_keys->is_clear_all()); } +/* + Check whether the key parts inf_init..inf_end-1 of one index can compose + an infix for the key parts key_init..key_end-1 of another index +*/ + +static +bool is_key_infix(KEY_PART *key_init, KEY_PART *key_end, + KEY_PART *inf_init, KEY_PART *inf_end) +{ + KEY_PART *key_part, *inf_part; + for (key_part= key_init; key_part < key_end; key_part++) + { + if (key_part->field->eq(inf_init->field)) + break; + } + if (key_part == key_end) + return false; + for (key_part++, inf_part= inf_init + 1; + key_part < key_end && inf_part < inf_end; + key_part++, inf_part++) + { + if (!key_part->field->eq(inf_part->field)) + return false; + } + return inf_part == inf_end; +} + + /* Check whether range parts of two trees must be ored for some indexes @@ -9046,14 +9074,9 @@ bool sel_trees_must_be_ored(RANGE_OPT_PARAM* param, KEY_PART *key2_init= param->key[idx2]+tree2->keys[idx2]->part; KEY_PART *key2_end= param->key[idx2]+tree2->keys[idx2]->max_part_no; - KEY_PART *part1, *part2; - for (part1= key1_init, part2= key2_init; - part1 < key1_end && part2 < key2_end; - part1++, part2++) - { - if (!part1->field->eq(part2->field)) - DBUG_RETURN(FALSE); - } + if (!is_key_infix(key1_init, key1_end, key2_init, key2_end) && + !is_key_infix(key2_init, key2_end, key1_init, key1_end)) + DBUG_RETURN(FALSE); } } From e30b6a983fe135dd1af0c79c81dbdb5b14b881c8 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Fri, 6 Oct 2017 18:23:40 +0400 Subject: [PATCH 021/128] MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value --- mysql-test/r/func_time.result | 14 ++++++++++++++ mysql-test/suite/vcol/r/vcol_misc.result | 19 +++++++++++++++++++ mysql-test/suite/vcol/t/vcol_misc.test | 20 ++++++++++++++++++++ mysql-test/t/func_time.test | 16 ++++++++++++++++ sql/item_timefunc.h | 10 +++++++++- 5 files changed, 78 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index 68b1e0f04ad..fa159972c9a 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -2626,3 +2626,17 @@ DROP TABLE t1; SELECT 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2; 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2 3 +# +# MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value +# +SET sql_mode='NO_ZERO_IN_DATE'; +CREATE TABLE t1 (a TIME(6)); +INSERT INTO t1 SELECT timediff(timestamp'2008-12-31 23:59:59.000001',timestamp'2008-12-30 01:01:01.000002'); +SELECT * FROM t1; +a +46:58:57.999999 +DROP TABLE t1; +SET sql_mode=DEFAULT; +# +# End of 5.5 tests +# diff --git a/mysql-test/suite/vcol/r/vcol_misc.result b/mysql-test/suite/vcol/r/vcol_misc.result index 699b6d4efe3..0a8d87dc2f7 100644 --- a/mysql-test/suite/vcol/r/vcol_misc.result +++ b/mysql-test/suite/vcol/r/vcol_misc.result @@ -337,3 +337,22 @@ tsv timestamp as (adddate(ts, interval 1 day)) virtual ); drop table t1; set sql_mode=default; +# +# MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value +# +SET sql_mode='NO_ZERO_IN_DATE'; +CREATE TABLE t1 +( +a datetime DEFAULT NULL, +b datetime DEFAULT NULL, +c time GENERATED ALWAYS AS (timediff(`a`,`b`)) VIRTUAL +); +INSERT INTO t1 VALUES ('2008-12-31 23:59:59.000001','2008-12-30 01:01:01.000002',DEFAULT); +SELECT * FROM t1; +a b c +2008-12-31 23:59:59 2008-12-30 01:01:01 46:58:58 +DROP TABLE t1; +SET sql_mode=DEFAULT; +# +# End of 5.5 tests +# diff --git a/mysql-test/suite/vcol/t/vcol_misc.test b/mysql-test/suite/vcol/t/vcol_misc.test index 80a36d9c623..1ac0b4f80b7 100644 --- a/mysql-test/suite/vcol/t/vcol_misc.test +++ b/mysql-test/suite/vcol/t/vcol_misc.test @@ -301,3 +301,23 @@ create table t1 ( ); drop table t1; set sql_mode=default; + +--echo # +--echo # MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value +--echo # + +SET sql_mode='NO_ZERO_IN_DATE'; +CREATE TABLE t1 +( + a datetime DEFAULT NULL, + b datetime DEFAULT NULL, + c time GENERATED ALWAYS AS (timediff(`a`,`b`)) VIRTUAL +); +INSERT INTO t1 VALUES ('2008-12-31 23:59:59.000001','2008-12-30 01:01:01.000002',DEFAULT); +SELECT * FROM t1; +DROP TABLE t1; +SET sql_mode=DEFAULT; + +--echo # +--echo # End of 5.5 tests +--echo # diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index 92e1c38cec2..7544f9e7761 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -1602,3 +1602,19 @@ DROP TABLE t1; --echo # MDEV-10524 Assertion `arg1_int >= 0' failed in Item_func_additive_op::result_precision() --echo # SELECT 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2; + + +--echo # +--echo # MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value +--echo # + +SET sql_mode='NO_ZERO_IN_DATE'; +CREATE TABLE t1 (a TIME(6)); +INSERT INTO t1 SELECT timediff(timestamp'2008-12-31 23:59:59.000001',timestamp'2008-12-30 01:01:01.000002'); +SELECT * FROM t1; +DROP TABLE t1; +SET sql_mode=DEFAULT; + +--echo # +--echo # End of 5.5 tests +--echo # diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index 0062d500835..5be9c5cacbd 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -500,8 +500,16 @@ public: { return val_decimal_from_date(decimal_value); } Field *tmp_table_field(TABLE *table) { return tmp_table_field_from_field_type(table, 0); } +#if MARIADB_VERSION_ID > 100300 +#error This code should be removed in 10.3, to use the derived save_in_field() +#else int save_in_field(Field *field, bool no_conversions) - { return save_date_in_field(field); } + { + return field_type() == MYSQL_TYPE_TIME ? + save_time_in_field(field) : + save_date_in_field(field); + } +#endif void fix_length_and_dec(); }; From ca948e335e0e43538f994484938dd729b32ae286 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Sat, 7 Oct 2017 13:42:11 +0400 Subject: [PATCH 022/128] MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant --- mysql-test/r/ctype_gbk.result | 18 ++++++++++++++++++ mysql-test/r/ctype_latin1.result | 18 ++++++++++++++++++ mysql-test/t/ctype_gbk.test | 14 ++++++++++++++ mysql-test/t/ctype_latin1.test | 16 ++++++++++++++++ sql/item.cc | 4 +++- 5 files changed, 69 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result index c5d997b0213..2d31a15bb62 100644 --- a/mysql-test/r/ctype_gbk.result +++ b/mysql-test/r/ctype_gbk.result @@ -4944,5 +4944,23 @@ E05B DROP TABLE t1; # Start of ctype_E05C.inc # +# MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant +# +SET NAMES latin1; +CREATE TABLE t1 (a TEXT CHARACTER SET gbk); +INSERT INTO t1 VALUES (0xEE5D); +SELECT a<>0xEE5D AS a FROM t1; +a +0 +CREATE VIEW v1 AS SELECT a<>0xEE5D AS a FROM t1; +SHOW CREATE VIEW v1; +View Create View character_set_client collation_connection +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`a` <> 0xee5d) AS `a` from `t1` latin1 latin1_swedish_ci +SELECT * FROM v1; +a +0 +DROP VIEW v1; +DROP TABLE t1; +# # End of 10.0 tests # diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result index eee915267d5..cf48aaab09b 100644 --- a/mysql-test/r/ctype_latin1.result +++ b/mysql-test/r/ctype_latin1.result @@ -7922,5 +7922,23 @@ SELECT _latin1 0x7E, _latin1 X'7E', _latin1 B'01111110'; _latin1 0x7E _latin1 X'7E' _latin1 B'01111110' ~ ~ ~ # +# MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant +# +SET NAMES latin1; +CREATE TABLE t1 (a TEXT CHARACTER SET latin1); +INSERT INTO t1 VALUES (0xC0); +SELECT a<>0xEE5D AS a FROM t1; +a +1 +CREATE VIEW v1 AS SELECT a<>0xC0 AS a FROM t1; +SHOW CREATE VIEW v1; +View Create View character_set_client collation_connection +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`a` <> 0xc0) AS `a` from `t1` latin1 latin1_swedish_ci +SELECT * FROM v1; +a +0 +DROP VIEW v1; +DROP TABLE t1; +# # End of 10.0 tests # diff --git a/mysql-test/t/ctype_gbk.test b/mysql-test/t/ctype_gbk.test index d44009b6109..454377d98a7 100644 --- a/mysql-test/t/ctype_gbk.test +++ b/mysql-test/t/ctype_gbk.test @@ -199,6 +199,20 @@ let $ctype_unescape_combinations=selected; SET NAMES gbk; --source include/ctype_E05C.inc +--echo # +--echo # MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant +--echo # + +SET NAMES latin1; +CREATE TABLE t1 (a TEXT CHARACTER SET gbk); +INSERT INTO t1 VALUES (0xEE5D); +SELECT a<>0xEE5D AS a FROM t1; +CREATE VIEW v1 AS SELECT a<>0xEE5D AS a FROM t1; +SHOW CREATE VIEW v1; +SELECT * FROM v1; +DROP VIEW v1; +DROP TABLE t1; + --echo # --echo # End of 10.0 tests diff --git a/mysql-test/t/ctype_latin1.test b/mysql-test/t/ctype_latin1.test index aeaad2cc026..8a188b71e24 100644 --- a/mysql-test/t/ctype_latin1.test +++ b/mysql-test/t/ctype_latin1.test @@ -245,6 +245,22 @@ DROP TABLE t1; --echo # SELECT _latin1 0x7E, _latin1 X'7E', _latin1 B'01111110'; + +--echo # +--echo # MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant +--echo # + +SET NAMES latin1; +CREATE TABLE t1 (a TEXT CHARACTER SET latin1); +INSERT INTO t1 VALUES (0xC0); +SELECT a<>0xEE5D AS a FROM t1; +CREATE VIEW v1 AS SELECT a<>0xC0 AS a FROM t1; +SHOW CREATE VIEW v1; +SELECT * FROM v1; +DROP VIEW v1; +DROP TABLE t1; + + --echo # --echo # End of 10.0 tests --echo # diff --git a/sql/item.cc b/sql/item.cc index 0b603e1ad2c..3e0f71f843f 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -2162,6 +2162,9 @@ bool agg_item_collations_for_comparison(DTCollation &c, const char *fname, bool agg_item_set_converter(DTCollation &coll, const char *fname, Item **args, uint nargs, uint flags, int item_sep) { + THD *thd= current_thd; + if (thd->lex->is_ps_or_view_context_analysis()) + return false; Item **arg, *safe_args[2]= {NULL, NULL}; /* @@ -2177,7 +2180,6 @@ bool agg_item_set_converter(DTCollation &coll, const char *fname, safe_args[1]= args[item_sep]; } - THD *thd= current_thd; bool res= FALSE; uint i; From 5eb666ad37ff80e5f8dc714bb68fcb1e269b797a Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Sat, 7 Oct 2017 14:17:45 +0400 Subject: [PATCH 023/128] MDEV-12705 10.1.18-MariaDB-1~jessie - mysqld got signal 11. Space for the next operation wasn't reserved in Item_func_spatial_relate::val_str() --- mysql-test/r/gis-precise.result | 19 +++++++++++++++++++ mysql-test/t/gis-precise.test | 19 +++++++++++++++++++ sql/item_geofunc.cc | 10 ++++++++-- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/gis-precise.result b/mysql-test/r/gis-precise.result index 3824ba6afbb..89e5c237413 100644 --- a/mysql-test/r/gis-precise.result +++ b/mysql-test/r/gis-precise.result @@ -486,6 +486,25 @@ ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')); ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')) 0 +SELECT ST_RELATE( +ST_DIFFERENCE( +GEOMETRYFROMTEXT(' + MULTILINESTRING( + ( 12841 36140, 8005 31007, 26555 31075, 52765 41191, + 28978 6548, 45720 32057, 53345 3221 ), + ( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ), + ( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ), + ( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ), + ( 35944 64702, 14433 23728, 49317 26241, 790 16941 ) + ) + '), +GEOMETRYFROMTEXT('POINT(46061 13545)') +), +GEOMETRYFROMTEXT('POINT(4599 60359)'), +'F*FFFF**F' + ) as relate_res; +relate_res +0 DROP TABLE IF EXISTS p1; CREATE PROCEDURE p1(dist DOUBLE, geom TEXT) BEGIN diff --git a/mysql-test/t/gis-precise.test b/mysql-test/t/gis-precise.test index 5e57569a912..7391b2114f3 100644 --- a/mysql-test/t/gis-precise.test +++ b/mysql-test/t/gis-precise.test @@ -362,5 +362,24 @@ select ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT select ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')); +# MDEV-12705 10.1.18-MariaDB-1~jessie - mysqld got signal 11. +SELECT ST_RELATE( + ST_DIFFERENCE( + GEOMETRYFROMTEXT(' + MULTILINESTRING( + ( 12841 36140, 8005 31007, 26555 31075, 52765 41191, + 28978 6548, 45720 32057, 53345 3221 ), + ( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ), + ( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ), + ( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ), + ( 35944 64702, 14433 23728, 49317 26241, 790 16941 ) + ) + '), + GEOMETRYFROMTEXT('POINT(46061 13545)') + ), + GEOMETRYFROMTEXT('POINT(4599 60359)'), + 'F*FFFF**F' + ) as relate_res; + --source include/gis_debug.inc diff --git a/sql/item_geofunc.cc b/sql/item_geofunc.cc index fd7241b7bc3..51a4636df1f 100644 --- a/sql/item_geofunc.cc +++ b/sql/item_geofunc.cc @@ -1194,6 +1194,8 @@ static int setup_relate_func(Geometry *g1, Geometry *g2, } else func->repeat_expression(shape_a); + if (func->reserve_op_buffer(1)) + return 1; func->add_operation(op_matrix(nc%3), 1); if (do_store_shapes) { @@ -1364,11 +1366,13 @@ longlong Item_func_spatial_precise_rel::val_int() Gcalc_function::op_intersection, 2); func.add_operation(Gcalc_function::op_internals, 1); shape_a= func.get_next_expression_pos(); - if ((null_value= g1.store_shapes(&trn))) + if ((null_value= g1.store_shapes(&trn)) || + func.reserve_op_buffer(1)) break; func.add_operation(Gcalc_function::op_internals, 1); shape_b= func.get_next_expression_pos(); - if ((null_value= g2.store_shapes(&trn))) + if ((null_value= g2.store_shapes(&trn)) || + func.reserve_op_buffer(1)) break; func.add_operation(Gcalc_function::v_find_t | Gcalc_function::op_intersection, 2); @@ -1603,6 +1607,8 @@ int Item_func_buffer::Transporter::single_point(double x, double y) { if (buffer_op == Gcalc_function::op_difference) { + if (m_fn->reserve_op_buffer(1)) + return 1; m_fn->add_operation(Gcalc_function::op_false, 0); return 0; } From 9b897d663a116c5484dade0404870975fd5a2e68 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Mon, 9 Oct 2017 01:43:31 +0300 Subject: [PATCH 024/128] MDEV-12263 Feature: skipped test file A note about unstable-tests lists in mysql-test/README, RedHat version of it, and also various changes to bring the file up-to-date --- mysql-test/README | 102 +++++++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 41 deletions(-) diff --git a/mysql-test/README b/mysql-test/README index 0fba1cc07e3..707820b47ee 100644 --- a/mysql-test/README +++ b/mysql-test/README @@ -1,74 +1,94 @@ -This directory contains a test suite for the MySQL daemon. To run -the currently existing test cases, simply execute ./mysql-test-run in -this directory. It will fire up the newly built mysqld and test it. +This directory contains test suites for the MariaDB server. To run +currently existing test cases, execute ./mysql-test-run in this directory. -Note that you do not have to have to do "make install", and you could -actually have a co-existing MySQL installation. The tests will not -conflict with it. To run the test suite in a source directory, you -must do make first. +Some tests are known to fail on some platforms or be otherwise unreliable. +The file "unstable-tests" contains the list of such tests along with +a comment for every test. +To exclude them from the test run, execute + # ./mysql-test-run --skip-test-list=unstable-tests -All tests must pass. If one or more of them fail on your system, please -read the following manual section for instructions on how to report the -problem: +In general you do not have to have to do "make install", and you can have +a co-existing MariaDB installation, the tests will not conflict with it. +To run the tests in a source directory, you must do "make" first. + +In Red Hat distributions, you should run the script as user "mysql". +The user is created with nologin shell, so the best bet is something like + # su - + # cd /usr/share/mysql-test + # su -s /bin/bash mysql -c "./mysql-test-run --skip-test-list=rh-skipped-tests.list" + +This will use the installed MariaDB executables, but will run a private copy +of the server process (using data files within /usr/share/mysql-test), +so you need not start the mysqld service beforehand. + +"rh-skipped-tests.list" is Red Hat version of unstable-tests list, it +additionally includes tests known to fail specifically on Red Hat builds. +You can omit it if you want to check whether such failures occur for you. + +To clean up afterwards, remove the created "var" subdirectory, e.g. + # su -s /bin/bash - mysql -c "rm -rf /usr/share/mysql-test/var" + +If one or more tests fail on your system on reasons other than listed +in lists of unstable tests, please read the following manual section +for instructions on how to report the problem: https://mariadb.com/kb/en/reporting-bugs If you want to use an already running MySQL server for specific tests, use the --extern option to mysql-test-run. Please note that in this mode, -the test suite expects you to provide the names of the tests to run. +you are expected to provide names of the tests to run. + For example, here is the command to run the "alias" and "analyze" tests with an external server: -mysql-test-run --extern socket=/tmp/mysql.sock alias analyze + # mysql-test-run --extern socket=/tmp/mysql.sock alias analyze -To match your setup, you might also need to provide --socket, --user, and -other relevant options. +To match your setup, you might need to provide other relevant options. -With no test cases named on the command line, mysql-test-run falls back -to the normal "non-extern" behavior. The reason for this is that some -tests cannot run with an external server. +With no test names on the command line, mysql-test-run will attempt +to execute the default set of tests, which will certainly fail, because +many tests cannot run with an external server (they need to control the +options with which the server is started, restart the server during +execution, etc.) You can create your own test cases. To create a test case, create a new file in the t subdirectory using a text editor. The file should have a .test extension. For example: - xemacs t/test_case_name.test + # xemacs t/test_case_name.test - In the file, put a set of SQL statements that create some tables, - load test data, and run some queries to manipulate it. +In the file, put a set of SQL statements that create some tables, +load test data, and run some queries to manipulate it. - We would appreciate it if you name your test tables t1, t2, t3 ... (to not - conflict too much with existing tables). +Your test should begin by dropping the tables you are going to create and +end by dropping them again. This ensures that you can run the test over +and over again. - Your test should begin by dropping the tables you are going to create and - end by dropping them again. This ensures that you can run the test over - and over again. - - If you are using mysqltest commands (like result file names) in your - test case, you should create the result file as follows: +If you are using mysqltest commands in your test case, you should create +the result file as follows: - mysql-test-run --record test_case_name + # mysql-test-run --record test_case_name - or + or - mysqltest --record < t/test_case_name.test + # mysqltest --record < t/test_case_name.test - If you only have a simple test cases consisting of SQL statements and - comments, you can create the test case in one of the following ways: +If you only have a simple test case consisting of SQL statements and +comments, you can create the result file in one of the following ways: - mysql-test-run --record test_case_name + # mysql-test-run --record test_case_name - mysql test < t/test_case_name.test > r/test_case_name.result + # mysql test < t/test_case_name.test > r/test_case_name.result - mysqltest --record --database test --result-file=r/test_case_name.result < t/test_case_name.test + # mysqltest --record --database test --result-file=r/test_case_name.result < t/test_case_name.test - When this is done, take a look at r/test_case_name.result - - If the result is incorrect, you have found a bug. In this case, you should - edit the test result to the correct results so that we can verify - that the bug is corrected in future releases. +When this is done, take a look at r/test_case_name.result . +If the result is incorrect, you have found a bug. In this case, you should +edit the test result to the correct results so that we can verify that +the bug is corrected in future releases. If you want to submit your test case you can send it -to maria-developers@lists.launchpad.com or attach it to a bug report on +to maria-developers@lists.launchpad.net or attach it to a bug report on http://mariadb.org/jira/. If the test case is really big or if it contains 'not public' data, From bc85d22bf0034ed4125c6f01552cb174a7151e32 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Mon, 9 Oct 2017 02:49:50 +0300 Subject: [PATCH 025/128] MDEV-12263 Feature: skipped test file Post-fix: RedHat does not use rh-skipped-tests.list anymore --- mysql-test/README | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mysql-test/README b/mysql-test/README index 707820b47ee..c4ded4e8e79 100644 --- a/mysql-test/README +++ b/mysql-test/README @@ -15,15 +15,14 @@ In Red Hat distributions, you should run the script as user "mysql". The user is created with nologin shell, so the best bet is something like # su - # cd /usr/share/mysql-test - # su -s /bin/bash mysql -c "./mysql-test-run --skip-test-list=rh-skipped-tests.list" + # su -s /bin/bash mysql -c "./mysql-test-run --skip-test-list=unstable-tests" -This will use the installed MariaDB executables, but will run a private copy -of the server process (using data files within /usr/share/mysql-test), +This will use the installed MariaDB executables, but will run a private +copy of the server process (using data files within /usr/share/mysql-test), so you need not start the mysqld service beforehand. -"rh-skipped-tests.list" is Red Hat version of unstable-tests list, it -additionally includes tests known to fail specifically on Red Hat builds. -You can omit it if you want to check whether such failures occur for you. +You can omit --skip-test-list option if you want to check whether +the listed failures occur for you. To clean up afterwards, remove the created "var" subdirectory, e.g. # su -s /bin/bash - mysql -c "rm -rf /usr/share/mysql-test/var" From 494d1bf8859bbc9f80779144d07ce0603523d813 Mon Sep 17 00:00:00 2001 From: Andrii Nikitin Date: Mon, 9 Oct 2017 10:22:47 +0200 Subject: [PATCH 026/128] MDEV-14010 merge issue in wsrep_sst_xtrabackup-v2 --- scripts/wsrep_sst_xtrabackup-v2.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/wsrep_sst_xtrabackup-v2.sh b/scripts/wsrep_sst_xtrabackup-v2.sh index 78a7d76da09..faa7bc5e815 100644 --- a/scripts/wsrep_sst_xtrabackup-v2.sh +++ b/scripts/wsrep_sst_xtrabackup-v2.sh @@ -37,7 +37,6 @@ REMOTEIP="" REMOTEHOST="" tca="" tcert="" -tpem="" tkey="" sockopt="" progress="" @@ -358,8 +357,7 @@ get_transfer() if [[ "$WSREP_SST_OPT_ROLE" == "joiner" ]];then wsrep_log_info "Decrypting with CERT: $tcert, KEY: $tkey" tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tcert},key=${tkey},verify=0${joiner_extra}${sockopt} stdio" - tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tpem},key=${tkey},verify=0${sockopt} stdio" - else + else wsrep_log_info "Encrypting with CERT: $tcert, KEY: $tkey" tcmd="socat -u stdio openssl-connect:${REMOTEIP}:${TSST_PORT},cert=${tcert},key=${tkey},verify=0${sockopt}" fi From 172cc70bf8c0aea3d2d0c73bcf94f36c172b769a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 9 Oct 2017 12:18:12 +0300 Subject: [PATCH 027/128] MDEV-13446 fts_create_doc_id() unnecessarily allocates 8 bytes for every inserted row fts_create_doc_id(): Remove. row_mysql_convert_row_to_innobase(): Implement the logic of fts_create_doc_id(). Reuse a buffer for the hidden FTS_DOC_ID. row_get_prebuilt_insert_row(): Allocate a buffer for the hidden FTS_DOC_ID at the end of prebuilt->ins_upd_rec_buff. --- storage/innobase/fts/fts0fts.cc | 49 +----------------------------- storage/innobase/include/fts0fts.h | 17 +---------- storage/innobase/row/row0mysql.cc | 33 +++++++++++++++++--- storage/xtradb/fts/fts0fts.cc | 49 +----------------------------- storage/xtradb/include/fts0fts.h | 17 +---------- storage/xtradb/row/row0mysql.cc | 33 +++++++++++++++++--- 6 files changed, 62 insertions(+), 136 deletions(-) diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index 18d09c8138f..bdc79203cb8 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. All Rights reserved. +Copyright (c) 2016, 2017, MariaDB Corporation. 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 @@ -3032,53 +3032,6 @@ fts_modify( return(error); } -/*********************************************************************//** -Create a new document id. -@return DB_SUCCESS if all went well else error */ -UNIV_INTERN -dberr_t -fts_create_doc_id( -/*==============*/ - dict_table_t* table, /*!< in: row is of this table. */ - dtuple_t* row, /* in/out: add doc id value to this - row. This is the current row that is - being inserted. */ - mem_heap_t* heap) /*!< in: heap */ -{ - doc_id_t doc_id; - dberr_t error = DB_SUCCESS; - - ut_a(table->fts->doc_col != ULINT_UNDEFINED); - - if (!DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) { - if (table->fts->cache->first_doc_id == FTS_NULL_DOC_ID) { - error = fts_get_next_doc_id(table, &doc_id); - } - return(error); - } - - error = fts_get_next_doc_id(table, &doc_id); - - if (error == DB_SUCCESS) { - dfield_t* dfield; - doc_id_t* write_doc_id; - - ut_a(doc_id > 0); - - dfield = dtuple_get_nth_field(row, table->fts->doc_col); - write_doc_id = static_cast( - mem_heap_alloc(heap, sizeof(*write_doc_id))); - - ut_a(doc_id != FTS_NULL_DOC_ID); - ut_a(sizeof(doc_id) == dfield->type.len); - fts_write_doc_id((byte*) write_doc_id, doc_id); - - dfield_set_data(dfield, write_doc_id, sizeof(*write_doc_id)); - } - - return(error); -} - /*********************************************************************//** The given transaction is about to be committed; do whatever is necessary from the FTS system's POV. diff --git a/storage/innobase/include/fts0fts.h b/storage/innobase/include/fts0fts.h index 7aa7055640c..cd94956dc55 100644 --- a/storage/innobase/include/fts0fts.h +++ b/storage/innobase/include/fts0fts.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. All Rights reserved. +Copyright (c) 2016, 2017, MariaDB Corporation. 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 @@ -429,21 +429,6 @@ fts_update_next_doc_id( MY_ATTRIBUTE((nonnull(2))); /******************************************************************//** -Create a new document id . -@return DB_SUCCESS if all went well else error */ -UNIV_INTERN -dberr_t -fts_create_doc_id( -/*==============*/ - dict_table_t* table, /*!< in: row is of this - table. */ - dtuple_t* row, /*!< in/out: add doc id - value to this row. This is the - current row that is being - inserted. */ - mem_heap_t* heap) /*!< in: heap */ - MY_ATTRIBUTE((nonnull)); -/******************************************************************//** Create a new fts_doc_ids_t. @return new fts_doc_ids_t. */ UNIV_INTERN diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index 69d77060bd8..2215e4107e2 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -568,11 +568,33 @@ next_column: /* If there is a FTS doc id column and it is not user supplied ( generated by server) then assign it a new doc id. */ - if (prebuilt->table->fts) { + if (!prebuilt->table->fts) { + return; + } - ut_a(prebuilt->table->fts->doc_col != ULINT_UNDEFINED); + ut_a(prebuilt->table->fts->doc_col != ULINT_UNDEFINED); - fts_create_doc_id(prebuilt->table, row, prebuilt->heap); + doc_id_t doc_id; + + if (!DICT_TF2_FLAG_IS_SET(prebuilt->table, DICT_TF2_FTS_HAS_DOC_ID)) { + if (prebuilt->table->fts->cache->first_doc_id + == FTS_NULL_DOC_ID) { + fts_get_next_doc_id(prebuilt->table, &doc_id); + } + return; + } + + dfield_t* fts_doc_id = dtuple_get_nth_field( + row, prebuilt->table->fts->doc_col); + + if (fts_get_next_doc_id(prebuilt->table, &doc_id) == DB_SUCCESS) { + ut_a(doc_id != FTS_NULL_DOC_ID); + ut_ad(sizeof(doc_id) == fts_doc_id->type.len); + dfield_set_data(fts_doc_id, prebuilt->ins_upd_rec_buff + + prebuilt->mysql_row_len, 8); + fts_write_doc_id(fts_doc_id->data, doc_id); + } else { + dfield_set_null(fts_doc_id); } } @@ -1046,7 +1068,10 @@ row_get_prebuilt_insert_row( prebuilt->ins_upd_rec_buff = static_cast( mem_heap_alloc( prebuilt->heap, - prebuilt->mysql_row_len)); + DICT_TF2_FLAG_IS_SET(prebuilt->table, + DICT_TF2_FTS_HAS_DOC_ID) + ? prebuilt->mysql_row_len + 8/* FTS_DOC_ID */ + : prebuilt->mysql_row_len)); } dtuple_t* row; diff --git a/storage/xtradb/fts/fts0fts.cc b/storage/xtradb/fts/fts0fts.cc index c1f0b0bd5fe..a88ff964202 100644 --- a/storage/xtradb/fts/fts0fts.cc +++ b/storage/xtradb/fts/fts0fts.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. All Rights reserved. +Copyright (c) 2016, 2017, MariaDB Corporation. 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 @@ -3032,53 +3032,6 @@ fts_modify( return(error); } -/*********************************************************************//** -Create a new document id. -@return DB_SUCCESS if all went well else error */ -UNIV_INTERN -dberr_t -fts_create_doc_id( -/*==============*/ - dict_table_t* table, /*!< in: row is of this table. */ - dtuple_t* row, /* in/out: add doc id value to this - row. This is the current row that is - being inserted. */ - mem_heap_t* heap) /*!< in: heap */ -{ - doc_id_t doc_id; - dberr_t error = DB_SUCCESS; - - ut_a(table->fts->doc_col != ULINT_UNDEFINED); - - if (!DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) { - if (table->fts->cache->first_doc_id == FTS_NULL_DOC_ID) { - error = fts_get_next_doc_id(table, &doc_id); - } - return(error); - } - - error = fts_get_next_doc_id(table, &doc_id); - - if (error == DB_SUCCESS) { - dfield_t* dfield; - doc_id_t* write_doc_id; - - ut_a(doc_id > 0); - - dfield = dtuple_get_nth_field(row, table->fts->doc_col); - write_doc_id = static_cast( - mem_heap_alloc(heap, sizeof(*write_doc_id))); - - ut_a(doc_id != FTS_NULL_DOC_ID); - ut_a(sizeof(doc_id) == dfield->type.len); - fts_write_doc_id((byte*) write_doc_id, doc_id); - - dfield_set_data(dfield, write_doc_id, sizeof(*write_doc_id)); - } - - return(error); -} - /*********************************************************************//** The given transaction is about to be committed; do whatever is necessary from the FTS system's POV. diff --git a/storage/xtradb/include/fts0fts.h b/storage/xtradb/include/fts0fts.h index 7aa7055640c..cd94956dc55 100644 --- a/storage/xtradb/include/fts0fts.h +++ b/storage/xtradb/include/fts0fts.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. All Rights reserved. +Copyright (c) 2016, 2017, MariaDB Corporation. 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 @@ -429,21 +429,6 @@ fts_update_next_doc_id( MY_ATTRIBUTE((nonnull(2))); /******************************************************************//** -Create a new document id . -@return DB_SUCCESS if all went well else error */ -UNIV_INTERN -dberr_t -fts_create_doc_id( -/*==============*/ - dict_table_t* table, /*!< in: row is of this - table. */ - dtuple_t* row, /*!< in/out: add doc id - value to this row. This is the - current row that is being - inserted. */ - mem_heap_t* heap) /*!< in: heap */ - MY_ATTRIBUTE((nonnull)); -/******************************************************************//** Create a new fts_doc_ids_t. @return new fts_doc_ids_t. */ UNIV_INTERN diff --git a/storage/xtradb/row/row0mysql.cc b/storage/xtradb/row/row0mysql.cc index eca26ce9763..ebdee381713 100644 --- a/storage/xtradb/row/row0mysql.cc +++ b/storage/xtradb/row/row0mysql.cc @@ -567,11 +567,33 @@ next_column: /* If there is a FTS doc id column and it is not user supplied ( generated by server) then assign it a new doc id. */ - if (prebuilt->table->fts) { + if (!prebuilt->table->fts) { + return; + } - ut_a(prebuilt->table->fts->doc_col != ULINT_UNDEFINED); + ut_a(prebuilt->table->fts->doc_col != ULINT_UNDEFINED); - fts_create_doc_id(prebuilt->table, row, prebuilt->heap); + doc_id_t doc_id; + + if (!DICT_TF2_FLAG_IS_SET(prebuilt->table, DICT_TF2_FTS_HAS_DOC_ID)) { + if (prebuilt->table->fts->cache->first_doc_id + == FTS_NULL_DOC_ID) { + fts_get_next_doc_id(prebuilt->table, &doc_id); + } + return; + } + + dfield_t* fts_doc_id = dtuple_get_nth_field( + row, prebuilt->table->fts->doc_col); + + if (fts_get_next_doc_id(prebuilt->table, &doc_id) == DB_SUCCESS) { + ut_a(doc_id != FTS_NULL_DOC_ID); + ut_ad(sizeof(doc_id) == fts_doc_id->type.len); + dfield_set_data(fts_doc_id, prebuilt->ins_upd_rec_buff + + prebuilt->mysql_row_len, 8); + fts_write_doc_id(fts_doc_id->data, doc_id); + } else { + dfield_set_null(fts_doc_id); } } @@ -1045,7 +1067,10 @@ row_get_prebuilt_insert_row( prebuilt->ins_upd_rec_buff = static_cast( mem_heap_alloc( prebuilt->heap, - prebuilt->mysql_row_len)); + DICT_TF2_FLAG_IS_SET(prebuilt->table, + DICT_TF2_FTS_HAS_DOC_ID) + ? prebuilt->mysql_row_len + 8/* FTS_DOC_ID */ + : prebuilt->mysql_row_len)); } dtuple_t* row; From 4d33c74224a8e425901c91d7c79ce1840014dd72 Mon Sep 17 00:00:00 2001 From: Heinz Wiesinger Date: Thu, 20 Oct 2016 21:36:05 +0200 Subject: [PATCH 028/128] MDEV-10980: Fix reverse queries in OQGRAPH. --- storage/oqgraph/graphcore.cc | 12 +-- .../mysql-test/oqgraph/general-Aria.result | 99 +++++++++---------- .../mysql-test/oqgraph/general-MyISAM.result | 99 +++++++++---------- .../mysql-test/oqgraph/general-innodb.result | 99 +++++++++---------- .../oqgraph/regression_1196036.result | 6 +- .../oqgraph/regression_1213120.result | 71 +++++++------ storage/oqgraph/oqgraph_shim.h | 6 +- 7 files changed, 190 insertions(+), 202 deletions(-) diff --git a/storage/oqgraph/graphcore.cc b/storage/oqgraph/graphcore.cc index 7c8ca53c096..0a683b976aa 100644 --- a/storage/oqgraph/graphcore.cc +++ b/storage/oqgraph/graphcore.cc @@ -897,12 +897,12 @@ namespace open_query switch (ALGORITHM & op) { case DIJKSTRAS: - dijkstra_shortest_paths_no_init(share->g, *dest, + dijkstra_shortest_paths_no_init(r, *dest, make_lazy_property_map(p, identity_initializer()), make_lazy_property_map(d, value_initializer( (std::numeric_limits::max)())), - get(edge_weight, share->g), - get(vertex_index, share->g), + get(edge_weight, r), + get(vertex_index, r), std::less(), closed_plus(), EdgeWeight(), @@ -913,10 +913,10 @@ namespace open_query static_cast(cursor) ) ), - make_two_bit_judy_map(get(vertex_index, share->g))); + make_two_bit_judy_map(get(vertex_index, r))); break; case BREADTH_FIRST: - breadth_first_visit(share->g, *dest, Q, + breadth_first_visit(r, *dest, Q, make_bfs_visitor( std::make_pair( record_predecessors( @@ -935,7 +935,7 @@ namespace open_query ) )) ), - make_two_bit_judy_map(get(vertex_index, share->g))); + make_two_bit_judy_map(get(vertex_index, r))); break; default: abort(); diff --git a/storage/oqgraph/mysql-test/oqgraph/general-Aria.result b/storage/oqgraph/mysql-test/oqgraph/general-Aria.result index f0c5b51a266..fb5d3874dd8 100644 --- a/storage/oqgraph/mysql-test/oqgraph/general-Aria.result +++ b/storage/oqgraph/mysql-test/oqgraph/general-Aria.result @@ -464,16 +464,16 @@ breadth_first NULL 4 1 2 3 breadth_first NULL 4 0 1 4 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 breadth_first NULL 5 0 1 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 breadth_first NULL 6 1 2 5 breadth_first NULL 6 0 1 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 +breadth_first NULL 7 1 2 5 breadth_first NULL 7 0 1 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8; latch origid destid weight seq linkid @@ -482,18 +482,18 @@ latch origid destid weight seq linkid breadth_first NULL 9 0 1 9 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 2 3 11 +breadth_first NULL 10 1 2 12 breadth_first NULL 10 0 1 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 2 3 12 +breadth_first NULL 11 1 2 10 breadth_first NULL 11 0 1 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 2 3 10 +breadth_first NULL 12 1 2 11 breadth_first NULL 12 0 1 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -511,26 +511,26 @@ latch origid destid weight seq linkid breadth_first NULL 4 1 2 3 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 1; latch origid destid weight seq linkid breadth_first NULL 6 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +breadth_first NULL 7 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 1 2 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 1 2 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 1 2 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 2; latch origid destid weight seq linkid breadth_first NULL 1 2 4 4 @@ -547,22 +547,22 @@ SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 +breadth_first NULL 10 2 3 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 +breadth_first NULL 11 2 3 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 +breadth_first NULL 12 2 3 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 3; @@ -856,16 +856,16 @@ latch origid destid weight seq linkid 2 NULL 4 0 1 4 SELECT * FROM graph WHERE latch = '2' AND destid = 5; latch origid destid weight seq linkid -2 NULL 5 1 3 7 2 NULL 5 1 2 6 2 NULL 5 0 1 5 SELECT * FROM graph WHERE latch = '2' AND destid = 6; latch origid destid weight seq linkid -2 NULL 6 2 3 7 2 NULL 6 1 2 5 2 NULL 6 0 1 6 SELECT * FROM graph WHERE latch = '2' AND destid = 7; latch origid destid weight seq linkid +2 NULL 7 2 3 6 +2 NULL 7 1 2 5 2 NULL 7 0 1 7 SELECT * FROM graph WHERE latch = '2' AND destid = 8; latch origid destid weight seq linkid @@ -874,18 +874,18 @@ latch origid destid weight seq linkid 2 NULL 9 0 1 9 SELECT * FROM graph WHERE latch = '2' AND destid = 10; latch origid destid weight seq linkid -2 NULL 10 2 3 12 -2 NULL 10 1 2 11 +2 NULL 10 2 3 11 +2 NULL 10 1 2 12 2 NULL 10 0 1 10 SELECT * FROM graph WHERE latch = '2' AND destid = 11; latch origid destid weight seq linkid -2 NULL 11 2 3 10 -2 NULL 11 1 2 12 +2 NULL 11 2 3 12 +2 NULL 11 1 2 10 2 NULL 11 0 1 11 SELECT * FROM graph WHERE latch = '2' AND destid = 12; latch origid destid weight seq linkid -2 NULL 12 2 3 11 -2 NULL 12 1 2 10 +2 NULL 12 2 3 10 +2 NULL 12 1 2 11 2 NULL 12 0 1 12 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -903,26 +903,26 @@ latch origid destid weight seq linkid 2 NULL 4 1 2 3 SELECT * FROM graph WHERE latch = '2' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -2 NULL 5 1 3 7 2 NULL 5 1 2 6 SELECT * FROM graph WHERE latch = '2' AND destid = 6 and weight = 1; latch origid destid weight seq linkid 2 NULL 6 1 2 5 SELECT * FROM graph WHERE latch = '2' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +2 NULL 7 1 2 5 SELECT * FROM graph WHERE latch = '2' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -2 NULL 10 1 2 11 +2 NULL 10 1 2 12 SELECT * FROM graph WHERE latch = '2' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -2 NULL 11 1 2 12 +2 NULL 11 1 2 10 SELECT * FROM graph WHERE latch = '2' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -2 NULL 12 1 2 10 +2 NULL 12 1 2 11 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 2; latch origid destid weight seq linkid 2 NULL 1 2 4 4 @@ -939,22 +939,22 @@ SELECT * FROM graph WHERE latch = '2' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -2 NULL 6 2 3 7 SELECT * FROM graph WHERE latch = '2' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +2 NULL 7 2 3 6 SELECT * FROM graph WHERE latch = '2' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -2 NULL 10 2 3 12 +2 NULL 10 2 3 11 SELECT * FROM graph WHERE latch = '2' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -2 NULL 11 2 3 10 +2 NULL 11 2 3 12 SELECT * FROM graph WHERE latch = '2' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -2 NULL 12 2 3 11 +2 NULL 12 2 3 10 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 2 and weight = 3; @@ -1133,16 +1133,16 @@ dijkstras NULL 4 1 2 3 dijkstras NULL 4 0 1 4 SELECT * FROM graph WHERE latch='dijkstras' AND destid=5; latch origid destid weight seq linkid -dijkstras NULL 5 1 3 7 dijkstras NULL 5 1 2 6 dijkstras NULL 5 0 1 5 SELECT * FROM graph WHERE latch='dijkstras' AND destid=6; latch origid destid weight seq linkid -dijkstras NULL 6 2 3 7 dijkstras NULL 6 1 2 5 dijkstras NULL 6 0 1 6 SELECT * FROM graph WHERE latch='dijkstras' AND destid=7; latch origid destid weight seq linkid +dijkstras NULL 7 2 3 6 +dijkstras NULL 7 1 2 5 dijkstras NULL 7 0 1 7 SELECT * FROM graph WHERE latch='dijkstras' AND destid=8; latch origid destid weight seq linkid @@ -1151,18 +1151,18 @@ latch origid destid weight seq linkid dijkstras NULL 9 0 1 9 SELECT * FROM graph WHERE latch='dijkstras' AND destid=10; latch origid destid weight seq linkid -dijkstras NULL 10 2 3 12 -dijkstras NULL 10 1 2 11 +dijkstras NULL 10 2 3 11 +dijkstras NULL 10 1 2 12 dijkstras NULL 10 0 1 10 SELECT * FROM graph WHERE latch='dijkstras' AND destid=11; latch origid destid weight seq linkid -dijkstras NULL 11 2 3 10 -dijkstras NULL 11 1 2 12 +dijkstras NULL 11 2 3 12 +dijkstras NULL 11 1 2 10 dijkstras NULL 11 0 1 11 SELECT * FROM graph WHERE latch='dijkstras' AND destid=12; latch origid destid weight seq linkid -dijkstras NULL 12 2 3 11 -dijkstras NULL 12 1 2 10 +dijkstras NULL 12 2 3 10 +dijkstras NULL 12 1 2 11 dijkstras NULL 12 0 1 12 # legacy string number SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=1; @@ -1308,16 +1308,16 @@ latch origid destid weight seq linkid 1 NULL 4 0 1 4 SELECT * FROM graph WHERE latch='1' AND destid=5; latch origid destid weight seq linkid -1 NULL 5 1 3 7 1 NULL 5 1 2 6 1 NULL 5 0 1 5 SELECT * FROM graph WHERE latch='1' AND destid=6; latch origid destid weight seq linkid -1 NULL 6 2 3 7 1 NULL 6 1 2 5 1 NULL 6 0 1 6 SELECT * FROM graph WHERE latch='1' AND destid=7; latch origid destid weight seq linkid +1 NULL 7 2 3 6 +1 NULL 7 1 2 5 1 NULL 7 0 1 7 SELECT * FROM graph WHERE latch='1' AND destid=8; latch origid destid weight seq linkid @@ -1326,18 +1326,18 @@ latch origid destid weight seq linkid 1 NULL 9 0 1 9 SELECT * FROM graph WHERE latch='1' AND destid=10; latch origid destid weight seq linkid -1 NULL 10 2 3 12 -1 NULL 10 1 2 11 +1 NULL 10 2 3 11 +1 NULL 10 1 2 12 1 NULL 10 0 1 10 SELECT * FROM graph WHERE latch='1' AND destid=11; latch origid destid weight seq linkid -1 NULL 11 2 3 10 -1 NULL 11 1 2 12 +1 NULL 11 2 3 12 +1 NULL 11 1 2 10 1 NULL 11 0 1 11 SELECT * FROM graph WHERE latch='1' AND destid=12; latch origid destid weight seq linkid -1 NULL 12 2 3 11 -1 NULL 12 1 2 10 +1 NULL 12 2 3 10 +1 NULL 12 1 2 11 1 NULL 12 0 1 12 INSERT INTO graph_base(from_id, to_id) VALUES (11,13); INSERT INTO graph_base(from_id, to_id) VALUES (10,14); @@ -1404,9 +1404,6 @@ dijkstras 1 NULL 1 2 2 dijkstras 1 NULL 0 1 1 SELECT * FROM graph WHERE latch='dijkstras' AND destid=1; latch origid destid weight seq linkid -dijkstras NULL 1 4 7 18 -dijkstras NULL 1 3 6 17 -dijkstras NULL 1 3 5 16 dijkstras NULL 1 2 4 4 dijkstras NULL 1 1 3 3 dijkstras NULL 1 1 2 2 diff --git a/storage/oqgraph/mysql-test/oqgraph/general-MyISAM.result b/storage/oqgraph/mysql-test/oqgraph/general-MyISAM.result index c08e0c295d2..c02145fd2d4 100644 --- a/storage/oqgraph/mysql-test/oqgraph/general-MyISAM.result +++ b/storage/oqgraph/mysql-test/oqgraph/general-MyISAM.result @@ -464,16 +464,16 @@ breadth_first NULL 4 1 2 3 breadth_first NULL 4 0 1 4 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 breadth_first NULL 5 0 1 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 breadth_first NULL 6 1 2 5 breadth_first NULL 6 0 1 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 +breadth_first NULL 7 1 2 5 breadth_first NULL 7 0 1 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8; latch origid destid weight seq linkid @@ -482,18 +482,18 @@ latch origid destid weight seq linkid breadth_first NULL 9 0 1 9 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 2 3 11 +breadth_first NULL 10 1 2 12 breadth_first NULL 10 0 1 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 2 3 12 +breadth_first NULL 11 1 2 10 breadth_first NULL 11 0 1 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 2 3 10 +breadth_first NULL 12 1 2 11 breadth_first NULL 12 0 1 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -511,26 +511,26 @@ latch origid destid weight seq linkid breadth_first NULL 4 1 2 3 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 1; latch origid destid weight seq linkid breadth_first NULL 6 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +breadth_first NULL 7 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 1 2 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 1 2 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 1 2 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 2; latch origid destid weight seq linkid breadth_first NULL 1 2 4 4 @@ -547,22 +547,22 @@ SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 +breadth_first NULL 10 2 3 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 +breadth_first NULL 11 2 3 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 +breadth_first NULL 12 2 3 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 3; @@ -856,16 +856,16 @@ latch origid destid weight seq linkid 2 NULL 4 0 1 4 SELECT * FROM graph WHERE latch = '2' AND destid = 5; latch origid destid weight seq linkid -2 NULL 5 1 3 7 2 NULL 5 1 2 6 2 NULL 5 0 1 5 SELECT * FROM graph WHERE latch = '2' AND destid = 6; latch origid destid weight seq linkid -2 NULL 6 2 3 7 2 NULL 6 1 2 5 2 NULL 6 0 1 6 SELECT * FROM graph WHERE latch = '2' AND destid = 7; latch origid destid weight seq linkid +2 NULL 7 2 3 6 +2 NULL 7 1 2 5 2 NULL 7 0 1 7 SELECT * FROM graph WHERE latch = '2' AND destid = 8; latch origid destid weight seq linkid @@ -874,18 +874,18 @@ latch origid destid weight seq linkid 2 NULL 9 0 1 9 SELECT * FROM graph WHERE latch = '2' AND destid = 10; latch origid destid weight seq linkid -2 NULL 10 2 3 12 -2 NULL 10 1 2 11 +2 NULL 10 2 3 11 +2 NULL 10 1 2 12 2 NULL 10 0 1 10 SELECT * FROM graph WHERE latch = '2' AND destid = 11; latch origid destid weight seq linkid -2 NULL 11 2 3 10 -2 NULL 11 1 2 12 +2 NULL 11 2 3 12 +2 NULL 11 1 2 10 2 NULL 11 0 1 11 SELECT * FROM graph WHERE latch = '2' AND destid = 12; latch origid destid weight seq linkid -2 NULL 12 2 3 11 -2 NULL 12 1 2 10 +2 NULL 12 2 3 10 +2 NULL 12 1 2 11 2 NULL 12 0 1 12 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -903,26 +903,26 @@ latch origid destid weight seq linkid 2 NULL 4 1 2 3 SELECT * FROM graph WHERE latch = '2' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -2 NULL 5 1 3 7 2 NULL 5 1 2 6 SELECT * FROM graph WHERE latch = '2' AND destid = 6 and weight = 1; latch origid destid weight seq linkid 2 NULL 6 1 2 5 SELECT * FROM graph WHERE latch = '2' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +2 NULL 7 1 2 5 SELECT * FROM graph WHERE latch = '2' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -2 NULL 10 1 2 11 +2 NULL 10 1 2 12 SELECT * FROM graph WHERE latch = '2' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -2 NULL 11 1 2 12 +2 NULL 11 1 2 10 SELECT * FROM graph WHERE latch = '2' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -2 NULL 12 1 2 10 +2 NULL 12 1 2 11 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 2; latch origid destid weight seq linkid 2 NULL 1 2 4 4 @@ -939,22 +939,22 @@ SELECT * FROM graph WHERE latch = '2' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -2 NULL 6 2 3 7 SELECT * FROM graph WHERE latch = '2' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +2 NULL 7 2 3 6 SELECT * FROM graph WHERE latch = '2' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -2 NULL 10 2 3 12 +2 NULL 10 2 3 11 SELECT * FROM graph WHERE latch = '2' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -2 NULL 11 2 3 10 +2 NULL 11 2 3 12 SELECT * FROM graph WHERE latch = '2' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -2 NULL 12 2 3 11 +2 NULL 12 2 3 10 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 2 and weight = 3; @@ -1133,16 +1133,16 @@ dijkstras NULL 4 1 2 3 dijkstras NULL 4 0 1 4 SELECT * FROM graph WHERE latch='dijkstras' AND destid=5; latch origid destid weight seq linkid -dijkstras NULL 5 1 3 7 dijkstras NULL 5 1 2 6 dijkstras NULL 5 0 1 5 SELECT * FROM graph WHERE latch='dijkstras' AND destid=6; latch origid destid weight seq linkid -dijkstras NULL 6 2 3 7 dijkstras NULL 6 1 2 5 dijkstras NULL 6 0 1 6 SELECT * FROM graph WHERE latch='dijkstras' AND destid=7; latch origid destid weight seq linkid +dijkstras NULL 7 2 3 6 +dijkstras NULL 7 1 2 5 dijkstras NULL 7 0 1 7 SELECT * FROM graph WHERE latch='dijkstras' AND destid=8; latch origid destid weight seq linkid @@ -1151,18 +1151,18 @@ latch origid destid weight seq linkid dijkstras NULL 9 0 1 9 SELECT * FROM graph WHERE latch='dijkstras' AND destid=10; latch origid destid weight seq linkid -dijkstras NULL 10 2 3 12 -dijkstras NULL 10 1 2 11 +dijkstras NULL 10 2 3 11 +dijkstras NULL 10 1 2 12 dijkstras NULL 10 0 1 10 SELECT * FROM graph WHERE latch='dijkstras' AND destid=11; latch origid destid weight seq linkid -dijkstras NULL 11 2 3 10 -dijkstras NULL 11 1 2 12 +dijkstras NULL 11 2 3 12 +dijkstras NULL 11 1 2 10 dijkstras NULL 11 0 1 11 SELECT * FROM graph WHERE latch='dijkstras' AND destid=12; latch origid destid weight seq linkid -dijkstras NULL 12 2 3 11 -dijkstras NULL 12 1 2 10 +dijkstras NULL 12 2 3 10 +dijkstras NULL 12 1 2 11 dijkstras NULL 12 0 1 12 # legacy string number SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=1; @@ -1308,16 +1308,16 @@ latch origid destid weight seq linkid 1 NULL 4 0 1 4 SELECT * FROM graph WHERE latch='1' AND destid=5; latch origid destid weight seq linkid -1 NULL 5 1 3 7 1 NULL 5 1 2 6 1 NULL 5 0 1 5 SELECT * FROM graph WHERE latch='1' AND destid=6; latch origid destid weight seq linkid -1 NULL 6 2 3 7 1 NULL 6 1 2 5 1 NULL 6 0 1 6 SELECT * FROM graph WHERE latch='1' AND destid=7; latch origid destid weight seq linkid +1 NULL 7 2 3 6 +1 NULL 7 1 2 5 1 NULL 7 0 1 7 SELECT * FROM graph WHERE latch='1' AND destid=8; latch origid destid weight seq linkid @@ -1326,18 +1326,18 @@ latch origid destid weight seq linkid 1 NULL 9 0 1 9 SELECT * FROM graph WHERE latch='1' AND destid=10; latch origid destid weight seq linkid -1 NULL 10 2 3 12 -1 NULL 10 1 2 11 +1 NULL 10 2 3 11 +1 NULL 10 1 2 12 1 NULL 10 0 1 10 SELECT * FROM graph WHERE latch='1' AND destid=11; latch origid destid weight seq linkid -1 NULL 11 2 3 10 -1 NULL 11 1 2 12 +1 NULL 11 2 3 12 +1 NULL 11 1 2 10 1 NULL 11 0 1 11 SELECT * FROM graph WHERE latch='1' AND destid=12; latch origid destid weight seq linkid -1 NULL 12 2 3 11 -1 NULL 12 1 2 10 +1 NULL 12 2 3 10 +1 NULL 12 1 2 11 1 NULL 12 0 1 12 INSERT INTO graph_base(from_id, to_id) VALUES (11,13); INSERT INTO graph_base(from_id, to_id) VALUES (10,14); @@ -1404,9 +1404,6 @@ dijkstras 1 NULL 1 2 2 dijkstras 1 NULL 0 1 1 SELECT * FROM graph WHERE latch='dijkstras' AND destid=1; latch origid destid weight seq linkid -dijkstras NULL 1 4 7 18 -dijkstras NULL 1 3 6 17 -dijkstras NULL 1 3 5 16 dijkstras NULL 1 2 4 4 dijkstras NULL 1 1 3 3 dijkstras NULL 1 1 2 2 diff --git a/storage/oqgraph/mysql-test/oqgraph/general-innodb.result b/storage/oqgraph/mysql-test/oqgraph/general-innodb.result index cf9c83144b8..254cda31049 100644 --- a/storage/oqgraph/mysql-test/oqgraph/general-innodb.result +++ b/storage/oqgraph/mysql-test/oqgraph/general-innodb.result @@ -464,16 +464,16 @@ breadth_first NULL 4 1 2 3 breadth_first NULL 4 0 1 4 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 breadth_first NULL 5 0 1 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 breadth_first NULL 6 1 2 5 breadth_first NULL 6 0 1 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 +breadth_first NULL 7 1 2 5 breadth_first NULL 7 0 1 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8; latch origid destid weight seq linkid @@ -482,18 +482,18 @@ latch origid destid weight seq linkid breadth_first NULL 9 0 1 9 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 2 3 11 +breadth_first NULL 10 1 2 12 breadth_first NULL 10 0 1 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 2 3 12 +breadth_first NULL 11 1 2 10 breadth_first NULL 11 0 1 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 2 3 10 +breadth_first NULL 12 1 2 11 breadth_first NULL 12 0 1 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -511,26 +511,26 @@ latch origid destid weight seq linkid breadth_first NULL 4 1 2 3 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 1; latch origid destid weight seq linkid breadth_first NULL 6 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +breadth_first NULL 7 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 1 2 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 1 2 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 1 2 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 2; latch origid destid weight seq linkid breadth_first NULL 1 2 4 4 @@ -547,22 +547,22 @@ SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 +breadth_first NULL 10 2 3 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 +breadth_first NULL 11 2 3 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 +breadth_first NULL 12 2 3 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 3; @@ -856,16 +856,16 @@ latch origid destid weight seq linkid 2 NULL 4 0 1 4 SELECT * FROM graph WHERE latch = '2' AND destid = 5; latch origid destid weight seq linkid -2 NULL 5 1 3 7 2 NULL 5 1 2 6 2 NULL 5 0 1 5 SELECT * FROM graph WHERE latch = '2' AND destid = 6; latch origid destid weight seq linkid -2 NULL 6 2 3 7 2 NULL 6 1 2 5 2 NULL 6 0 1 6 SELECT * FROM graph WHERE latch = '2' AND destid = 7; latch origid destid weight seq linkid +2 NULL 7 2 3 6 +2 NULL 7 1 2 5 2 NULL 7 0 1 7 SELECT * FROM graph WHERE latch = '2' AND destid = 8; latch origid destid weight seq linkid @@ -874,18 +874,18 @@ latch origid destid weight seq linkid 2 NULL 9 0 1 9 SELECT * FROM graph WHERE latch = '2' AND destid = 10; latch origid destid weight seq linkid -2 NULL 10 2 3 12 -2 NULL 10 1 2 11 +2 NULL 10 2 3 11 +2 NULL 10 1 2 12 2 NULL 10 0 1 10 SELECT * FROM graph WHERE latch = '2' AND destid = 11; latch origid destid weight seq linkid -2 NULL 11 2 3 10 -2 NULL 11 1 2 12 +2 NULL 11 2 3 12 +2 NULL 11 1 2 10 2 NULL 11 0 1 11 SELECT * FROM graph WHERE latch = '2' AND destid = 12; latch origid destid weight seq linkid -2 NULL 12 2 3 11 -2 NULL 12 1 2 10 +2 NULL 12 2 3 10 +2 NULL 12 1 2 11 2 NULL 12 0 1 12 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -903,26 +903,26 @@ latch origid destid weight seq linkid 2 NULL 4 1 2 3 SELECT * FROM graph WHERE latch = '2' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -2 NULL 5 1 3 7 2 NULL 5 1 2 6 SELECT * FROM graph WHERE latch = '2' AND destid = 6 and weight = 1; latch origid destid weight seq linkid 2 NULL 6 1 2 5 SELECT * FROM graph WHERE latch = '2' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +2 NULL 7 1 2 5 SELECT * FROM graph WHERE latch = '2' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -2 NULL 10 1 2 11 +2 NULL 10 1 2 12 SELECT * FROM graph WHERE latch = '2' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -2 NULL 11 1 2 12 +2 NULL 11 1 2 10 SELECT * FROM graph WHERE latch = '2' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -2 NULL 12 1 2 10 +2 NULL 12 1 2 11 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 2; latch origid destid weight seq linkid 2 NULL 1 2 4 4 @@ -939,22 +939,22 @@ SELECT * FROM graph WHERE latch = '2' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -2 NULL 6 2 3 7 SELECT * FROM graph WHERE latch = '2' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +2 NULL 7 2 3 6 SELECT * FROM graph WHERE latch = '2' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -2 NULL 10 2 3 12 +2 NULL 10 2 3 11 SELECT * FROM graph WHERE latch = '2' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -2 NULL 11 2 3 10 +2 NULL 11 2 3 12 SELECT * FROM graph WHERE latch = '2' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -2 NULL 12 2 3 11 +2 NULL 12 2 3 10 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = '2' AND destid = 2 and weight = 3; @@ -1133,16 +1133,16 @@ dijkstras NULL 4 1 2 3 dijkstras NULL 4 0 1 4 SELECT * FROM graph WHERE latch='dijkstras' AND destid=5; latch origid destid weight seq linkid -dijkstras NULL 5 1 3 7 dijkstras NULL 5 1 2 6 dijkstras NULL 5 0 1 5 SELECT * FROM graph WHERE latch='dijkstras' AND destid=6; latch origid destid weight seq linkid -dijkstras NULL 6 2 3 7 dijkstras NULL 6 1 2 5 dijkstras NULL 6 0 1 6 SELECT * FROM graph WHERE latch='dijkstras' AND destid=7; latch origid destid weight seq linkid +dijkstras NULL 7 2 3 6 +dijkstras NULL 7 1 2 5 dijkstras NULL 7 0 1 7 SELECT * FROM graph WHERE latch='dijkstras' AND destid=8; latch origid destid weight seq linkid @@ -1151,18 +1151,18 @@ latch origid destid weight seq linkid dijkstras NULL 9 0 1 9 SELECT * FROM graph WHERE latch='dijkstras' AND destid=10; latch origid destid weight seq linkid -dijkstras NULL 10 2 3 12 -dijkstras NULL 10 1 2 11 +dijkstras NULL 10 2 3 11 +dijkstras NULL 10 1 2 12 dijkstras NULL 10 0 1 10 SELECT * FROM graph WHERE latch='dijkstras' AND destid=11; latch origid destid weight seq linkid -dijkstras NULL 11 2 3 10 -dijkstras NULL 11 1 2 12 +dijkstras NULL 11 2 3 12 +dijkstras NULL 11 1 2 10 dijkstras NULL 11 0 1 11 SELECT * FROM graph WHERE latch='dijkstras' AND destid=12; latch origid destid weight seq linkid -dijkstras NULL 12 2 3 11 -dijkstras NULL 12 1 2 10 +dijkstras NULL 12 2 3 10 +dijkstras NULL 12 1 2 11 dijkstras NULL 12 0 1 12 # legacy string number SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=1; @@ -1308,16 +1308,16 @@ latch origid destid weight seq linkid 1 NULL 4 0 1 4 SELECT * FROM graph WHERE latch='1' AND destid=5; latch origid destid weight seq linkid -1 NULL 5 1 3 7 1 NULL 5 1 2 6 1 NULL 5 0 1 5 SELECT * FROM graph WHERE latch='1' AND destid=6; latch origid destid weight seq linkid -1 NULL 6 2 3 7 1 NULL 6 1 2 5 1 NULL 6 0 1 6 SELECT * FROM graph WHERE latch='1' AND destid=7; latch origid destid weight seq linkid +1 NULL 7 2 3 6 +1 NULL 7 1 2 5 1 NULL 7 0 1 7 SELECT * FROM graph WHERE latch='1' AND destid=8; latch origid destid weight seq linkid @@ -1326,18 +1326,18 @@ latch origid destid weight seq linkid 1 NULL 9 0 1 9 SELECT * FROM graph WHERE latch='1' AND destid=10; latch origid destid weight seq linkid -1 NULL 10 2 3 12 -1 NULL 10 1 2 11 +1 NULL 10 2 3 11 +1 NULL 10 1 2 12 1 NULL 10 0 1 10 SELECT * FROM graph WHERE latch='1' AND destid=11; latch origid destid weight seq linkid -1 NULL 11 2 3 10 -1 NULL 11 1 2 12 +1 NULL 11 2 3 12 +1 NULL 11 1 2 10 1 NULL 11 0 1 11 SELECT * FROM graph WHERE latch='1' AND destid=12; latch origid destid weight seq linkid -1 NULL 12 2 3 11 -1 NULL 12 1 2 10 +1 NULL 12 2 3 10 +1 NULL 12 1 2 11 1 NULL 12 0 1 12 INSERT INTO graph_base(from_id, to_id) VALUES (11,13); INSERT INTO graph_base(from_id, to_id) VALUES (10,14); @@ -1404,9 +1404,6 @@ dijkstras 1 NULL 1 2 2 dijkstras 1 NULL 0 1 1 SELECT * FROM graph WHERE latch='dijkstras' AND destid=1; latch origid destid weight seq linkid -dijkstras NULL 1 4 7 18 -dijkstras NULL 1 3 6 17 -dijkstras NULL 1 3 5 16 dijkstras NULL 1 2 4 4 dijkstras NULL 1 1 3 3 dijkstras NULL 1 1 2 2 diff --git a/storage/oqgraph/mysql-test/oqgraph/regression_1196036.result b/storage/oqgraph/mysql-test/oqgraph/regression_1196036.result index 45bbccfa87e..c372a0c088f 100644 --- a/storage/oqgraph/mysql-test/oqgraph/regression_1196036.result +++ b/storage/oqgraph/mysql-test/oqgraph/regression_1196036.result @@ -41,19 +41,19 @@ dijkstras 3 NULL 256 2 2 dijkstras 3 NULL 0 1 3 SELECT * FROM graph WHERE latch = 'dijkstras' AND destid = 1; latch origid destid weight seq linkid -dijkstras NULL 1 784 4 4 +dijkstras NULL 1 65808 4 4 dijkstras NULL 1 272 3 3 dijkstras NULL 1 16 2 2 dijkstras NULL 1 0 1 1 SELECT * FROM graph WHERE latch = 'dijkstras' AND destid = 2; latch origid destid weight seq linkid -dijkstras NULL 2 768 4 4 +dijkstras NULL 2 65792 4 4 dijkstras NULL 2 256 3 3 dijkstras NULL 2 16 2 1 dijkstras NULL 2 0 1 2 SELECT * FROM graph WHERE latch = 'dijkstras' AND destid = 3; latch origid destid weight seq linkid -dijkstras NULL 3 1024 4 4 +dijkstras NULL 3 65536 4 4 dijkstras NULL 3 272 3 1 dijkstras NULL 3 256 2 2 dijkstras NULL 3 0 1 3 diff --git a/storage/oqgraph/mysql-test/oqgraph/regression_1213120.result b/storage/oqgraph/mysql-test/oqgraph/regression_1213120.result index b6cd53ab673..642c0aa3b5d 100644 --- a/storage/oqgraph/mysql-test/oqgraph/regression_1213120.result +++ b/storage/oqgraph/mysql-test/oqgraph/regression_1213120.result @@ -464,16 +464,16 @@ breadth_first NULL 4 1 2 3 breadth_first NULL 4 0 1 4 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 breadth_first NULL 5 0 1 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 breadth_first NULL 6 1 2 5 breadth_first NULL 6 0 1 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 +breadth_first NULL 7 1 2 5 breadth_first NULL 7 0 1 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8; latch origid destid weight seq linkid @@ -482,18 +482,18 @@ latch origid destid weight seq linkid breadth_first NULL 9 0 1 9 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 2 3 11 +breadth_first NULL 10 1 2 12 breadth_first NULL 10 0 1 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 2 3 12 +breadth_first NULL 11 1 2 10 breadth_first NULL 11 0 1 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 2 3 10 +breadth_first NULL 12 1 2 11 breadth_first NULL 12 0 1 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -511,26 +511,26 @@ latch origid destid weight seq linkid breadth_first NULL 4 1 2 3 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 5 1 3 7 breadth_first NULL 5 1 2 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 1; latch origid destid weight seq linkid breadth_first NULL 6 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 1; latch origid destid weight seq linkid +breadth_first NULL 7 1 2 5 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 1; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 10 1 2 11 +breadth_first NULL 10 1 2 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 11 1 2 12 +breadth_first NULL 11 1 2 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 1; latch origid destid weight seq linkid -breadth_first NULL 12 1 2 10 +breadth_first NULL 12 1 2 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 2; latch origid destid weight seq linkid breadth_first NULL 1 2 4 4 @@ -547,22 +547,22 @@ SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 6 2 3 7 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 2; latch origid destid weight seq linkid +breadth_first NULL 7 2 3 6 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 2; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 10 2 3 12 +breadth_first NULL 10 2 3 11 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 11 2 3 10 +breadth_first NULL 11 2 3 12 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 2; latch origid destid weight seq linkid -breadth_first NULL 12 2 3 11 +breadth_first NULL 12 2 3 10 SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 3; latch origid destid weight seq linkid SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 3; @@ -838,8 +838,8 @@ latch origid destid weight seq linkid 2 NULL 1 0 1 1 SELECT * FROM graph WHERE latch = '2' AND destid = 12; latch origid destid weight seq linkid -2 NULL 12 2 3 11 -2 NULL 12 1 2 10 +2 NULL 12 2 3 10 +2 NULL 12 1 2 11 2 NULL 12 0 1 12 SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 1; latch origid destid weight seq linkid @@ -997,16 +997,16 @@ dijkstras NULL 4 1 2 3 dijkstras NULL 4 0 1 4 SELECT * FROM graph WHERE latch='dijkstras' AND destid=5; latch origid destid weight seq linkid -dijkstras NULL 5 1 3 7 dijkstras NULL 5 1 2 6 dijkstras NULL 5 0 1 5 SELECT * FROM graph WHERE latch='dijkstras' AND destid=6; latch origid destid weight seq linkid -dijkstras NULL 6 2 3 7 dijkstras NULL 6 1 2 5 dijkstras NULL 6 0 1 6 SELECT * FROM graph WHERE latch='dijkstras' AND destid=7; latch origid destid weight seq linkid +dijkstras NULL 7 2 3 6 +dijkstras NULL 7 1 2 5 dijkstras NULL 7 0 1 7 SELECT * FROM graph WHERE latch='dijkstras' AND destid=8; latch origid destid weight seq linkid @@ -1015,18 +1015,18 @@ latch origid destid weight seq linkid dijkstras NULL 9 0 1 9 SELECT * FROM graph WHERE latch='dijkstras' AND destid=10; latch origid destid weight seq linkid -dijkstras NULL 10 2 3 12 -dijkstras NULL 10 1 2 11 +dijkstras NULL 10 2 3 11 +dijkstras NULL 10 1 2 12 dijkstras NULL 10 0 1 10 SELECT * FROM graph WHERE latch='dijkstras' AND destid=11; latch origid destid weight seq linkid -dijkstras NULL 11 2 3 10 -dijkstras NULL 11 1 2 12 +dijkstras NULL 11 2 3 12 +dijkstras NULL 11 1 2 10 dijkstras NULL 11 0 1 11 SELECT * FROM graph WHERE latch='dijkstras' AND destid=12; latch origid destid weight seq linkid -dijkstras NULL 12 2 3 11 -dijkstras NULL 12 1 2 10 +dijkstras NULL 12 2 3 10 +dijkstras NULL 12 1 2 11 dijkstras NULL 12 0 1 12 # legacy string number SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=1; @@ -1172,16 +1172,16 @@ latch origid destid weight seq linkid 1 NULL 4 0 1 4 SELECT * FROM graph WHERE latch='1' AND destid=5; latch origid destid weight seq linkid -1 NULL 5 1 3 7 1 NULL 5 1 2 6 1 NULL 5 0 1 5 SELECT * FROM graph WHERE latch='1' AND destid=6; latch origid destid weight seq linkid -1 NULL 6 2 3 7 1 NULL 6 1 2 5 1 NULL 6 0 1 6 SELECT * FROM graph WHERE latch='1' AND destid=7; latch origid destid weight seq linkid +1 NULL 7 2 3 6 +1 NULL 7 1 2 5 1 NULL 7 0 1 7 SELECT * FROM graph WHERE latch='1' AND destid=8; latch origid destid weight seq linkid @@ -1190,18 +1190,18 @@ latch origid destid weight seq linkid 1 NULL 9 0 1 9 SELECT * FROM graph WHERE latch='1' AND destid=10; latch origid destid weight seq linkid -1 NULL 10 2 3 12 -1 NULL 10 1 2 11 +1 NULL 10 2 3 11 +1 NULL 10 1 2 12 1 NULL 10 0 1 10 SELECT * FROM graph WHERE latch='1' AND destid=11; latch origid destid weight seq linkid -1 NULL 11 2 3 10 -1 NULL 11 1 2 12 +1 NULL 11 2 3 12 +1 NULL 11 1 2 10 1 NULL 11 0 1 11 SELECT * FROM graph WHERE latch='1' AND destid=12; latch origid destid weight seq linkid -1 NULL 12 2 3 11 -1 NULL 12 1 2 10 +1 NULL 12 2 3 10 +1 NULL 12 1 2 11 1 NULL 12 0 1 12 SELECT count(*) FROM graph; count(*) @@ -1280,9 +1280,6 @@ dijkstras 1 NULL 1 2 2 dijkstras 1 NULL 0 1 1 SELECT * FROM graph WHERE latch='dijkstras' AND destid=1; latch origid destid weight seq linkid -dijkstras NULL 1 4 7 18 -dijkstras NULL 1 3 6 17 -dijkstras NULL 1 3 5 16 dijkstras NULL 1 2 4 4 dijkstras NULL 1 1 3 3 dijkstras NULL 1 1 2 2 diff --git a/storage/oqgraph/oqgraph_shim.h b/storage/oqgraph/oqgraph_shim.h index 004d7f0f7c5..c3e5ee6a832 100644 --- a/storage/oqgraph/oqgraph_shim.h +++ b/storage/oqgraph/oqgraph_shim.h @@ -154,12 +154,12 @@ namespace oqgraph3 typedef std::input_iterator_tag iterator_category; in_edge_iterator() { } in_edge_iterator(const cursor_ptr& cursor) : _cursor(cursor) { } - value_type operator*() { return value_type(_cursor); } + value_type operator*() const { return value_type(_cursor); } self& operator++() { _cursor->seek_next(); return *this; } self operator++(int) { cursor_ptr t(new cursor(*_cursor)); ++(*this); return in_edge_iterator(t); } - bool operator==(const self& x) { return _cursor == x._cursor; } - bool operator!=(const self& x) { return _cursor != x._cursor; } + bool operator==(const self& x) const { return _cursor == x._cursor; } + bool operator!=(const self& x) const { return _cursor != x._cursor; } cursor_ptr _cursor; }; From 440157cbbe796b6b9a44a3de46bbb93d0cb5a77c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 5 Oct 2017 15:01:38 +0200 Subject: [PATCH 029/128] MDEV-13412 main.func_regexp_pcre fails in buildbot on ppc64le Caused by 2fcd8c12522. It used the documented pcre API -pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0) to calculate the pcre stack frame size. Unfortunately, modern compilers broke it by cloning and inlining pcre match() function. 2fcd8c12522 tried to workaround it by setting the stack frame size to at least 500. It didn't work, 500 is not a universal constant. Now we fix our copy of pcre to not inline or clone match() - so that stack frame detection would work again - and detect at cmake time whether system pcre is broken or usable. Also use stack, not (much slower) malloc in bundled pcre, unless on Windows --- cmake/pcre.cmake | 16 ++++++++++++++-- mysql-test/r/func_regexp_pcre.result | 18 +++++++++--------- mysql-test/t/func_regexp_pcre.test | 8 ++++---- pcre/CMakeLists.txt | 6 +++--- pcre/pcre_exec.c | 6 ++++++ 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/cmake/pcre.cmake b/cmake/pcre.cmake index 894bde38974..4c113929866 100644 --- a/cmake/pcre.cmake +++ b/cmake/pcre.cmake @@ -1,11 +1,23 @@ +INCLUDE (CheckCSourceRuns) + SET(WITH_PCRE "auto" CACHE STRING "Which pcre to use (possible values are 'bundled', 'system', or 'auto')") MACRO (CHECK_PCRE) IF(WITH_PCRE STREQUAL "system" OR WITH_PCRE STREQUAL "auto") - CHECK_LIBRARY_EXISTS(pcre pcre_stack_guard "" HAVE_PCRE) + CHECK_LIBRARY_EXISTS(pcre pcre_stack_guard "" HAVE_PCRE_STACK_GUARD) + IF(NOT CMAKE_CROSSCOMPILING) + SET(CMAKE_REQUIRED_LIBRARIES "pcre") + CHECK_C_SOURCE_RUNS(" + #include + int main() { + return -pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0) < 256; + }" PCRE_STACK_SIZE_OK) + SET(CMAKE_REQUIRED_LIBRARIES) + ENDIF() ENDIF() - IF(NOT HAVE_PCRE OR WITH_PCRE STREQUAL "bundled") + IF(NOT HAVE_PCRE_STACK_GUARD OR NOT PCRE_STACK_SIZE_OK OR + WITH_PCRE STREQUAL "bundled") IF (WITH_PCRE STREQUAL "system") MESSAGE(FATAL_ERROR "system pcre is not found or unusable") ENDIF() diff --git a/mysql-test/r/func_regexp_pcre.result b/mysql-test/r/func_regexp_pcre.result index 4089966a7d7..43ea5c23b63 100644 --- a/mysql-test/r/func_regexp_pcre.result +++ b/mysql-test/r/func_regexp_pcre.result @@ -879,32 +879,32 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral, 1 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT CONCAT(REPEAT('100,',400),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; -CONCAT(REPEAT('100,',400),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$' +SELECT CONCAT(REPEAT('100,',250),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; +CONCAT(REPEAT('100,',250),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$' 1 SELECT CONCAT(REPEAT('100,',600),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; CONCAT(REPEAT('100,',600),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$' 0 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',400),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); -REGEXP_INSTR(CONCAT(REPEAT('100,',400),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$') +SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',250),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); +REGEXP_INSTR(CONCAT(REPEAT('100,',250),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$') 1 SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',600),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); REGEXP_INSTR(CONCAT(REPEAT('100,',600),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$') 0 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',400/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); -LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',400/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')) -535 +SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); +LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')) +335 SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')) 0 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',400/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); -LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',400/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')) +SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); +LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')) 0 SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')) diff --git a/mysql-test/t/func_regexp_pcre.test b/mysql-test/t/func_regexp_pcre.test index 07de4b33271..377ee1a3f02 100644 --- a/mysql-test/t/func_regexp_pcre.test +++ b/mysql-test/t/func_regexp_pcre.test @@ -434,18 +434,18 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral, # # MDEV-13173 An RLIKE that previously worked on 10.0 now returns "Got error 'pcre_exec: recursion limit of 100 exceeded' from regexp" # -SELECT CONCAT(REPEAT('100,',400),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; +SELECT CONCAT(REPEAT('100,',250),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT CONCAT(REPEAT('100,',600),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; -SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',400),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); +SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',250),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',600),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); -SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',400/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); +SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); -SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',400/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); +SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); diff --git a/pcre/CMakeLists.txt b/pcre/CMakeLists.txt index 30b06a46fef..31d4358f14d 100644 --- a/pcre/CMakeLists.txt +++ b/pcre/CMakeLists.txt @@ -128,9 +128,9 @@ SET(PCREGREP_BUFSIZE "20480" CACHE STRING SET(PCRE_NEWLINE "LF" CACHE STRING "What to recognize as a newline (one of CR, LF, CRLF, ANY, ANYCRLF).") -# MARIADB: Changed the default from OFF to ON as pcre_test.bat on Windows -# MARIADB: fails complaining about too small stack size on Windows. -SET(PCRE_NO_RECURSE ON CACHE BOOL +# Windows has much smaller stack (pcre recursion limit of 112, vs +# 250-500 on Linuxes) +SET(PCRE_NO_RECURSE "${WIN32}" CACHE BOOL "If ON, then don't use stack recursion when matching. See NO_RECURSE in config.h.in for details.") SET(PCRE_POSIX_MALLOC_THRESHOLD "10" CACHE STRING diff --git a/pcre/pcre_exec.c b/pcre/pcre_exec.c index 70ac2fea381..fa84d924a4c 100644 --- a/pcre/pcre_exec.c +++ b/pcre/pcre_exec.c @@ -509,6 +509,12 @@ Returns: MATCH_MATCH if matched ) these values are >= 0 (e.g. stopped by repeated call or recursion limit) */ +#ifdef __GNUC__ +static int +match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode, + PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, + unsigned int rdepth) __attribute__((noinline,noclone)); +#endif static int match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode, PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, From 559dec33cce631971a889b77cc570b55ff07370d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 6 Oct 2017 19:38:56 +0200 Subject: [PATCH 030/128] cleanup: is_show_command(thd) --- sql/sql_show.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 1fdab201158..666f76093aa 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -126,6 +126,12 @@ bool get_lookup_field_values(THD *, COND *, TABLE_LIST *, LOOKUP_FIELD_VALUES *) ** List all table types supported ***************************************************************************/ + +static bool is_show_command(THD *thd) +{ + return sql_command_flags[thd->lex->sql_command] & CF_STATUS_COMMAND; +} + static int make_version_string(char *buf, int buf_length, uint version) { return my_snprintf(buf, buf_length, "%d.%d", version>>8,version&0xff); @@ -4065,7 +4071,7 @@ make_table_name_list(THD *thd, Dynamic_array *table_names, */ if (res == FIND_FILES_DIR) { - if (sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND) + if (is_show_command(thd)) return 1; thd->clear_error(); return 2; @@ -5885,13 +5891,13 @@ bool store_schema_proc(THD *thd, TABLE *table, TABLE *proc_table, val_int() == TYPE_ENUM_PROCEDURE)) return 0; - if ((lex->sql_command == SQLCOM_SHOW_STATUS_PROC && + if (!is_show_command(thd) || + (lex->sql_command == SQLCOM_SHOW_STATUS_PROC && proc_table->field[MYSQL_PROC_MYSQL_TYPE]->val_int() == TYPE_ENUM_PROCEDURE) || (lex->sql_command == SQLCOM_SHOW_STATUS_FUNC && proc_table->field[MYSQL_PROC_MYSQL_TYPE]->val_int() == - TYPE_ENUM_FUNCTION) || - (sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND) == 0) + TYPE_ENUM_FUNCTION)) { restore_record(table, s->default_values); if (!wild || !wild[0] || !wild_case_compare(system_charset_info, @@ -7640,7 +7646,7 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list) tmp_table_param->field_count= field_count; tmp_table_param->schema_table= 1; SELECT_LEX *select_lex= thd->lex->current_select; - bool keep_row_order= sql_command_flags[thd->lex->sql_command] & CF_STATUS_COMMAND; + bool keep_row_order= is_show_command(thd); if (!(table= create_tmp_table(thd, tmp_table_param, field_list, (ORDER*) 0, 0, 0, (select_lex->options | thd->variables.option_bits | From 9b11956e86d930a3c90b890b2d353f3c19e9d89c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 6 Oct 2017 18:16:46 +0200 Subject: [PATCH 031/128] MDEV-13049 Querying INFORMATION_SCHEMA becomes slow in MariaDB 10.1 Optimizations: * avoid faster ext_table_discovery_simple() *only* when there are engines with discover_table_names() method *and* they look at file names. P_S implements discover_table_names(), but it's not a reason to use slower extension_based_table_discovery(). * don't pre-sort table names if ORDER BY or GROUP BY was specified * starting from 10.3 only sort table names for SHOW commands --- sql/handler.cc | 17 +++++++++-------- sql/sql_show.cc | 9 ++++++++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/sql/handler.cc b/sql/handler.cc index bea277a5276..4e35780b1e2 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -405,7 +405,7 @@ static int ha_finish_errors(void) } static volatile int32 need_full_discover_for_existence= 0; -static volatile int32 engines_with_discover_table_names= 0; +static volatile int32 engines_with_discover_file_names= 0; static volatile int32 engines_with_discover= 0; static int full_discover_for_existence(handlerton *, const char *, const char *) @@ -430,8 +430,8 @@ static void update_discovery_counters(handlerton *hton, int val) if (hton->discover_table_existence == full_discover_for_existence) my_atomic_add32(&need_full_discover_for_existence, val); - if (hton->discover_table_names) - my_atomic_add32(&engines_with_discover_table_names, val); + if (hton->discover_table_names && hton->tablefile_extensions[0]) + my_atomic_add32(&engines_with_discover_file_names, val); if (hton->discover_table) my_atomic_add32(&engines_with_discover, val); @@ -5189,6 +5189,7 @@ void Discovered_table_list::remove_duplicates() { LEX_STRING **src= tables->front(); LEX_STRING **dst= src; + sort(); while (++dst <= tables->back()) { LEX_STRING *s= *src, *d= *dst; @@ -5256,10 +5257,12 @@ int ha_discover_table_names(THD *thd, LEX_STRING *db, MY_DIR *dirp, int error; DBUG_ENTER("ha_discover_table_names"); - if (engines_with_discover_table_names == 0 && !reusable) + if (engines_with_discover_file_names == 0 && !reusable) { - error= ext_table_discovery_simple(dirp, result); - result->sort(); + st_discover_names_args args= {db, NULL, result, 0}; + error= ext_table_discovery_simple(dirp, result) || + plugin_foreach(thd, discover_names, + MYSQL_STORAGE_ENGINE_PLUGIN, &args); } else { @@ -5272,8 +5275,6 @@ int ha_discover_table_names(THD *thd, LEX_STRING *db, MY_DIR *dirp, error= extension_based_table_discovery(dirp, reg_ext, result) || plugin_foreach(thd, discover_names, MYSQL_STORAGE_ENGINE_PLUGIN, &args); - result->sort(); - if (args.possible_duplicates > 0) result->remove_duplicates(); } diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 666f76093aa..53444ef9a02 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -979,13 +979,20 @@ find_files(THD *thd, Dynamic_array *files, LEX_STRING *db, if (tl.add_file(file->name)) goto err; } - tl.sort(); } else { if (ha_discover_table_names(thd, db, dirp, &tl, false)) goto err; } +#if MYSQL_VERSION_ID < 100300 + /* incomplete optimization, but a less drastic change in GA version */ + if (!thd->lex->select_lex.order_list.elements && + !thd->lex->select_lex.group_list.elements) +#else + if (is_show_command(thd)) +#endif + tl.sort(); DBUG_PRINT("info",("found: %zu files", files->elements())); my_dirend(dirp); From 9749568deb8b48aebcf8045dc6bdd288bef66121 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 9 Oct 2017 18:22:24 +0200 Subject: [PATCH 032/128] MDEV-13946 Server RPMs have dependency on "which" SLES11 doesn't have a dedicated package for "which", it's part of the "util-linux" package --- cmake/cpack_rpm.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/cpack_rpm.cmake b/cmake/cpack_rpm.cmake index e886cea1cc1..e80fb199f03 100644 --- a/cmake/cpack_rpm.cmake +++ b/cmake/cpack_rpm.cmake @@ -168,9 +168,14 @@ SETA(CPACK_RPM_server_PACKAGE_REQUIRES "MariaDB-client") IF(WITH_WSREP) -SETA(CPACK_RPM_server_PACKAGE_REQUIRES - "galera" "rsync" "lsof" "grep" "gawk" "iproute" - "coreutils" "findutils" "tar" "which") + SETA(CPACK_RPM_server_PACKAGE_REQUIRES + "galera" "rsync" "lsof" "grep" "gawk" "iproute" + "coreutils" "findutils" "tar") + IF (RPM MATCHES "sles11") + SETA(CPACK_RPM_server_PACKAGE_REQUIRES "util-linux") + ELSE() + SETA(CPACK_RPM_server_PACKAGE_REQUIRES "which") + ENDIF() ENDIF() SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh) From 1cfcb58539af7f081db869ad619a36ce7f7d681a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 9 Oct 2017 20:30:52 +0300 Subject: [PATCH 033/128] Fix oqgraph compilation with Boost versions <=1.49 --- storage/oqgraph/graphcore.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/oqgraph/graphcore.cc b/storage/oqgraph/graphcore.cc index 0a683b976aa..4a6d631be04 100644 --- a/storage/oqgraph/graphcore.cc +++ b/storage/oqgraph/graphcore.cc @@ -891,7 +891,7 @@ namespace open_query boost::unordered_map p; boost::unordered_map d; boost::queue Q; - reverse_graph r(share->g); + const reverse_graph r(share->g); p[ *dest ]= *dest; d[ *dest ] = EdgeWeight(); switch (ALGORITHM & op) From c2509a1588ee1dc7351b67b2f9149003540015c4 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Tue, 10 Oct 2017 10:35:12 +0400 Subject: [PATCH 034/128] MDEV-13972 crash in Item_func_sec_to_time::get_date --- mysql-test/r/ctype_ucs.result | 8 ++++++++ mysql-test/r/func_time.result | 20 ++++++++++++++++++++ mysql-test/t/ctype_ucs.test | 7 +++++++ mysql-test/t/func_time.test | 15 +++++++++++++++ sql/item_timefunc.cc | 15 ++++++++++++--- 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 7a93c5524ef..d55d308c694 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -4367,5 +4367,13 @@ NO_ENGINE_SUBSTITUTION SET sql_mode=DEFAULT; SET NAMES utf8; # +# MDEV-13972 crash in Item_func_sec_to_time::get_date +# +SELECT SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2)); +SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2)) +838:59:59.999999 +Warnings: +Warning 1292 Truncated incorrect time value: '77760000' +# # End of 5.5 tests # diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index fa159972c9a..cffed8eae5b 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -2638,5 +2638,25 @@ a DROP TABLE t1; SET sql_mode=DEFAULT; # +# MDEV-13972 crash in Item_func_sec_to_time::get_date +# +DO TO_DAYS(SEC_TO_TIME(TIME(CEILING(UUID())))); +DO TO_DAYS(SEC_TO_TIME(MAKEDATE('',RAND(~(''))))); +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '' +Warning 1292 Truncated incorrect INTEGER value: '' +Warning 1292 Truncated incorrect INTEGER value: '' +Warning 1292 Truncated incorrect time value: '20000101' +SELECT TO_DAYS(SEC_TO_TIME(MAKEDATE(0,RAND(~0)))); +TO_DAYS(SEC_TO_TIME(MAKEDATE(0,RAND(~0)))) +0 +Warnings: +Warning 1292 Truncated incorrect time value: '20000101' +SELECT SEC_TO_TIME(MAKEDATE(0,RAND(~0))); +SEC_TO_TIME(MAKEDATE(0,RAND(~0))) +838:59:59 +Warnings: +Warning 1292 Truncated incorrect time value: '20000101' +# # End of 5.5 tests # diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index d94c9ae62ac..62890d0cd1b 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -862,6 +862,13 @@ SELECT @@sql_mode; SET sql_mode=DEFAULT; SET NAMES utf8; +--echo # +--echo # MDEV-13972 crash in Item_func_sec_to_time::get_date +--echo # + +SELECT SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2)); + + --echo # --echo # End of 5.5 tests --echo # diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index 7544f9e7761..8323bd30d2c 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -1615,6 +1615,21 @@ SELECT * FROM t1; DROP TABLE t1; SET sql_mode=DEFAULT; + +--echo # +--echo # MDEV-13972 crash in Item_func_sec_to_time::get_date +--echo # + +# The below query can return warning sporadically +--disable_warnings +DO TO_DAYS(SEC_TO_TIME(TIME(CEILING(UUID())))); +--enable_warnings + +DO TO_DAYS(SEC_TO_TIME(MAKEDATE('',RAND(~(''))))); +SELECT TO_DAYS(SEC_TO_TIME(MAKEDATE(0,RAND(~0)))); +SELECT SEC_TO_TIME(MAKEDATE(0,RAND(~0))); + + --echo # --echo # End of 5.5 tests --echo # diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 0ed1506bbee..eeb373a75ee 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -1733,9 +1733,18 @@ overflow: ltime->hour= TIME_MAX_HOUR+1; check_time_range(ltime, decimals, &unused); - make_truncated_value_warning(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, - err->ptr(), err->length(), - MYSQL_TIMESTAMP_TIME, NullS); + if (!err) + { + ErrConvInteger err2(sec, unsigned_flag); + make_truncated_value_warning(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + &err2, MYSQL_TIMESTAMP_TIME, NullS); + } + else + { + ErrConvString err2(err); + make_truncated_value_warning(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + &err2, MYSQL_TIMESTAMP_TIME, NullS); + } return 0; } From 2db5e4d1f94507629490e3fa087e66a9b8eef4d2 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 10 Oct 2017 14:31:33 +0200 Subject: [PATCH 035/128] smaller stack size on quantal-x86 and wheezy-x86 fixes failures of func_regexp_pcre --- mysql-test/r/func_regexp_pcre.result | 18 +++++++++--------- mysql-test/t/func_regexp_pcre.test | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mysql-test/r/func_regexp_pcre.result b/mysql-test/r/func_regexp_pcre.result index 43ea5c23b63..d7d57356fe2 100644 --- a/mysql-test/r/func_regexp_pcre.result +++ b/mysql-test/r/func_regexp_pcre.result @@ -879,32 +879,32 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral, 1 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT CONCAT(REPEAT('100,',250),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; -CONCAT(REPEAT('100,',250),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$' +SELECT CONCAT(REPEAT('100,',190),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; +CONCAT(REPEAT('100,',190),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$' 1 SELECT CONCAT(REPEAT('100,',600),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; CONCAT(REPEAT('100,',600),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$' 0 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',250),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); -REGEXP_INSTR(CONCAT(REPEAT('100,',250),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$') +SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',190),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); +REGEXP_INSTR(CONCAT(REPEAT('100,',190),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$') 1 SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',600),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); REGEXP_INSTR(CONCAT(REPEAT('100,',600),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$') 0 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); -LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')) -335 +SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',190/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); +LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',190/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')) +255 SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')) 0 Warnings: Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp -SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); -LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')) +SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',190/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); +LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',190/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')) 0 SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')) diff --git a/mysql-test/t/func_regexp_pcre.test b/mysql-test/t/func_regexp_pcre.test index 377ee1a3f02..8f8273bcecb 100644 --- a/mysql-test/t/func_regexp_pcre.test +++ b/mysql-test/t/func_regexp_pcre.test @@ -434,18 +434,18 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral, # # MDEV-13173 An RLIKE that previously worked on 10.0 now returns "Got error 'pcre_exec: recursion limit of 100 exceeded' from regexp" # -SELECT CONCAT(REPEAT('100,',250),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; +SELECT CONCAT(REPEAT('100,',190),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT CONCAT(REPEAT('100,',600),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; -SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',250),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); +SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',190),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',600),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'); -SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); +SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',190/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')); -SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',250/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); +SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',190/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',600/3),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); From 93aadda513d8b5c2b49001514e235c4fdd73e08a Mon Sep 17 00:00:00 2001 From: Vesa Pentti Date: Sun, 8 Oct 2017 22:15:00 +0300 Subject: [PATCH 036/128] MDEV-13149 -- show function status now works with PAD_CHAR_TO_FULL_LENGTH --- ...nction_with_pad_char_to_full_length.result | 24 +++++++++++++++++++ ...function_with_pad_char_to_full_length.test | 23 ++++++++++++++++++ sql/sql_show.cc | 5 ++++ 3 files changed, 52 insertions(+) create mode 100644 mysql-test/r/show_function_with_pad_char_to_full_length.result create mode 100644 mysql-test/t/show_function_with_pad_char_to_full_length.test diff --git a/mysql-test/r/show_function_with_pad_char_to_full_length.result b/mysql-test/r/show_function_with_pad_char_to_full_length.result new file mode 100644 index 00000000000..785cab7b3e6 --- /dev/null +++ b/mysql-test/r/show_function_with_pad_char_to_full_length.result @@ -0,0 +1,24 @@ +create function f() returns int return 1; +show function status; +Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation +T f T T T T T T T T T +set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'; +show function status; +Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation +T f T T T T T T T T T +drop function f; +select @@sql_mode; +@@sql_mode +PAD_CHAR_TO_FULL_LENGTH +create function f() returns int return 1; +select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f'; +ROUTINE_NAME +f +set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'; +select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f'; +ROUTINE_NAME +f +drop function f; +select @@sql_mode; +@@sql_mode +PAD_CHAR_TO_FULL_LENGTH diff --git a/mysql-test/t/show_function_with_pad_char_to_full_length.test b/mysql-test/t/show_function_with_pad_char_to_full_length.test new file mode 100644 index 00000000000..f47f36294d4 --- /dev/null +++ b/mysql-test/t/show_function_with_pad_char_to_full_length.test @@ -0,0 +1,23 @@ +# +# Test that show function status succeeds with +# sql_mode = 'PAD_CHAR_TO_FULL_LENGTH (MDEV-13149) + +# show function status + +create function f() returns int return 1; +--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T +show function status; +set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'; +--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T +show function status; +drop function f; +select @@sql_mode; + +# select ROUTINE_NAME from information_schema.ROUTINES + +create function f() returns int return 1; +select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f'; +set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'; +select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f'; +drop function f; +select @@sql_mode; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index d8ea232caea..6e045648591 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -5716,6 +5716,10 @@ int fill_schema_proc(THD *thd, TABLE_LIST *tables, COND *cond) DBUG_RETURN(1); } + /* Disable padding temporarily so it doesn't break the query */ + ulonglong sql_mode_was = thd->variables.sql_mode; + thd->variables.sql_mode &= ~MODE_PAD_CHAR_TO_FULL_LENGTH; + if (proc_table->file->ha_index_init(0, 1)) { res= 1; @@ -5751,6 +5755,7 @@ err: (void) proc_table->file->ha_index_end(); close_system_tables(thd, &open_tables_state_backup); + thd->variables.sql_mode = sql_mode_was; DBUG_RETURN(res); } From fc9ff69578fa8c3d818d6eaaa171b4be49d70814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Tue, 10 Oct 2017 10:19:10 +0300 Subject: [PATCH 037/128] MDEV-13838: Wrong result after altering a partitioned table Reverted incorrect changes done on MDEV-7367 and MDEV-9469. Fixes properly also related bugs: MDEV-13668: InnoDB unnecessarily rebuilds table when renaming a column and adding index MDEV-9469: 'Incorrect key file' on ALTER TABLE MDEV-9548: Alter table (renaming and adding index) fails with "Incorrect key file for table" MDEV-10535: ALTER TABLE causes standalone/wsrep cluster crash MDEV-13640: ALTER TABLE CHANGE and ADD INDEX on auto_increment column fails with "Incorrect key file for table..." Root cause for all these bugs is the fact that MariaDB .frm file can contain virtual columns but InnoDB dictionary does not and previous fixes were incorrect or unnecessarily forced table rebuilt. In index creation key_part->fieldnr can be bigger than number of columns in InnoDB data dictionary. We need to skip not stored fields when calculating correct column number for InnoDB data dictionary. dict_table_get_col_name_for_mysql Remove innobase_match_index_columns Revert incorrect change done on MDEV-7367 innobase_need_rebuild Remove unnecessary rebuild force when column is renamed. innobase_create_index_field_def Calculate InnoDB column number correctly and remove unnecessary column name set. innobase_create_index_def, innobase_create_key_defs Remove unneeded fields parameter. Revert unneeded memset. prepare_inplace_alter_table_dict Remove unneeded col_names parameter index_field_t Remove unneeded col_name member. row_merge_create_index Remove unneeded col_names parameter and resolution. Effected tests: innodb-alter-table : Add test case for MDEV-13668 innodb-alter : Remove MDEV-13668, MDEV-9469 FIXMEs and restore original tests innodb-wl5980-alter : Remove MDEV-13668, MDEV-9469 FIXMEs and restore original tests --- .../suite/innodb/r/innodb-alter-table.result | 41 +++++++ mysql-test/suite/innodb/r/innodb-alter.result | 18 ++-- .../suite/innodb/r/innodb-wl5980-alter.result | 16 +-- .../suite/innodb/t/innodb-alter-table.test | 33 ++++++ mysql-test/suite/innodb/t/innodb-alter.test | 24 +---- .../suite/innodb/t/innodb-wl5980-alter.test | 31 +----- storage/innobase/dict/dict0dict.cc | 34 ------ storage/innobase/handler/ha_innodb.cc | 2 - storage/innobase/handler/handler0alter.cc | 100 +++++++---------- storage/innobase/include/dict0dict.h | 11 -- storage/innobase/include/row0merge.h | 7 +- storage/innobase/row/row0merge.cc | 26 +---- storage/xtradb/dict/dict0dict.cc | 34 ------ storage/xtradb/handler/ha_innodb.cc | 2 - storage/xtradb/handler/handler0alter.cc | 101 +++++++----------- storage/xtradb/include/dict0dict.h | 11 -- storage/xtradb/include/row0merge.h | 7 +- storage/xtradb/row/row0merge.cc | 26 +---- 18 files changed, 178 insertions(+), 346 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb-alter-table.result b/mysql-test/suite/innodb/r/innodb-alter-table.result index c4460a7226b..34a05d39882 100644 --- a/mysql-test/suite/innodb/r/innodb-alter-table.result +++ b/mysql-test/suite/innodb/r/innodb-alter-table.result @@ -185,3 +185,44 @@ ticket CREATE TABLE `ticket` ( KEY `org_id` (`org_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE ticket; +CREATE TABLE t ( +id bigint(20) unsigned NOT NULL auto_increment, +d date NOT NULL, +a bigint(20) unsigned NOT NULL, +b smallint(5) unsigned DEFAULT NULL, +PRIMARY KEY (id,d) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs STATS_SAMPLE_PAGES=2 +PARTITION BY RANGE COLUMNS(d) +( +PARTITION p20170914 VALUES LESS THAN ('2017-09-15') ENGINE = InnoDB, +PARTITION p99991231 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB); +insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10); +insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10); +replace into t(d,a,b) select '2017-09-15',rand()*10000,rand()*10 from t t1, t t2, t t3, t t4; +select count(*) from t where d ='2017-09-15'; +count(*) +18 +ALTER TABLE t CHANGE b c smallint(5) unsigned , ADD KEY idx_d_a (d, a); +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `d` date NOT NULL, + `a` bigint(20) unsigned NOT NULL, + `c` smallint(5) unsigned DEFAULT NULL, + PRIMARY KEY (`id`,`d`), + KEY `idx_d_a` (`d`,`a`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs STATS_SAMPLE_PAGES=2 +/*!50500 PARTITION BY RANGE COLUMNS(d) +(PARTITION p20170914 VALUES LESS THAN ('2017-09-15') ENGINE = InnoDB, + PARTITION p99991231 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) */ +analyze table t; +Table Op Msg_type Msg_text +test.t analyze status OK +select count(*) from t where d ='2017-09-15'; +count(*) +18 +select count(*) from t force index(primary) where d ='2017-09-15'; +count(*) +18 +DROP TABLE t; diff --git a/mysql-test/suite/innodb/r/innodb-alter.result b/mysql-test/suite/innodb/r/innodb-alter.result index 6ffa4c669d7..0bad6c5e0c1 100644 --- a/mysql-test/suite/innodb/r/innodb-alter.result +++ b/mysql-test/suite/innodb/r/innodb-alter.result @@ -540,9 +540,6 @@ ERROR 42000: Key column 'c2' doesn't exist in table ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY; ERROR 42000: Key column 'c2' doesn't exist in table ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE; -ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY. -ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE; SHOW CREATE TABLE t1n; Table Create Table t1n CREATE TABLE `t1n` ( @@ -559,9 +556,6 @@ ALTER TABLE t1n DROP INDEX c4; ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE; ERROR 42S21: Duplicate column name 'c1' ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE; -ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY. -ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE; SHOW CREATE TABLE t1n; Table Create Table t1n CREATE TABLE `t1n` ( @@ -640,10 +634,11 @@ CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL; ALTER TABLE t1o DROP INDEX ct, DROP INDEX FTS_DOC_ID_INDEX, CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL; ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id); -call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o"); ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ADD FULLTEXT INDEX(ct); -ERROR HY000: Incorrect key file for table 't1o'; try to repair it +ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, +ALGORITHM=INPLACE; +ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot drop or rename FTS_DOC_ID. Try ALGORITHM=COPY. DROP TABLE sys_indexes; CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID; @@ -651,9 +646,16 @@ SELECT i.NAME,i.POS,i.MTYPE,i.PRTYPE,i.LEN FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS i INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID; NAME POS MTYPE PRTYPE LEN +FTS_DOC_ID 0 6 1800 8 +c2 1 6 1027 4 +ct 2 5 524540 10 +cu 3 5 524540 10 SELECT si.NAME,i.POS,i.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS i INNER JOIN sys_indexes si ON i.INDEX_ID=si.INDEX_ID; NAME POS NAME +PRIMARY 0 FTS_DOC_ID +FTS_DOC_ID_INDEX 0 FTS_DOC_ID +ct 0 ct SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS i INNER JOIN sys_foreign sf ON i.ID = sf.ID; ID FOR_COL_NAME REF_COL_NAME POS diff --git a/mysql-test/suite/innodb/r/innodb-wl5980-alter.result b/mysql-test/suite/innodb/r/innodb-wl5980-alter.result index 11e4e926b43..59d0921e31f 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5980-alter.result +++ b/mysql-test/suite/innodb/r/innodb-wl5980-alter.result @@ -1010,9 +1010,6 @@ ERROR 42000: Key column 'c2' doesn't exist in table ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY; ERROR 42000: Key column 'c2' doesn't exist in table ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE; -ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY. -ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE; ### files in MYSQL_DATA_DIR/test FTS_AUX_INDEX_1.ibd FTS_AUX_INDEX_2.ibd @@ -1113,9 +1110,6 @@ tt.ibd ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE; ERROR 42S21: Duplicate column name 'c1' ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE; -ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY. -ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE; ### files in MYSQL_DATA_DIR/test FTS_AUX_INDEX_1.ibd FTS_AUX_INDEX_2.ibd @@ -1201,13 +1195,9 @@ tt.isl t1c.ibd t1p.ibd tt.ibd -call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o"); ALTER TABLE t1o ADD FULLTEXT INDEX(ct), CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ALGORITHM=INPLACE; -ERROR HY000: Incorrect key file for table 't1o'; try to repair it -ALTER TABLE t1o CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE; -ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE; ### files in MYSQL_DATA_DIR/test FTS_AUX_INDEX_1.ibd FTS_AUX_INDEX_2.ibd @@ -1249,6 +1239,9 @@ tt.isl t1c.ibd t1p.ibd tt.ibd +ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, +LOCK=NONE; +ERROR 0A000: LOCK=NONE is not supported. Reason: Cannot drop or rename FTS_DOC_ID. Try LOCK=SHARED. SELECT sc.pos FROM information_schema.innodb_sys_columns sc INNER JOIN information_schema.innodb_sys_tables st ON sc.TABLE_ID=st.TABLE_ID @@ -1352,9 +1345,6 @@ tt.isl tt.ibd ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ADD FULLTEXT INDEX(ct); -ERROR HY000: Incorrect key file for table 't1o'; try to repair it -ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE; -ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE; ### files in MYSQL_DATA_DIR/test FTS_AUX_INDEX_1.ibd FTS_AUX_INDEX_2.ibd diff --git a/mysql-test/suite/innodb/t/innodb-alter-table.test b/mysql-test/suite/innodb/t/innodb-alter-table.test index 97f0075f344..0cf456ad146 100644 --- a/mysql-test/suite/innodb/t/innodb-alter-table.test +++ b/mysql-test/suite/innodb/t/innodb-alter-table.test @@ -1,4 +1,5 @@ --source include/innodb_page_size.inc +--source include/have_partition.inc # # MMDEV-8386: MariaDB creates very big tmp file and hangs on xtradb @@ -171,3 +172,35 @@ ALTER TABLE ticket SHOW CREATE TABLE ticket; DROP TABLE ticket; + +# +# MDEV-13838: Wrong result after altering a partitioned table +# + +CREATE TABLE t ( +id bigint(20) unsigned NOT NULL auto_increment, +d date NOT NULL, +a bigint(20) unsigned NOT NULL, +b smallint(5) unsigned DEFAULT NULL, +PRIMARY KEY (id,d) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs STATS_SAMPLE_PAGES=2 +PARTITION BY RANGE COLUMNS(d) +( +PARTITION p20170914 VALUES LESS THAN ('2017-09-15') ENGINE = InnoDB, +PARTITION p99991231 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB); + +insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10); +insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10); + +replace into t(d,a,b) select '2017-09-15',rand()*10000,rand()*10 from t t1, t t2, t t3, t t4; + +select count(*) from t where d ='2017-09-15'; + +ALTER TABLE t CHANGE b c smallint(5) unsigned , ADD KEY idx_d_a (d, a); +SHOW CREATE TABLE t; +analyze table t; + +select count(*) from t where d ='2017-09-15'; +select count(*) from t force index(primary) where d ='2017-09-15'; + +DROP TABLE t; diff --git a/mysql-test/suite/innodb/t/innodb-alter.test b/mysql-test/suite/innodb/t/innodb-alter.test index 67f637a1814..af75482703c 100644 --- a/mysql-test/suite/innodb/t/innodb-alter.test +++ b/mysql-test/suite/innodb/t/innodb-alter.test @@ -298,21 +298,12 @@ SHOW CREATE TABLE t1n; ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=INPLACE; --error ER_KEY_COLUMN_DOES_NOT_EXITS ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY; -# FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table -# when renaming a column and adding index ---error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE; -ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE; SHOW CREATE TABLE t1n; ALTER TABLE t1n DROP INDEX c4; --error ER_DUP_FIELDNAME ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE; -# FIXME: MDEV-13668 ---error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE; -ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE; SHOW CREATE TABLE t1n; DROP TABLE t1n; @@ -370,16 +361,12 @@ CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL; ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id); -# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE -call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o"); ---error ER_NOT_KEYFILE ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ADD FULLTEXT INDEX(ct); -# FIXME: MDEV-9469 (enable this) -#--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON -#ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, -#ALGORITHM=INPLACE; -#end of MDEV-9469 FIXME + +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, +ALGORITHM=INPLACE; DROP TABLE sys_indexes; CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i @@ -494,6 +481,3 @@ eval ALTER TABLE $source_db.t1 DROP INDEX index2, algorithm=inplace; eval DROP TABLE $source_db.t1; eval DROP DATABASE $source_db; eval DROP DATABASE $dest_db; - - - diff --git a/mysql-test/suite/innodb/t/innodb-wl5980-alter.test b/mysql-test/suite/innodb/t/innodb-wl5980-alter.test index a3ae83753e0..2815a6fc6d7 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5980-alter.test +++ b/mysql-test/suite/innodb/t/innodb-wl5980-alter.test @@ -447,12 +447,7 @@ ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=INPLACE; --error ER_KEY_COLUMN_DOES_NOT_EXITS ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY; -# FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table -# when renaming a column and adding index ---error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE; -ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE; --echo ### files in MYSQL_DATA_DIR/test --replace_regex $regexp @@ -474,11 +469,7 @@ ALTER TABLE t1n DROP INDEX c4; --error ER_DUP_FIELDNAME ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE; -# FIXME: MDEV-13668 ---error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE; -ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE; -ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE; --echo ### files in MYSQL_DATA_DIR/test --replace_regex $regexp @@ -500,17 +491,10 @@ ALTER TABLE t1o MODIFY c1 BIGINT UNSIGNED NOT NULL; --replace_regex $regexp --list_files $MYSQL_TMP_DIR/alt_dir/test -# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE -call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o"); ---error ER_NOT_KEYFILE ALTER TABLE t1o ADD FULLTEXT INDEX(ct), CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ALGORITHM=INPLACE; -ALTER TABLE t1o CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE; -ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE; -# end of MDEV-9469 FIXME - --echo ### files in MYSQL_DATA_DIR/test --replace_regex $regexp --list_files $MYSQL_DATA_DIR/test @@ -519,11 +503,9 @@ ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE; --list_files $MYSQL_TMP_DIR/alt_dir/test # This would create a hidden FTS_DOC_ID column, which cannot be done online. -# FIXME: MDEV-9469 (enable this) -#--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON -#ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, -#LOCK=NONE; -#end of MDEV-9469 FIXME +--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON +ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, +LOCK=NONE; # This should not show duplicates. SELECT sc.pos FROM information_schema.innodb_sys_columns sc @@ -534,7 +516,6 @@ WHERE st.NAME='test/t1o' AND sc.NAME='FTS_DOC_ID'; --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR SHOW CREATE TABLE t1o; -# FIXME: MDEV-13668 ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, DROP INDEX ct, LOCK=NONE; @@ -572,15 +553,9 @@ ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id); --replace_regex $regexp --list_files $MYSQL_TMP_DIR/alt_dir/test -# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE ---error ER_NOT_KEYFILE ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ADD FULLTEXT INDEX(ct); -ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE; -ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE; -#end of MDEV-9469 FIXME - --echo ### files in MYSQL_DATA_DIR/test --replace_regex $regexp --list_files $MYSQL_DATA_DIR/test diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index be19a3f1e75..5967c51d263 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -642,40 +642,6 @@ dict_table_get_col_name( return(s); } -/**********************************************************************//** -Returns a column's name. -@return column name. NOTE: not guaranteed to stay valid if table is -modified in any way (columns added, etc.). */ -UNIV_INTERN -const char* -dict_table_get_col_name_for_mysql( -/*==============================*/ - const dict_table_t* table, /*!< in: table */ - const char* col_name)/*! in: MySQL table column name */ -{ - ulint i; - const char* s; - - ut_ad(table); - ut_ad(col_name); - ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); - - s = table->col_names; - if (s) { - /* If we have many virtual columns MySQL key_part->fieldnr - could be larger than number of columns in InnoDB table - when creating new indexes. */ - for (i = 0; i < table->n_def; i++) { - - if (!innobase_strcasecmp(s, col_name)) { - break; /* Found */ - } - s += strlen(s) + 1; - } - } - - return(s); -} #ifndef UNIV_HOTBACKUP /** Allocate and init the autoinc latch of a given table. This function must not be called concurrently on the same table object. diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index b9a89b289f8..1c9aea2491a 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -4971,8 +4971,6 @@ innobase_match_index_columns( if (innodb_idx_fld >= innodb_idx_fld_end) { DBUG_RETURN(FALSE); } - - mtype = innodb_idx_fld->col->mtype; } // MariaDB-5.5 compatibility diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 8d6f3e79f61..627cb1534d3 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -222,34 +222,6 @@ innobase_need_rebuild( return(false); } - /* If alter table changes column name and adds a new - index, we need to check is this new index created - to new column name. This is because column name - changes are done normally after creating indexes. */ - if ((ha_alter_info->handler_flags - & Alter_inplace_info::ALTER_COLUMN_NAME) && - ((ha_alter_info->handler_flags - & Alter_inplace_info::ADD_INDEX) || - (ha_alter_info->handler_flags - & Alter_inplace_info::ADD_FOREIGN_KEY))) { - for (ulint i = 0; i < ha_alter_info->index_add_count; i++) { - const KEY* key = &ha_alter_info->key_info_buffer[ - ha_alter_info->index_add_buffer[i]]; - - for (ulint j = 0; j < key->user_defined_key_parts; j++) { - const KEY_PART_INFO* key_part = &(key->key_part[j]); - const Field* field = altered_table->field[key_part->fieldnr]; - - /* Field used on added index is renamed on - this same alter table. We need table - rebuild. */ - if (field && field->flags & FIELD_IS_RENAMED) { - return (true); - } - } - } - } - return(!!(ha_alter_info->handler_flags & INNOBASE_ALTER_REBUILD)); } @@ -1512,38 +1484,49 @@ name_ok: return(0); } -/*******************************************************************//** -Create index field definition for key part */ +/** Create index field definition for key part +@param[in] new_clustered true if alter is generating a new clustered +index +@param[in] altered_table MySQL table that is being altered +@param[in] key_part MySQL key definition +@param[out] index_field index field defition for key_part */ static MY_ATTRIBUTE((nonnull(2,3))) void innobase_create_index_field_def( -/*============================*/ - const TABLE* altered_table, /*!< in: MySQL table that is - being altered, or NULL - if a new clustered index is - not being created */ - const KEY_PART_INFO* key_part, /*!< in: MySQL key definition */ - index_field_t* index_field, /*!< out: index field - definition for key_part */ - const Field** fields) /*!< in: MySQL table fields */ + bool new_clustered, + const TABLE* altered_table, + const KEY_PART_INFO* key_part, + index_field_t* index_field) { const Field* field; ibool is_unsigned; ulint col_type; + ulint innodb_fieldnr=0; DBUG_ENTER("innobase_create_index_field_def"); ut_ad(key_part); ut_ad(index_field); + ut_ad(altered_table); - field = altered_table - ? altered_table->field[key_part->fieldnr] + /* Virtual columns are not stored in InnoDB data dictionary, thus + if there is virtual columns we need to skip them to find the + correct field. */ + for(ulint i = 0; i < key_part->fieldnr; i++) { + const Field* table_field = altered_table->field[i]; + if (!table_field->stored_in_db) { + continue; + } + innodb_fieldnr++; + } + + field = new_clustered ? + altered_table->field[key_part->fieldnr] : key_part->field; + ut_a(field); - index_field->col_no = key_part->fieldnr; - index_field->col_name = altered_table ? field->field_name : fields[key_part->fieldnr]->field_name; - + index_field->col_no = innodb_fieldnr; col_type = get_innobase_type_from_mysql_type(&is_unsigned, field); if (DATA_BLOB == col_type @@ -1577,10 +1560,8 @@ innobase_create_index_def( bool key_clustered, /*!< in: true if this is the new clustered index */ index_def_t* index, /*!< out: index definition */ - mem_heap_t* heap, /*!< in: heap where memory + mem_heap_t* heap) /*!< in: heap where memory is allocated */ - const Field** fields) /*!< in: MySQL table fields - */ { const KEY* key = &keys[key_number]; ulint i; @@ -1591,10 +1572,10 @@ innobase_create_index_def( DBUG_ENTER("innobase_create_index_def"); DBUG_ASSERT(!key_clustered || new_clustered); + ut_ad(altered_table); + index->fields = static_cast( mem_heap_alloc(heap, n_fields * sizeof *index->fields)); - memset(index->fields, 0, n_fields * sizeof *index->fields); - index->ind_type = 0; index->key_number = key_number; index->n_fields = n_fields; @@ -1625,13 +1606,12 @@ innobase_create_index_def( index->ind_type |= DICT_FTS; } - if (!new_clustered) { - altered_table = NULL; - } - for (i = 0; i < n_fields; i++) { innobase_create_index_field_def( - altered_table, &key->key_part[i], &index->fields[i], fields); + new_clustered, + altered_table, + &key->key_part[i], + &index->fields[i]); } DBUG_VOID_RETURN; @@ -1957,7 +1937,7 @@ innobase_create_key_defs( /* Create the PRIMARY key index definition */ innobase_create_index_def( altered_table, key_info, primary_key_number, - TRUE, TRUE, indexdef++, heap, (const Field **)altered_table->field); + TRUE, TRUE, indexdef++, heap); created_clustered: n_add = 1; @@ -1969,7 +1949,7 @@ created_clustered: /* Copy the index definitions. */ innobase_create_index_def( altered_table, key_info, i, TRUE, FALSE, - indexdef, heap, (const Field **)altered_table->field); + indexdef, heap); if (indexdef->ind_type & DICT_FTS) { n_fts_add++; @@ -2014,7 +1994,7 @@ created_clustered: for (ulint i = 0; i < n_add; i++) { innobase_create_index_def( altered_table, key_info, add[i], FALSE, FALSE, - indexdef, heap, (const Field **)altered_table->field); + indexdef, heap); if (indexdef->ind_type & DICT_FTS) { n_fts_add++; @@ -2031,7 +2011,6 @@ created_clustered: index->fields = static_cast( mem_heap_alloc(heap, sizeof *index->fields)); - memset(index->fields, 0, sizeof *index->fields); index->n_fields = 1; index->fields->col_no = fts_doc_id_col; index->fields->prefix_len = 0; @@ -2121,7 +2100,7 @@ struct ha_innobase_inplace_ctx : public inplace_alter_handler_ctx /** mapping of old column numbers to new ones, or NULL */ const ulint* col_map; /** new column names, or NULL if nothing was renamed */ - const char** col_names; + const char** col_names; /** added AUTO_INCREMENT column position, or ULINT_UNDEFINED */ const ulint add_autoinc; /** default values of ADD COLUMN, or NULL */ @@ -3066,8 +3045,7 @@ prepare_inplace_alter_table_dict( for (ulint a = 0; a < ctx->num_to_add_index; a++) { ctx->add_index[a] = row_merge_create_index( - ctx->trx, ctx->new_table, - &index_defs[a], ctx->col_names); + ctx->trx, ctx->new_table, &index_defs[a]); add_key_nums[a] = index_defs[a].key_number; diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h index bee291910ed..5c841e2f6e2 100644 --- a/storage/innobase/include/dict0dict.h +++ b/storage/innobase/include/dict0dict.h @@ -605,17 +605,6 @@ dict_table_get_col_name( ulint col_nr) /*!< in: column number */ MY_ATTRIBUTE((nonnull, warn_unused_result)); /**********************************************************************//** -Returns a column's name. -@return column name. NOTE: not guaranteed to stay valid if table is -modified in any way (columns added, etc.). */ -UNIV_INTERN -const char* -dict_table_get_col_name_for_mysql( -/*==============================*/ - const dict_table_t* table, /*!< in: table */ - const char* col_name)/*!< in: MySQL table column name */ - MY_ATTRIBUTE((nonnull, warn_unused_result)); -/**********************************************************************//** Prints a table data. */ UNIV_INTERN void diff --git a/storage/innobase/include/row0merge.h b/storage/innobase/include/row0merge.h index 90e45c7d2d0..d16b25fc5a6 100644 --- a/storage/innobase/include/row0merge.h +++ b/storage/innobase/include/row0merge.h @@ -95,7 +95,6 @@ struct index_field_t { ulint col_no; /*!< column offset */ ulint prefix_len; /*!< column prefix length, or 0 if indexing the whole column */ - const char* col_name; /*!< column name or NULL */ }; /** Definition of an index being created */ @@ -252,11 +251,7 @@ row_merge_create_index( /*===================*/ trx_t* trx, /*!< in/out: trx (sets error_state) */ dict_table_t* table, /*!< in: the index is on this table */ - const index_def_t* index_def, - /*!< in: the index definition */ - const char** col_names); - /*! in: column names if columns are - renamed or NULL */ + const index_def_t* index_def); /*!< in: the index definition */ /*********************************************************************//** Check if a transaction can use an index. @return TRUE if index can be used by the transaction else FALSE */ diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index 3976f31fe12..fe845d60101 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -3532,11 +3532,7 @@ row_merge_create_index( /*===================*/ trx_t* trx, /*!< in/out: trx (sets error_state) */ dict_table_t* table, /*!< in: the index is on this table */ - const index_def_t* index_def, - /*!< in: the index definition */ - const char** col_names) - /*! in: column names if columns are - renamed or NULL */ + const index_def_t* index_def) /*!< in: the index definition */ { dict_index_t* index; dberr_t err; @@ -3556,28 +3552,10 @@ row_merge_create_index( for (i = 0; i < n_fields; i++) { index_field_t* ifield = &index_def->fields[i]; - const char * col_name; - - /* - Alter table renaming a column and then adding a index - to this new name e.g ALTER TABLE t - CHANGE COLUMN b c INT NOT NULL, ADD UNIQUE INDEX (c); - requires additional check as column names are not yet - changed when new index definitions are created. Table's - new column names are on a array of column name pointers - if any of the column names are changed. */ - - if (col_names && col_names[i]) { - col_name = col_names[i]; - } else { - col_name = ifield->col_name ? - dict_table_get_col_name_for_mysql(table, ifield->col_name) : - dict_table_get_col_name(table, ifield->col_no); - } dict_mem_index_add_field( index, - col_name, + dict_table_get_col_name(table, ifield->col_no), ifield->prefix_len); } diff --git a/storage/xtradb/dict/dict0dict.cc b/storage/xtradb/dict/dict0dict.cc index 567d24cd89d..798a7497645 100644 --- a/storage/xtradb/dict/dict0dict.cc +++ b/storage/xtradb/dict/dict0dict.cc @@ -642,40 +642,6 @@ dict_table_get_col_name( return(s); } -/**********************************************************************//** -Returns a column's name. -@return column name. NOTE: not guaranteed to stay valid if table is -modified in any way (columns added, etc.). */ -UNIV_INTERN -const char* -dict_table_get_col_name_for_mysql( -/*==============================*/ - const dict_table_t* table, /*!< in: table */ - const char* col_name)/*! in: MySQL table column name */ -{ - ulint i; - const char* s; - - ut_ad(table); - ut_ad(col_name); - ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); - - s = table->col_names; - if (s) { - /* If we have many virtual columns MySQL key_part->fieldnr - could be larger than number of columns in InnoDB table - when creating new indexes. */ - for (i = 0; i < table->n_def; i++) { - - if (!innobase_strcasecmp(s, col_name)) { - break; /* Found */ - } - s += strlen(s) + 1; - } - } - - return(s); -} #ifndef UNIV_HOTBACKUP /** Allocate and init the autoinc latch of a given table. This function must not be called concurrently on the same table object. diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 282ef33a453..c5fdfc0a8b7 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -5636,8 +5636,6 @@ innobase_match_index_columns( if (innodb_idx_fld >= innodb_idx_fld_end) { DBUG_RETURN(FALSE); } - - mtype = innodb_idx_fld->col->mtype; } if (col_type != mtype) { diff --git a/storage/xtradb/handler/handler0alter.cc b/storage/xtradb/handler/handler0alter.cc index 52127fbf0c0..6d2a6e6ec66 100644 --- a/storage/xtradb/handler/handler0alter.cc +++ b/storage/xtradb/handler/handler0alter.cc @@ -222,34 +222,6 @@ innobase_need_rebuild( return(false); } - /* If alter table changes column name and adds a new - index, we need to check is this new index created - to new column name. This is because column name - changes are done normally after creating indexes. */ - if ((ha_alter_info->handler_flags - & Alter_inplace_info::ALTER_COLUMN_NAME) && - ((ha_alter_info->handler_flags - & Alter_inplace_info::ADD_INDEX) || - (ha_alter_info->handler_flags - & Alter_inplace_info::ADD_FOREIGN_KEY))) { - for (ulint i = 0; i < ha_alter_info->index_add_count; i++) { - const KEY* key = &ha_alter_info->key_info_buffer[ - ha_alter_info->index_add_buffer[i]]; - - for (ulint j = 0; j < key->user_defined_key_parts; j++) { - const KEY_PART_INFO* key_part = &(key->key_part[j]); - const Field* field = altered_table->field[key_part->fieldnr]; - - /* Field used on added index is renamed on - this same alter table. We need table - rebuild. */ - if (field && field->flags & FIELD_IS_RENAMED) { - return (true); - } - } - } - } - return(!!(ha_alter_info->handler_flags & INNOBASE_ALTER_REBUILD)); } @@ -1513,38 +1485,49 @@ name_ok: return(0); } -/*******************************************************************//** -Create index field definition for key part */ +/** Create index field definition for key part +@param[in] new_clustered true if alter is generating a new clustered +index +@param[in] altered_table MySQL table that is being altered +@param[in] key_part MySQL key definition +@param[out] index_field index field defition for key_part */ static MY_ATTRIBUTE((nonnull(2,3))) void innobase_create_index_field_def( -/*============================*/ - const TABLE* altered_table, /*!< in: MySQL table that is - being altered, or NULL - if a new clustered index is - not being created */ - const KEY_PART_INFO* key_part, /*!< in: MySQL key definition */ - index_field_t* index_field, /*!< out: index field - definition for key_part */ - const Field** fields) /*!< in: MySQL table fields */ + bool new_clustered, + const TABLE* altered_table, + const KEY_PART_INFO* key_part, + index_field_t* index_field) { const Field* field; ibool is_unsigned; ulint col_type; + ulint innodb_fieldnr=0; DBUG_ENTER("innobase_create_index_field_def"); ut_ad(key_part); ut_ad(index_field); + ut_ad(altered_table); - field = altered_table - ? altered_table->field[key_part->fieldnr] + /* Virtual columns are not stored in InnoDB data dictionary, thus + if there is virtual columns we need to skip them to find the + correct field. */ + for(ulint i = 0; i < key_part->fieldnr; i++) { + const Field* table_field = altered_table->field[i]; + if (!table_field->stored_in_db) { + continue; + } + innodb_fieldnr++; + } + + field = new_clustered ? + altered_table->field[key_part->fieldnr] : key_part->field; + ut_a(field); - index_field->col_no = key_part->fieldnr; - index_field->col_name = altered_table ? field->field_name : fields[key_part->fieldnr]->field_name; - + index_field->col_no = innodb_fieldnr; col_type = get_innobase_type_from_mysql_type(&is_unsigned, field); if (DATA_BLOB == col_type @@ -1578,10 +1561,8 @@ innobase_create_index_def( bool key_clustered, /*!< in: true if this is the new clustered index */ index_def_t* index, /*!< out: index definition */ - mem_heap_t* heap, /*!< in: heap where memory + mem_heap_t* heap) /*!< in: heap where memory is allocated */ - const Field** fields) /*!< in: MySQL table fields - */ { const KEY* key = &keys[key_number]; ulint i; @@ -1592,11 +1573,10 @@ innobase_create_index_def( DBUG_ENTER("innobase_create_index_def"); DBUG_ASSERT(!key_clustered || new_clustered); + ut_ad(altered_table); + index->fields = static_cast( mem_heap_alloc(heap, n_fields * sizeof *index->fields)); - - memset(index->fields, 0, n_fields * sizeof *index->fields); - index->ind_type = 0; index->key_number = key_number; index->n_fields = n_fields; @@ -1627,13 +1607,12 @@ innobase_create_index_def( index->ind_type |= DICT_FTS; } - if (!new_clustered) { - altered_table = NULL; - } - for (i = 0; i < n_fields; i++) { innobase_create_index_field_def( - altered_table, &key->key_part[i], &index->fields[i], fields); + new_clustered, + altered_table, + &key->key_part[i], + &index->fields[i]); } DBUG_VOID_RETURN; @@ -1959,7 +1938,7 @@ innobase_create_key_defs( /* Create the PRIMARY key index definition */ innobase_create_index_def( altered_table, key_info, primary_key_number, - TRUE, TRUE, indexdef++, heap, (const Field **)altered_table->field); + TRUE, TRUE, indexdef++, heap); created_clustered: n_add = 1; @@ -1971,7 +1950,7 @@ created_clustered: /* Copy the index definitions. */ innobase_create_index_def( altered_table, key_info, i, TRUE, FALSE, - indexdef, heap, (const Field **)altered_table->field); + indexdef, heap); if (indexdef->ind_type & DICT_FTS) { n_fts_add++; @@ -2016,7 +1995,7 @@ created_clustered: for (ulint i = 0; i < n_add; i++) { innobase_create_index_def( altered_table, key_info, add[i], FALSE, FALSE, - indexdef, heap, (const Field **)altered_table->field); + indexdef, heap); if (indexdef->ind_type & DICT_FTS) { n_fts_add++; @@ -2033,7 +2012,6 @@ created_clustered: index->fields = static_cast( mem_heap_alloc(heap, sizeof *index->fields)); - memset(index->fields, 0, sizeof *index->fields); index->n_fields = 1; index->fields->col_no = fts_doc_id_col; index->fields->prefix_len = 0; @@ -2123,7 +2101,7 @@ struct ha_innobase_inplace_ctx : public inplace_alter_handler_ctx /** mapping of old column numbers to new ones, or NULL */ const ulint* col_map; /** new column names, or NULL if nothing was renamed */ - const char** col_names; + const char** col_names; /** added AUTO_INCREMENT column position, or ULINT_UNDEFINED */ const ulint add_autoinc; /** default values of ADD COLUMN, or NULL */ @@ -3072,8 +3050,7 @@ prepare_inplace_alter_table_dict( for (ulint a = 0; a < ctx->num_to_add_index; a++) { ctx->add_index[a] = row_merge_create_index( - ctx->trx, ctx->new_table, - &index_defs[a], ctx->col_names); + ctx->trx, ctx->new_table, &index_defs[a]); add_key_nums[a] = index_defs[a].key_number; diff --git a/storage/xtradb/include/dict0dict.h b/storage/xtradb/include/dict0dict.h index 33edab3ae98..5ae9aab48c8 100644 --- a/storage/xtradb/include/dict0dict.h +++ b/storage/xtradb/include/dict0dict.h @@ -604,17 +604,6 @@ dict_table_get_col_name( ulint col_nr) /*!< in: column number */ MY_ATTRIBUTE((nonnull, warn_unused_result)); /**********************************************************************//** -Returns a column's name. -@return column name. NOTE: not guaranteed to stay valid if table is -modified in any way (columns added, etc.). */ -UNIV_INTERN -const char* -dict_table_get_col_name_for_mysql( -/*==============================*/ - const dict_table_t* table, /*!< in: table */ - const char* col_name)/*!< in: MySQL table column name */ - __attribute__((nonnull, warn_unused_result)); -/**********************************************************************//** Prints a table data. */ UNIV_INTERN void diff --git a/storage/xtradb/include/row0merge.h b/storage/xtradb/include/row0merge.h index 90e45c7d2d0..d16b25fc5a6 100644 --- a/storage/xtradb/include/row0merge.h +++ b/storage/xtradb/include/row0merge.h @@ -95,7 +95,6 @@ struct index_field_t { ulint col_no; /*!< column offset */ ulint prefix_len; /*!< column prefix length, or 0 if indexing the whole column */ - const char* col_name; /*!< column name or NULL */ }; /** Definition of an index being created */ @@ -252,11 +251,7 @@ row_merge_create_index( /*===================*/ trx_t* trx, /*!< in/out: trx (sets error_state) */ dict_table_t* table, /*!< in: the index is on this table */ - const index_def_t* index_def, - /*!< in: the index definition */ - const char** col_names); - /*! in: column names if columns are - renamed or NULL */ + const index_def_t* index_def); /*!< in: the index definition */ /*********************************************************************//** Check if a transaction can use an index. @return TRUE if index can be used by the transaction else FALSE */ diff --git a/storage/xtradb/row/row0merge.cc b/storage/xtradb/row/row0merge.cc index 8fc67cbff92..c5c2e992b6f 100644 --- a/storage/xtradb/row/row0merge.cc +++ b/storage/xtradb/row/row0merge.cc @@ -3536,11 +3536,7 @@ row_merge_create_index( /*===================*/ trx_t* trx, /*!< in/out: trx (sets error_state) */ dict_table_t* table, /*!< in: the index is on this table */ - const index_def_t* index_def, - /*!< in: the index definition */ - const char** col_names) - /*! in: column names if columns are - renamed or NULL */ + const index_def_t* index_def) /*!< in: the index definition */ { dict_index_t* index; dberr_t err; @@ -3560,28 +3556,10 @@ row_merge_create_index( for (i = 0; i < n_fields; i++) { index_field_t* ifield = &index_def->fields[i]; - const char * col_name; - - /* - Alter table renaming a column and then adding a index - to this new name e.g ALTER TABLE t - CHANGE COLUMN b c INT NOT NULL, ADD UNIQUE INDEX (c); - requires additional check as column names are not yet - changed when new index definitions are created. Table's - new column names are on a array of column name pointers - if any of the column names are changed. */ - - if (col_names && col_names[i]) { - col_name = col_names[i]; - } else { - col_name = ifield->col_name ? - dict_table_get_col_name_for_mysql(table, ifield->col_name) : - dict_table_get_col_name(table, ifield->col_no); - } dict_mem_index_add_field( index, - col_name, + dict_table_get_col_name(table, ifield->col_no), ifield->prefix_len); } From 9534c0451578db5562799e27bc2c7e9d61ec6900 Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Wed, 11 Oct 2017 01:08:14 +0530 Subject: [PATCH 038/128] Bug Fix Tests in galera_3nodes fails to start because galera_port , sst_port is not defined. --- mysql-test/suite/galera_3nodes/galera_3nodes.cnf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/suite/galera_3nodes/galera_3nodes.cnf b/mysql-test/suite/galera_3nodes/galera_3nodes.cnf index fe3bcb1e8ff..91aa53ad7b1 100644 --- a/mysql-test/suite/galera_3nodes/galera_3nodes.cnf +++ b/mysql-test/suite/galera_3nodes/galera_3nodes.cnf @@ -14,6 +14,9 @@ wsrep-causal-reads=ON wsrep-sync-wait=15 [mysqld.1] +#galera_port=@OPT.port +#ist_port=@OPT.port +#sst_port=@OPT.port wsrep-cluster-address='gcomm://' wsrep_provider_options='base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S' From b9418ed3332358e7209300739435c5e0aeb5ba70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 9 Oct 2017 13:32:40 +0300 Subject: [PATCH 039/128] MDEV-13676: Field "create Procedure" is NULL, even if the the user has role which is the definer. (SHOW CREATE PROCEDURE) During show create procedure we ommited to check the current role, if it is the actual definer of the procedure. In addition, we should support indirectly granted roles to the current role. Implemented a recursive lookup to search the tree of grants if the rolename is present. SQL Standard 2016, Part 5 Section 53 View I_S.ROUTINES selects ROUTINE_BODY and its WHERE clause says that the GRANTEE must be either PUBLIC, or CURRENT_USER or in the ENABLED_ROLES. --- mysql-test/suite/roles/definer.result | 114 ++++++++++++++++++++++++ mysql-test/suite/roles/definer.test | 122 ++++++++++++++++++++++++++ sql/sp_head.cc | 10 ++- sql/sql_acl.cc | 46 ++++++++++ sql/sql_acl.h | 8 ++ 5 files changed, 299 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/roles/definer.result b/mysql-test/suite/roles/definer.result index 0010853be78..f11b5565ffe 100644 --- a/mysql-test/suite/roles/definer.result +++ b/mysql-test/suite/roles/definer.result @@ -623,3 +623,117 @@ show grants for utest; Grants for utest GRANT SELECT ON *.* TO 'utest' drop role utest; +# +# MDEV-13676: Field "create Procedure" is NULL, even if the the user +# has role which is the definer. (SHOW CREATE PROCEDURE) +# +create database rtest; +create role r1; +create role r2; +create role r3; +grant all privileges on rtest.* to r1; +create user user1; +grant r1 to user1; +grant r1 to r2; +grant r2 to user1; +grant r3 to user1; +set role r2; +use rtest; +CREATE DEFINER=current_role() PROCEDURE user1_proc() SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END;// +set role r2; +show create procedure user1_proc; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +user1_proc CREATE DEFINER=`r2` PROCEDURE `user1_proc`() + SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END latin1 latin1_swedish_ci latin1_swedish_ci +# +# Currently one can not use as definer any role except CURRENT_ROLE +# +CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END;// +ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation +set role r1; +CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END;// +show create procedure user1_proc2; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +user1_proc2 CREATE DEFINER=`r1` PROCEDURE `user1_proc2`() + SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END latin1 latin1_swedish_ci latin1_swedish_ci +# +# Test to see if the user can still see the procedure code if the +# role that owns it is granted to him indirectly. +# +set role r2; +show create procedure user1_proc2; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +user1_proc2 CREATE DEFINER=`r1` PROCEDURE `user1_proc2`() + SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END latin1 latin1_swedish_ci latin1_swedish_ci +# +# One should not be able to see the procedure code if the role that owns +# the procedure is not set by the user or is not in the subgraph of the +# currently active role. +# +set role r3; +show create procedure user1_proc2; +ERROR 42000: PROCEDURE user1_proc2 does not exist +use rtest; +# +# Try a few edge cases, with usernames identical to role name; +# +create user user_like_role; +create user foo; +create role user_like_role; +grant select on rtest.* to user_like_role; +grant select on rtest.* to foo; +grant select on rtest.* to user_like_role@'%'; +grant user_like_role to foo; +# +# Here we have a procedure that is owned by user_like_role USER +# We don't want user_like_role ROLE to have access to its code. +# +CREATE DEFINER=`user_like_role`@`%` PROCEDURE sensitive_proc() SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END;// +use rtest; +show create procedure sensitive_proc; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +sensitive_proc CREATE DEFINER=`user_like_role`@`%` PROCEDURE `sensitive_proc`() + SQL SECURITY INVOKER +BEGIN +SELECT NOW(), VERSION(); +END latin1 latin1_swedish_ci latin1_swedish_ci +set role user_like_role; +use rtest; +# +# Foo has the set rolename identical to the procedure's definer's username. +# Foo should not have access to this procedure. +# +show create procedure sensitive_proc; +ERROR 42000: PROCEDURE sensitive_proc does not exist +drop role r1; +drop role r2; +drop role r3; +drop role user_like_role; +drop user user1; +drop user foo; +drop user user_like_role; +drop procedure user1_proc; +drop procedure user1_proc2; +drop procedure sensitive_proc; +drop database rtest; diff --git a/mysql-test/suite/roles/definer.test b/mysql-test/suite/roles/definer.test index 3c069105c8c..1a8be78fea8 100644 --- a/mysql-test/suite/roles/definer.test +++ b/mysql-test/suite/roles/definer.test @@ -329,3 +329,125 @@ execute stmt1; show grants for utest; drop role utest; +--echo # +--echo # MDEV-13676: Field "create Procedure" is NULL, even if the the user +--echo # has role which is the definer. (SHOW CREATE PROCEDURE) +--echo # + +create database rtest; +create role r1; +create role r2; +create role r3; +grant all privileges on rtest.* to r1; + +create user user1; +grant r1 to user1; +grant r1 to r2; +grant r2 to user1; +grant r3 to user1; + +connect (user1, localhost,user1,,,,,); +set role r2; +use rtest; + +DELIMITER //; +CREATE DEFINER=current_role() PROCEDURE user1_proc() SQL SECURITY INVOKER + BEGIN + SELECT NOW(), VERSION(); + END;// +DELIMITER ;// + +set role r2; +show create procedure user1_proc; + +--echo # +--echo # Currently one can not use as definer any role except CURRENT_ROLE +--echo # +DELIMITER //; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER + BEGIN + SELECT NOW(), VERSION(); + END;// +DELIMITER ;// + +set role r1; +DELIMITER //; +CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER + BEGIN + SELECT NOW(), VERSION(); + END;// +DELIMITER ;// + +show create procedure user1_proc2; +--echo # +--echo # Test to see if the user can still see the procedure code if the +--echo # role that owns it is granted to him indirectly. +--echo # +set role r2; +show create procedure user1_proc2; + +--echo # +--echo # One should not be able to see the procedure code if the role that owns +--echo # the procedure is not set by the user or is not in the subgraph of the +--echo # currently active role. +--echo # +set role r3; +--error ER_SP_DOES_NOT_EXIST +show create procedure user1_proc2; + +connection default; + +use rtest; + +--echo # +--echo # Try a few edge cases, with usernames identical to role name; +--echo # + +create user user_like_role; +create user foo; +create role user_like_role; +grant select on rtest.* to user_like_role; +grant select on rtest.* to foo; +grant select on rtest.* to user_like_role@'%'; + +grant user_like_role to foo; + +--echo # +--echo # Here we have a procedure that is owned by user_like_role USER +--echo # We don't want user_like_role ROLE to have access to its code. +--echo # +DELIMITER //; +CREATE DEFINER=`user_like_role`@`%` PROCEDURE sensitive_proc() SQL SECURITY INVOKER + BEGIN + SELECT NOW(), VERSION(); + END;// +DELIMITER ;// + +connect (user_like_role, localhost, user_like_role,,,,,); +use rtest; +show create procedure sensitive_proc; + +connect (foo, localhost, foo,,,,,); +set role user_like_role; +use rtest; + +--echo # +--echo # Foo has the set rolename identical to the procedure's definer's username. +--echo # Foo should not have access to this procedure. +--echo # +--error ER_SP_DOES_NOT_EXIST +show create procedure sensitive_proc; + +connection default; +drop role r1; +drop role r2; +drop role r3; +drop role user_like_role; +drop user user1; +drop user foo; +drop user user_like_role; +drop procedure user1_proc; +drop procedure user1_proc2; +drop procedure sensitive_proc; +drop database rtest; diff --git a/sql/sp_head.cc b/sql/sp_head.cc index ea9e1c1c822..3dd1a65ff83 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -2588,10 +2588,18 @@ bool check_show_routine_access(THD *thd, sp_head *sp, bool *full_access) *full_access= ((!check_table_access(thd, SELECT_ACL, &tables, FALSE, 1, TRUE) && (tables.grant.privilege & SELECT_ACL) != 0) || + /* Check if user owns the routine. */ (!strcmp(sp->m_definer_user.str, thd->security_ctx->priv_user) && !strcmp(sp->m_definer_host.str, - thd->security_ctx->priv_host))); + thd->security_ctx->priv_host)) || + /* Check if current role or any of the sub-granted roles + own the routine. */ + (sp->m_definer_host.length == 0 && + (!strcmp(sp->m_definer_user.str, + thd->security_ctx->priv_role) || + check_role_is_granted(thd->security_ctx->priv_role, NULL, + sp->m_definer_user.str)))); if (!*full_access) return check_some_routine_access(thd, sp->m_db.str, sp->m_name.str, sp->m_type == TYPE_ENUM_PROCEDURE); diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index c7e47c84db0..8de6bb920a9 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -8253,6 +8253,52 @@ void get_mqh(const char *user, const char *host, USER_CONN *uc) mysql_mutex_unlock(&acl_cache->lock); } +static int check_role_is_granted_callback(ACL_USER_BASE *grantee, void *data) +{ + LEX_CSTRING *rolename= static_cast(data); + if (rolename->length == grantee->user.length && + !strcmp(rolename->str, grantee->user.str)) + return -1; // End search, we've found our role. + + /* Keep looking, we haven't found our role yet. */ + return 0; +} + +/* Check if a role is granted to a user/role. We traverse the role graph + and return true if we find a match. + + hostname == NULL means we are looking for a role as a starting point, + otherwise a user. +*/ +bool check_role_is_granted(const char *username, + const char *hostname, + const char *rolename) +{ + DBUG_ENTER("check_role_is_granted"); + ACL_USER_BASE *root; + bool result= false; + mysql_mutex_lock(&acl_cache->lock); + if (hostname) + root= find_user_exact(username, hostname); + else + root= find_acl_role(username); + + LEX_CSTRING role_lex; + role_lex.str= rolename; + role_lex.length= strlen(rolename); + + if (root && /* No grantee, nothing to search. */ + traverse_role_graph_down(root, &role_lex, check_role_is_granted_callback, + NULL) == -1) + { + /* We have found the role during our search. */ + result= true; + } + + /* We haven't found the role or we had no initial grantee to start from. */ + mysql_mutex_unlock(&acl_cache->lock); + DBUG_RETURN(result); +} /* Open the grant tables. diff --git a/sql/sql_acl.h b/sql/sql_acl.h index 1aeb123153e..aeaa00856ac 100644 --- a/sql/sql_acl.h +++ b/sql/sql_acl.h @@ -402,6 +402,14 @@ bool acl_check_proxy_grant_access (THD *thd, const char *host, const char *user, int acl_setrole(THD *thd, char *rolename, ulonglong access); int acl_check_setrole(THD *thd, char *rolename, ulonglong *access); +/* Check if a role is granted to a user/role. + + If hostname == NULL, search for a role as the starting grantee. +*/ +bool check_role_is_granted(const char *username, + const char *hostname, + const char *rolename); + #ifndef DBUG_OFF extern ulong role_global_merges, role_db_merges, role_table_merges, role_column_merges, role_routine_merges; From 991b9ee73597ba7287267207b3918e157e346899 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Fri, 13 Oct 2017 07:06:09 +0400 Subject: [PATCH 040/128] MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 --- mysql-test/r/ctype_ucs.result | 22 ++++++ mysql-test/r/ctype_utf32.result | 15 ++++ mysql-test/r/ctype_utf8.result | 22 ++++++ mysql-test/r/errors.result | 2 +- mysql-test/r/myisam.result | 9 ++- mysql-test/r/partition_datatype.result | 8 ++- mysql-test/r/show_check.result | 4 +- mysql-test/r/strict.result | 4 +- mysql-test/r/type_blob.result | 2 +- mysql-test/r/type_varchar.result | 69 +++++++++++++++++++ mysql-test/suite/maria/maria.result | 9 ++- mysql-test/suite/maria/maria.test | 3 +- mysql-test/t/ctype_ucs.test | 16 +++++ mysql-test/t/ctype_utf32.test | 13 ++++ mysql-test/t/ctype_utf8.test | 16 +++++ mysql-test/t/myisam.test | 3 +- mysql-test/t/partition_datatype.test | 8 ++- mysql-test/t/type_varchar.test | 44 ++++++++++++ sql/sql_const.h | 13 +++- .../mysql-test/tokudb/r/type_blob.result | 2 +- 20 files changed, 266 insertions(+), 18 deletions(-) diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index d55d308c694..1bbd3af4af7 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -4375,5 +4375,27 @@ SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2)) Warnings: Warning 1292 Truncated incorrect time value: '77760000' # +# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +# +CREATE TABLE t1 (c1 VARCHAR(32766) CHARACTER SET ucs2); +DESCRIBE t1; +Field Type Null Key Default Extra +c1 varchar(32766) YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(32767) CHARACTER SET ucs2); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 text YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(32768) CHARACTER SET ucs2); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 mediumtext YES NULL +DROP TABLE t1; +# # End of 5.5 tests # diff --git a/mysql-test/r/ctype_utf32.result b/mysql-test/r/ctype_utf32.result index 9b062f9480f..02683bc66e6 100644 --- a/mysql-test/r/ctype_utf32.result +++ b/mysql-test/r/ctype_utf32.result @@ -1283,5 +1283,20 @@ NO_ENGINE_SUBSTITUTION SET sql_mode=DEFAULT; SET NAMES utf8; # +# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +# +CREATE TABLE t1 (c1 VARCHAR(16383) CHARACTER SET utf32); +DESCRIBE t1; +Field Type Null Key Default Extra +c1 varchar(16383) YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(16384) CHARACTER SET utf32); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 mediumtext YES NULL +DROP TABLE t1; +# # End of 5.5 tests # diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 74fed6a3162..fee27ef177f 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -5933,5 +5933,27 @@ Warnings: SET sql_mode=DEFAULT; DROP TABLE t1; # +# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +# +CREATE TABLE t1 (c1 VARCHAR(21844) CHARACTER SET utf8); +DESCRIBE t1; +Field Type Null Key Default Extra +c1 varchar(21844) YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(21845) CHARACTER SET utf8); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 text YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(21846) CHARACTER SET utf8); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 mediumtext YES NULL +DROP TABLE t1; +# # End of 5.5 tests # diff --git a/mysql-test/r/errors.result b/mysql-test/r/errors.result index 23c77d3978c..d71759cb128 100644 --- a/mysql-test/r/errors.result +++ b/mysql-test/r/errors.result @@ -27,7 +27,7 @@ create table t1 (a int(256)); ERROR 42000: Display width out of range for 'a' (max = 255) set sql_mode='traditional'; create table t1 (a varchar(66000)); -ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead +ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead set sql_mode=default; CREATE TABLE t1 (a INT); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 85af643387e..81a2001c28c 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1697,7 +1697,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (v varchar(65535)); -ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs +Warnings: +Note 1246 Converting column 'v' from VARCHAR to TEXT +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `v` text +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +drop table t1; set storage_engine=MyISAM; set @save_concurrent_insert=@@concurrent_insert; set global concurrent_insert=1; diff --git a/mysql-test/r/partition_datatype.result b/mysql-test/r/partition_datatype.result index 1151a1cb1fe..879b603c5ad 100644 --- a/mysql-test/r/partition_datatype.result +++ b/mysql-test/r/partition_datatype.result @@ -314,12 +314,14 @@ bbbb drop table t1; create table t1 (a varchar(3070)) partition by key (a); ERROR HY000: The total length of the partitioning fields is too large +create table t1 (a varchar(65532) not null) partition by key (a); +ERROR HY000: The total length of the partitioning fields is too large create table t1 (a varchar(65533)) partition by key (a); -ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs +ERROR HY000: A BLOB field is not allowed in partition function create table t1 (a varchar(65534) not null) partition by key (a); -ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs +ERROR HY000: A BLOB field is not allowed in partition function create table t1 (a varchar(65535)) partition by key (a); -ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs +ERROR HY000: A BLOB field is not allowed in partition function create table t1 (a bit(27), primary key (a)) engine=myisam partition by hash (a) (partition p0, partition p1, partition p2); diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result index 0e4cf6c6775..8d4c3feb100 100644 --- a/mysql-test/r/show_check.result +++ b/mysql-test/r/show_check.result @@ -959,7 +959,7 @@ def information_schema COLUMNS COLUMNS TABLE_CATALOG TABLE_CATALOG 253 1536 3 N def information_schema COLUMNS COLUMNS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33 def information_schema COLUMNS COLUMNS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33 def information_schema COLUMNS COLUMNS COLUMN_NAME COLUMN_NAME 253 192 1 N 1 0 33 -def information_schema COLUMNS COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589815 0 Y 16 0 33 +def information_schema COLUMNS COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589788 0 Y 16 0 33 def information_schema COLUMNS COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 1 0 33 def information_schema COLUMNS COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 1 0 33 def information_schema COLUMNS COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 96 0 Y 0 0 33 @@ -984,7 +984,7 @@ def information_schema COLUMNS COLUMNS COLUMN_NAME Field 253 192 1 N 1 0 33 def information_schema COLUMNS COLUMNS COLUMN_TYPE Type 252 589815 7 N 17 0 33 def information_schema COLUMNS COLUMNS IS_NULLABLE Null 253 9 2 N 1 0 33 def information_schema COLUMNS COLUMNS COLUMN_KEY Key 253 9 3 N 1 0 33 -def information_schema COLUMNS COLUMNS COLUMN_DEFAULT Default 252 589815 0 Y 16 0 33 +def information_schema COLUMNS COLUMNS COLUMN_DEFAULT Default 252 589788 0 Y 16 0 33 def information_schema COLUMNS COLUMNS EXTRA Extra 253 81 0 N 1 0 33 Field Type Null Key Default Extra c int(11) NO PRI NULL diff --git a/mysql-test/r/strict.result b/mysql-test/r/strict.result index da3c658b5a4..a3262ca5caa 100644 --- a/mysql-test/r/strict.result +++ b/mysql-test/r/strict.result @@ -1240,9 +1240,9 @@ Warning 1364 Field 'i' doesn't have a default value DROP TABLE t1; set @@sql_mode='traditional'; create table t1(a varchar(65537)); -ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead +ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead create table t1(a varbinary(65537)); -ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead +ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead set @@sql_mode='traditional'; create table t1(a int, b date not null); alter table t1 modify a bigint unsigned not null; diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result index f49b2a7d5ef..9b20ddeb1df 100644 --- a/mysql-test/r/type_blob.result +++ b/mysql-test/r/type_blob.result @@ -37,7 +37,7 @@ ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT CREATE TABLE t2 (a char(256)); ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead CREATE TABLE t1 (a varchar(70000) default "hello"); -ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead +ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead CREATE TABLE t2 (a blob default "hello"); ERROR 42000: BLOB/TEXT column 'a' can't have a default value drop table if exists t1,t2; diff --git a/mysql-test/r/type_varchar.result b/mysql-test/r/type_varchar.result index 38ed8a47339..0ab13be113e 100644 --- a/mysql-test/r/type_varchar.result +++ b/mysql-test/r/type_varchar.result @@ -510,3 +510,72 @@ SELECT 5 = a FROM t1; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 's ' DROP TABLE t1; +# +# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +# +CREATE TABLE t1 (c1 VARBINARY(65532)); +DESCRIBE t1; +Field Type Null Key Default Extra +c1 varbinary(65532) YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARBINARY(65533)); +Warnings: +Note 1246 Converting column 'c1' from VARBINARY to BLOB +DESCRIBE t1; +Field Type Null Key Default Extra +c1 blob YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARBINARY(65534)); +Warnings: +Note 1246 Converting column 'c1' from VARBINARY to BLOB +DESCRIBE t1; +Field Type Null Key Default Extra +c1 blob YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARBINARY(65535)); +Warnings: +Note 1246 Converting column 'c1' from VARBINARY to BLOB +DESCRIBE t1; +Field Type Null Key Default Extra +c1 blob YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARBINARY(65536)); +Warnings: +Note 1246 Converting column 'c1' from VARBINARY to BLOB +DESCRIBE t1; +Field Type Null Key Default Extra +c1 mediumblob YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(65532)); +DESCRIBE t1; +Field Type Null Key Default Extra +c1 varchar(65532) YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(65533)); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 text YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(65534)); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 text YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(65535)); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 text YES NULL +DROP TABLE t1; +CREATE TABLE t1 (c1 VARCHAR(65536)); +Warnings: +Note 1246 Converting column 'c1' from VARCHAR to TEXT +DESCRIBE t1; +Field Type Null Key Default Extra +c1 mediumtext YES NULL +DROP TABLE t1; diff --git a/mysql-test/suite/maria/maria.result b/mysql-test/suite/maria/maria.result index 0de42a9e7fe..890f6bbfaf5 100644 --- a/mysql-test/suite/maria/maria.result +++ b/mysql-test/suite/maria/maria.result @@ -1586,7 +1586,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (v varchar(65535)); -ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs +Warnings: +Note 1246 Converting column 'v' from VARCHAR to TEXT +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `v` text +) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +drop table t1; set @save_concurrent_insert=@@concurrent_insert; set global concurrent_insert=1; create table t1 (a int) ROW_FORMAT=FIXED; diff --git a/mysql-test/suite/maria/maria.test b/mysql-test/suite/maria/maria.test index 3fa7d755fe4..b6a3e2784b6 100644 --- a/mysql-test/suite/maria/maria.test +++ b/mysql-test/suite/maria/maria.test @@ -924,8 +924,9 @@ show create table t1; drop table t1; # ARIA specific varchar tests ---error 1118 create table t1 (v varchar(65535)); +show create table t1; +drop table t1; # # Test concurrent insert diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index 62890d0cd1b..b3d0be4432f 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -868,6 +868,22 @@ SET NAMES utf8; SELECT SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2)); +--echo # +--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +--echo # + +CREATE TABLE t1 (c1 VARCHAR(32766) CHARACTER SET ucs2); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(32767) CHARACTER SET ucs2); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(32768) CHARACTER SET ucs2); +DESCRIBE t1; +DROP TABLE t1; + --echo # --echo # End of 5.5 tests diff --git a/mysql-test/t/ctype_utf32.test b/mysql-test/t/ctype_utf32.test index 2b3d3b3bdc5..fced2838273 100644 --- a/mysql-test/t/ctype_utf32.test +++ b/mysql-test/t/ctype_utf32.test @@ -890,6 +890,19 @@ SELECT @@sql_mode; SET sql_mode=DEFAULT; SET NAMES utf8; +--echo # +--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +--echo # + +CREATE TABLE t1 (c1 VARCHAR(16383) CHARACTER SET utf32); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(16384) CHARACTER SET utf32); +DESCRIBE t1; +DROP TABLE t1; + + --echo # --echo # End of 5.5 tests --echo # diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index 75581ede8fa..592e3a3b662 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -1695,6 +1695,22 @@ SELECT CHAR(i USING utf8) FROM t1; SET sql_mode=DEFAULT; DROP TABLE t1; +--echo # +--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +--echo # + +CREATE TABLE t1 (c1 VARCHAR(21844) CHARACTER SET utf8); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(21845) CHARACTER SET utf8); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(21846) CHARACTER SET utf8); +DESCRIBE t1; +DROP TABLE t1; + --echo # --echo # End of 5.5 tests --echo # diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index 43c12b42bc9..c4bb93b6bfe 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -1030,8 +1030,9 @@ show create table t1; drop table t1; # MyISAM specific varchar tests ---error 1118 create table t1 (v varchar(65535)); +show create table t1; +drop table t1; eval set storage_engine=$default; diff --git a/mysql-test/t/partition_datatype.test b/mysql-test/t/partition_datatype.test index a6035fcb592..4ec0232718e 100644 --- a/mysql-test/t/partition_datatype.test +++ b/mysql-test/t/partition_datatype.test @@ -217,11 +217,13 @@ select * from t1 where a = 'bbbb'; drop table t1; -- error ER_PARTITION_FIELDS_TOO_LONG create table t1 (a varchar(3070)) partition by key (a); --- error ER_TOO_BIG_ROWSIZE +-- error ER_PARTITION_FIELDS_TOO_LONG +create table t1 (a varchar(65532) not null) partition by key (a); +-- error ER_BLOB_FIELD_IN_PART_FUNC_ERROR create table t1 (a varchar(65533)) partition by key (a); --- error ER_TOO_BIG_ROWSIZE +-- error ER_BLOB_FIELD_IN_PART_FUNC_ERROR create table t1 (a varchar(65534) not null) partition by key (a); --- error ER_TOO_BIG_ROWSIZE +-- error ER_BLOB_FIELD_IN_PART_FUNC_ERROR create table t1 (a varchar(65535)) partition by key (a); # diff --git a/mysql-test/t/type_varchar.test b/mysql-test/t/type_varchar.test index 33b84266118..ed8218208c3 100644 --- a/mysql-test/t/type_varchar.test +++ b/mysql-test/t/type_varchar.test @@ -217,3 +217,47 @@ CREATE TABLE t1 (a CHAR(16)); INSERT INTO t1 VALUES ('5'), ('s'), (''); SELECT 5 = a FROM t1; DROP TABLE t1; + +--echo # +--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535 +--echo # + +CREATE TABLE t1 (c1 VARBINARY(65532)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARBINARY(65533)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARBINARY(65534)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARBINARY(65535)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARBINARY(65536)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(65532)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(65533)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(65534)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(65535)); +DESCRIBE t1; +DROP TABLE t1; + +CREATE TABLE t1 (c1 VARCHAR(65536)); +DESCRIBE t1; +DROP TABLE t1; diff --git a/sql/sql_const.h b/sql/sql_const.h index abe2a496045..e8385b537a8 100644 --- a/sql/sql_const.h +++ b/sql/sql_const.h @@ -41,7 +41,18 @@ #define MAX_MBWIDTH 3 /* Max multibyte sequence */ #define MAX_FIELD_CHARLENGTH 255 -#define MAX_FIELD_VARCHARLENGTH 65535 +/* + In MAX_FIELD_VARCHARLENGTH we reserve extra bytes for the overhead: + - 2 bytes for the length + - 1 byte for NULL bits + to avoid the "Row size too large" error for these three corner definitions: + CREATE TABLE t1 (c VARBINARY(65533)); + CREATE TABLE t1 (c VARBINARY(65534)); + CREATE TABLE t1 (c VARBINARY(65535)); + Like VARCHAR(65536), they will be converted to BLOB automatically + in non-sctict mode. +*/ +#define MAX_FIELD_VARCHARLENGTH (65535-2-1) #define MAX_FIELD_BLOBLENGTH UINT_MAX32 /* cf field_blob::get_length() */ #define CONVERT_IF_BIGGER_TO_BLOB 512 /* Threshold *in characters* */ diff --git a/storage/tokudb/mysql-test/tokudb/r/type_blob.result b/storage/tokudb/mysql-test/tokudb/r/type_blob.result index 2c8ba56fe0f..2c4e364f3b7 100644 --- a/storage/tokudb/mysql-test/tokudb/r/type_blob.result +++ b/storage/tokudb/mysql-test/tokudb/r/type_blob.result @@ -38,7 +38,7 @@ ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT CREATE TABLE t2 (a char(256)); ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead CREATE TABLE t1 (a varchar(70000) default "hello"); -ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead +ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead CREATE TABLE t2 (a blob default "hello"); ERROR 42000: BLOB/TEXT column 'a' can't have a default value drop table if exists t1,t2; From a4868c3509772da1666eb3d492515e7d39f8834d Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Mon, 19 Dec 2016 22:03:28 +0100 Subject: [PATCH 041/128] MDEV-9208: Function->Function->View = Mysqld segfault (Server crashes in Dependency_marker::visit_field on 2nd execution with merged subquery) Prevent crossing name resolution border in finding item tables. --- mysql-test/r/ps.result | 30 ++++++++++++++++++++++++++++++ mysql-test/t/ps.test | 26 ++++++++++++++++++++++++++ sql/item.cc | 6 +++++- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index f954583a097..e2c0d6567ac 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -4173,4 +4173,34 @@ Warnings: Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`c` AS `c` from `test`.`t1` where 0 deallocate prepare stmt2; drop table t1; +# +# MDEV-9208: Function->Function->View = Mysqld segfault +# (Server crashes in Dependency_marker::visit_field on 2nd +# execution with merged subquery) +# +CREATE TABLE t1 (i1 INT); +insert into t1 values(1),(2); +CREATE TABLE t2 (i2 INT); +insert into t2 values(1),(2); +prepare stmt from " + select 1 from ( + select + if (i1<0, 0, 0) as f1, + (select f1) as f2 + from t1, t2 + ) sq +"; +execute stmt; +1 +1 +1 +1 +1 +execute stmt; +1 +1 +1 +1 +1 +drop table t1,t2; # End of 5.5 tests diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index cfd810fd625..dac0bbd4d29 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -3714,4 +3714,30 @@ deallocate prepare stmt2; drop table t1; +--echo # +--echo # MDEV-9208: Function->Function->View = Mysqld segfault +--echo # (Server crashes in Dependency_marker::visit_field on 2nd +--echo # execution with merged subquery) +--echo # + +CREATE TABLE t1 (i1 INT); +insert into t1 values(1),(2); + +CREATE TABLE t2 (i2 INT); +insert into t2 values(1),(2); + +prepare stmt from " + select 1 from ( + select + if (i1<0, 0, 0) as f1, + (select f1) as f2 + from t1, t2 + ) sq +"; + +execute stmt; +execute stmt; + +drop table t1,t2; + --echo # End of 5.5 tests diff --git a/sql/item.cc b/sql/item.cc index fdfbba31404..3100a4e3408 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -6876,7 +6876,11 @@ public: // Find which select the field is in. This is achieved by walking up // the select tree and looking for the table of interest. st_select_lex *sel; - for (sel= current_select; sel; sel= sel->outer_select()) + for (sel= current_select; + sel ; + sel= (sel->context.outer_context ? + sel->context.outer_context->select_lex: + NULL)) { List_iterator li(sel->leaf_tables); TABLE_LIST *tbl; From 8be76a6a907ab858b4fdb5d525548aedfdb4ddf3 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Thu, 12 Oct 2017 13:30:02 +0400 Subject: [PATCH 042/128] MDEV-10892 - rpl.rpl_semi_sync_uninstall_plugin fails with Assertion `0' failure in buildbot Removed plugin_array_version: it is being checked without mutex protection and thus is prone to data race and race conditions. In effect plugins are not protected from concurrent destruction. Removed state_mask inversion: doesn't seem to make any sense. When collecting local plugins list, only add plugins that match state_mask. Use plugin ref counting to protect against concurrent plugin destruction. --- sql/sql_plugin.cc | 57 +++++++++++++++++++---------------------------- sql/sql_show.cc | 5 +++-- 2 files changed, 26 insertions(+), 36 deletions(-) diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 75aca02990d..9eecd6a1345 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -194,7 +194,6 @@ static DYNAMIC_ARRAY plugin_array; static HASH plugin_hash[MYSQL_MAX_PLUGIN_TYPE_NUM]; static MEM_ROOT plugin_mem_root; static bool reap_needed= false; -static int plugin_array_version=0; static bool initialized= 0; @@ -312,7 +311,6 @@ static void plugin_vars_free_values(sys_var *vars); static void restore_pluginvar_names(sys_var *first); static void plugin_opt_set_limits(struct my_option *, const struct st_mysql_sys_var *); -static plugin_ref intern_plugin_lock(LEX *lex, plugin_ref plugin); static void intern_plugin_unlock(LEX *lex, plugin_ref plugin); static void reap_plugins(void); @@ -924,14 +922,16 @@ SHOW_COMP_OPTION plugin_status(const char *name, size_t len, int type) } -static plugin_ref intern_plugin_lock(LEX *lex, plugin_ref rc) +static plugin_ref intern_plugin_lock(LEX *lex, plugin_ref rc, + uint state_mask= PLUGIN_IS_READY | + PLUGIN_IS_UNINITIALIZED) { st_plugin_int *pi= plugin_ref_to_int(rc); DBUG_ENTER("intern_plugin_lock"); mysql_mutex_assert_owner(&LOCK_plugin); - if (pi->state & (PLUGIN_IS_READY | PLUGIN_IS_UNINITIALIZED)) + if (pi->state & state_mask) { plugin_ref plugin; #ifdef DBUG_OFF @@ -1111,7 +1111,6 @@ static bool plugin_add(MEM_ROOT *tmp_root, if (!(tmp_plugin_ptr= plugin_insert_or_reuse(&tmp))) goto err; - plugin_array_version++; if (my_hash_insert(&plugin_hash[plugin->type], (uchar*)tmp_plugin_ptr)) tmp_plugin_ptr->state= PLUGIN_IS_FREED; init_alloc_root(&tmp_plugin_ptr->mem_root, 4096, 4096); @@ -1210,7 +1209,6 @@ static void plugin_del(struct st_plugin_int *plugin) if (plugin->plugin_dl) plugin_dl_del(&plugin->plugin_dl->dl); plugin->state= PLUGIN_IS_FREED; - plugin_array_version++; free_root(&plugin->mem_root, MYF(0)); DBUG_VOID_RETURN; } @@ -2297,64 +2295,55 @@ bool mysql_uninstall_plugin(THD *thd, const LEX_STRING *name, bool plugin_foreach_with_mask(THD *thd, plugin_foreach_func *func, int type, uint state_mask, void *arg) { - uint idx, total; - struct st_plugin_int *plugin, **plugins; - int version=plugin_array_version; + uint idx, total= 0; + struct st_plugin_int *plugin; + plugin_ref *plugins; + my_bool res= FALSE; DBUG_ENTER("plugin_foreach_with_mask"); if (!initialized) DBUG_RETURN(FALSE); - state_mask= ~state_mask; // do it only once - mysql_mutex_lock(&LOCK_plugin); - total= type == MYSQL_ANY_PLUGIN ? plugin_array.elements - : plugin_hash[type].records; /* Do the alloca out here in case we do have a working alloca: - leaving the nested stack frame invalidates alloca allocation. + leaving the nested stack frame invalidates alloca allocation. */ - plugins=(struct st_plugin_int **)my_alloca(total*sizeof(plugin)); if (type == MYSQL_ANY_PLUGIN) { - for (idx= 0; idx < total; idx++) + plugins= (plugin_ref*) my_alloca(plugin_array.elements * sizeof(plugin_ref)); + for (idx= 0; idx < plugin_array.elements; idx++) { plugin= *dynamic_element(&plugin_array, idx, struct st_plugin_int **); - plugins[idx]= !(plugin->state & state_mask) ? plugin : NULL; + if ((plugins[total]= intern_plugin_lock(0, plugin_int_to_ref(plugin), + state_mask))) + total++; } } else { HASH *hash= plugin_hash + type; - for (idx= 0; idx < total; idx++) + plugins= (plugin_ref*) my_alloca(hash->records * sizeof(plugin_ref)); + for (idx= 0; idx < hash->records; idx++) { plugin= (struct st_plugin_int *) my_hash_element(hash, idx); - plugins[idx]= !(plugin->state & state_mask) ? plugin : NULL; + if ((plugins[total]= intern_plugin_lock(0, plugin_int_to_ref(plugin), + state_mask))) + total++; } } mysql_mutex_unlock(&LOCK_plugin); for (idx= 0; idx < total; idx++) { - if (unlikely(version != plugin_array_version)) - { - mysql_mutex_lock(&LOCK_plugin); - for (uint i=idx; i < total; i++) - if (plugins[i] && plugins[i]->state & state_mask) - plugins[i]=0; - mysql_mutex_unlock(&LOCK_plugin); - } - plugin= plugins[idx]; /* It will stop iterating on first engine error when "func" returns TRUE */ - if (plugin && func(thd, plugin_int_to_ref(plugin), arg)) - goto err; + if ((res= func(thd, plugins[idx], arg))) + break; } + plugin_unlock_list(0, plugins, total); my_afree(plugins); - DBUG_RETURN(FALSE); -err: - my_afree(plugins); - DBUG_RETURN(TRUE); + DBUG_RETURN(res); } diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 6e045648591..512548b1d51 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -262,7 +262,7 @@ int fill_plugins(THD *thd, TABLE_LIST *tables, COND *cond) TABLE *table= tables->table; if (plugin_foreach_with_mask(thd, show_plugins, MYSQL_ANY_PLUGIN, - ~PLUGIN_IS_FREED, table)) + ~(PLUGIN_IS_FREED | PLUGIN_IS_DYING), table)) DBUG_RETURN(1); DBUG_RETURN(0); @@ -5294,7 +5294,8 @@ int fill_schema_engines(THD *thd, TABLE_LIST *tables, COND *cond) DBUG_ENTER("fill_schema_engines"); if (plugin_foreach_with_mask(thd, iter_schema_engines, MYSQL_STORAGE_ENGINE_PLUGIN, - ~PLUGIN_IS_FREED, tables->table)) + ~(PLUGIN_IS_FREED | PLUGIN_IS_DYING), + tables->table)) DBUG_RETURN(1); DBUG_RETURN(0); } From 2bab29ebba7a641d43a98737fd1c160971357cd4 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 13 Oct 2017 07:24:35 -0700 Subject: [PATCH 043/128] Fixed the bug mdev-13135. For each SELECT the list sj_nests is built by the function simplify_joins() when scanning different join nests. This function may be called several times for the same join nest. That's why before adding a new member to sj_nests it is necessary to check if it's already in the list. The code of simplify_joins() lacked this check and as a result it could cause memory overwright for some queries. --- mysql-test/r/subselect_mat_cost_bugs.result | 17 +++++++++++++++++ mysql-test/t/subselect_mat_cost_bugs.test | 19 +++++++++++++++++++ sql/sql_select.cc | 21 +++++++++++++++++---- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/subselect_mat_cost_bugs.result b/mysql-test/r/subselect_mat_cost_bugs.result index 57b0526c6a3..df6b543bab8 100644 --- a/mysql-test/r/subselect_mat_cost_bugs.result +++ b/mysql-test/r/subselect_mat_cost_bugs.result @@ -502,3 +502,20 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 index idx idx 5 NULL 5 Using where; Using index 2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away drop table t1; +# +# MDEV-13135: subquery with ON expression subject to +# semi-join optimizations +# +CREATE TABLE t1 (a INT); +CREATE ALGORITHM=MERGE VIEW v1 AS SELECT a AS v_a FROM t1; +INSERT INTO t1 VALUES (1),(3); +CREATE TABLE t2 (b INT, KEY(b)); +INSERT INTO t2 VALUES (3),(4); +SELECT * FROM t1 WHERE a NOT IN ( +SELECT b FROM t2 INNER JOIN v1 ON (b IN ( SELECT a FROM t1 )) +WHERE v_a = b +); +a +1 +DROP VIEW v1; +DROP TABLE t1,t2; diff --git a/mysql-test/t/subselect_mat_cost_bugs.test b/mysql-test/t/subselect_mat_cost_bugs.test index 35f2b9588fe..67af6e3a54a 100644 --- a/mysql-test/t/subselect_mat_cost_bugs.test +++ b/mysql-test/t/subselect_mat_cost_bugs.test @@ -522,4 +522,23 @@ select * from t1 where a in (select max(a) from t1 where a < 4) or a > 5; drop table t1; +--echo # +--echo # MDEV-13135: subquery with ON expression subject to +--echo # semi-join optimizations +--echo # + +CREATE TABLE t1 (a INT); +CREATE ALGORITHM=MERGE VIEW v1 AS SELECT a AS v_a FROM t1; +INSERT INTO t1 VALUES (1),(3); + +CREATE TABLE t2 (b INT, KEY(b)); +INSERT INTO t2 VALUES (3),(4); + +SELECT * FROM t1 WHERE a NOT IN ( + SELECT b FROM t2 INNER JOIN v1 ON (b IN ( SELECT a FROM t1 )) + WHERE v_a = b +); + +DROP VIEW v1; +DROP TABLE t1,t2; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 720c0a22681..6e67bb11015 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13349,10 +13349,23 @@ simplify_joins(JOIN *join, List *join_list, COND *conds, bool top, nested_join= table->nested_join; if (table->sj_on_expr && !in_sj) { - /* - If this is a semi-join that is not contained within another semi-join, - leave it intact (otherwise it is flattened) - */ + /* + If this is a semi-join that is not contained within another semi-join + leave it intact (otherwise it is flattened) + */ + /* + Make sure that any semi-join appear in + the join->select_lex->sj_nests list only once + */ + List_iterator_fast sj_it(join->select_lex->sj_nests); + TABLE_LIST *sj_nest; + while ((sj_nest= sj_it++)) + { + if (table == sj_nest) + break; + } + if (sj_nest) + continue; join->select_lex->sj_nests.push_back(table); /* From 235b68299bc112f9cb7be97af8d01bf904919a6b Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Sat, 18 Feb 2017 17:47:31 +0100 Subject: [PATCH 044/128] MDEV-9619: Assertion `null_ref_table' failed in virtual table_map Item_direct_view_ref::used_tables() const on 2nd execution of PS Refer left expression indirectly in case it changes from execution to execution. --- mysql-test/r/ps.result | 113 +++++++++++++++++++++++++++++++++++++++++ mysql-test/t/ps.test | 103 +++++++++++++++++++++++++++++++++++++ sql/item_row.cc | 30 ++++++++++- sql/item_row.h | 1 + sql/item_subselect.cc | 6 +++ sql/opt_subselect.cc | 55 +++++++++++++++++--- sql/sql_base.cc | 7 ++- sql/sql_base.h | 5 +- sql/sql_do.cc | 2 +- sql/sql_insert.cc | 14 ++--- sql/sql_lex.h | 1 + sql/sql_load.cc | 10 ++-- sql/sql_prepare.cc | 9 ++-- sql/sql_select.cc | 2 +- sql/sql_update.cc | 4 +- sql/table.h | 3 +- 16 files changed, 332 insertions(+), 33 deletions(-) diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index e2c0d6567ac..3fed0a5b0d1 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -4203,4 +4203,117 @@ execute stmt; 1 1 drop table t1,t2; +# +# MDEV-9619: Assertion `null_ref_table' failed in virtual +# table_map Item_direct_view_ref::used_tables() const on 2nd +# execution of PS +# +CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM; +CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES ('a'),('b'); +CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM; +INSERT INTO t2 VALUES ('c'),('d'); +PREPARE stmt FROM "SELECT * FROM v1 WHERE f1 = SOME ( SELECT f2 FROM t2 )"; +EXECUTE stmt; +f1 +EXECUTE stmt; +f1 +insert into t1 values ('c'); +EXECUTE stmt; +f1 +c +EXECUTE stmt; +f1 +c +deallocate prepare stmt; +drop view v1; +drop table t1,t2; +CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM; +CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES ('a'),('b'); +CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM; +INSERT INTO t2 VALUES ('c'),('d'); +PREPARE stmt FROM "SELECT * FROM v1 WHERE (f1,f1) = SOME ( SELECT f2,f2 FROM t2 )"; +EXECUTE stmt; +f1 +EXECUTE stmt; +f1 +insert into t1 values ('c'); +EXECUTE stmt; +f1 +c +EXECUTE stmt; +f1 +c +deallocate prepare stmt; +drop view v1; +drop table t1,t2; +CREATE TABLE t1 (column1 INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (3),(9); +CREATE TABLE t2 (column2 INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (1),(4); +CREATE TABLE t3 (column3 INT) ENGINE=MyISAM; +INSERT INTO t3 VALUES (6),(8); +CREATE TABLE t4 (column4 INT) ENGINE=MyISAM; +INSERT INTO t4 VALUES (2),(5); +PREPARE stmt FROM " +SELECT ( + SELECT MAX( table1.column1 ) AS field1 + FROM t1 AS table1 + WHERE (111,table3.column3) IN ( SELECT 111,table2.column2 AS field2 FROM t2 AS table2 ) +) AS sq +FROM t3 AS table3, t4 AS table4 GROUP BY sq +"; +EXECUTE stmt; +sq +NULL +EXECUTE stmt; +sq +NULL +deallocate prepare stmt; +drop table t1,t2,t3,t4; +create table t1 (a int, b int, c int); +create table t2 (x int, y int, z int); +create table t3 as select * from t1; +insert into t1 values (1,2,3),(4,5,6),(100,200,300),(400,500,600); +insert into t2 values (1,2,3),(7,8,9),(100,200,300),(400,500,600); +insert into t3 values (1,2,3),(11,12,13),(100,0,0),(400,500,600); +set @optimizer_switch_save=@@optimizer_switch; +set @join_cache_level_save=@@join_cache_level; +set optimizer_switch='materialization=off'; +set join_cache_level=0; +select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z); +a b c +1 2 3 +400 500 600 +prepare stmt from "select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z)"; +EXECUTE stmt; +a b c +1 2 3 +400 500 600 +EXECUTE stmt; +a b c +1 2 3 +400 500 600 +create view v1 as select * from t1; +create view v2 as select * from t2; +create view v3 as select * from t3; +select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z); +a b c +1 2 3 +400 500 600 +prepare stmt from "select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z)"; +EXECUTE stmt; +a b c +1 2 3 +400 500 600 +EXECUTE stmt; +a b c +1 2 3 +400 500 600 +set optimizer_switch=@optimizer_switch_save; +set join_cache_level=@join_cache_level_save; +deallocate prepare stmt; +drop view v1,v2,v3; +drop table t1,t2,t3; # End of 5.5 tests diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index dac0bbd4d29..4431f722ae0 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -3740,4 +3740,107 @@ execute stmt; drop table t1,t2; +--echo # +--echo # MDEV-9619: Assertion `null_ref_table' failed in virtual +--echo # table_map Item_direct_view_ref::used_tables() const on 2nd +--echo # execution of PS +--echo # + +CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM; +CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES ('a'),('b'); + +CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM; +INSERT INTO t2 VALUES ('c'),('d'); + +PREPARE stmt FROM "SELECT * FROM v1 WHERE f1 = SOME ( SELECT f2 FROM t2 )"; +EXECUTE stmt; +EXECUTE stmt; +insert into t1 values ('c'); +EXECUTE stmt; +EXECUTE stmt; + +deallocate prepare stmt; +drop view v1; +drop table t1,t2; + +CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM; +CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES ('a'),('b'); + +CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM; +INSERT INTO t2 VALUES ('c'),('d'); + +PREPARE stmt FROM "SELECT * FROM v1 WHERE (f1,f1) = SOME ( SELECT f2,f2 FROM t2 )"; +EXECUTE stmt; +EXECUTE stmt; +insert into t1 values ('c'); +EXECUTE stmt; +EXECUTE stmt; + +deallocate prepare stmt; +drop view v1; +drop table t1,t2; + + + +CREATE TABLE t1 (column1 INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (3),(9); + +CREATE TABLE t2 (column2 INT) ENGINE=MyISAM; + +INSERT INTO t2 VALUES (1),(4); + +CREATE TABLE t3 (column3 INT) ENGINE=MyISAM; +INSERT INTO t3 VALUES (6),(8); + +CREATE TABLE t4 (column4 INT) ENGINE=MyISAM; +INSERT INTO t4 VALUES (2),(5); + +PREPARE stmt FROM " +SELECT ( + SELECT MAX( table1.column1 ) AS field1 + FROM t1 AS table1 + WHERE (111,table3.column3) IN ( SELECT 111,table2.column2 AS field2 FROM t2 AS table2 ) +) AS sq +FROM t3 AS table3, t4 AS table4 GROUP BY sq +"; + +EXECUTE stmt; +EXECUTE stmt; + +deallocate prepare stmt; +drop table t1,t2,t3,t4; + +create table t1 (a int, b int, c int); +create table t2 (x int, y int, z int); +create table t3 as select * from t1; +insert into t1 values (1,2,3),(4,5,6),(100,200,300),(400,500,600); +insert into t2 values (1,2,3),(7,8,9),(100,200,300),(400,500,600); +insert into t3 values (1,2,3),(11,12,13),(100,0,0),(400,500,600); + + +set @optimizer_switch_save=@@optimizer_switch; +set @join_cache_level_save=@@join_cache_level; +set optimizer_switch='materialization=off'; +set join_cache_level=0; +select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z); +prepare stmt from "select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z)"; +EXECUTE stmt; +EXECUTE stmt; + +create view v1 as select * from t1; +create view v2 as select * from t2; +create view v3 as select * from t3; +select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z); +prepare stmt from "select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z)"; +EXECUTE stmt; +EXECUTE stmt; +set optimizer_switch=@optimizer_switch_save; +set join_cache_level=@join_cache_level_save; + +deallocate prepare stmt; +drop view v1,v2,v3; +drop table t1,t2,t3; + --echo # End of 5.5 tests diff --git a/sql/item_row.cc b/sql/item_row.cc index ee1d17213ee..9e81c053b69 100644 --- a/sql/item_row.cc +++ b/sql/item_row.cc @@ -44,7 +44,14 @@ Item_row::Item_row(List &arg): //TODO: think placing 2-3 component items in item (as it done for function) if ((arg_count= arg.elements)) + { items= (Item**) sql_alloc(sizeof(Item*)*arg_count); + if (!items) + { + arg_count= 0; + return; + } + } else items= 0; List_iterator li(arg); @@ -53,7 +60,28 @@ Item_row::Item_row(List &arg): while ((item= li++)) { items[i]= item; - i++; + i++; + } +} + + +Item_row::Item_row(Item *item): + Item(), + used_tables_cache(0), + not_null_tables_cache(0), + arg_count(item->cols()), + const_item_cache(1), + with_null(0) +{ + items= (Item**) sql_alloc(sizeof(Item*) * arg_count); + if (!items) + { + arg_count= 0; + return; + } + for (uint i= 0; i < arg_count; i++) + { + items[i]= item->element_index(i); } } diff --git a/sql/item_row.h b/sql/item_row.h index aa56068f8ba..4d5c20711b5 100644 --- a/sql/item_row.h +++ b/sql/item_row.h @@ -35,6 +35,7 @@ public: const_item_cache(item->const_item_cache), with_null(0) {} + Item_row(Item *item); enum Type type() const { return ROW_ITEM; }; void illegal_method_call(const char *); diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index ef90dd59be3..90f2bd5b9eb 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1374,6 +1374,9 @@ Item_in_subselect::Item_in_subselect(Item * left_exp, { DBUG_ENTER("Item_in_subselect::Item_in_subselect"); left_expr_orig= left_expr= left_exp; + /* prepare to possible disassembling the item in convert_subq_to_sj() */ + if (left_exp->type() == Item::ROW_ITEM) + left_expr_orig= new Item_row(left_exp); func= &eq_creator; init(select_lex, new select_exists_subselect(this)); max_columns= UINT_MAX; @@ -1398,6 +1401,9 @@ Item_allany_subselect::Item_allany_subselect(Item * left_exp, { DBUG_ENTER("Item_allany_subselect::Item_allany_subselect"); left_expr_orig= left_expr= left_exp; + /* prepare to possible disassembling the item in convert_subq_to_sj() */ + if (left_exp->type() == Item::ROW_ITEM) + left_expr_orig= new Item_row(left_exp); func= func_creator(all_arg); init(select_lex, new select_exists_subselect(this)); max_columns= 1; diff --git a/sql/opt_subselect.cc b/sql/opt_subselect.cc index af1abb2001e..69a5367cdf1 100644 --- a/sql/opt_subselect.cc +++ b/sql/opt_subselect.cc @@ -1609,6 +1609,7 @@ static bool convert_subq_to_sj(JOIN *parent_join, Item_in_subselect *subq_pred) sj-nest. */ st_select_lex *subq_lex= subq_pred->unit->first_select(); + DBUG_ASSERT(subq_lex->next_select() == NULL); nested_join->join_list.empty(); List_iterator_fast li(subq_lex->top_join_list); TABLE_LIST *tl; @@ -1706,7 +1707,8 @@ static bool convert_subq_to_sj(JOIN *parent_join, Item_in_subselect *subq_pred) if (subq_pred->left_expr->cols() == 1) { - nested_join->sj_outer_expr_list.push_back(subq_pred->left_expr); + /* add left = select_list_element */ + nested_join->sj_outer_expr_list.push_back(&subq_pred->left_expr); /* Create Item_func_eq. Note that 1. this is done on the statement, not execution, arena @@ -1718,24 +1720,61 @@ static bool convert_subq_to_sj(JOIN *parent_join, Item_in_subselect *subq_pred) */ Item_func_eq *item_eq= new Item_func_eq(subq_pred->left_expr_orig, subq_lex->ref_pointer_array[0]); + if (!item_eq) + DBUG_RETURN(TRUE); if (subq_pred->left_expr_orig != subq_pred->left_expr) thd->change_item_tree(item_eq->arguments(), subq_pred->left_expr); item_eq->in_equality_no= 0; sj_nest->sj_on_expr= and_items(sj_nest->sj_on_expr, item_eq); } - else + else if (subq_pred->left_expr->type() == Item::ROW_ITEM) { + /* + disassemple left expression and add + left1 = select_list_element1 and left2 = select_list_element2 ... + */ for (uint i= 0; i < subq_pred->left_expr->cols(); i++) { nested_join->sj_outer_expr_list.push_back(subq_pred->left_expr-> - element_index(i)); - Item_func_eq *item_eq= - new Item_func_eq(subq_pred->left_expr->element_index(i), + addr(i)); + Item_func_eq *item_eq= + new Item_func_eq(subq_pred->left_expr_orig->element_index(i), subq_lex->ref_pointer_array[i]); + if (!item_eq) + DBUG_RETURN(TRUE); + DBUG_ASSERT(subq_pred->left_expr->element_index(i)->fixed); + if (subq_pred->left_expr_orig->element_index(i) != + subq_pred->left_expr->element_index(i)) + thd->change_item_tree(item_eq->arguments(), + subq_pred->left_expr->element_index(i)); item_eq->in_equality_no= i; sj_nest->sj_on_expr= and_items(sj_nest->sj_on_expr, item_eq); } } + else + { + /* + add row operation + left = (select_list_element1, select_list_element2, ...) + */ + Item_row *row= new Item_row(subq_lex->pre_fix); + /* fix fields on subquery was call so they should be the same */ + DBUG_ASSERT(subq_pred->left_expr->cols() == row->cols()); + if (!row) + DBUG_RETURN(TRUE); + nested_join->sj_outer_expr_list.push_back(&subq_pred->left_expr); + Item_func_eq *item_eq= + new Item_func_eq(subq_pred->left_expr_orig, row); + if (!item_eq) + DBUG_RETURN(TRUE); + for (uint i= 0; i < row->cols(); i++) + { + if (row->element_index(i) != subq_lex->ref_pointer_array[i]) + thd->change_item_tree(row->addr(i), subq_lex->ref_pointer_array[i]); + } + item_eq->in_equality_no= 0; + sj_nest->sj_on_expr= and_items(sj_nest->sj_on_expr, item_eq); + } /* Fix the created equality and AND @@ -3285,8 +3324,8 @@ void restore_prev_sj_state(const table_map remaining_tables, ulonglong get_bound_sj_equalities(TABLE_LIST *sj_nest, table_map remaining_tables) { - List_iterator li(sj_nest->nested_join->sj_outer_expr_list); - Item *item; + List_iterator li(sj_nest->nested_join->sj_outer_expr_list); + Item **item; uint i= 0; ulonglong res= 0; while ((item= li++)) @@ -3297,7 +3336,7 @@ ulonglong get_bound_sj_equalities(TABLE_LIST *sj_nest, class and see if there is an element that is bound? (this is an optional feature) */ - if (!(item->used_tables() & remaining_tables)) + if (!(item[0]->used_tables() & remaining_tables)) { res |= 1ULL << i; } diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 7f84f35c825..c06c4fcff29 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -8128,13 +8128,15 @@ int setup_wild(THD *thd, TABLE_LIST *tables, List &fields, bool setup_fields(THD *thd, Item **ref_pointer_array, List &fields, enum_mark_columns mark_used_columns, - List *sum_func_list, bool allow_sum_func) + List *sum_func_list, List *pre_fix, + bool allow_sum_func) { reg2 Item *item; enum_mark_columns save_mark_used_columns= thd->mark_used_columns; nesting_map save_allow_sum_func= thd->lex->allow_sum_func; List_iterator it(fields); bool save_is_item_list_lookup; + bool make_pre_fix= (pre_fix && (pre_fix->elements == 0)); DBUG_ENTER("setup_fields"); DBUG_PRINT("enter", ("ref_pointer_array: %p", ref_pointer_array)); @@ -8181,6 +8183,9 @@ bool setup_fields(THD *thd, Item **ref_pointer_array, thd->lex->current_select->cur_pos_in_select_list= 0; while ((item= it++)) { + if (make_pre_fix) + pre_fix->push_back(item, thd->stmt_arena->mem_root); + if ((!item->fixed && item->fix_fields(thd, it.ref())) || (item= *(it.ref()))->check_cols(1)) { diff --git a/sql/sql_base.h b/sql/sql_base.h index d49554d5473..0cde933afb8 100644 --- a/sql/sql_base.h +++ b/sql/sql_base.h @@ -216,7 +216,8 @@ int setup_wild(THD *thd, TABLE_LIST *tables, List &fields, List *sum_func_list, uint wild_num); bool setup_fields(THD *thd, Item** ref_pointer_array, List &item, enum_mark_columns mark_used_columns, - List *sum_func_list, bool allow_sum_func); + List *sum_func_list, List *pre_fix, + bool allow_sum_func); void unfix_fields(List &items); bool fill_record(THD *thd, Field **field, List &values, bool ignore_errors, bool use_value); @@ -407,7 +408,7 @@ inline bool setup_fields_with_no_wrap(THD *thd, Item **ref_pointer_array, bool res; thd->lex->select_lex.no_wrap_view_item= TRUE; res= setup_fields(thd, ref_pointer_array, item, mark_used_columns, - sum_func_list, allow_sum_func); + sum_func_list, NULL, allow_sum_func); thd->lex->select_lex.no_wrap_view_item= FALSE; return res; } diff --git a/sql/sql_do.cc b/sql/sql_do.cc index 4ba887b5ab2..46bdb421b3a 100644 --- a/sql/sql_do.cc +++ b/sql/sql_do.cc @@ -28,7 +28,7 @@ bool mysql_do(THD *thd, List &values) List_iterator li(values); Item *value; DBUG_ENTER("mysql_do"); - if (setup_fields(thd, 0, values, MARK_COLUMNS_NONE, 0, 0)) + if (setup_fields(thd, 0, values, MARK_COLUMNS_NONE, 0, NULL, 0)) DBUG_RETURN(TRUE); while ((value = li++)) value->val_int(); diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 70a12faafb5..267a9a6f94e 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -262,7 +262,7 @@ static int check_insert_fields(THD *thd, TABLE_LIST *table_list, if (table_list->is_view()) unfix_fields(fields); - res= setup_fields(thd, 0, fields, MARK_COLUMNS_WRITE, 0, 0); + res= setup_fields(thd, 0, fields, MARK_COLUMNS_WRITE, 0, NULL, 0); /* Restore the current context. */ ctx_state.restore_state(context, table_list); @@ -373,7 +373,7 @@ static int check_update_fields(THD *thd, TABLE_LIST *insert_table_list, } /* Check the fields we are going to modify */ - if (setup_fields(thd, 0, update_fields, MARK_COLUMNS_WRITE, 0, 0)) + if (setup_fields(thd, 0, update_fields, MARK_COLUMNS_WRITE, 0, NULL, 0)) return -1; if (insert_table_list->is_view() && @@ -810,7 +810,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, my_error(ER_WRONG_VALUE_COUNT_ON_ROW, MYF(0), counter); goto abort; } - if (setup_fields(thd, 0, *values, MARK_COLUMNS_READ, 0, 0)) + if (setup_fields(thd, 0, *values, MARK_COLUMNS_READ, 0, NULL, 0)) goto abort; } its.rewind (); @@ -1452,7 +1452,7 @@ bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, table_list->next_local= 0; context->resolve_in_table_list_only(table_list); - res= (setup_fields(thd, 0, *values, MARK_COLUMNS_READ, 0, 0) || + res= (setup_fields(thd, 0, *values, MARK_COLUMNS_READ, 0, NULL, 0) || check_insert_fields(thd, context->table_list, fields, *values, !insert_into_view, 0, &map)); @@ -1468,7 +1468,7 @@ bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, } if (!res) - res= setup_fields(thd, 0, update_values, MARK_COLUMNS_READ, 0, 0); + res= setup_fields(thd, 0, update_values, MARK_COLUMNS_READ, 0, NULL, 0); if (!res && duplic == DUP_UPDATE) { @@ -3369,7 +3369,7 @@ select_insert::prepare(List &values, SELECT_LEX_UNIT *u) */ lex->current_select= &lex->select_lex; - res= (setup_fields(thd, 0, values, MARK_COLUMNS_READ, 0, 0) || + res= (setup_fields(thd, 0, values, MARK_COLUMNS_READ, 0, NULL, 0) || check_insert_fields(thd, table_list, *fields, values, !insert_into_view, 1, &map)); @@ -3425,7 +3425,7 @@ select_insert::prepare(List &values, SELECT_LEX_UNIT *u) ctx_state.get_first_name_resolution_table(); res= res || setup_fields(thd, 0, *info.update_values, - MARK_COLUMNS_READ, 0, 0); + MARK_COLUMNS_READ, 0, NULL, 0); if (!res) { /* diff --git a/sql/sql_lex.h b/sql/sql_lex.h index d283085886e..3dcf8769c14 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -758,6 +758,7 @@ public: Group_list_ptrs *group_list_ptrs; List item_list; /* list of fields & expressions */ + List pre_fix; /* above list before fix_fields */ List interval_list; bool is_item_list_lookup; /* diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 23865ab8983..5029efa7d68 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -293,15 +293,15 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, Let us also prepare SET clause, altough it is probably empty in this case. */ - if (setup_fields(thd, 0, set_fields, MARK_COLUMNS_WRITE, 0, 0) || - setup_fields(thd, 0, set_values, MARK_COLUMNS_READ, 0, 0)) + if (setup_fields(thd, 0, set_fields, MARK_COLUMNS_WRITE, 0, NULL, 0) || + setup_fields(thd, 0, set_values, MARK_COLUMNS_READ, 0, NULL, 0)) DBUG_RETURN(TRUE); } else { // Part field list /* TODO: use this conds for 'WITH CHECK OPTIONS' */ - if (setup_fields(thd, 0, fields_vars, MARK_COLUMNS_WRITE, 0, 0) || - setup_fields(thd, 0, set_fields, MARK_COLUMNS_WRITE, 0, 0) || + if (setup_fields(thd, 0, fields_vars, MARK_COLUMNS_WRITE, 0, NULL, 0) || + setup_fields(thd, 0, set_fields, MARK_COLUMNS_WRITE, 0, NULL, 0) || check_that_all_fields_are_given_values(thd, table, table_list)) DBUG_RETURN(TRUE); /* @@ -320,7 +320,7 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, } } /* Fix the expressions in SET clause */ - if (setup_fields(thd, 0, set_values, MARK_COLUMNS_READ, 0, 0)) + if (setup_fields(thd, 0, set_values, MARK_COLUMNS_READ, 0, NULL, 0)) DBUG_RETURN(TRUE); } diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 094677e150d..851e4f7b8ab 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1307,7 +1307,7 @@ static bool mysql_test_insert(Prepared_statement *stmt, my_error(ER_WRONG_VALUE_COUNT_ON_ROW, MYF(0), counter); goto error; } - if (setup_fields(thd, 0, *values, MARK_COLUMNS_NONE, 0, 0)) + if (setup_fields(thd, 0, *values, MARK_COLUMNS_NONE, 0, NULL, 0)) goto error; } } @@ -1397,7 +1397,7 @@ static int mysql_test_update(Prepared_statement *stmt, table_list->register_want_access(want_privilege); #endif thd->lex->select_lex.no_wrap_view_item= TRUE; - res= setup_fields(thd, 0, select->item_list, MARK_COLUMNS_READ, 0, 0); + res= setup_fields(thd, 0, select->item_list, MARK_COLUMNS_READ, 0, NULL, 0); thd->lex->select_lex.no_wrap_view_item= FALSE; if (res) goto error; @@ -1408,7 +1408,8 @@ static int mysql_test_update(Prepared_statement *stmt, (SELECT_ACL & ~table_list->table->grant.privilege); table_list->register_want_access(SELECT_ACL); #endif - if (setup_fields(thd, 0, stmt->lex->value_list, MARK_COLUMNS_NONE, 0, 0) || + if (setup_fields(thd, 0, stmt->lex->value_list, MARK_COLUMNS_NONE, 0, NULL, + 0) || check_unique_table(thd, table_list)) goto error; /* TODO: here we should send types of placeholders to the client. */ @@ -1575,7 +1576,7 @@ static bool mysql_test_do_fields(Prepared_statement *stmt, if (open_normal_and_derived_tables(thd, tables, MYSQL_OPEN_FORCE_SHARED_MDL, DT_PREPARE | DT_CREATE)) DBUG_RETURN(TRUE); - DBUG_RETURN(setup_fields(thd, 0, *values, MARK_COLUMNS_NONE, 0, 0)); + DBUG_RETURN(setup_fields(thd, 0, *values, MARK_COLUMNS_NONE, 0, NULL, 0)); } diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6e67bb11015..c7f547edbc0 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -724,7 +724,7 @@ JOIN::prepare(Item ***rref_pointer_array, wild_num)) || select_lex->setup_ref_array(thd, real_og_num) || setup_fields(thd, (*rref_pointer_array), fields_list, MARK_COLUMNS_READ, - &all_fields, 1) || + &all_fields, &select_lex->pre_fix, 1) || setup_without_group(thd, (*rref_pointer_array), tables_list, select_lex->leaf_tables, fields_list, all_fields, &conds, order, group_list, diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 060952a589d..ede38468513 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -361,7 +361,7 @@ int mysql_update(THD *thd, table_list->grant.want_privilege= table->grant.want_privilege= (SELECT_ACL & ~table->grant.privilege); #endif - if (setup_fields(thd, 0, values, MARK_COLUMNS_READ, 0, 0)) + if (setup_fields(thd, 0, values, MARK_COLUMNS_READ, 0, NULL, 0)) { free_underlaid_joins(thd, select_lex); DBUG_RETURN(1); /* purecov: inspected */ @@ -1521,7 +1521,7 @@ int multi_update::prepare(List ¬_used_values, reference tables */ - int error= setup_fields(thd, 0, *values, MARK_COLUMNS_READ, 0, 0); + int error= setup_fields(thd, 0, *values, MARK_COLUMNS_READ, 0, NULL, 0); ti.rewind(); while ((table_ref= ti++)) diff --git a/sql/table.h b/sql/table.h index dde01a85d77..c981243f28c 100644 --- a/sql/table.h +++ b/sql/table.h @@ -33,6 +33,7 @@ /* Structs that defines the TABLE */ class Item; /* Needed by ORDER */ +typedef Item (*Item_ptr); class Item_subselect; class Item_field; class GRANT_TABLE; @@ -2348,7 +2349,7 @@ typedef struct st_nested_join table_map sj_depends_on; /* Outer non-trivially correlated tables */ table_map sj_corr_tables; - List sj_outer_expr_list; + List sj_outer_expr_list; /** True if this join nest node is completely covered by the query execution plan. This means two things. From 3b7aa3017b65dcf11d33617e954e1cb471703582 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Fri, 13 Oct 2017 18:41:38 +0200 Subject: [PATCH 045/128] Cleanup usage of DBUG_ASSERTS. --- sql/item.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sql/item.cc b/sql/item.cc index 3100a4e3408..a8913e97fe9 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -8075,7 +8075,6 @@ bool Item_direct_view_ref::send(Protocol *protocol, String *buffer) bool Item_direct_view_ref::fix_fields(THD *thd, Item **reference) { - DBUG_ASSERT(1); /* view fild reference must be defined */ DBUG_ASSERT(*ref); /* (*ref)->check_cols() will be made in Item_direct_ref::fix_fields */ @@ -9959,7 +9958,7 @@ void Item_direct_view_ref::update_used_tables() table_map Item_direct_view_ref::used_tables() const { - DBUG_ASSERT(null_ref_table); + DBUG_ASSERT(fixed); if (get_depended_from()) return OUTER_REF_TABLE_BIT; From 98cd0ec536915b25a841ffc227285b15f35acef7 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Sat, 14 Oct 2017 19:43:16 +0400 Subject: [PATCH 046/128] MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error --- .../inc/explicit_defaults_for_timestamp.inc | 13 +++++++++++++ .../r/explicit_defaults_for_timestamp_off.result | 13 +++++++++++++ .../r/explicit_defaults_for_timestamp_on.result | 15 +++++++++++++++ sql/sql_table.cc | 4 +++- 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc b/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc index 4cf3914e60a..1fea4ca5bb9 100644 --- a/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc +++ b/mysql-test/suite/sys_vars/inc/explicit_defaults_for_timestamp.inc @@ -97,3 +97,16 @@ CREATE TABLE t1 (a INT); ALTER TABLE t1 ADD b TIMESTAMP; SHOW CREATE TABLE t1; DROP TABLE t1; + +--echo # +--echo # MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error +--echo # + +SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); +SET sql_mode='ANSI,NO_ZERO_DATE'; +CREATE TABLE t1 (a TIMESTAMP NOT NULL); +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +DROP TABLE t1; +SET sql_mode=DEFAULT; +SET timestamp=DEFAULT; diff --git a/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_off.result b/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_off.result index cdf612e6db8..61a4eb8a934 100644 --- a/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_off.result +++ b/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_off.result @@ -173,3 +173,16 @@ t1 CREATE TABLE `t1` ( `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +# +# MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error +# +SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); +SET sql_mode='ANSI,NO_ZERO_DATE'; +CREATE TABLE t1 (a TIMESTAMP NOT NULL); +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +a +2001-01-01 10:20:30 +DROP TABLE t1; +SET sql_mode=DEFAULT; +SET timestamp=DEFAULT; diff --git a/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_on.result b/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_on.result index 1c42da57bfc..fb820dc167d 100644 --- a/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_on.result +++ b/mysql-test/suite/sys_vars/r/explicit_defaults_for_timestamp_on.result @@ -178,3 +178,18 @@ t1 CREATE TABLE `t1` ( `b` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +# +# MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error +# +SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); +SET sql_mode='ANSI,NO_ZERO_DATE'; +CREATE TABLE t1 (a TIMESTAMP NOT NULL); +INSERT INTO t1 VALUES (); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +SELECT * FROM t1; +a +0000-00-00 00:00:00 +DROP TABLE t1; +SET sql_mode=DEFAULT; +SET timestamp=DEFAULT; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 2751c79a0a4..fa5eb2a6796 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4161,7 +4161,8 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, if (!sql_field->def && !sql_field->has_default_function() && (sql_field->flags & NOT_NULL_FLAG) && - !is_timestamp_type(sql_field->sql_type)) + (!is_timestamp_type(sql_field->sql_type) || + opt_explicit_defaults_for_timestamp)) { sql_field->flags|= NO_DEFAULT_VALUE_FLAG; sql_field->pack_flag|= FIELDFLAG_NO_DEFAULT; @@ -4170,6 +4171,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, if (thd->variables.sql_mode & MODE_NO_ZERO_DATE && !sql_field->def && !sql_field->vcol_info && is_timestamp_type(sql_field->sql_type) && + !opt_explicit_defaults_for_timestamp && (sql_field->flags & NOT_NULL_FLAG) && (type == Field::NONE || type == Field::TIMESTAMP_UN_FIELD)) { From bcfb5b2de94e31ebcff165d60ec25e5d49a6045c Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Sun, 15 Oct 2017 16:13:23 +0200 Subject: [PATCH 047/128] - Update version number modified: storage/connect/ha_connect.cc - Include MONGO in all Java enabled distributions Mongo will be enabled only for 10.2 and 10.3 modified: storage/connect/CMakeLists.txt - Change JDBC_SUPPORT to JAVA_SUPPORT which also replaces MONGO_SUPPORT MONGO_SUPPORT is now just used to enable the MONGO table type modified: storage/connect/filter.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/mongo.cpp modified: storage/connect/mycat.cc modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Move MakeSelector function from FILTER to mongo.cpp modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/cmgoconn.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/mongo.cpp - Do mongo_init only on first use of the MongoDB C Driver This will permit to delay load the mongo lib on Windows modified: storage/connect/cmgoconn.cpp modified: storage/connect/cmgoconn.h modified: storage/connect/ha_connect.cc - Replace NEW_VAR by a test on MYSQL_VERSION_ID modified: storage/connect/ha_connect.cc - Suppress enable_mongo session variable modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc - Make some function headers identical in .h and .cc file (replacing const char* by PCSZ) modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - Change a parameter type from uchar* to const uchar* (for ScanRecord and CheckRecord) modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - Changes on LIKE and NOT LIKE does not fix a bug yet modified: storage/connect/ha_connect.cc - Suppress PIVOT_SUPPORT (PIVOT type is unconditionnal) modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc - Change the strz function from inline to static modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - export the JavaConn class and the MgoColumns and IsNum functions modified: storage/connect/javaconn.h modified: storage/connect/json.h modified: storage/connect/mongo.h - Fix MDEV-13924 modified: storage/connect/jdbconn.cpp - Make a temporary fix for the compiler bug in CalculateArray modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp - Typo modified: storage/connect/jdbccat.h modified: storage/connect/reldef.h modified: storage/connect/tabext.h modified: storage/connect/tabjmg.cpp modified: storage/connect/tabxml.h modified: storage/connect/valblk.h modified: storage/connect/value.h modified: storage/connect/xtable.h - Fix a bug in MONGO tests by changing 'MONGO' to $TYPE modified: storage/connect/mysql-test/connect/t/mongo_test.inc - Record test results to reflect all changes modified: storage/connect/mysql-test/connect/r/json_java_2.result modified: storage/connect/mysql-test/connect/r/json_java_3.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_java_2.result modified: storage/connect/mysql-test/connect/r/mongo_java_3.result --- storage/connect/CMakeLists.txt | 20 ++- storage/connect/cmgoconn.cpp | 65 ++++++--- storage/connect/cmgoconn.h | 2 + storage/connect/filter.cpp | 85 +---------- storage/connect/filter.h | 3 - storage/connect/ha_connect.cc | 132 +++++++++--------- storage/connect/ha_connect.h | 10 +- storage/connect/javaconn.cpp | 5 +- storage/connect/javaconn.h | 4 +- storage/connect/jdbccat.h | 2 +- storage/connect/jdbconn.cpp | 2 +- storage/connect/jmgoconn.cpp | 21 +-- storage/connect/json.h | 2 +- storage/connect/jsonudf.cpp | 18 ++- storage/connect/mongo.cpp | 93 +++++++++++- storage/connect/mongo.h | 2 +- storage/connect/mycat.cc | 36 ++--- .../mysql-test/connect/r/json_java_2.result | 4 +- .../mysql-test/connect/r/json_java_3.result | 4 +- .../mysql-test/connect/r/json_mongo_c.result | 4 +- .../mysql-test/connect/r/mongo_c.result | 4 +- .../mysql-test/connect/r/mongo_java_2.result | 4 +- .../mysql-test/connect/r/mongo_java_3.result | 4 +- .../mysql-test/connect/r/odbc_firebird.result | 71 ++-------- .../mysql-test/connect/t/mongo_test.inc | 6 +- storage/connect/plgdbutl.cpp | 13 +- storage/connect/reldef.h | 4 +- storage/connect/tabext.h | 2 +- storage/connect/tabjmg.cpp | 2 +- storage/connect/tabjson.cpp | 66 ++++----- storage/connect/tabjson.h | 22 +-- storage/connect/tabxml.h | 2 + storage/connect/valblk.h | 2 +- storage/connect/value.h | 2 +- storage/connect/xtable.h | 2 +- 35 files changed, 323 insertions(+), 397 deletions(-) diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 9c02a60e6b3..413a9f40f01 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -38,7 +38,7 @@ user_connect.h valblk.h value.h xindex.h xobject.h xtable.h) # Definitions that are shared for all OSes # add_definitions( -DMARIADB -DFORCE_INIT_OF_VARS -Dconnect_EXPORTS) -add_definitions( -DNEW_MAR -DHUGE_SUPPORT -DGZ_SUPPORT -DPIVOT_SUPPORT ) +add_definitions( -DHUGE_SUPPORT -DGZ_SUPPORT ) # @@ -245,7 +245,7 @@ int main() { ENDIF(CONNECT_WITH_ODBC) # -# JDBC with MongoDB Java Driver included but disabled +# JDBC with MongoDB Java Driver included but disabled if without MONGO # OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON) OPTION(CONNECT_WITH_JDBC "Compile CONNECT storage engine with JDBC support" ON) @@ -260,17 +260,16 @@ IF(CONNECT_WITH_JDBC) # SET(JDBC_LIBRARY ${JAVA_JVM_LIBRARY}) will be dynamically linked SET(CONNECT_SOURCES ${CONNECT_SOURCES} javaconn.cpp jdbconn.cpp tabjdbc.cpp + jmgfam.cpp jmgoconn.cpp mongo.cpp tabjmg.cpp jdbccat.h javaconn.h jdbconn.h tabjdbc.h + jmgfam.h jmgoconn.h mongo.h tabjmg.h JdbcInterface.java ApacheInterface.java MariadbInterface.java MysqlInterface.java OracleInterface.java PostgresqlInterface.java + Mongo2Interface.java Mongo3Interface.java JavaWrappers.jar) - add_definitions(-DJDBC_SUPPORT) + add_definitions(-DJAVA_SUPPORT) IF(CONNECT_WITH_MONGO) - SET(CONNECT_SOURCES ${CONNECT_SOURCES} - jmgfam.cpp jmgoconn.cpp mongo.cpp tabjmg.cpp - jmgfam.h jmgoconn.h mongo.h tabjmg.h - Mongo2Interface.java Mongo3Interface.java) - add_definitions(-DMONGO_SUPPORT -DMONGO_ENABLED=0) + add_definitions(-DMONGO_SUPPORT) ENDIF() ELSE() SET(JDBC_LIBRARY "") @@ -313,10 +312,7 @@ IF(CONNECT_WITH_MONGO) add_definitions(-DCMGO_SUPPORT) IF (NOT JAVA_FOUND AND JNI_FOUND) SET(CONNECT_SOURCES ${CONNECT_SOURCES} mongo.cpp mongo.h) - add_definitions(-DMONGO_SUPPORT -DMONGO_ENABLED=1) - ELSE () - remove_definitions(-DMONGO_ENABLED=0) - add_definitions(-DMONGO_ENABLED=1) + add_definitions(-DMONGO_SUPPORT) ENDIF (NOT JAVA_FOUND AND JNI_FOUND) ENDIF(libmongoc-1.0_FOUND) ENDIF(CONNECT_WITH_MONGO) diff --git a/storage/connect/cmgoconn.cpp b/storage/connect/cmgoconn.cpp index fdd59040257..44fac56137f 100644 --- a/storage/connect/cmgoconn.cpp +++ b/storage/connect/cmgoconn.cpp @@ -22,17 +22,10 @@ #include "filter.h" #include "cmgoconn.h" +bool CMgoConn::IsInit = false; + bool IsNum(PSZ s); - -// Required to initialize libmongoc's internals -void mongo_init(bool init) -{ - if (init) - mongoc_init(); - else - mongoc_cleanup(); - -} // end of mongo_init +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s); /* --------------------------- Class INCOL --------------------------- */ @@ -139,11 +132,36 @@ CMgoConn::CMgoConn(PGLOBAL g, PCPARM pcg) m_Connected = false; } // end of CMgoConn standard constructor +/***********************************************************************/ +/* Required to initialize libmongoc's internals. */ +/***********************************************************************/ +void CMgoConn::mongo_init(bool init) +{ + if (init) + mongoc_init(); + else if (IsInit) + mongoc_cleanup(); + + IsInit = init; +} // end of mongo_init + /***********************************************************************/ /* Connect to the MongoDB server and get the collection. */ /***********************************************************************/ bool CMgoConn::Connect(PGLOBAL g) { + if (!IsInit) +#if defined(__WIN__) + __try { + mongo_init(true); + } __except (EXCEPTION_EXECUTE_HANDLER) { + strcpy(g->Message, "Cannot load MongoDB C driver"); + return true; + } // end try/except +#else // !__WIN__ + mongo_init(true); +#endif // !__WIN__ + Uri = mongoc_uri_new(Pcg->Uristr); if (!Uri) { @@ -240,12 +258,13 @@ int CMgoConn::CollSize(PGLOBAL g) /***********************************************************************/ bool CMgoConn::MakeCursor(PGLOBAL g) { - const char *p; - bool id, b = false, all = false; - PCSZ options = Pcg->Options; - PTDB tp = Pcg->Tdbp; - PCOL cp; - PSTRG s = NULL; + const char *p; + bool id, b = false, all = false; + PCSZ options = Pcg->Options; + PTDB tp = Pcg->Tdbp; + PCOL cp; + PSTRG s = NULL; + PFIL filp = tp->GetFilter(); id = (tp->GetMode() != MODE_READ); @@ -274,10 +293,10 @@ bool CMgoConn::MakeCursor(PGLOBAL g) s = new(g) STRING(g, 1023, (PSZ)options); - if (tp->GetFilter()) { + if (filp) { s->Append(",{\"$match\":"); - if (tp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return true; } else @@ -330,15 +349,15 @@ bool CMgoConn::MakeCursor(PGLOBAL g) } // endif error } else { - if (Pcg->Filter || tp->GetFilter()) { + if (Pcg->Filter || filp) { if (trace) { if (Pcg->Filter) htrc("Filter: %s\n", Pcg->Filter); - if (tp->GetFilter()) { + if (filp) { char buf[512]; - tp->GetFilter()->Prints(g, buf, 511); + filp->Prints(g, buf, 511); htrc("To_Filter: %s\n", buf); } // endif To_Filter @@ -346,11 +365,11 @@ bool CMgoConn::MakeCursor(PGLOBAL g) s = new(g) STRING(g, 1023, (PSZ)Pcg->Filter); - if (tp->GetFilter()) { + if (filp) { if (Pcg->Filter) s->Append(','); - if (tp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return NULL; } // endif Selector diff --git a/storage/connect/cmgoconn.h b/storage/connect/cmgoconn.h index f5cefea3442..b1216ac576c 100644 --- a/storage/connect/cmgoconn.h +++ b/storage/connect/cmgoconn.h @@ -93,6 +93,7 @@ public: PSZ Mini(PGLOBAL g, PCOL colp, const bson_t *bson, bool b); void GetColumnValue(PGLOBAL g, PCOL colp); bool AddValue(PGLOBAL g, PCOL colp, bson_t *doc, char *key, bool upd); + static void mongo_init(bool init); protected: // Members @@ -112,4 +113,5 @@ protected: PINCOL Fpc; // To insert INCOL classes PFBLOCK fp; bool m_Connected; + static bool IsInit; }; // end of class CMgoConn diff --git a/storage/connect/filter.cpp b/storage/connect/filter.cpp index 6a96240c469..53935d8d3ba 100644 --- a/storage/connect/filter.cpp +++ b/storage/connect/filter.cpp @@ -10,7 +10,7 @@ /* Include relevant MariaDB header file. */ /***********************************************************************/ #include "my_global.h" -#include "sql_class.h" +//#include "sql_class.h" //#include "sql_time.h" #if defined(__WIN__) @@ -35,9 +35,6 @@ #include "array.h" #include "filter.h" #include "xindex.h" -#if defined(MONGO_SUPPORT) || defined(JDBC_SUPPORT) -#include "tabext.h" -#endif // MONGO_SUPPORT || JDBC_SUPPORT /***********************************************************************/ /* Utility routines. */ @@ -1406,86 +1403,6 @@ PFIL FILTER::Copy(PTABS t) } // end of Copy #endif // 0 -#if defined(MONGO_SUPPORT) -/***********************************************************************/ -/* Make selector json representation for Mongo tables. */ -/***********************************************************************/ -bool FILTER::MakeSelector(PGLOBAL g, PSTRG s) -{ - s->Append('{'); - - if (Opc == OP_AND || Opc == OP_OR) { - if (GetArgType(0) != TYPE_FILTER || GetArgType(1) != TYPE_FILTER) - return true; - - s->Append("\"$"); - s->Append(Opc == OP_AND ? "and" : "or"); - s->Append("\":["); - - if (((PFIL)Arg(0))->MakeSelector(g, s)) - return true; - - s->Append(','); - - if (((PFIL)Arg(1))->MakeSelector(g, s)) - return true; - - s->Append(']'); - } else { - if (GetArgType(0) != TYPE_COLBLK) - return true; - - s->Append('"'); - s->Append(((PCOL)Arg(0))->GetJpath(g, false)); - s->Append("\":{\"$"); - - switch (Opc) { - case OP_EQ: - s->Append("eq"); - break; - case OP_NE: - s->Append("ne"); - break; - case OP_GT: - s->Append("gt"); - break; - case OP_GE: - s->Append("gte"); - break; - case OP_LT: - s->Append("lt"); - break; - case OP_LE: - s->Append("lte"); - break; - case OP_NULL: - case OP_LIKE: - case OP_EXIST: - default: - return true; - } // endswitch Opc - - s->Append("\":"); - - if (GetArgType(1) == TYPE_COLBLK) { - s->Append("\"$"); - s->Append(((PEXTCOL)Arg(1))->GetJpath(g, false)); - s->Append('"'); - } else { - char buf[501]; - - Arg(1)->Prints(g, buf, 500); - s->Append(buf); - } // endif Type - - s->Append('}'); - } // endif Opc - - s->Append('}'); - return false; -} // end of MakeSelector -#endif // MONGO_SUPPORT - /*********************************************************************/ /* Make file output of FILTER contents. */ /*********************************************************************/ diff --git a/storage/connect/filter.h b/storage/connect/filter.h index 11b77aec132..c6ab8fddd35 100644 --- a/storage/connect/filter.h +++ b/storage/connect/filter.h @@ -61,9 +61,6 @@ class DllExport FILTER : public XOBJECT { /* Filter description block */ //virtual PXOB CheckSubQuery(PGLOBAL, PSQL); //virtual bool CheckLocal(PTDB); //virtual int CheckSpcCol(PTDB tdbp, int n); -#if defined(MONGO_SUPPORT) - bool MakeSelector(PGLOBAL g, PSTRG s); -#endif // MONGO_SUPPORT virtual void Printf(PGLOBAL g, FILE *f, uint n); virtual void Prints(PGLOBAL g, char *ps, uint z); // PFIL Linearize(bool nosep); diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 7da17853d96..c6b9c2450be 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -129,10 +129,13 @@ #if defined(ODBC_SUPPORT) #include "odbccat.h" #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) #include "tabjdbc.h" #include "jdbconn.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT +#if defined(CMGO_SUPPORT) +#include "cmgoconn.h" +#endif // CMGO_SUPPORT #include "tabmysql.h" #include "filamdbf.h" #include "tabxcl.h" @@ -171,18 +174,18 @@ #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.06.0004 September 03, 2017"; + char version[]= "Version 1.06.0005 October 14, 2017"; #if defined(__WIN__) - char compver[]= "Version 1.06.0004 " __DATE__ " " __TIME__; + char compver[]= "Version 1.06.0005 " __DATE__ " " __TIME__; char slash= '\\'; #else // !__WIN__ char slash= '/'; #endif // !__WIN__ } // extern "C" -#if defined(NEW_MAR) +#if MYSQL_VERSION_ID > 100200 #define stored_in_db stored_in_db() -#endif // NEW_MAR) +#endif // MYSQL_VERSION_ID #if defined(XMAP) my_bool xmap= false; @@ -196,10 +199,10 @@ extern "C" { } // extern "C" #endif // XMSG -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) char *JvmPath; char *ClassPath; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT pthread_mutex_t parmut; pthread_mutex_t usrmut; @@ -212,9 +215,9 @@ PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info); PQRYRES VirColumns(PGLOBAL g, bool info); PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info); PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info); -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ url, PTOS topt, bool info); -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT int TranslateJDBCType(int stp, char *tn, int prec, int& len, char& v); void PushWarning(PGLOBAL g, THD *thd, int level); bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, PCSZ host, PCSZ db, @@ -222,7 +225,7 @@ bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, PCSZ host, PCSZ db, bool ZipLoadFile(PGLOBAL, PCSZ, PCSZ, PCSZ, bool, bool); bool ExactInfo(void); #if defined(CMGO_SUPPORT) -void mongo_init(bool); +//void mongo_init(bool); #endif // CMGO_SUPPORT USETEMP UseTemp(void); int GetConvSize(void); @@ -234,6 +237,8 @@ uint GetWorkSize(void); void SetWorkSize(uint); extern "C" const char *msglang(void); +static char *strz(PGLOBAL g, LEX_STRING &ls); + static void PopUser(PCONNECT xp); static PCONNECT GetUser(THD *thd, PCONNECT xp); static PGLOBAL GetPlug(THD *thd, PCONNECT& lxp); @@ -350,21 +355,21 @@ static MYSQL_THDVAR_UINT(json_grp_size, "max number of rows for JSON aggregate functions.", NULL, NULL, JSONMAX, 1, INT_MAX, 1); -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) // Default java wrapper to use with JDBC tables static MYSQL_THDVAR_STR(java_wrapper, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC, "Java wrapper class name", // check_java_wrapper, update_java_wrapper, NULL, NULL, "wrappers/JdbcInterface"); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT -#if defined(MONGO_SUPPORT) +#if 0 // This is apparently not acceptable for a plugin // Enabling MONGO table type static MYSQL_THDVAR_BOOL(enable_mongo, PLUGIN_VAR_RQCMDARG, "Enabling the MongoDB access", NULL, NULL, MONGO_ENABLED); -#endif // MONGO_SUPPORT +#endif // 0 #if defined(XMSG) || defined(NEWMSG) const char *language_names[]= @@ -421,14 +426,14 @@ extern "C" const char *msglang(void) } // end of msglang #else // !XMSG && !NEWMSG -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) char *GetJavaWrapper(void) {return connect_hton ? THDVAR(current_thd, java_wrapper) : (char*)"wrappers/JdbcInterface";} -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT -#if defined(MONGO_SUPPORT) -bool MongoEnabled(void) { return THDVAR(current_thd, enable_mongo); } -#endif // MONGO_SUPPORT +#if defined(JAVA_SUPPORT) +//bool MongoEnabled(void) { return THDVAR(current_thd, enable_mongo); } +#endif // JAVA_SUPPORT extern "C" const char *msglang(void) { @@ -705,7 +710,7 @@ static int connect_init_func(void *p) XmlInitParserLib(); #endif // LIBXML2_SUPPORT -#if defined(CMGO_SUPPORT) +#if 0 //defined(CMGO_SUPPORT) mongo_init(true); #endif // CMGO_SUPPORT @@ -726,9 +731,9 @@ static int connect_init_func(void *p) DTVAL::SetTimeShift(); // Initialize time zone shift once for all BINCOL::SetEndian(); // Initialize host endian setting -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) JAVAConn::SetJVM(); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT DBUG_RETURN(0); } // end of connect_init_func @@ -748,12 +753,12 @@ static int connect_done_func(void *) #endif // LIBXML2_SUPPORT #if defined(CMGO_SUPPORT) - mongo_init(false); + CMgoConn::mongo_init(false); #endif // CMGO_SUPPORT -#ifdef JDBC_SUPPORT +#ifdef JAVA_SUPPORT JAVAConn::ResetJVM(); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #if !defined(__WIN__) PROFILE_End(); @@ -1758,7 +1763,7 @@ bool ha_connect::IsPartitioned(void) } // end of IsPartitioned -const char *ha_connect::GetDBName(const char* name) +PCSZ ha_connect::GetDBName(PCSZ name) { return (name) ? name : table->s->db.str; } // end of GetDBName @@ -1821,7 +1826,7 @@ void ha_connect::AddColName(char *cp, Field *fp) /***********************************************************************/ /* This function sets the current database path. */ /***********************************************************************/ -bool ha_connect::SetDataPath(PGLOBAL g, const char *path) +bool ha_connect::SetDataPath(PGLOBAL g, PCSZ path) { return (!(datapath= SetPath(g, path))); } // end of SetDataPath @@ -2181,7 +2186,7 @@ int ha_connect::MakeRecord(char *buf) /***********************************************************************/ /* Set row values from a MySQL pseudo record. Specific to MySQL. */ /***********************************************************************/ -int ha_connect::ScanRecord(PGLOBAL g, uchar *) +int ha_connect::ScanRecord(PGLOBAL g, const uchar *) { char attr_buffer[1024]; char data_buffer[1024]; @@ -2324,7 +2329,7 @@ int ha_connect::ScanRecord(PGLOBAL g, uchar *) /* Check change in index column. Specific to MySQL. */ /* Should be elaborated to check for real changes. */ /***********************************************************************/ -int ha_connect::CheckRecord(PGLOBAL g, const uchar *, uchar *newbuf) +int ha_connect::CheckRecord(PGLOBAL g, const uchar *, const uchar *newbuf) { return ScanRecord(g, newbuf); } // end of dummy CheckRecord @@ -2517,7 +2522,7 @@ const char *ha_connect::GetValStr(OPVAL vop, bool neg) val= (neg) ? " IS NOT NULL" : " IS NULL"; break; case OP_LIKE: - val= " LIKE "; + val= (neg) ? " NOT LIKE " : " LIKE "; break; case OP_XX: val= (neg) ? " NOT BETWEEN " : " BETWEEN "; @@ -2886,7 +2891,10 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) case Item_func::LE_FUNC: vop= OP_LE; break; case Item_func::GE_FUNC: vop= OP_GE; break; case Item_func::GT_FUNC: vop= OP_GT; break; - case Item_func::LIKE_FUNC: vop= OP_LIKE; break; + case Item_func::LIKE_FUNC: + vop= OP_LIKE; + neg = ((Item_func_opt_neg *)condf)->negated; + break; case Item_func::ISNOTNULL_FUNC: neg = true; // fall through @@ -4416,8 +4424,8 @@ bool ha_connect::IsSameIndex(PIXDEF xp1, PIXDEF xp2) return b; } // end of IsSameIndex -MODE ha_connect::CheckMode(PGLOBAL g, THD *thd, - MODE newmode, bool *chk, bool *cras) +MODE ha_connect::CheckMode(PGLOBAL g, THD *thd, + MODE newmode, bool *chk, bool *cras) { #if defined(DEVELOPMENT) if (true) { @@ -5385,13 +5393,11 @@ static int connect_assisted_discovery(handlerton *, THD* thd, bool cnc= false; int cto= -1, qto= -1; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) || defined(MONGO_SUPPORT) -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) PJPARM sjp= NULL; -#endif // JDBC_SUPPORT PCSZ driver= NULL; char *url= NULL; -#endif // JDBC_SUPPORT || MONGO_SUPPORT +#endif // JAVA_SUPPORT uint tm, fnc= FNC_NO, supfnc= (FNC_NO | FNC_COL); bool bif, ok= false, dbf= false; TABTYPE ttp= TAB_UNDEF; @@ -5452,9 +5458,9 @@ static int connect_assisted_discovery(handlerton *, THD* thd, if ((ucnc= GetListOption(g, "UseDSN", topt->oplist))) cnc= (!*ucnc || *ucnc == 'y' || *ucnc == 'Y' || atoi(ucnc) != 0); #endif -#if defined(JDBC_SUPPORT) || defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) driver= GetListOption(g, "Driver", topt->oplist, NULL); -#endif // JDBC_SUPPORT || MONGO_SUPPORT +#endif // JAVA_SUPPORT #if defined(PROMPT_OK) cop= atoi(GetListOption(g, "checkdsn", topt->oplist, "0")); #endif // PROMPT_OK @@ -5541,7 +5547,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, supfnc |= (FNC_TABLE | FNC_DSN | FNC_DRIVER); break; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_JDBC: if (fnc & FNC_DRIVER) { ok = true; @@ -5575,7 +5581,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, supfnc |= (FNC_DRIVER | FNC_TABLE); break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT case TAB_DBF: dbf = true; // Passthru @@ -5632,10 +5638,8 @@ static int connect_assisted_discovery(handlerton *, THD* thd, ok = true; break; #endif // __WIN__ -#if defined(PIVOT_SUPPORT) case TAB_PIVOT: supfnc = FNC_NO; -#endif // PIVOT_SUPPORT case TAB_PRX: case TAB_TBL: case TAB_XCL: @@ -5666,14 +5670,14 @@ static int connect_assisted_discovery(handlerton *, THD* thd, ok = true; break; -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_MONGO: if (!topt->tabname) topt->tabname = tab; ok = true; break; -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT case TAB_VIR: ok = true; break; @@ -5746,7 +5750,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, break; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_JDBC: switch (fnc) { case FNC_NO: @@ -5775,7 +5779,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } // endswitch info break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT case TAB_MYSQL: qrp = MyColumns(g, thd, host, db, user, pwd, tab, NULL, port, fnc == FNC_COL); @@ -5805,25 +5809,21 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } // endif OcrColumns break; -#if defined(PIVOT_SUPPORT) case TAB_PIVOT: qrp = PivotColumns(g, tab, src, pic, fcl, skc, host, db, user, pwd, port); break; -#endif // PIVOT_SUPPORT case TAB_VIR: qrp = VirColumns(g, fnc == FNC_COL); break; case TAB_JSON: qrp = JSONColumns(g, db, dsn, topt, fnc == FNC_COL); break; -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_MONGO: - if (!(url = strz(g, create_info->connect_string)) || !*url) - url = "mongodb://localhost:27017"; - + url = strz(g, create_info->connect_string); qrp = MGOColumns(g, db, url, topt, fnc == FNC_COL); break; -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT #if defined(LIBXML2_SUPPORT) || defined(DOMDOC_SUPPORT) case TAB_XML: qrp = XMLColumns(g, (char*)db, tab, topt, fnc == FNC_COL); @@ -5948,7 +5948,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, break; case FLD_SCHEM: -#if defined(ODBC_SUPPORT) || defined(JDBC_SUPPORT) +#if defined(ODBC_SUPPORT) || defined(JAVA_SUPPORT) if ((ttp == TAB_ODBC || ttp == TAB_JDBC) && crp->Kdata) { if (schem && stricmp(schem, crp->Kdata->GetCharValue(i))) { sprintf(g->Message, @@ -5959,7 +5959,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, schem = crp->Kdata->GetCharValue(i); } // endif ttp -#endif // ODBC_SUPPORT || JDBC_SUPPORT +#endif // ODBC_SUPPORT || JAVA_SUPPORT default: break; // Ignore } // endswitch Fld @@ -6007,7 +6007,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } else #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) if (ttp == TAB_JDBC) { int plgtyp; @@ -7150,7 +7150,7 @@ static MYSQL_SYSVAR_STR(errmsg_dir_path, msg_path, "../../../../storage/connect/"); // for testing #endif // XMSG -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) static MYSQL_SYSVAR_STR(jvm_path, JvmPath, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC, "Path to the directory where is the JVM lib", @@ -7162,7 +7162,7 @@ static MYSQL_SYSVAR_STR(class_path, ClassPath, "Java class path", // check_class_path, update_class_path, NULL, NULL, NULL); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT static struct st_mysql_sys_var* connect_system_variables[]= { @@ -7183,14 +7183,14 @@ static struct st_mysql_sys_var* connect_system_variables[]= { #endif // XMSG MYSQL_SYSVAR(json_null), MYSQL_SYSVAR(json_grp_size), -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) MYSQL_SYSVAR(jvm_path), MYSQL_SYSVAR(class_path), MYSQL_SYSVAR(java_wrapper), -#endif // JDBC_SUPPORT -#if defined(MONGO_SUPPORT) - MYSQL_SYSVAR(enable_mongo), -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT +#if defined(JAVA_SUPPORT) +//MYSQL_SYSVAR(enable_mongo), +#endif // JAVA_SUPPORT NULL }; @@ -7207,7 +7207,7 @@ maria_declare_plugin(connect) 0x0106, /* version number (1.05) */ NULL, /* status variables */ connect_system_variables, /* system variables */ - "1.06.0004", /* string version */ + "1.06.0005", /* string version */ MariaDB_PLUGIN_MATURITY_STABLE /* maturity */ } maria_declare_plugin_end; diff --git a/storage/connect/ha_connect.h b/storage/connect/ha_connect.h index e839590dbc8..4c5bf5856cc 100644 --- a/storage/connect/ha_connect.h +++ b/storage/connect/ha_connect.h @@ -32,8 +32,6 @@ /****************************************************************************/ #include "mycat.h" -static char *strz(PGLOBAL g, LEX_STRING &ls); - /****************************************************************************/ /* Structures used to pass info between CONNECT and ha_connect. */ /****************************************************************************/ @@ -207,13 +205,13 @@ public: bool IsOpened(void); int CloseTable(PGLOBAL g); int MakeRecord(char *buf); - int ScanRecord(PGLOBAL g, uchar *buf); - int CheckRecord(PGLOBAL g, const uchar *oldbuf, uchar *newbuf); + int ScanRecord(PGLOBAL g, const uchar *buf); + int CheckRecord(PGLOBAL g, const uchar *oldbuf, const uchar *newbuf); int ReadIndexed(uchar *buf, OPVAL op, const key_range *kr= NULL); bool IsIndexed(Field *fp); bool MakeKeyWhere(PGLOBAL g, PSTRG qry, OPVAL op, char q, const key_range *kr); - inline char *Strz(LEX_STRING &ls); +//inline char *Strz(LEX_STRING &ls); key_range start_key; @@ -231,7 +229,7 @@ public: /** @brief The file extensions. */ - const char **bas_ext() const; +//const char **bas_ext() const; /** Check if a storage engine supports a particular alter table in-place diff --git a/storage/connect/javaconn.cpp b/storage/connect/javaconn.cpp index 3ba99ed89f8..90f834ef9a7 100644 --- a/storage/connect/javaconn.cpp +++ b/storage/connect/javaconn.cpp @@ -17,7 +17,7 @@ /* Include relevant MariaDB header file. */ /***********************************************************************/ #include -#include +//#include #if defined(__WIN__) #include // for getcwd #if defined(__BORLANDC__) @@ -57,6 +57,7 @@ extern "C" HINSTANCE s_hModule; // Saved module handle extern char *JvmPath; // The connect_jvm_path global variable value extern char *ClassPath; // The connect_class_path global variable value +char *GetPluginDir(void); char *GetJavaWrapper(void); // The connect_java_wrapper variable value /***********************************************************************/ @@ -453,7 +454,7 @@ bool JAVAConn::Open(PGLOBAL g) vm_args.options = options; vm_args.ignoreUnrecognized = false; // invalid options make the JVM init fail - //=============== load and initialize Java VM and JNI interface ============= + //=============== load and initialize Java VM and JNI interface ============= rc = CreateJavaVM(&jvm, (void**)&env, &vm_args); // YES !! delete options; // we then no longer need the initialisation options. diff --git a/storage/connect/javaconn.h b/storage/connect/javaconn.h index 5d82570365b..54b7c4e92b7 100644 --- a/storage/connect/javaconn.h +++ b/storage/connect/javaconn.h @@ -54,12 +54,12 @@ typedef jint(JNICALL *GETJVM) (JavaVM **, jsize, jsize *); typedef jint(JNICALL *GETDEF) (void *); #endif // _DEBUG -class JAVAConn; +//class JAVAConn; /***********************************************************************/ /* JAVAConn class. */ /***********************************************************************/ -class JAVAConn : public BLOCK { +class DllExport JAVAConn : public BLOCK { friend class TDBJMG; friend class JMGDISC; private: diff --git a/storage/connect/jdbccat.h b/storage/connect/jdbccat.h index 1210aff77d8..d137164b53a 100644 --- a/storage/connect/jdbccat.h +++ b/storage/connect/jdbccat.h @@ -6,7 +6,7 @@ #define DEFAULT_QUERY_TIMEOUT -1 // means do not set typedef struct jdbc_parms { - int CheckSize(int rows); + int CheckSize(int rows); PCSZ Driver; // JDBC driver PCSZ Url; // Driver URL PCSZ User; // User connect info diff --git a/storage/connect/jdbconn.cpp b/storage/connect/jdbconn.cpp index cfe74cabacd..4c21c2c9681 100644 --- a/storage/connect/jdbconn.cpp +++ b/storage/connect/jdbconn.cpp @@ -654,7 +654,7 @@ bool JDBConn::Connect(PJPARM sop) if (gmID(g, typid, "ColumnType", "(ILjava/lang/String;)I")) return true; else - m_Opened = true; + m_Connected = true; return false; } // end of Connect diff --git a/storage/connect/jmgoconn.cpp b/storage/connect/jmgoconn.cpp index 7535431c82e..4736641ef3f 100644 --- a/storage/connect/jmgoconn.cpp +++ b/storage/connect/jmgoconn.cpp @@ -25,6 +25,7 @@ #define nullptr 0 bool IsNum(PSZ s); +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s); /* --------------------------- Class JNCOL --------------------------- */ @@ -123,12 +124,13 @@ void JMgoConn::AddJars(PSTRG jpop, char sep) #if defined(DEVELOPMENT) if (m_Version == 2) { jpop->Append(sep); - jpop->Append("C:/Eclipse/workspace/MongoWrap2/bin"); +// jpop->Append("C:/Eclipse/workspace/MongoWrap2/bin"); jpop->Append(sep); jpop->Append("C:/mongo-java-driver/mongo-java-driver-2.13.3.jar"); } else { jpop->Append(sep); - jpop->Append("C:/Eclipse/workspace/MongoWrap3/bin"); +// jpop->Append("C:/Eclipse/workspace/MongoWrap3/bin"); +// jpop->Append("C:/Program Files/MariaDB 10.1/lib/plugin/JavaWrappers.jar"); jpop->Append(sep); jpop->Append("C:/mongo-java-driver/mongo-java-driver-3.4.2.jar"); } // endif m_Version @@ -238,6 +240,7 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, PSZ jp; PCSZ op = NULL, sf = NULL, Options = options; PSTRG s = NULL; + PFIL filp = tdbp->GetFilter(); if (Options && !stricmp(Options, "all")) { Options = NULL; @@ -264,10 +267,10 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, s = new(g) STRING(g, 1023, (PSZ)Options); - if (tdbp->GetFilter()) { + if (filp) { s->Append(",{\"$match\":"); - if (tdbp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return NULL; } else @@ -314,15 +317,15 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, return AggregateCollection(p); } else { - if (filter || tdbp->GetFilter()) { + if (filter || filp) { if (trace) { if (filter) htrc("Filter: %s\n", filter); - if (tdbp->GetFilter()) { + if (filp) { char buf[512]; - tdbp->GetFilter()->Prints(g, buf, 511); + filp->Prints(g, buf, 511); htrc("To_Filter: %s\n", buf); } // endif To_Filter @@ -331,11 +334,11 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, s = new(g) STRING(g, 1023, (PSZ)filter); len = s->GetLength(); - if (tdbp->GetFilter()) { + if (filp) { if (filter) s->Append(','); - if (tdbp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return NULL; } // endif Selector diff --git a/storage/connect/json.h b/storage/connect/json.h index cf7b2b18737..375532212c4 100644 --- a/storage/connect/json.h +++ b/storage/connect/json.h @@ -53,8 +53,8 @@ PSZ Serialize(PGLOBAL g, PJSON jsp, char *fn, int pretty); bool SerializeArray(JOUT *js, PJAR jarp, bool b); bool SerializeObject(JOUT *js, PJOB jobp); bool SerializeValue(JOUT *js, PJVAL jvp); -bool IsNum(PSZ s); char *NextChr(PSZ s, char sep); +DllExport bool IsNum(PSZ s); /***********************************************************************/ /* Class JOUT. Used by Serialize. */ diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index 4f0978cb548..06c9303baac 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -497,28 +497,26 @@ PVAL JSNX::ExpandArray(PGLOBAL g, PJAR arp, int n) /*********************************************************************************/ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) { -//int i, ars, nv = 0, nextsame = Tjp->NextSame; - int i, nv = 0, nextsame = 0; - my_bool err; + int i, ars = arp->size(), nv = 0, nextsame = 0; + bool err; OPVAL op = Nodes[n].Op; PVAL val[2], vp = Nodes[n].Valp; PJVAL jvrp, jvp; JVALUE jval; vp->Reset(); -//ars = arp->size(); if (trace) - htrc("CalculateArray size=%d\n", arp->size()); -// htrc("CalculateArray size=%d\n", ars); + htrc("CalculateArray size=%d\n", ars); + else // This is temporary until we find a better way to fix the compiler + htrc(""); // bug sometime causing the next loop to be executed only once. - for (i = 0; i < arp->size(); i++) { -//for (i = 0; i < ars; i++) { because compiler bug + for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); if (trace) - htrc("Value %s null=%d nv=%d\n", - jvrp->GetString(g), jvrp->IsNull() ? 1 : 0, nv); + htrc("i=%d Value %s null=%d nv=%d\n", + i, jvrp->GetString(g), jvrp->IsNull() ? 1 : 0, nv); if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) { if (jvrp->IsNull()) { diff --git a/storage/connect/mongo.cpp b/storage/connect/mongo.cpp index 12f2f428112..6b5c9ec8e8f 100644 --- a/storage/connect/mongo.cpp +++ b/storage/connect/mongo.cpp @@ -18,12 +18,13 @@ #include "plgdbsem.h" #include "xtable.h" #include "tabext.h" +#include "filter.h" #if defined(CMGO_SUPPORT) #include "tabcmg.h" -#endif // MONGO_SUPPORT -#if defined(JDBC_SUPPORT) +#endif // CMGO_SUPPORT +#if defined(JAVA_SUPPORT) #include "tabjmg.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #include "resource.h" /***********************************************************************/ @@ -34,6 +35,86 @@ bool IsNum(PSZ s); +/***********************************************************************/ +/* Make selector json representation for Mongo tables. */ +/***********************************************************************/ +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s) +{ + OPVAL opc = fp->GetOpc(); + + s->Append('{'); + + if (opc == OP_AND || opc == OP_OR) { + if (fp->GetArgType(0) != TYPE_FILTER || fp->GetArgType(1) != TYPE_FILTER) + return true; + + s->Append("\"$"); + s->Append(opc == OP_AND ? "and" : "or"); + s->Append("\":["); + + if (MakeSelector(g, (PFIL)fp->Arg(0), s)) + return true; + + s->Append(','); + + if (MakeSelector(g, (PFIL)fp->Arg(1), s)) + return true; + + s->Append(']'); + } else { + if (fp->GetArgType(0) != TYPE_COLBLK) + return true; + + s->Append('"'); + s->Append(((PCOL)fp->Arg(0))->GetJpath(g, false)); + s->Append("\":{\"$"); + + switch (opc) { + case OP_EQ: + s->Append("eq"); + break; + case OP_NE: + s->Append("ne"); + break; + case OP_GT: + s->Append("gt"); + break; + case OP_GE: + s->Append("gte"); + break; + case OP_LT: + s->Append("lt"); + break; + case OP_LE: + s->Append("lte"); + break; + case OP_NULL: + case OP_LIKE: + case OP_EXIST: + default: + return true; + } // endswitch Opc + + s->Append("\":"); + + if (fp->GetArgType(1) == TYPE_COLBLK) { + s->Append("\"$"); + s->Append(((PEXTCOL)fp->Arg(1))->GetJpath(g, false)); + s->Append('"'); + } else { + char buf[501]; + + fp->Arg(1)->Prints(g, buf, 500); + s->Append(buf); + } // endif Type + + s->Append('}'); + } // endif opc + + s->Append('}'); + return false; +} // end of MakeSelector + /***********************************************************************/ /* MGOColumns: construct the result blocks containing the description */ /* of all the columns of a document contained inside MongoDB. */ @@ -72,7 +153,7 @@ PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt, bool info) goto err; #endif } else if (drv && toupper(*drv) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) cmgd = new(g) JMGDISC(g, (int*)length); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); @@ -181,7 +262,7 @@ int MGODISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt) /* Open the MongoDB collection. */ /*********************************************************************/ tdp = new(g) MGODEF; - tdp->Uri = uri; + tdp->Uri = (uri && *uri) ? uri : "mongodb://localhost:27017"; tdp->Driver = drv; tdp->Tabname = GetStringTableOption(g, topt, "Name", NULL); tdp->Tabname = GetStringTableOption(g, topt, "Tabname", tdp->Tabname); @@ -346,7 +427,7 @@ PTDB MGODEF::GetTable(PGLOBAL g, MODE m) return NULL; #endif } else if (Driver && toupper(*Driver) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) if (Catfunc == FNC_COL) return new(g) TDBJGL(this); else diff --git a/storage/connect/mongo.h b/storage/connect/mongo.h index af69226ea8b..97c391a217f 100644 --- a/storage/connect/mongo.h +++ b/storage/connect/mongo.h @@ -63,7 +63,7 @@ class DllExport MGODEF : public EXTDEF { /* Table description */ friend class TDBJGL; friend class CMGFAM; friend class MGODISC; - friend PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); + friend DllExport PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); public: // Constructor MGODEF(void); diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc index 0f8d7b76b60..bb77512be62 100644 --- a/storage/connect/mycat.cc +++ b/storage/connect/mycat.cc @@ -83,22 +83,20 @@ #define NODBC #include "tabodbc.h" #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) #define NJDBC #include "tabjdbc.h" -#endif // JDBC_SUPPORT -#if defined(PIVOT_SUPPORT) +#endif // JAVA_SUPPORT #include "tabpivot.h" -#endif // PIVOT_SUPPORT #include "tabvir.h" #include "tabjson.h" #include "ha_connect.h" #if defined(XML_SUPPORT) #include "tabxml.h" #endif // XML_SUPPORT -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) #include "mongo.h" -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT #if defined(ZIP_SUPPORT) #include "tabzip.h" #endif // ZIP_SUPPORT @@ -111,9 +109,9 @@ extern "C" HINSTANCE s_hModule; // Saved module handle #endif // !__WIN__ -#if defined(MONGO_SUPPORT) -bool MongoEnabled(void); -#endif // MONGO_SUPPORT +#if defined(JAVA_SUPPORT) +//bool MongoEnabled(void); +#endif // JAVA_SUPPORT PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info); /***********************************************************************/ @@ -144,8 +142,9 @@ TABTYPE GetTypeID(const char *type) #if defined(ODBC_SUPPORT) : (!stricmp(type, "ODBC")) ? TAB_ODBC #endif -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) : (!stricmp(type, "JDBC")) ? TAB_JDBC + : (!stricmp(type, "MONGO")) ? TAB_MONGO #endif : (!stricmp(type, "MYSQL")) ? TAB_MYSQL : (!stricmp(type, "MYPRX")) ? TAB_MYSQL @@ -159,16 +158,11 @@ TABTYPE GetTypeID(const char *type) : (!stricmp(type, "OCCUR")) ? TAB_OCCUR : (!stricmp(type, "CATLG")) ? TAB_PRX // Legacy : (!stricmp(type, "PROXY")) ? TAB_PRX -#if defined(PIVOT_SUPPORT) : (!stricmp(type, "PIVOT")) ? TAB_PIVOT -#endif : (!stricmp(type, "VIR")) ? TAB_VIR : (!stricmp(type, "JSON")) ? TAB_JSON #if defined(ZIP_SUPPORT) : (!stricmp(type, "ZIP")) ? TAB_ZIP -#endif -#if defined(MONGO_SUPPORT) - : (!stricmp(type, "MONGO")) ? TAB_MONGO #endif : (!stricmp(type, "OEM")) ? TAB_OEM : TAB_NIY; } // end of GetTypeID @@ -542,9 +536,9 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) #if defined(ODBC_SUPPORT) case TAB_ODBC: tdp= new(g) ODBCDEF; break; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_JDBC: tdp= new(g) JDBCDEF; break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #if defined(__WIN__) case TAB_MAC: tdp= new(g) MACDEF; break; case TAB_WMI: tdp= new(g) WMIDEF; break; @@ -555,17 +549,15 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) case TAB_PRX: tdp= new(g) PRXDEF; break; case TAB_OCCUR: tdp= new(g) OCCURDEF; break; case TAB_MYSQL: tdp= new(g) MYSQLDEF; break; -#if defined(PIVOT_SUPPORT) case TAB_PIVOT: tdp= new(g) PIVOTDEF; break; -#endif // PIVOT_SUPPORT case TAB_VIR: tdp= new(g) VIRDEF; break; case TAB_JSON: tdp= new(g) JSONDEF; break; #if defined(MONGO_SUPPORT) case TAB_MONGO: - if (MongoEnabled()) +// if (MongoEnabled()) tdp = new(g) MGODEF; - else - strcpy(g->Message, "MONGO type not enabled"); +// else +// strcpy(g->Message, "MONGO type not enabled"); break; #endif // MONGO_SUPPORT diff --git a/storage/connect/mysql-test/connect/r/json_java_2.result b/storage/connect/mysql-test/connect/r/json_java_2.result index 96c58221b24..966330248e5 100644 --- a/storage/connect/mysql-test/connect/r/json_java_2.result +++ b/storage/connect/mysql-test/connect/r/json_java_2.result @@ -1,5 +1,4 @@ SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -310,7 +309,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=JSON TABNAME='cities' OPTION_LIST='Driver=Java,Version=2' CONNECTION='mongodb://localhost:27017' LRECL=4096 DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -382,4 +381,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/json_java_3.result b/storage/connect/mysql-test/connect/r/json_java_3.result index 09901452975..f8e9e161475 100644 --- a/storage/connect/mysql-test/connect/r/json_java_3.result +++ b/storage/connect/mysql-test/connect/r/json_java_3.result @@ -1,5 +1,4 @@ SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -310,7 +309,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=JSON TABNAME='cities' OPTION_LIST='Driver=Java,Version=3' CONNECTION='mongodb://localhost:27017' LRECL=4096 DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -382,4 +381,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/json_mongo_c.result b/storage/connect/mysql-test/connect/r/json_mongo_c.result index afcad8d2ea2..8adc006a51b 100644 --- a/storage/connect/mysql-test/connect/r/json_mongo_c.result +++ b/storage/connect/mysql-test/connect/r/json_mongo_c.result @@ -1,4 +1,3 @@ -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -309,7 +308,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=JSON TABNAME='cities' OPTION_LIST='Driver=C,Version=0' CONNECTION='mongodb://localhost:27017' LRECL=1024 DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -381,4 +380,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_c.result b/storage/connect/mysql-test/connect/r/mongo_c.result index f90f3a94b44..c7aadcf1165 100644 --- a/storage/connect/mysql-test/connect/r/mongo_c.result +++ b/storage/connect/mysql-test/connect/r/mongo_c.result @@ -1,4 +1,3 @@ -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -305,7 +304,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=MONGO TABNAME='cities' OPTION_LIST='Driver=C,Version=0' DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -377,4 +376,3 @@ planner 167 41.750000 postcard 23 5.750000 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_java_2.result b/storage/connect/mysql-test/connect/r/mongo_java_2.result index 02b8ae09d34..8c58a9eceea 100644 --- a/storage/connect/mysql-test/connect/r/mongo_java_2.result +++ b/storage/connect/mysql-test/connect/r/mongo_java_2.result @@ -1,5 +1,4 @@ SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -306,7 +305,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=MONGO TABNAME='cities' OPTION_LIST='Driver=Java,Version=2' DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -378,4 +377,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_java_3.result b/storage/connect/mysql-test/connect/r/mongo_java_3.result index c4387bfa5b1..1dd3048b49b 100644 --- a/storage/connect/mysql-test/connect/r/mongo_java_3.result +++ b/storage/connect/mysql-test/connect/r/mongo_java_3.result @@ -1,5 +1,4 @@ SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -306,7 +305,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=MONGO TABNAME='cities' OPTION_LIST='Driver=Java,Version=3' DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -378,4 +377,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/odbc_firebird.result b/storage/connect/mysql-test/connect/r/odbc_firebird.result index b0c2582abeb..3c4cd84fffc 100644 --- a/storage/connect/mysql-test/connect/r/odbc_firebird.result +++ b/storage/connect/mysql-test/connect/r/odbc_firebird.result @@ -9,29 +9,13 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='ODBC' `CATFUNC`='Sources' SELECT * FROM t1; Name Description -dBASE Files Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx) -PLUGDB_DEBUG PLUGODBC_Driver -PLUGDB_ODBC PLUGODBC_Driver -SafeDB_ODBC SDB_ODBC_Driver -Firebird Firebird/InterBase(r) driver -ConnectEngineXLS Microsoft Excel Driver (*.xls) Excel Files Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) -MariaODBC MySQL ODBC 5.2a Driver -MariaODBCbeta MariaDB ODBC 1.0 Driver -MyODBC MySQL ODBC 5.2a Driver MS Access Database Microsoft Access Driver (*.mdb, *.accdb) -MS Access Db1 Microsoft Access Driver (*.mdb) -MySQL-ANSI MySQL ODBC 5.3 ANSI Driver -MySQL-Unicode MySQL ODBC 5.3 Unicode Driver -Xtreme Sample Database 2008 Microsoft Access Driver (*.mdb) -PlugDB test PLUGODBC_Driver -SQLite3 Datasource SQLite3 ODBC Driver -SQLite Datasource SQLite ODBC Driver -SQLite UTF-8 Datasource SQLite ODBC (UTF-8) Driver ORACLE_TEST Oracle in XE -ConnectEnginePostgresql PostgreSQL ODBC Driver(ANSI) +SQLServer_Test SQL Server Native Client 11.0 +Firebird Firebird/InterBase(r) driver ConnectEngineOracle Oracle in XE -ConnectEngineSQLServer SQL Server +ConnectEngineSQLServer SQL Server Native Client 11.0 DROP TABLE t1; CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Drivers; SHOW CREATE TABLE t1; @@ -42,51 +26,12 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='ODBC' `CATFUNC`='Drivers' SELECT * FROM t1; Description Attributes -SQL Server UsageCount=1;SQLLevel=1;FileUsage=0;DriverODBCVer=03.50;ConnectFunctions=YYY;APILevel=2;CPTimeout=60; -Microsoft ODBC for Oracle UsageCount=1;SQLLevel=1;FileUsage=0;DriverODBCVer=02.50;ConnectFunctions=YYY;APILevel=1;CPTimeout=120; -Microsoft Access Driver (*.mdb) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=2;FileExtns=*.mdb;SQLLevel=0; -Microsoft Access-Treiber (*.mdb) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=2;FileExtns=*.mdb;SQLLevel=0; -Driver do Microsoft Access (*.mdb) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=2;FileExtns=*.mdb;SQLLevel=0; -Microsoft dBase Driver (*.dbf) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.ndx,*.mdx;SQLLevel=0; -Microsoft dBase-Treiber (*.dbf) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.ndx,*.mdx;SQLLevel=0; -Driver do Microsoft dBase (*.dbf) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.ndx,*.mdx;SQLLevel=0; -Microsoft Excel Driver (*.xls) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.xls;SQLLevel=0; -Microsoft Excel-Treiber (*.xls) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.xls;SQLLevel=0; -Driver do Microsoft Excel(*.xls) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.xls;SQLLevel=0; -Microsoft Paradox Driver (*.db ) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.db;SQLLevel=0; -Microsoft Paradox-Treiber (*.db ) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.db;SQLLevel=0; -Driver do Microsoft Paradox (*.db ) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.db;SQLLevel=0; -Microsoft Text Driver (*.txt; *.csv) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv;SQLLevel=0; -Microsoft Text-Treiber (*.txt; *.csv) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv;SQLLevel=0; -Driver da Microsoft para arquivos texto (*.txt; *.csv) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv;SQLLevel=0; -Microsoft Visual FoxPro Driver UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Microsoft FoxPro VFP Driver (*.dbf) UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Microsoft dBase VFP Driver (*.dbf) UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Microsoft Visual FoxPro-Treiber UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Driver para o Microsoft Visual FoxPro UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -SQL Native Client UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=09.00;FileUsage=0;SQLLevel=1; -CR Sybase Wire Protocol ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=0;SQLLevel=0;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -CR SQL Server Native Wire Protocol ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=0;SQLLevel=1;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -CR SQL Server Classic Wire Protocol ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=0;SQLLevel=1;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -CR TextFile ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=1;FileExtns=*.*;SQLLevel=0;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -PLUGODBC_Driver UsageCount=1; -SDB_ODBC_Driver UsageCount=2; -Microsoft Access Text Driver (*.txt, *.csv) SQLLevel=0;FileExtns=*.txt, *.csv;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx) SQLLevel=0;FileExtns=*.dbf, *.ndx, *.mdx;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) SQLLevel=0;FileExtns=*.xls,*.xlsx, *.xlsb;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -Microsoft Access Driver (*.mdb, *.accdb) SQLLevel=0;FileExtns=*.mdb,*.accdb;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -SQLite3 ODBC Driver UsageCount=1; -SQLite ODBC Driver UsageCount=1; -SQLite ODBC (UTF-8) Driver UsageCount=1; +SQL Server APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.50;FileUsage=0;SQLLevel=1;UsageCount=1; Oracle in XE ConnectionFunctions=YYY;DriverODBCVer=03.51;CPTimeout=60;FileUsage=0;APILevel=1;SQLLevel=1; -Oracle in instantclient_12_1 APILevel=1;ConnectionFunctions=YYY;CPTimeout=60;DriverODBCVer=03.51;FileUsage=0;SQLLevel=1; -PostgreSQL ODBC Driver(ANSI) APILevel=1;ConnectFunctions=YYN;DriverODBCVer=09.02.0100;FileUsage=0;SQLLevel=1; -PostgreSQL ODBC Driver(UNICODE) APILevel=1;ConnectFunctions=YYN;DriverODBCVer=09.02.0100;FileUsage=0;SQLLevel=1; SQL Server Native Client 11.0 UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.80;FileUsage=0;SQLLevel=1; -MariaDB ODBC 1.0 Driver UsageCount=1; +ODBC Driver 13 for SQL Server UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.80;FileUsage=0;SQLLevel=1; +SQL Server Native Client RDA 11.0 UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.80;FileUsage=0;SQLLevel=1; Firebird/InterBase(r) driver UsageCount=1;FileExtns=*.fdb,*.gdb;APILevel=1;ConnectFunctions=YYY;FileUsage=0;DriverODBCVer=03.51;SQLLevel=1; -MySQL ODBC 5.3 ANSI Driver UsageCount=1; -MySQL ODBC 5.3 Unicode Driver UsageCount=1; DROP TABLE t1; CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Tables CONNECTION='Not important'; SHOW CREATE TABLE t1; @@ -154,9 +99,9 @@ EMP_NO FIRST_NAME LAST_NAME PHONE_EXT HIRE_DATE DEPT_NO JOB_CODE JOB_GRADE JOB_C 113 Mary Page 845 1993-04-12 00:00:00 671 Eng 4 USA 48000.00 Page, Mary 114 Bill Parker 247 1993-06-01 00:00:00 623 Eng 5 USA 35000.00 Parker, Bill 118 Takashi Yamamoto 23 1993-07-01 00:00:00 115 SRep 4 Japan 7480000.00 Yamamoto, Takashi -121 Roberto Ferrari 1 1993-07-12 00:00:00 125 SRep 4 Italy 99000000.00 Ferrari, Roberto +121 Roberto Ferrari 1 1993-07-12 00:00:00 125 SRep 4 Italy 33000.00 Ferrari, Roberto 127 Michael Yanowski 492 1993-08-09 00:00:00 100 SRep 4 USA 44000.00 Yanowski, Michael -134 Jacques Glon NULL 1993-08-23 00:00:00 123 SRep 4 France 390500.00 Glon, Jacques +134 Jacques Glon NULL 1993-08-23 00:00:00 123 SRep 4 France 38500.00 Glon, Jacques 136 Scott Johnson 265 1993-09-13 00:00:00 623 Doc 3 USA 60000.00 Johnson, Scott 138 T.J. Green 218 1993-11-01 00:00:00 621 Eng 4 USA 36000.00 Green, T.J. 141 Pierre Osborne NULL 1994-01-03 00:00:00 121 SRep 4 Switzerland 110000.00 Osborne, Pierre diff --git a/storage/connect/mysql-test/connect/t/mongo_test.inc b/storage/connect/mysql-test/connect/t/mongo_test.inc index c728b85fd2f..dfc223e9074 100644 --- a/storage/connect/mysql-test/connect/t/mongo_test.inc +++ b/storage/connect/mysql-test/connect/t/mongo_test.inc @@ -1,4 +1,4 @@ -set connect_enable_mongo=1; +#set connect_enable_mongo=1; --echo # --echo # Test the MONGO table type @@ -156,7 +156,7 @@ eval CREATE TABLE t1 ( loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=$TYPE TABNAME='cities' OPTION_LIST='Driver=$DRV,Version=$VERS' $CONN DATA_CHARSET='utf8'; --echo # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -204,4 +204,4 @@ SELECT * FROM t1; DROP TABLE t1; --exec $MONGO --eval "db.testcoll.drop()" --quiet -set connect_enable_mongo=0; +#set connect_enable_mongo=0; diff --git a/storage/connect/plgdbutl.cpp b/storage/connect/plgdbutl.cpp index 25da3162516..0a6507315db 100644 --- a/storage/connect/plgdbutl.cpp +++ b/storage/connect/plgdbutl.cpp @@ -38,6 +38,7 @@ /* Include relevant MariaDB header file. */ /***********************************************************************/ #include "my_global.h" +#include "my_pthread.h" #if defined(__WIN__) #include #include @@ -71,12 +72,12 @@ #ifdef ZIP_SUPPORT #include "filamzip.h" #endif // ZIP_SUPPORT -#ifdef JDBC_SUPPORT +#ifdef JAVA_SUPPORT #include "javaconn.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #ifdef CMGO_SUPPORT #include "cmgoconn.h" -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT /***********************************************************************/ /* DB static variables. */ @@ -952,20 +953,20 @@ int PlugCloseFile(PGLOBAL g, PFBLOCK fp, bool all) fp->File = NULL; break; #endif // ZIP_SUPPORT -#ifdef JDBC_SUPPORT +#ifdef JAVA_SUPPORT case TYPE_FB_JAVA: ((JAVAConn*)fp->File)->Close(); fp->Count = 0; fp->File = NULL; break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #ifdef CMGO_SUPPORT case TYPE_FB_MONGO: ((CMgoConn*)fp->File)->Close(); fp->Count = 0; fp->File = NULL; break; -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT default: rc = RC_FX; } // endswitch Type diff --git a/storage/connect/reldef.h b/storage/connect/reldef.h index 84ae2a491f0..f8256a59b3d 100644 --- a/storage/connect/reldef.h +++ b/storage/connect/reldef.h @@ -11,7 +11,7 @@ #include "block.h" #include "catalog.h" -#include "my_sys.h" +//#include "my_sys.h" #include "mycat.h" typedef class INDEXDEF *PIXDEF; @@ -114,7 +114,7 @@ public: int Sort; /* Table already sorted ??? */ int Multiple; /* 0: No 1: DIR 2: Section 3: filelist */ int Degree; /* Number of columns in the table */ - int Pseudo; /* Bit: 1 ROWID }Ok, 2 FILEID Ok */ + int Pseudo; /* Bit: 1 ROWID }Ok, 2 FILEID Ok */ bool Read_Only; /* true for read only tables */ const CHARSET_INFO *m_data_charset; const char *csname; /* Table charset name */ diff --git a/storage/connect/tabext.h b/storage/connect/tabext.h index be819937a1f..6b67c2ab5ed 100644 --- a/storage/connect/tabext.h +++ b/storage/connect/tabext.h @@ -7,7 +7,7 @@ /***********************************************************************/ #ifndef __TABEXT_H -#define __TABEXTF_H +#define __TABEXT_H #include "reldef.h" diff --git a/storage/connect/tabjmg.cpp b/storage/connect/tabjmg.cpp index 50efd727604..566b1f91611 100644 --- a/storage/connect/tabjmg.cpp +++ b/storage/connect/tabjmg.cpp @@ -178,7 +178,7 @@ TDBJMG::TDBJMG(PMGODEF tdp) : TDBEXT(tdp) Ops.User = NULL; Ops.Pwd = NULL; Ops.Scrollable = false; - Ops.Fsize = Ops.CheckSize(Rows); + Ops.Fsize = 0; Fpos = -1; N = 0; Done = false; diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 401441520da..94c089aeeb6 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -31,14 +31,12 @@ #if defined(ZIP_SUPPORT) #include "filamzip.h" #endif // ZIP_SUPPORT -#if defined(MONGO_SUPPORT) -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) #include "jmgfam.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #if defined(CMGO_SUPPORT) #include "cmgfam.h" #endif // CMGO_SUPPORT -#endif // MONGO_SUPPORT #include "tabmul.h" #include "checklvl.h" #include "resource.h" @@ -149,7 +147,7 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) tdp->Fn, tdp->Objname, tdp->Pretty, lvl); if (tdp->Uri) { -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) tdp->Collname = GetStringTableOption(g, topt, "Name", NULL); tdp->Collname = GetStringTableOption(g, topt, "Tabname", tdp->Collname); tdp->Schema = GetStringTableOption(g, topt, "Dbname", "test"); @@ -157,10 +155,8 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) tdp->Pipe = GetBooleanTableOption(g, topt, "Pipeline", false); tdp->Driver = (PSZ)GetStringTableOption(g, topt, "Driver", NULL); tdp->Version = GetIntegerTableOption(g, topt, "Version", 3); -#if defined(JDBC_SUPPORT) tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); -#endif // JDBC_SUPPORT tdp->Pretty = 0; #else // !MONGO_SUPPORT sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); @@ -201,7 +197,6 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) return NULL; #endif // !ZIP_SUPPORT } else if (tdp->Uri) { -#if defined(MONGO_SUPPORT) if (tdp->Driver && toupper(*tdp->Driver) == 'C') { #if defined(CMGO_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); @@ -210,7 +205,7 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) return NULL; #endif } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); @@ -219,14 +214,14 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) } else { // Driver not specified #if defined(CMGO_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); -#else +#elif defined(JAVA_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); +#else + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return NULL; #endif } // endif Driver -#else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; -#endif // MONGO_SUPPORT + } else tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); @@ -497,16 +492,12 @@ JSONDEF::JSONDEF(void) Base = 0; Strict = false; Sep = '.'; -#if defined(MONGO_SUPPORT) Uri = NULL; Collname = Options = Filter = NULL; Pipe = false; Driver = NULL; Version = 0; -#if defined(JDBC_SUPPORT) Wrapname = NULL; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT } // end of JSONDEF constructor /***********************************************************************/ @@ -524,7 +515,7 @@ bool JSONDEF::DefineAM(PGLOBAL g, LPCSTR, int poff) Sep = *GetStringCatInfo(g, "Separator", "."); if (Uri = GetStringCatInfo(g, "Connect", NULL)) { -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) Collname = GetStringCatInfo(g, "Name", (Catfunc & (FNC_TABLE | FNC_COL)) ? NULL : Name); Collname = GetStringCatInfo(g, "Tabname", Collname); @@ -534,12 +525,12 @@ bool JSONDEF::DefineAM(PGLOBAL g, LPCSTR, int poff) Driver = GetStringCatInfo(g, "Driver", NULL); Version = GetIntCatInfo("Version", 3); Pretty = 0; -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) if (Version == 2) Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo2Interface"); else Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo3Interface"); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #else // !MONGO_SUPPORT sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); return true; @@ -569,7 +560,6 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) (m == MODE_UPDATE || m == MODE_DELETE)); if (Uri) { -#if defined(MONGO_SUPPORT) if (Driver && toupper(*Driver) == 'C') { #if defined(CMGO_SUPPORT) txfp = new(g) CMGFAM(this); @@ -578,7 +568,7 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) return NULL; #endif } else if (Driver && toupper(*Driver) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) txfp = new(g) JMGFAM(this); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); @@ -587,14 +577,14 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) } else { // Driver not specified #if defined(CMGO_SUPPORT) txfp = new(g) CMGFAM(this); -#else +#elif defined(JAVA_SUPPORT) txfp = new(g) JMGFAM(this); -#endif +#else // !MONGO_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return NULL; +#endif // !MONGO_SUPPORT } // endif Driver -#else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; -#endif // MONGO_SUPPORT + } else if (Zipped) { #if defined(ZIP_SUPPORT) if (m == MODE_READ || m == MODE_ANY || m == MODE_ALTER) { @@ -1591,8 +1581,7 @@ PVAL JSONCOL::ExpandArray(PGLOBAL g, PJAR arp, int n) /***********************************************************************/ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) { -//int i, ars, nv = 0, nextsame = Tjp->NextSame; - int i, nv = 0, nextsame = Tjp->NextSame; + int i, ars, nv = 0, nextsame = Tjp->NextSame; bool err; OPVAL op = Nodes[n].Op; PVAL val[2], vp = Nodes[n].Valp; @@ -1600,12 +1589,20 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) JVALUE jval; vp->Reset(); -//ars = MY_MIN(Tjp->Limit, arp->size()); + ars = MY_MIN(Tjp->Limit, arp->size()); -//for (i = 0; i < ars; i++) { - for (i = 0; i < arp->size(); i++) { + if (trace) + htrc("CalculateArray size=%d\n", ars); + else // This is temporary until we find a better way to fix the compiler + htrc(""); // bug sometime causing the next loop to be executed only once. + + for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); + if (trace) + htrc("i=%d Value %s null=%d nv=%d\n", + i, jvrp->GetString(g), jvrp->IsNull() ? 1 : 0, nv); + if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) do { if (jvrp->IsNull()) { jvrp->Value = AllocateValue(g, GetJsonNull(), TYPE_STRING); @@ -1623,7 +1620,6 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) } else SetJsonValue(g, MulVal, jvp, n); -// if (!MulVal->IsZero()) { if (!MulVal->IsNull()) { switch (op) { case OP_CNC: diff --git a/storage/connect/tabjson.h b/storage/connect/tabjson.h index 00e2f4614e7..17583cba333 100644 --- a/storage/connect/tabjson.h +++ b/storage/connect/tabjson.h @@ -36,14 +36,12 @@ class DllExport JSONDEF : public DOSDEF { /* Table description */ friend class TDBJSON; friend class TDBJSN; friend class TDBJCL; -#if defined(MONGO_SUPPORT) #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) friend class JMGFAM; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT friend PQRYRES JSONColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); public: // Constructor @@ -68,17 +66,13 @@ public: bool Strict; /* Strict syntax checking */ char Sep; /* The Jpath separator */ const char *Uri; /* MongoDB connection URI */ -#if defined(MONGO_SUPPORT) PCSZ Collname; /* External collection name */ PSZ Options; /* Colist ; Pipe */ PSZ Filter; /* Filter */ PSZ Driver; /* MongoDB Driver (C or JAVA) */ bool Pipe; /* True if Colist is a pipeline */ int Version; /* Driver version */ -#if defined(JDBC_SUPPORT) PSZ Wrapname; /* MongoDB java wrapper name */ -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT }; // end of JSONDEF /* -------------------------- TDBJSN class --------------------------- */ @@ -90,14 +84,12 @@ public: class DllExport TDBJSN : public TDBDOS { friend class JSONCOL; friend class JSONDEF; -#if defined(MONGO_SUPPORT) #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) friend class JMGFAM; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT public: // Constructor TDBJSN(PJDEF tdp, PTXF txfp); @@ -162,14 +154,12 @@ public: class DllExport JSONCOL : public DOSCOL { friend class TDBJSN; friend class TDBJSON; -#if defined(MONGO_SUPPORT) #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) friend class JMGFAM; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT public: // Constructors JSONCOL(PGLOBAL g, PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i); diff --git a/storage/connect/tabxml.h b/storage/connect/tabxml.h index 813f62dde52..f55b7d98de7 100644 --- a/storage/connect/tabxml.h +++ b/storage/connect/tabxml.h @@ -53,6 +53,8 @@ class DllExport XMLDEF : public TABDEF { /* Logical table description */ }; // end of XMLDEF #if defined(INCLUDE_TDBXML) +#include "m_ctype.h" + /***********************************************************************/ /* This is the class declaration for the simple XML tables. */ /***********************************************************************/ diff --git a/storage/connect/valblk.h b/storage/connect/valblk.h index a3d7bf30fcf..ad970105868 100644 --- a/storage/connect/valblk.h +++ b/storage/connect/valblk.h @@ -40,7 +40,7 @@ class MBVALS : public BLOCK { // Methods void *GetMemp(void) {return Mblk.Memp;} PVBLK Allocate(PGLOBAL g, int type, int len, int prec, - int n, bool sub = FALSE); + int n, bool sub = false); bool ReAllocate(PGLOBAL g, int n); void Free(void); diff --git a/storage/connect/value.h b/storage/connect/value.h index f771d33dc52..6613e25100a 100644 --- a/storage/connect/value.h +++ b/storage/connect/value.h @@ -102,7 +102,7 @@ class DllExport VALUE : public BLOCK { virtual bool SetValue_pval(PVAL valp, bool chktype = false) = 0; virtual bool SetValue_char(const char *p, int n) = 0; virtual void SetValue_psz(PCSZ s) = 0; - virtual void SetValue_bool(bool) {assert(FALSE);} + virtual void SetValue_bool(bool) {assert(false);} virtual int CompareValue(PVAL vp) = 0; virtual BYTE TestValue(PVAL vp); virtual void SetValue(char) {assert(false);} diff --git a/storage/connect/xtable.h b/storage/connect/xtable.h index ebef7a2549a..bc9265e0223 100644 --- a/storage/connect/xtable.h +++ b/storage/connect/xtable.h @@ -16,7 +16,7 @@ #include "assert.h" #include "block.h" #include "colblk.h" -#include "m_ctype.h" +//#include "m_ctype.h" #include "reldef.h" typedef class CMD *PCMD; From 6691d12e2d5d0aa26353ddca143067edf4cf56d5 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Mon, 16 Oct 2017 00:48:03 +0200 Subject: [PATCH 048/128] - Make another temporary fix for the compiler bug in CalculateArray modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp --- storage/connect/jsonudf.cpp | 22 +++++++++++++--------- storage/connect/tabjson.cpp | 23 +++++++++++++++++------ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index 06c9303baac..078aff29bfe 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -497,7 +497,7 @@ PVAL JSNX::ExpandArray(PGLOBAL g, PJAR arp, int n) /*********************************************************************************/ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) { - int i, ars = arp->size(), nv = 0, nextsame = 0; + int i, ars = arp->size(), nv = 0; bool err; OPVAL op = Nodes[n].Op; PVAL val[2], vp = Nodes[n].Valp; @@ -507,17 +507,11 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) vp->Reset(); if (trace) - htrc("CalculateArray size=%d\n", ars); - else // This is temporary until we find a better way to fix the compiler - htrc(""); // bug sometime causing the next loop to be executed only once. + htrc("CalculateArray size=%d op=%d\n", ars, op); for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); - if (trace) - htrc("i=%d Value %s null=%d nv=%d\n", - i, jvrp->GetString(g), jvrp->IsNull() ? 1 : 0, nv); - if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) { if (jvrp->IsNull()) { jvrp->Value = AllocateValue(g, GetJsonNull(), TYPE_STRING); @@ -528,6 +522,10 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) } else jvp = jvrp; + if (trace) + htrc("jvp=%s null=%d\n", + jvp->GetString(g), jvp->IsNull() ? 1 : 0); + if (!nv++) { SetJsonValue(g, vp, jvp, n); continue; @@ -560,6 +558,13 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) if (err) vp->Reset(); + if (trace) { + char buf(32); + + htrc("vp='%s' err=%d\n", + vp->GetCharString(&buf), err ? 1 : 0); + } // endif trace + } // endif Zero } // endif jvrp @@ -577,7 +582,6 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) } // endif Op -//Tjp->NextSame = nextsame; return vp; } // end of CalculateArray diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 94c089aeeb6..24881aae415 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -1592,9 +1592,9 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) ars = MY_MIN(Tjp->Limit, arp->size()); if (trace) - htrc("CalculateArray size=%d\n", ars); - else // This is temporary until we find a better way to fix the compiler - htrc(""); // bug sometime causing the next loop to be executed only once. + htrc("CalculateArray size=%d op=%d nextsame=%d\n", ars, op, nextsame); + else // This seems to prevent a bug in zip.test + htrc(""); for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); @@ -1614,7 +1614,11 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) } else jvp = jvrp; - if (!nv++) { + if (trace) + htrc("jvp=%s null=%d\n", + jvp->GetString(g), jvp->IsNull() ? 1 : 0); + + if (!nv++) { SetJsonValue(g, vp, jvp, n); continue; } else @@ -1630,7 +1634,7 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) val[0] = MulVal; err = vp->Compute(g, val, 1, op); - break; + break; // case OP_NUM: case OP_SEP: val[0] = Nodes[n].Valp; @@ -1646,7 +1650,14 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) if (err) vp->Reset(); - } // endif Null + if (trace) { + char buf(32); + + htrc("vp='%s' err=%d\n", + vp->GetCharString(&buf), err ? 1 : 0); + } // endif trace + + } // endif Null } while (Tjp->NextSame > nextsame); From c83e2a63452946cf58241380f03a23ab4884c42b Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Mon, 16 Oct 2017 15:08:17 +0200 Subject: [PATCH 049/128] - Fix a bug in TYPVAL compute causing it sometime not to be executed This was the cause of the bug in CalculateArray modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/value.cpp - Avoid some compiler warnings modified: storage/connect/mongo.cpp modified: storage/connect/tabjmg.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp --- storage/connect/jsonudf.cpp | 3 +++ storage/connect/mongo.cpp | 5 +++-- storage/connect/tabjmg.cpp | 13 ++++++++----- storage/connect/tabjson.cpp | 11 +++++------ storage/connect/tabtbl.cpp | 2 +- storage/connect/tabutil.cpp | 4 ++-- storage/connect/value.cpp | 17 ++++++++++++++--- 7 files changed, 36 insertions(+), 19 deletions(-) diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index 078aff29bfe..afb5ae811c7 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -512,6 +512,9 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); + if (trace) + htrc("i=%d nv=%d\n", i, nv); + if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) { if (jvrp->IsNull()) { jvrp->Value = AllocateValue(g, GetJsonNull(), TYPE_STRING); diff --git a/storage/connect/mongo.cpp b/storage/connect/mongo.cpp index 6b5c9ec8e8f..088dc2d29d1 100644 --- a/storage/connect/mongo.cpp +++ b/storage/connect/mongo.cpp @@ -33,6 +33,7 @@ #define MAXCOL 200 /* Default max column nb in result */ #define TYPE_UNKNOWN 12 /* Must be greater than other types */ +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s); bool IsNum(PSZ s); /***********************************************************************/ @@ -130,7 +131,7 @@ PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt, bool info) int i, n = 0; PCSZ drv; PBCOL bcp; - MGODISC *cmgd; + MGODISC *cmgd = NULL; PQRYRES qrp; PCOLRES crp; @@ -223,7 +224,7 @@ skipit: return qrp; err: - if (cmgd->tmgp) + if (cmgd && cmgd->tmgp) cmgd->tmgp->CloseDB(g); return NULL; diff --git a/storage/connect/tabjmg.cpp b/storage/connect/tabjmg.cpp index 566b1f91611..ba3e1c3e7c0 100644 --- a/storage/connect/tabjmg.cpp +++ b/storage/connect/tabjmg.cpp @@ -73,9 +73,10 @@ bool JMGDISC::ColDesc(PGLOBAL g, jobject obj, char *pcn, char *pfmt, int ncol, int k) { const char *key; - char colname[65]; - char fmt[129]; - bool rc = true; + char colname[65]; + char fmt[129]; + bool rc = true; + size_t z; jint *n = nullptr; jstring jkey; jobject jres; @@ -105,14 +106,16 @@ bool JMGDISC::ColDesc(PGLOBAL g, jobject obj, char *pcn, char *pfmt, if (pcn) { strncpy(colname, pcn, 64); colname[64] = 0; - strncat(strncat(colname, "_", 65), key, 65); + z = 65 - strlen(colname); + strncat(strncat(colname, "_", z), key, z - 1); } else strcpy(colname, key); if (pfmt) { strncpy(fmt, pfmt, 128); fmt[128] = 0; - strncat(strncat(fmt, ".", 129), key, 129); + z = 129 - strlen(fmt); + strncat(strncat(fmt, ".", z), key, z - 1); } else strcpy(fmt, key); diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 24881aae415..8778b7d4b47 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -1592,16 +1592,14 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) ars = MY_MIN(Tjp->Limit, arp->size()); if (trace) - htrc("CalculateArray size=%d op=%d nextsame=%d\n", ars, op, nextsame); - else // This seems to prevent a bug in zip.test - htrc(""); + htrc("CalculateArray: size=%d op=%d nextsame=%d\n", + ars, op, nextsame); for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); if (trace) - htrc("i=%d Value %s null=%d nv=%d\n", - i, jvrp->GetString(g), jvrp->IsNull() ? 1 : 0, nv); + htrc("i=%d nv=%d\n", i, nv); if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) do { if (jvrp->IsNull()) { @@ -1623,7 +1621,7 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) continue; } else SetJsonValue(g, MulVal, jvp, n); - + if (!MulVal->IsNull()) { switch (op) { case OP_CNC: @@ -1655,6 +1653,7 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) htrc("vp='%s' err=%d\n", vp->GetCharString(&buf), err ? 1 : 0); + } // endif trace } // endif Null diff --git a/storage/connect/tabtbl.cpp b/storage/connect/tabtbl.cpp index bb7eae9c256..d3fb31fb57a 100644 --- a/storage/connect/tabtbl.cpp +++ b/storage/connect/tabtbl.cpp @@ -650,7 +650,7 @@ bool TDBTBM::IsLocal(PTABLE tbp) return ((!stricmp(tdbp->Host, "localhost") || !strcmp(tdbp->Host, "127.0.0.1")) && - tdbp->Port == GetDefaultPort()); + tdbp->Port == (int)GetDefaultPort()); } // end of IsLocal /***********************************************************************/ diff --git a/storage/connect/tabutil.cpp b/storage/connect/tabutil.cpp index a2c04e2cf62..5d8d7c1b9f8 100644 --- a/storage/connect/tabutil.cpp +++ b/storage/connect/tabutil.cpp @@ -120,7 +120,7 @@ PQRYRES TabColumns(PGLOBAL g, THD *thd, const char *db, FLD_REM, FLD_NO, FLD_CHARSET}; unsigned int length[] = {0, 4, 16, 4, 4, 4, 4, 4, 0, 32, 32}; PCSZ fmt; - char *pn, *tn, *fld, *colname, *chset, v; + char *pn, *tn, *fld, *colname, v; // *chset int i, n, ncol = sizeof(buftyp) / sizeof(int); int prec, len, type, scale; int zconv = GetConvSize(); @@ -185,7 +185,7 @@ PQRYRES TabColumns(PGLOBAL g, THD *thd, const char *db, colname = (char *)fp->field_name; crp->Kdata->SetValue(colname, i); - chset = (char *)fp->charset()->name; +// chset = (char *)fp->charset()->name; // v = (!strcmp(chset, "binary")) ? 'B' : 0; v = 0; diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index f08d18b5421..c7a6c8dd06a 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -1656,10 +1656,18 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) char *p[2], val[2][32]; int i; - for (i = 0; i < np; i++) - p[i] = vp[i]->IsNull() ? NULL : vp[i]->GetCharString(val[i]); + if (trace) + htrc("Compute: np=%d op=%d\n", np, op); - if (p[i]) { + for (i = 0; i < np; i++) { + p[i] = vp[i]->IsNull() ? NULL : vp[i]->GetCharString(val[i]); + + if (trace) + htrc("p[%d]=%s\n", i, p[i]); + + } // endfor i + + if (p[0] && p[np - 1]) { switch (op) { case OP_CNC: assert(np == 1 || np == 2); @@ -1670,6 +1678,9 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) if ((i = Len - (signed)strlen(Strp)) > 0) strncat(Strp, p[np - 1], i); + if (trace) + htrc("Strp=%s\n", Strp); + break; case OP_MIN: assert(np == 2); From 1eee3a3fb79e809943ff9e37b022660d155ad486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 16 Oct 2017 12:06:43 +0300 Subject: [PATCH 050/128] MDEV-13051 MySQL#86607 InnoDB crash after failed ADD INDEX and table_definition_cache eviction There are two bugs related to failed ADD INDEX and the InnoDB table cache eviction. dict_table_close(): Try dropping failed ADD INDEX when releasing the last table handle, not when releasing the last-but-one. dict_table_remove_from_cache_low(): Do not invoke row_merge_drop_indexes() after freeing all index metadata. Instead, directly invoke row_merge_drop_indexes_dict() to remove the metadata from the persistent data dictionary and to free the index pages. --- .../r/table_definition_cache_debug.result | 16 +++++ .../t/table_definition_cache_debug.test | 66 +++++++++++++++++++ storage/innobase/dict/dict0dict.cc | 24 +++---- storage/xtradb/dict/dict0dict.cc | 21 ++---- 4 files changed, 97 insertions(+), 30 deletions(-) create mode 100644 mysql-test/suite/innodb/r/table_definition_cache_debug.result create mode 100644 mysql-test/suite/innodb/t/table_definition_cache_debug.test diff --git a/mysql-test/suite/innodb/r/table_definition_cache_debug.result b/mysql-test/suite/innodb/r/table_definition_cache_debug.result new file mode 100644 index 00000000000..a72d4baad21 --- /dev/null +++ b/mysql-test/suite/innodb/r/table_definition_cache_debug.result @@ -0,0 +1,16 @@ +SET @save_tdc= @@GLOBAL.table_definition_cache; +SET @save_toc= @@GLOBAL.table_open_cache; +SET GLOBAL table_definition_cache= 400; +SET GLOBAL table_open_cache= 1024; +CREATE TABLE to_be_evicted(a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB; +INSERT INTO to_be_evicted VALUES(1,2),(2,1); +SET DEBUG_SYNC = 'row_log_apply_before SIGNAL scanned WAIT_FOR got_duplicate'; +ALTER TABLE to_be_evicted ADD UNIQUE INDEX(b); +SET DEBUG_SYNC = 'now WAIT_FOR scanned'; +BEGIN; +INSERT INTO to_be_evicted VALUES(3, 2); +SET DEBUG_SYNC = 'now SIGNAL got_duplicate'; +ERROR 23000: Duplicate entry '2' for key 'b' +COMMIT; +SET DEBUG_SYNC = RESET; +FLUSH TABLES; diff --git a/mysql-test/suite/innodb/t/table_definition_cache_debug.test b/mysql-test/suite/innodb/t/table_definition_cache_debug.test new file mode 100644 index 00000000000..57d64d6844e --- /dev/null +++ b/mysql-test/suite/innodb/t/table_definition_cache_debug.test @@ -0,0 +1,66 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc + +SET @save_tdc= @@GLOBAL.table_definition_cache; +SET @save_toc= @@GLOBAL.table_open_cache; + +# InnoDB plugin essentially ignores table_definition_cache size +# and hard-wires it to 400, which also is the minimum allowed value. +SET GLOBAL table_definition_cache= 400; +SET GLOBAL table_open_cache= 1024; + +CREATE TABLE to_be_evicted(a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB; +INSERT INTO to_be_evicted VALUES(1,2),(2,1); + +connect(ddl,localhost,root,,); +SET DEBUG_SYNC = 'row_log_apply_before SIGNAL scanned WAIT_FOR got_duplicate'; +--send +ALTER TABLE to_be_evicted ADD UNIQUE INDEX(b); + +connection default; +SET DEBUG_SYNC = 'now WAIT_FOR scanned'; + +# During the ADD UNIQUE INDEX, start a transaction that inserts a duplicate +# and then hogs the table lock, so that the unique index cannot be dropped. +BEGIN; +INSERT INTO to_be_evicted VALUES(3, 2); +SET DEBUG_SYNC = 'now SIGNAL got_duplicate'; + +connection ddl; +--error ER_DUP_ENTRY +reap; + +disconnect ddl; +connection default; +# Release the table lock. +COMMIT; +SET DEBUG_SYNC = RESET; + +# Allow cache eviction. +FLUSH TABLES; +--disable_query_log + +# Pollute the cache with many tables, so that our table will be evicted. +let $N=1000; +let $loop=$N; +while ($loop) +{ + eval CREATE TABLE t_$loop(id INT)ENGINE=InnoDB; + dec $loop; +} + +# Hopefully let InnoDB evict the tables. +sleep 10; + +let $loop=$N; +while ($loop) +{ + eval DROP TABLE t_$loop; + dec $loop; +} + +SET GLOBAL table_definition_cache= @save_tdc; +SET GLOBAL table_open_cache= @save_toc; + +DROP TABLE to_be_evicted; diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index 5967c51d263..11a4b892397 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -2,7 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2014, 2015, MariaDB Corporation. +Copyright (c) 2014, 2017, MariaDB Corporation. 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 @@ -570,15 +570,14 @@ dict_table_close( ut_ad(mutex_own(&dict_sys->mutex)); ut_a(table->n_ref_count > 0); - --table->n_ref_count; + const bool last_handle = !--table->n_ref_count; /* Force persistent stats re-read upon next open of the table so that FLUSH TABLE can be used to forcibly fetch stats from disk if they have been manually modified. We reset table->stat_initialized only if table reference count is 0 because we do not want too frequent stats re-reads (e.g. in other cases than FLUSH TABLE). */ - if (strchr(table->name, '/') != NULL - && table->n_ref_count == 0 + if (last_handle && strchr(table->name, '/') != NULL && dict_stats_is_persistent_enabled(table)) { dict_stats_deinit(table); @@ -598,11 +597,8 @@ dict_table_close( if (!dict_locked) { table_id_t table_id = table->id; - ibool drop_aborted; - - drop_aborted = try_drop + const bool drop_aborted = last_handle && try_drop && table->drop_aborted - && table->n_ref_count == 1 && dict_table_get_first_index(table); mutex_exit(&dict_sys->mutex); @@ -2087,8 +2083,9 @@ dict_table_remove_from_cache_low( } if (lru_evict && table->drop_aborted) { - /* Do as dict_table_try_drop_aborted() does. */ - + /* When evicting the table definition, + drop the orphan indexes from the data dictionary + and free the index pages. */ trx_t* trx = trx_allocate_for_background(); ut_ad(mutex_own(&dict_sys->mutex)); @@ -2099,12 +2096,7 @@ dict_table_remove_from_cache_low( trx->dict_operation_lock_mode = RW_X_LATCH; trx_set_dict_operation(trx, TRX_DICT_OP_INDEX); - - /* Silence a debug assertion in row_merge_drop_indexes(). */ - ut_d(table->n_ref_count++); - row_merge_drop_indexes(trx, table, TRUE); - ut_d(table->n_ref_count--); - ut_ad(table->n_ref_count == 0); + row_merge_drop_indexes_dict(trx, table->id); trx_commit_for_mysql(trx); trx->dict_operation_lock_mode = 0; trx_free_for_background(trx); diff --git a/storage/xtradb/dict/dict0dict.cc b/storage/xtradb/dict/dict0dict.cc index 798a7497645..a23b297e904 100644 --- a/storage/xtradb/dict/dict0dict.cc +++ b/storage/xtradb/dict/dict0dict.cc @@ -570,15 +570,14 @@ dict_table_close( ut_ad(mutex_own(&dict_sys->mutex)); ut_a(table->n_ref_count > 0); - --table->n_ref_count; + const bool last_handle = !--table->n_ref_count; /* Force persistent stats re-read upon next open of the table so that FLUSH TABLE can be used to forcibly fetch stats from disk if they have been manually modified. We reset table->stat_initialized only if table reference count is 0 because we do not want too frequent stats re-reads (e.g. in other cases than FLUSH TABLE). */ - if (strchr(table->name, '/') != NULL - && table->n_ref_count == 0 + if (last_handle && strchr(table->name, '/') != NULL && dict_stats_is_persistent_enabled(table)) { dict_stats_deinit(table); @@ -598,11 +597,8 @@ dict_table_close( if (!dict_locked) { table_id_t table_id = table->id; - ibool drop_aborted; - - drop_aborted = try_drop + const bool drop_aborted = last_handle && try_drop && table->drop_aborted - && table->n_ref_count == 1 && dict_table_get_first_index(table); mutex_exit(&dict_sys->mutex); @@ -2096,8 +2092,9 @@ dict_table_remove_from_cache_low( } if (lru_evict && table->drop_aborted) { - /* Do as dict_table_try_drop_aborted() does. */ - + /* When evicting the table definition, + drop the orphan indexes from the data dictionary + and free the index pages. */ trx_t* trx = trx_allocate_for_background(); ut_ad(mutex_own(&dict_sys->mutex)); @@ -2108,12 +2105,8 @@ dict_table_remove_from_cache_low( trx->dict_operation_lock_mode = RW_X_LATCH; trx_set_dict_operation(trx, TRX_DICT_OP_INDEX); + row_merge_drop_indexes_dict(trx, table->id); - /* Silence a debug assertion in row_merge_drop_indexes(). */ - ut_d(table->n_ref_count++); - row_merge_drop_indexes(trx, table, TRUE); - ut_d(table->n_ref_count--); - ut_ad(table->n_ref_count == 0); trx_commit_for_mysql(trx); trx->dict_operation_lock_mode = 0; trx_free_for_background(trx); From 9a791c9c8d75116d3d15bebb4df198b122b98f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 16 Oct 2017 13:21:11 +0300 Subject: [PATCH 051/128] MDEV-12676 MySQL#78423 InnoDB FTS duplicate key error fts_get_next_doc_id(): Assign the first and subsequent FTS_DOC_ID in the same way: by post-incrementing the cached value. If there is a user-specified FTS_DOC_ID, do not touch the internal sequence. --- .../innodb_fts/r/concurrent_insert.result | 8 ++++++ .../suite/innodb_fts/t/concurrent_insert.test | 20 ++++++++++++++ storage/innobase/fts/fts0fts.cc | 27 ++++++++++--------- storage/xtradb/fts/fts0fts.cc | 27 ++++++++++--------- 4 files changed, 56 insertions(+), 26 deletions(-) create mode 100644 mysql-test/suite/innodb_fts/r/concurrent_insert.result create mode 100644 mysql-test/suite/innodb_fts/t/concurrent_insert.test diff --git a/mysql-test/suite/innodb_fts/r/concurrent_insert.result b/mysql-test/suite/innodb_fts/r/concurrent_insert.result new file mode 100644 index 00000000000..b9798ca1a74 --- /dev/null +++ b/mysql-test/suite/innodb_fts/r/concurrent_insert.result @@ -0,0 +1,8 @@ +CREATE TABLE t1(a VARCHAR(5),FULLTEXT KEY(a)) ENGINE=InnoDB; +SET DEBUG_SYNC = 'get_next_FTS_DOC_ID SIGNAL prepared WAIT_FOR race'; +REPLACE INTO t1(a) values('aaa'); +SET DEBUG_SYNC = 'now WAIT_FOR prepared'; +REPLACE INTO t1(a) VALUES('aaa'); +SET DEBUG_SYNC = 'now SIGNAL race'; +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_fts/t/concurrent_insert.test b/mysql-test/suite/innodb_fts/t/concurrent_insert.test new file mode 100644 index 00000000000..e5d61cd8b05 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/concurrent_insert.test @@ -0,0 +1,20 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc + +CREATE TABLE t1(a VARCHAR(5),FULLTEXT KEY(a)) ENGINE=InnoDB; +SET DEBUG_SYNC = 'get_next_FTS_DOC_ID SIGNAL prepared WAIT_FOR race'; +--send +REPLACE INTO t1(a) values('aaa'); + +connect(dml, localhost, root, ,); +SET DEBUG_SYNC = 'now WAIT_FOR prepared'; +REPLACE INTO t1(a) VALUES('aaa'); +SET DEBUG_SYNC = 'now SIGNAL race'; +disconnect dml; + +connection default; +reap; +SET DEBUG_SYNC = 'RESET'; + +DROP TABLE t1; diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index bdc79203cb8..d7798f386a4 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -2644,22 +2644,23 @@ fts_get_next_doc_id( will consult the CONFIG table and user table to re-establish the initial value of the Doc ID */ - if (cache->first_doc_id != 0 || !fts_init_doc_id(table)) { - if (!DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) { - *doc_id = FTS_NULL_DOC_ID; - return(DB_SUCCESS); + if (!DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) { + if (cache->first_doc_id == FTS_NULL_DOC_ID) { + fts_init_doc_id(table); } - - /* Otherwise, simply increment the value in cache */ - mutex_enter(&cache->doc_id_lock); - *doc_id = ++cache->next_doc_id; - mutex_exit(&cache->doc_id_lock); - } else { - mutex_enter(&cache->doc_id_lock); - *doc_id = cache->next_doc_id; - mutex_exit(&cache->doc_id_lock); + *doc_id = FTS_NULL_DOC_ID; + return(DB_SUCCESS); } + if (cache->first_doc_id == FTS_NULL_DOC_ID) { + fts_init_doc_id(table); + } + + DEBUG_SYNC_C("get_next_FTS_DOC_ID"); + mutex_enter(&cache->doc_id_lock); + *doc_id = cache->next_doc_id++; + mutex_exit(&cache->doc_id_lock); + return(DB_SUCCESS); } diff --git a/storage/xtradb/fts/fts0fts.cc b/storage/xtradb/fts/fts0fts.cc index a88ff964202..27056a93dbe 100644 --- a/storage/xtradb/fts/fts0fts.cc +++ b/storage/xtradb/fts/fts0fts.cc @@ -2644,22 +2644,23 @@ fts_get_next_doc_id( will consult the CONFIG table and user table to re-establish the initial value of the Doc ID */ - if (cache->first_doc_id != 0 || !fts_init_doc_id(table)) { - if (!DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) { - *doc_id = FTS_NULL_DOC_ID; - return(DB_SUCCESS); + if (!DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) { + if (cache->first_doc_id == FTS_NULL_DOC_ID) { + fts_init_doc_id(table); } - - /* Otherwise, simply increment the value in cache */ - mutex_enter(&cache->doc_id_lock); - *doc_id = ++cache->next_doc_id; - mutex_exit(&cache->doc_id_lock); - } else { - mutex_enter(&cache->doc_id_lock); - *doc_id = cache->next_doc_id; - mutex_exit(&cache->doc_id_lock); + *doc_id = FTS_NULL_DOC_ID; + return(DB_SUCCESS); } + if (cache->first_doc_id == FTS_NULL_DOC_ID) { + fts_init_doc_id(table); + } + + DEBUG_SYNC_C("get_next_FTS_DOC_ID"); + mutex_enter(&cache->doc_id_lock); + *doc_id = cache->next_doc_id++; + mutex_exit(&cache->doc_id_lock); + return(DB_SUCCESS); } From d11af09865299033d5eef64531704f6ab8af5304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 16 Oct 2017 20:54:07 +0300 Subject: [PATCH 052/128] MDEV-14076 InnoDB: Failing assertion when accessing INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES upon upgrade from 10.1.0 to 10.1.20 i_s_dict_fill_sys_tablespaces(): Adjust the tablespace flags if needed. --- storage/innobase/handler/i_s.cc | 23 +++++++++++++---------- storage/xtradb/handler/i_s.cc | 23 +++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index 145100c8838..cc64fb9f1e8 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -7722,8 +7722,6 @@ i_s_dict_fill_sys_tablespaces( { Field** fields; ulint atomic_blobs = FSP_FLAGS_HAS_ATOMIC_BLOBS(flags); - ulint page_size = fsp_flags_get_page_size(flags); - ulint zip_size = fsp_flags_get_zip_size(flags); const char* file_format; const char* row_format; @@ -7740,13 +7738,11 @@ i_s_dict_fill_sys_tablespaces( fields = table_to_fill->field; - OK(fields[SYS_TABLESPACES_SPACE]->store( - static_cast(space))); + OK(fields[SYS_TABLESPACES_SPACE]->store(space, true)); OK(field_store_string(fields[SYS_TABLESPACES_NAME], name)); - OK(fields[SYS_TABLESPACES_FLAGS]->store( - static_cast(flags))); + OK(fields[SYS_TABLESPACES_FLAGS]->store(flags, true)); OK(field_store_string(fields[SYS_TABLESPACES_FILE_FORMAT], file_format)); @@ -7754,11 +7750,18 @@ i_s_dict_fill_sys_tablespaces( OK(field_store_string(fields[SYS_TABLESPACES_ROW_FORMAT], row_format)); - OK(fields[SYS_TABLESPACES_PAGE_SIZE]->store( - static_cast(page_size))); + ulint cflags = fsp_flags_is_valid(flags, space) + ? flags : fsp_flags_convert_from_101(flags); + if (cflags != ULINT_UNDEFINED) { + OK(fields[SYS_TABLESPACES_PAGE_SIZE]->store( + fsp_flags_get_page_size(cflags), true)); - OK(fields[SYS_TABLESPACES_ZIP_PAGE_SIZE]->store( - static_cast(zip_size))); + OK(fields[SYS_TABLESPACES_ZIP_PAGE_SIZE]->store( + fsp_flags_get_zip_size(cflags), true)); + } else { + fields[SYS_TABLESPACES_PAGE_SIZE]->set_null(); + fields[SYS_TABLESPACES_ZIP_PAGE_SIZE]->set_null(); + } OK(schema_table_store_record(thd, table_to_fill)); diff --git a/storage/xtradb/handler/i_s.cc b/storage/xtradb/handler/i_s.cc index ca2c76c31ad..fe0fd0c73ed 100644 --- a/storage/xtradb/handler/i_s.cc +++ b/storage/xtradb/handler/i_s.cc @@ -7690,8 +7690,6 @@ i_s_dict_fill_sys_tablespaces( { Field** fields; ulint atomic_blobs = FSP_FLAGS_HAS_ATOMIC_BLOBS(flags); - ulint page_size = fsp_flags_get_page_size(flags); - ulint zip_size = fsp_flags_get_zip_size(flags); const char* file_format; const char* row_format; @@ -7708,13 +7706,11 @@ i_s_dict_fill_sys_tablespaces( fields = table_to_fill->field; - OK(fields[SYS_TABLESPACES_SPACE]->store( - static_cast(space))); + OK(fields[SYS_TABLESPACES_SPACE]->store(space, true)); OK(field_store_string(fields[SYS_TABLESPACES_NAME], name)); - OK(fields[SYS_TABLESPACES_FLAGS]->store( - static_cast(flags))); + OK(fields[SYS_TABLESPACES_FLAGS]->store(flags, true)); OK(field_store_string(fields[SYS_TABLESPACES_FILE_FORMAT], file_format)); @@ -7722,11 +7718,18 @@ i_s_dict_fill_sys_tablespaces( OK(field_store_string(fields[SYS_TABLESPACES_ROW_FORMAT], row_format)); - OK(fields[SYS_TABLESPACES_PAGE_SIZE]->store( - static_cast(page_size))); + ulint cflags = fsp_flags_is_valid(flags, space) + ? flags : fsp_flags_convert_from_101(flags); + if (cflags != ULINT_UNDEFINED) { + OK(fields[SYS_TABLESPACES_PAGE_SIZE]->store( + fsp_flags_get_page_size(cflags), true)); - OK(fields[SYS_TABLESPACES_ZIP_PAGE_SIZE]->store( - static_cast(zip_size))); + OK(fields[SYS_TABLESPACES_ZIP_PAGE_SIZE]->store( + fsp_flags_get_zip_size(cflags), true)); + } else { + fields[SYS_TABLESPACES_PAGE_SIZE]->set_null(); + fields[SYS_TABLESPACES_ZIP_PAGE_SIZE]->set_null(); + } OK(schema_table_store_record(thd, table_to_fill)); From d76f5774fe70c51577cfbfdddcbfb3309d51f06e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 16 Sep 2017 14:52:42 +0200 Subject: [PATCH 053/128] MDEV-13459 Warnings, when compiling with gcc-7.x mostly caused by -Wimplicit-fallthrough --- client/mysql.cc | 2 +- client/mysqldump.c | 1 + extra/my_print_defaults.c | 21 ++++--- extra/replace.c | 1 + mysys/my_new.cc | 10 +++ plugin/handler_socket/CMakeLists.txt | 6 ++ sql-common/client.c | 1 + sql/events.cc | 8 ++- sql/field.cc | 2 +- sql/ha_partition.cc | 1 + sql/item.cc | 2 +- sql/item_func.cc | 2 + sql/item_strfunc.cc | 4 +- sql/log.cc | 5 ++ sql/log_event.cc | 15 ----- sql/opt_sum.cc | 1 + sql/partition_info.cc | 2 - sql/sp_head.cc | 2 +- sql/sql_admin.cc | 1 - sql/sql_lex.cc | 4 +- sql/sql_parse.cc | 6 +- sql/sql_partition.cc | 2 +- sql/sql_plugin.cc | 74 +++++++++++------------ sql/sql_prepare.cc | 1 + sql/sql_repl.cc | 1 + sql/sql_show.cc | 1 + sql/sql_table.cc | 2 +- sql/sql_yacc.yy | 10 +-- storage/federated/ha_federated.cc | 3 + storage/federatedx/federatedx_io_mysql.cc | 9 ++- storage/federatedx/ha_federatedx.cc | 2 + storage/heap/hp_create.c | 2 +- storage/heap/hp_extra.c | 1 + storage/innobase/handler/ha_innodb.cc | 5 +- storage/innobase/include/data0type.ic | 2 +- storage/innobase/include/page0zip.ic | 2 +- storage/innobase/row/row0mysql.c | 5 +- storage/innobase/row/row0purge.c | 4 +- storage/innobase/row/row0sel.c | 1 + storage/maria/ma_extra.c | 3 +- storage/maria/ma_key_recover.c | 1 + storage/maria/ma_recovery.c | 2 +- storage/myisam/mi_extra.c | 3 +- storage/sphinx/ha_sphinx.cc | 12 ++-- storage/tokudb/CMakeLists.txt | 1 + storage/xtradb/handler/ha_innodb.cc | 5 +- storage/xtradb/include/data0type.ic | 2 +- storage/xtradb/include/page0zip.ic | 2 +- storage/xtradb/row/row0mysql.c | 4 +- storage/xtradb/row/row0purge.c | 4 +- storage/xtradb/row/row0sel.c | 1 + strings/ctype-utf8.c | 17 ++++-- strings/dtoa.c | 13 ++-- 53 files changed, 170 insertions(+), 124 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 9c76e30d96f..2a56caf23ef 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1080,7 +1080,7 @@ static ulong start_timer(void); static void end_timer(ulong start_time,char *buff); static void mysql_end_timer(ulong start_time,char *buff); static void nice_time(double sec,char *buff,bool part_second); -extern "C" sig_handler mysql_end(int sig); +extern "C" sig_handler mysql_end(int sig) __attribute__ ((noreturn)); extern "C" sig_handler handle_sigint(int sig); #if defined(HAVE_TERMIOS_H) && defined(GWINSZ_IN_SYS_IOCTL) static sig_handler window_resize(int sig); diff --git a/client/mysqldump.c b/client/mysqldump.c index 2e3270a2fed..4e611ed5cb2 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -2012,6 +2012,7 @@ static void print_xml_comment(FILE *xml_file, size_t len, case '-': if (*(comment_string + 1) == '-') /* Only one hyphen allowed. */ break; + /* fall through */ default: fputc(*comment_string, xml_file); break; diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c index 7558d6d00ae..4690b29e8a5 100644 --- a/extra/my_print_defaults.c +++ b/extra/my_print_defaults.c @@ -97,12 +97,16 @@ static struct my_option my_long_options[] = }; -static void usage(my_bool version) +static void version() { - printf("%s Ver 1.6 for %s at %s\n",my_progname,SYSTEM_TYPE, - MACHINE_TYPE); - if (version) - return; + printf("%s Ver 1.6 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE); +} + + +static void usage() __attribute__ ((noreturn)); +static void usage() +{ + version(); puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n"); puts("Prints all arguments that is give to some program using the default files"); printf("Usage: %s [OPTIONS] [groups]\n", my_progname); @@ -126,12 +130,13 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), exit(0); case 'I': case '?': - usage(0); + usage(); case 'v': verbose++; break; case 'V': - usage(1); + version(); + /* fall through */ case '#': DBUG_PUSH(argument ? argument : default_dbug_option); break; @@ -179,7 +184,7 @@ int main(int argc, char **argv) nargs+= array_elements(mysqld_groups); if (nargs < 2) - usage(0); + usage(); load_default_groups=(char**) my_malloc(nargs*sizeof(char*), MYF(MY_WME)); if (!load_default_groups) diff --git a/extra/replace.c b/extra/replace.c index 56cf02f2002..2ad4979c09e 100644 --- a/extra/replace.c +++ b/extra/replace.c @@ -174,6 +174,7 @@ register char **argv[]; break; case 'V': version=1; + /* fall through */ case 'I': case '?': help=1; /* Help text written */ diff --git a/mysys/my_new.cc b/mysys/my_new.cc index 4266452da43..a401ccff135 100644 --- a/mysys/my_new.cc +++ b/mysys/my_new.cc @@ -47,6 +47,11 @@ void* operator new[](std::size_t sz, const std::nothrow_t&) throw() return (void *) my_malloc (sz ? sz : 1, MYF(0)); } +void operator delete (void *ptr, std::size_t) +{ + my_free(ptr); +} + void operator delete (void *ptr) { my_free(ptr); @@ -57,6 +62,11 @@ void operator delete[] (void *ptr) throw () my_free(ptr); } +void operator delete[] (void *ptr, std::size_t) throw () +{ + my_free(ptr); +} + void operator delete(void* ptr, const std::nothrow_t&) throw() { my_free(ptr); diff --git a/plugin/handler_socket/CMakeLists.txt b/plugin/handler_socket/CMakeLists.txt index 358139eda1e..a0cac0015d0 100644 --- a/plugin/handler_socket/CMakeLists.txt +++ b/plugin/handler_socket/CMakeLists.txt @@ -10,6 +10,12 @@ IF(CMAKE_COMPILER_IS_GNUCXX) STRING(REPLACE "-fno-implicit-templates" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) ENDIF() +include(CheckCXXCompilerFlag) +check_cxx_compiler_flag(" -Wdeprecated-declarations" HAVE_CXX_WDEPRECATED_DECLARATIONS) +IF (HAVE_CXX_WDEPRECATED_DECLARATIONS) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") +ENDIF() + INCLUDE_DIRECTORIES(libhsclient) # Handlersocket client library. We do not distribute it, diff --git a/sql-common/client.c b/sql-common/client.c index e0412fca6bc..7d92f71d69f 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1276,6 +1276,7 @@ void mysql_read_default_options(struct st_mysql_options *options, break; case OPT_pipe: options->protocol = MYSQL_PROTOCOL_PIPE; + break; case OPT_connect_timeout: case OPT_timeout: if (opt_arg) diff --git a/sql/events.cc b/sql/events.cc index 763c75e77b0..008b6223702 100644 --- a/sql/events.cc +++ b/sql/events.cc @@ -185,8 +185,8 @@ common_1_lev_code: expr= tmp_expr - (tmp_expr/60)*60; /* the code after the switch will finish */ - } break; + } case INTERVAL_HOUR_SECOND: { ulonglong tmp_expr= expr; @@ -202,8 +202,8 @@ common_1_lev_code: expr= tmp_expr - (tmp_expr/60)*60; /* the code after the switch will finish */ - } break; + } case INTERVAL_DAY_SECOND: { ulonglong tmp_expr= expr; @@ -225,8 +225,8 @@ common_1_lev_code: expr= tmp_expr - (tmp_expr/60)*60; /* the code after the switch will finish */ - } break; + } case INTERVAL_DAY_MICROSECOND: case INTERVAL_HOUR_MICROSECOND: case INTERVAL_MINUTE_MICROSECOND: @@ -240,6 +240,8 @@ common_1_lev_code: break; case INTERVAL_WEEK: expr/= 7; + close_quote= FALSE; + break; default: close_quote= FALSE; break; diff --git a/sql/field.cc b/sql/field.cc index 716d522a196..a2e0caaa50d 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -9218,7 +9218,7 @@ bool Create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, case MYSQL_TYPE_DATE: /* We don't support creation of MYSQL_TYPE_DATE anymore */ sql_type= MYSQL_TYPE_NEWDATE; - /* fall trough */ + /* fall through */ case MYSQL_TYPE_NEWDATE: length= MAX_DATE_WIDTH; break; diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index e048dbad5e6..b2c2140d4dc 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -7331,6 +7331,7 @@ void ha_partition::print_error(int error, myf errflag) m_err_rec= NULL; DBUG_VOID_RETURN; } + /* fall through */ default: { if (!(thd->lex->alter_info.flags & ALTER_TRUNCATE_PARTITION)) diff --git a/sql/item.cc b/sql/item.cc index a8913e97fe9..3c633ddc9ca 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -6004,7 +6004,7 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table, bool fixed_length) collation.collation); break; } - /* Fall through to make_string_field() */ + /* fall through */ case MYSQL_TYPE_ENUM: case MYSQL_TYPE_SET: case MYSQL_TYPE_VAR_STRING: diff --git a/sql/item_func.cc b/sql/item_func.cc index cfccd66ea8a..00006a25a8d 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -863,6 +863,7 @@ void Item_func_num1::fix_length_and_dec() break; case TIME_RESULT: cached_result_type= DECIMAL_RESULT; + /* fall through */ case DECIMAL_RESULT: decimals= args[0]->decimal_scale(); // Do not preserve NOT_FIXED_DEC max_length= args[0]->max_length; @@ -2038,6 +2039,7 @@ my_decimal *Item_func_mod::decimal_op(my_decimal *decimal_value) return decimal_value; case E_DEC_DIV_ZERO: signal_divide_by_null(); + /* fall through */ default: null_value= 1; return 0; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 756ab5152ca..939e518e386 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -4430,7 +4430,7 @@ bool Item_dyncol_get::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) goto null; case DYN_COL_INT: signed_value= 1; // For error message - /* fall_trough */ + /* fall through */ case DYN_COL_UINT: if (signed_value || val.x.ulong_value <= LONGLONG_MAX) { @@ -4443,7 +4443,7 @@ bool Item_dyncol_get::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) } /* let double_to_datetime_with_warn() issue the warning message */ val.x.double_value= static_cast(ULONGLONG_MAX); - /* fall_trough */ + /* fall through */ case DYN_COL_DOUBLE: if (double_to_datetime_with_warn(val.x.double_value, ltime, fuzzy_date, 0 /* TODO */)) diff --git a/sql/log.cc b/sql/log.cc index f8c256e645f..5b4ba87ef52 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -7261,8 +7261,10 @@ void TC_LOG_MMAP::close() mysql_cond_destroy(&COND_pool); mysql_cond_destroy(&COND_active); mysql_cond_destroy(&COND_queue_busy); + /* fall through */ case 5: data[0]='A'; // garble the first (signature) byte, in case mysql_file_delete fails + /* fall through */ case 4: for (i=0; i < npages; i++) { @@ -7271,10 +7273,13 @@ void TC_LOG_MMAP::close() mysql_mutex_destroy(&pages[i].lock); mysql_cond_destroy(&pages[i].cond); } + /* fall through */ case 3: my_free(pages); + /* fall through */ case 2: my_munmap((char*)data, (size_t)file_length); + /* fall through */ case 1: mysql_file_close(fd, MYF(0)); } diff --git a/sql/log_event.cc b/sql/log_event.cc index d5b5b5a4870..18e4cfbf187 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -6437,21 +6437,6 @@ User_var_log_event(const char* buf, uint event_len, we keep the flags set to UNDEF_F. */ uint bytes_read= ((val + val_len) - start); -#ifndef DBUG_OFF - bool old_pre_checksum_fd= description_event->is_version_before_checksum( - &description_event->server_version_split); -#endif - DBUG_ASSERT((bytes_read == data_written - - (old_pre_checksum_fd || - (description_event->checksum_alg == - BINLOG_CHECKSUM_ALG_OFF)) ? - 0 : BINLOG_CHECKSUM_LEN) - || - (bytes_read == data_written -1 - - (old_pre_checksum_fd || - (description_event->checksum_alg == - BINLOG_CHECKSUM_ALG_OFF)) ? - 0 : BINLOG_CHECKSUM_LEN)); if ((data_written - bytes_read) > 0) { flags= (uint) *(buf + UV_VAL_IS_NULL + UV_VAL_TYPE_SIZE + diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index 1a8c6be5f41..f717be5ba3f 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -1047,6 +1047,7 @@ static int maxmin_in_range(bool max_fl, Field* field, COND *cond) case Item_func::LT_FUNC: case Item_func::LE_FUNC: less_fl= 1; + /* fall through */ case Item_func::GT_FUNC: case Item_func::GE_FUNC: { diff --git a/sql/partition_info.cc b/sql/partition_info.cc index d8b901701cb..512bf296135 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -34,8 +34,6 @@ partition_info *partition_info::get_clone() { - if (!this) - return 0; List_iterator part_it(partitions); partition_element *part; partition_info *clone= new partition_info(); diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 69364eaa43f..14a57914560 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -139,7 +139,7 @@ sp_get_item_value(THD *thd, Item *item, String *str) case DECIMAL_RESULT: if (item->field_type() != MYSQL_TYPE_BIT) return item->val_str(str); - else {/* Bit type is handled as binary string */} + /* fall through */ case STRING_RESULT: { String *result= item->val_str(str); diff --git a/sql/sql_admin.cc b/sql/sql_admin.cc index 55effcd7002..7cddf50a896 100644 --- a/sql/sql_admin.cc +++ b/sql/sql_admin.cc @@ -54,7 +54,6 @@ static bool admin_recreate_table(THD *thd, TABLE_LIST *table_list) if (thd->stmt_da->is_ok()) thd->stmt_da->reset_diagnostics_area(); table_list->table= NULL; - result_code= result_code ? HA_ADMIN_FAILED : HA_ADMIN_OK; DBUG_RETURN(result_code); } diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 6611fd43876..6f94f1fbe63 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1147,12 +1147,14 @@ static int lex_one_token(YYSTYPE *yylval, THD *thd) state= MY_LEX_HEX_NUMBER; break; } + /* fall through */ case MY_LEX_IDENT_OR_BIN: if (lip->yyPeek() == '\'') { // Found b'bin-number' state= MY_LEX_BIN_NUMBER; break; } + /* fall through */ case MY_LEX_IDENT: const char *start; #if defined(USE_MB) && defined(USE_MB_IDENT) @@ -1499,7 +1501,7 @@ static int lex_one_token(YYSTYPE *yylval, THD *thd) state= MY_LEX_USER_VARIABLE_DELIMITER; break; } - /* " used for strings */ + /* fall through */ /* " used for strings */ case MY_LEX_STRING: // Incomplete text string if (!(yylval->lex_str.str = get_text(lip, 1, 1))) { diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ba0520de4bb..d003a13ae09 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2481,7 +2481,7 @@ case SQLCOM_PREPARE: #ifdef WITH_PARTITION_STORAGE_ENGINE { partition_info *part_info= thd->lex->part_info; - if (part_info && !(part_info= thd->lex->part_info->get_clone())) + if (part_info && !(part_info= part_info->get_clone())) { res= -1; goto end_with_restore_list; @@ -2850,8 +2850,8 @@ end_with_restore_list: /* mysql_update return 2 if we need to switch to multi-update */ if (up_result != 2) break; - /* Fall through */ } + /* fall through */ case SQLCOM_UPDATE_MULTI: { DBUG_ASSERT(first_table == all_tables && first_table != 0); @@ -2961,6 +2961,7 @@ end_with_restore_list: DBUG_PRINT("debug", ("Just after generate_incident()")); } #endif + /* fall through */ case SQLCOM_INSERT: { DBUG_ASSERT(first_table == all_tables && first_table != 0); @@ -3698,6 +3699,7 @@ end_with_restore_list: initialize this variable because RESET shares the same code as FLUSH */ lex->no_write_to_binlog= 1; + /* fall through */ case SQLCOM_FLUSH: { int write_to_binlog; diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 0d9f6e6a1f5..bf34d328dc5 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -4640,7 +4640,7 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info, thd->work_part_info= thd->lex->part_info; if (thd->work_part_info && - !(thd->work_part_info= thd->lex->part_info->get_clone())) + !(thd->work_part_info= thd->work_part_info->get_clone())) DBUG_RETURN(TRUE); /* ALTER_ADMIN_PARTITION is handled in mysql_admin_table */ diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 9eecd6a1345..d1e855e272e 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -1078,42 +1078,42 @@ static bool plugin_add(MEM_ROOT *tmp_root, if (!name->str && plugin_find_internal(&tmp.name, MYSQL_ANY_PLUGIN)) continue; // already installed - struct st_plugin_int *tmp_plugin_ptr; - if (*(int*)plugin->info < - min_plugin_info_interface_version[plugin->type] || - ((*(int*)plugin->info) >> 8) > - (cur_plugin_info_interface_version[plugin->type] >> 8)) - { - char buf[256]; - strxnmov(buf, sizeof(buf) - 1, "API version for ", - plugin_type_names[plugin->type].str, - " plugin ", tmp.name.str, - " not supported by this version of the server", NullS); - report_error(report, ER_CANT_OPEN_LIBRARY, dl->str, ENOEXEC, buf); - goto err; - } - if (plugin_maturity_map[plugin->maturity] < plugin_maturity) - { - char buf[256]; - strxnmov(buf, sizeof(buf) - 1, "Loading of ", - plugin_maturity_names[plugin->maturity], - " plugin ", tmp.name.str, - " is prohibited by --plugin-maturity=", - plugin_maturity_names[plugin_maturity], - NullS); - report_error(report, ER_CANT_OPEN_LIBRARY, dl->str, EPERM, buf); - goto err; - } - tmp.plugin= plugin; - tmp.ref_count= 0; - tmp.state= PLUGIN_IS_UNINITIALIZED; - tmp.load_option= PLUGIN_ON; + struct st_plugin_int *tmp_plugin_ptr; + if (*(int*)plugin->info < + min_plugin_info_interface_version[plugin->type] || + ((*(int*)plugin->info) >> 8) > + (cur_plugin_info_interface_version[plugin->type] >> 8)) + { + char buf[256]; + strxnmov(buf, sizeof(buf) - 1, "API version for ", + plugin_type_names[plugin->type].str, + " plugin ", tmp.name.str, + " not supported by this version of the server", NullS); + report_error(report, ER_CANT_OPEN_LIBRARY, dl->str, ENOEXEC, buf); + goto err; + } + if (plugin_maturity_map[plugin->maturity] < plugin_maturity) + { + char buf[256]; + strxnmov(buf, sizeof(buf) - 1, "Loading of ", + plugin_maturity_names[plugin->maturity], + " plugin ", tmp.name.str, + " is prohibited by --plugin-maturity=", + plugin_maturity_names[plugin_maturity], + NullS); + report_error(report, ER_CANT_OPEN_LIBRARY, dl->str, EPERM, buf); + goto err; + } + tmp.plugin= plugin; + tmp.ref_count= 0; + tmp.state= PLUGIN_IS_UNINITIALIZED; + tmp.load_option= PLUGIN_ON; - if (!(tmp_plugin_ptr= plugin_insert_or_reuse(&tmp))) - goto err; - if (my_hash_insert(&plugin_hash[plugin->type], (uchar*)tmp_plugin_ptr)) - tmp_plugin_ptr->state= PLUGIN_IS_FREED; - init_alloc_root(&tmp_plugin_ptr->mem_root, 4096, 4096); + if (!(tmp_plugin_ptr= plugin_insert_or_reuse(&tmp))) + goto err; + if (my_hash_insert(&plugin_hash[plugin->type], (uchar*)tmp_plugin_ptr)) + tmp_plugin_ptr->state= PLUGIN_IS_FREED; + init_alloc_root(&tmp_plugin_ptr->mem_root, 4096, 4096); if (name->str) DBUG_RETURN(FALSE); // all done @@ -1822,10 +1822,10 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, const char *list) case '\0': list= NULL; /* terminate the loop */ /* fall through */ + case ';': #ifndef __WIN__ case ':': /* can't use this as delimiter as it may be drive letter */ #endif - case ';': str->str[str->length]= '\0'; if (str == &name) // load all plugins in named module { @@ -1863,6 +1863,7 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, const char *list) str->str= p; continue; } + /* fall through */ default: str->length++; continue; @@ -3947,4 +3948,3 @@ void add_plugin_options(DYNAMIC_ARRAY *options, MEM_ROOT *mem_root) insert_dynamic(options, (uchar*) opt); } } - diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 851e4f7b8ab..faaeaf51573 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -2075,6 +2075,7 @@ static bool check_prepared_statement(Prepared_statement *stmt) if (res != 2) break; + /* fall through */ case SQLCOM_UPDATE_MULTI: res= mysql_test_multiupdate(stmt, tables, res == 2); break; diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 871cb27f0d0..ca6e8d15e7a 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1139,6 +1139,7 @@ impossible position"; loop_breaker = (flags & BINLOG_DUMP_NON_BLOCK); break; } + /* fall through */ default: errmsg = "could not find next log"; my_errno= ER_MASTER_FATAL_ERROR_READING_BINLOG; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 512548b1d51..8789f0c9f24 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -931,6 +931,7 @@ public: is_handled= FALSE; break; } + /* fall through */ case ER_COLUMNACCESS_DENIED_ERROR: case ER_VIEW_NO_EXPLAIN: /* Error was anonymized, ignore all the same. */ case ER_PROCACCESS_DENIED_ERROR: diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 6ab39d7f8c6..e6490876352 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -5504,7 +5504,7 @@ bool alter_table_manage_keys(TABLE *table, int indexes_were_disabled, case LEAVE_AS_IS: if (!indexes_were_disabled) break; - /* fall-through: disabled indexes */ + /* fall-through */ case DISABLE: error= table->file->ha_disable_indexes(HA_KEY_SWITCH_NONUNIQ_SAVE); } diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 35c7203ca0d..4805cd4c66a 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -4212,15 +4212,11 @@ size_number: switch (end_ptr[0]) { case 'g': - case 'G': - text_shift_number+=10; + case 'G': text_shift_number+=30; break; case 'm': - case 'M': - text_shift_number+=10; + case 'M': text_shift_number+=20; break; case 'k': - case 'K': - text_shift_number+=10; - break; + case 'K': text_shift_number+=10; break; default: { my_error(ER_WRONG_SIZE_NUMBER, MYF(0)); diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index adf4f0f4db2..8680c3aac25 100644 --- a/storage/federated/ha_federated.cc +++ b/storage/federated/ha_federated.cc @@ -1421,6 +1421,7 @@ bool ha_federated::create_where_from_key(String *to, } break; } + /* fall through */ case HA_READ_KEY_OR_NEXT: DBUG_PRINT("info", ("federated HA_READ_KEY_OR_NEXT %d", i)); if (emit_key_part_name(&tmp, key_part) || @@ -1440,6 +1441,7 @@ bool ha_federated::create_where_from_key(String *to, goto err; break; } + /* fall through */ case HA_READ_KEY_OR_PREV: DBUG_PRINT("info", ("federated HA_READ_KEY_OR_PREV %d", i)); if (emit_key_part_name(&tmp, key_part) || @@ -2973,6 +2975,7 @@ int ha_federated::extra(ha_extra_function operation) break; case HA_EXTRA_PREPARE_FOR_DROP: table_will_be_deleted = TRUE; + break; default: /* do nothing */ DBUG_PRINT("info",("unhandled operation: %d", (uint) operation)); diff --git a/storage/federatedx/federatedx_io_mysql.cc b/storage/federatedx/federatedx_io_mysql.cc index a2eaa345a18..ef3b1388200 100644 --- a/storage/federatedx/federatedx_io_mysql.cc +++ b/storage/federatedx/federatedx_io_mysql.cc @@ -263,9 +263,8 @@ ulong federatedx_io_mysql::savepoint_release(ulong sp) savept= dynamic_element(&savepoints, savepoints.elements - 1, SAVEPT *); if (savept->level < sp) break; - if ((savept->flags & (SAVEPOINT_REALIZED | - SAVEPOINT_RESTRICT)) == SAVEPOINT_REALIZED) - last= savept; + if ((savept->flags & (SAVEPOINT_REALIZED | SAVEPOINT_RESTRICT)) == SAVEPOINT_REALIZED) + last= savept; savepoints.elements--; } @@ -291,8 +290,8 @@ ulong federatedx_io_mysql::savepoint_rollback(ulong sp) while (savepoints.elements) { savept= dynamic_element(&savepoints, savepoints.elements - 1, SAVEPT *); - if (savept->level <= sp) - break; + if (savept->level <= sp) + break; savepoints.elements--; } diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index c9b07a8f3c3..bafae614fab 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -1340,6 +1340,7 @@ bool ha_federatedx::create_where_from_key(String *to, } break; } + /* fall through */ case HA_READ_KEY_OR_NEXT: DBUG_PRINT("info", ("federatedx HA_READ_KEY_OR_NEXT %d", i)); if (emit_key_part_name(&tmp, key_part) || @@ -1359,6 +1360,7 @@ bool ha_federatedx::create_where_from_key(String *to, goto err; break; } + /* fall through */ case HA_READ_KEY_OR_PREV: DBUG_PRINT("info", ("federatedx HA_READ_KEY_OR_PREV %d", i)); if (emit_key_part_name(&tmp, key_part) || diff --git a/storage/heap/hp_create.c b/storage/heap/hp_create.c index 2b705b0e3d7..0b5dc841ada 100644 --- a/storage/heap/hp_create.c +++ b/storage/heap/hp_create.c @@ -94,7 +94,7 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info, case HA_KEYTYPE_VARBINARY1: /* Case-insensitiveness is handled in coll->hash_sort */ keyinfo->seg[j].type= HA_KEYTYPE_VARTEXT1; - /* fall_through */ + /* fall through */ case HA_KEYTYPE_VARTEXT1: keyinfo->flag|= HA_VAR_LENGTH_KEY; length+= 2; diff --git a/storage/heap/hp_extra.c b/storage/heap/hp_extra.c index c83efd5af61..9a19f818d3b 100644 --- a/storage/heap/hp_extra.c +++ b/storage/heap/hp_extra.c @@ -34,6 +34,7 @@ int heap_extra(register HP_INFO *info, enum ha_extra_function function) switch (function) { case HA_EXTRA_RESET_STATE: heap_reset(info); + /* fall through */ case HA_EXTRA_NO_READCHECK: info->opt_flag&= ~READ_CHECK_USED; /* No readcheck */ break; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 780f3a6f82f..3aabfc319c6 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -5129,7 +5129,7 @@ ha_innobase::innobase_lock_autoinc(void) break; } } - /* Fall through to old style locking. */ + /* fall through */ case AUTOINC_OLD_STYLE_LOCKING: error = row_lock_table_autoinc_for_mysql(prebuilt); @@ -7080,7 +7080,7 @@ create_options_are_valid( case ROW_TYPE_DYNAMIC: CHECK_ERROR_ROW_TYPE_NEEDS_FILE_PER_TABLE; CHECK_ERROR_ROW_TYPE_NEEDS_GT_ANTELOPE; - /* fall through since dynamic also shuns KBS */ + /* fall through */ /* since dynamic also shuns KBS */ case ROW_TYPE_COMPACT: case ROW_TYPE_REDUNDANT: if (kbs_specified) { @@ -7326,6 +7326,7 @@ ha_innobase::create( thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_ILLEGAL_HA_CREATE_OPTION, "InnoDB: assuming ROW_FORMAT=COMPACT."); + /* fall through */ case ROW_TYPE_DEFAULT: case ROW_TYPE_COMPACT: flags = DICT_TF_COMPACT; diff --git a/storage/innobase/include/data0type.ic b/storage/innobase/include/data0type.ic index 410970ac50e..515b6b249ef 100644 --- a/storage/innobase/include/data0type.ic +++ b/storage/innobase/include/data0type.ic @@ -477,7 +477,7 @@ dtype_get_fixed_size_low( #else /* !UNIV_HOTBACKUP */ return(len); #endif /* !UNIV_HOTBACKUP */ - /* fall through for variable-length charsets */ + /* fall through */ /* for variable-length charsets */ case DATA_VARCHAR: case DATA_BINARY: case DATA_DECIMAL: diff --git a/storage/innobase/include/page0zip.ic b/storage/innobase/include/page0zip.ic index e26fa3e3d94..a2fa13c94df 100644 --- a/storage/innobase/include/page0zip.ic +++ b/storage/innobase/include/page0zip.ic @@ -170,7 +170,7 @@ page_zip_rec_needs_ext( ignored if zip_size == 0 */ ulint zip_size) /*!< in: compressed page size in bytes, or 0 */ { - ut_ad(rec_size > comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES); + ut_ad(rec_size > (comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES)); ut_ad(ut_is_2pow(zip_size)); ut_ad(comp || !zip_size); diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c index 6206bef6b56..8804e2c4e03 100644 --- a/storage/innobase/row/row0mysql.c +++ b/storage/innobase/row/row0mysql.c @@ -3495,7 +3495,7 @@ check_next_foreign: row_mysql_handle_errors(&err, trx, NULL, NULL); - /* Fall through to raise error */ + /* fall through */ default: /* No other possible error returns */ @@ -4315,7 +4315,8 @@ loop: fputs(" InnoDB: Warning: CHECK TABLE on ", stderr); dict_index_name_print(stderr, prebuilt->trx, index); fprintf(stderr, " returned %lu\n", ret); - /* fall through (this error is ignored by CHECK TABLE) */ + /* this error is ignored by CHECK TABLE */ + /* fall through */ case DB_END_OF_INDEX: func_exit: mem_free(buf); diff --git a/storage/innobase/row/row0purge.c b/storage/innobase/row/row0purge.c index 5f3e4175544..7b25612ba4b 100644 --- a/storage/innobase/row/row0purge.c +++ b/storage/innobase/row/row0purge.c @@ -407,8 +407,8 @@ row_purge_remove_sec_if_poss_leaf( goto func_exit; } } - /* fall through (the index entry is still needed, - or the deletion succeeded) */ + /* the index entry is still needed, or the deletion succeeded */ + /* fall through */ case ROW_NOT_DELETED_REF: /* The index entry is still needed. */ case ROW_BUFFERED: diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index e027a382cee..f5f8153e116 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -2675,6 +2675,7 @@ row_sel_field_store_in_mysql_format( case DATA_SYS: /* These column types should never be shipped to MySQL. */ ut_ad(0); + /* fall through */ case DATA_CHAR: case DATA_FIXBINARY: diff --git a/storage/maria/ma_extra.c b/storage/maria/ma_extra.c index 0847f3c729c..3ee70059e6f 100644 --- a/storage/maria/ma_extra.c +++ b/storage/maria/ma_extra.c @@ -157,6 +157,7 @@ int maria_extra(MARIA_HA *info, enum ha_extra_function function, if (info->s->data_file_type != DYNAMIC_RECORD) break; /* Remove read/write cache if dynamic rows */ + /* fall through */ case HA_EXTRA_NO_CACHE: if (info->opt_flag & (READ_CACHE_USED | WRITE_CACHE_USED)) { @@ -313,7 +314,7 @@ int maria_extra(MARIA_HA *info, enum ha_extra_function function, share->state.open_count= 1; share->changed= 1; _ma_mark_file_changed_now(share); - /* Fall trough */ + /* fall through */ case HA_EXTRA_PREPARE_FOR_RENAME: { my_bool do_flush= test(function != HA_EXTRA_PREPARE_FOR_DROP); diff --git a/storage/maria/ma_key_recover.c b/storage/maria/ma_key_recover.c index 502ac2b8809..48f01b8f8dd 100644 --- a/storage/maria/ma_key_recover.c +++ b/storage/maria/ma_key_recover.c @@ -1169,6 +1169,7 @@ uint _ma_apply_redo_index(MARIA_HA *info, goto err; } page_length= page.size; + break; } case KEY_OP_NONE: default: diff --git a/storage/maria/ma_recovery.c b/storage/maria/ma_recovery.c index b2e8705b15e..75a8f4f4559 100644 --- a/storage/maria/ma_recovery.c +++ b/storage/maria/ma_recovery.c @@ -3059,7 +3059,7 @@ static MARIA_HA *get_MARIA_HA_from_REDO_record(const case LOGREC_REDO_INDEX: case LOGREC_REDO_INDEX_FREE_PAGE: index_page_redo_entry= 1; - /* Fall trough*/ + /* fall through*/ case LOGREC_REDO_INSERT_ROW_HEAD: case LOGREC_REDO_INSERT_ROW_TAIL: case LOGREC_REDO_PURGE_ROW_HEAD: diff --git a/storage/myisam/mi_extra.c b/storage/myisam/mi_extra.c index dab1f66ed6d..9c5c1ad0c0d 100644 --- a/storage/myisam/mi_extra.c +++ b/storage/myisam/mi_extra.c @@ -150,6 +150,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg) if (info->s->data_file_type != DYNAMIC_RECORD) break; /* Remove read/write cache if dynamic rows */ + /* fall through */ case HA_EXTRA_NO_CACHE: if (info->opt_flag & (READ_CACHE_USED | WRITE_CACHE_USED)) { @@ -262,7 +263,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg) //share->deleting= TRUE; share->global_changed= FALSE; /* force writing changed flag */ _mi_mark_file_changed(info); - /* Fall trough */ + /* fall through */ case HA_EXTRA_PREPARE_FOR_RENAME: mysql_mutex_lock(&THR_LOCK_myisam); share->last_version= 0L; /* Impossible version */ diff --git a/storage/sphinx/ha_sphinx.cc b/storage/sphinx/ha_sphinx.cc index 9edf6ea6570..b7a333c1715 100644 --- a/storage/sphinx/ha_sphinx.cc +++ b/storage/sphinx/ha_sphinx.cc @@ -1661,13 +1661,16 @@ bool CSphSEQuery::ParseField ( char * sField ) char * sLat = sValue; char * p = sValue; - if (!( p = strchr ( p, ',' ) )) break; *p++ = '\0'; + if (!( p = strchr ( p, ',' ) )) break; + *p++ = '\0'; char * sLong = p; - if (!( p = strchr ( p, ',' ) )) break; *p++ = '\0'; + if (!( p = strchr ( p, ',' ) )) break; + *p++ = '\0'; char * sLatVal = p; - if (!( p = strchr ( p, ',' ) )) break; *p++ = '\0'; + if (!( p = strchr ( p, ',' ) )) break; + *p++ = '\0'; char * sLongVal = p; m_sGeoLatAttr = chop(sLat); @@ -1736,7 +1739,8 @@ bool CSphSEQuery::ParseField ( char * sField ) while ( sRest ) { char * sId = sRest; - if (!( sRest = strchr ( sRest, ':' ) )) break; *sRest++ = '\0'; + if (!( sRest = strchr ( sRest, ':' ) )) break; + *sRest++ = '\0'; if (!( sRest - sId )) break; char * sValue = sRest; diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt index 2052d448a43..ab6bb0a8504 100644 --- a/storage/tokudb/CMakeLists.txt +++ b/storage/tokudb/CMakeLists.txt @@ -100,6 +100,7 @@ endmacro(append_cflags_if_supported) set_cflags_if_supported(-Wno-missing-field-initializers) append_cflags_if_supported(-Wno-vla) +append_cflags_if_supported(-Wno-implicit-fallthrough) ADD_SUBDIRECTORY(ft-index) diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 66fcc2799bb..00f345d4bc1 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -6144,7 +6144,7 @@ ha_innobase::innobase_lock_autoinc(void) break; } } - /* Fall through to old style locking. */ + /* fall through */ case AUTOINC_OLD_STYLE_LOCKING: error = row_lock_table_autoinc_for_mysql(prebuilt); @@ -8190,7 +8190,7 @@ create_options_are_valid( case ROW_TYPE_DYNAMIC: CHECK_ERROR_ROW_TYPE_NEEDS_FILE_PER_TABLE; CHECK_ERROR_ROW_TYPE_NEEDS_GT_ANTELOPE; - /* fall through since dynamic also shuns KBS */ + /* fall through */ /* since dynamic also shuns KBS */ case ROW_TYPE_COMPACT: case ROW_TYPE_REDUNDANT: if (kbs_specified) { @@ -8436,6 +8436,7 @@ ha_innobase::create( thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_ILLEGAL_HA_CREATE_OPTION, "InnoDB: assuming ROW_FORMAT=COMPACT."); + /* fall through */ case ROW_TYPE_DEFAULT: case ROW_TYPE_COMPACT: flags = DICT_TF_COMPACT; diff --git a/storage/xtradb/include/data0type.ic b/storage/xtradb/include/data0type.ic index 410970ac50e..5848e5d6548 100644 --- a/storage/xtradb/include/data0type.ic +++ b/storage/xtradb/include/data0type.ic @@ -477,7 +477,7 @@ dtype_get_fixed_size_low( #else /* !UNIV_HOTBACKUP */ return(len); #endif /* !UNIV_HOTBACKUP */ - /* fall through for variable-length charsets */ + /* fall through */ case DATA_VARCHAR: case DATA_BINARY: case DATA_DECIMAL: diff --git a/storage/xtradb/include/page0zip.ic b/storage/xtradb/include/page0zip.ic index e26fa3e3d94..a2fa13c94df 100644 --- a/storage/xtradb/include/page0zip.ic +++ b/storage/xtradb/include/page0zip.ic @@ -170,7 +170,7 @@ page_zip_rec_needs_ext( ignored if zip_size == 0 */ ulint zip_size) /*!< in: compressed page size in bytes, or 0 */ { - ut_ad(rec_size > comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES); + ut_ad(rec_size > (comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES)); ut_ad(ut_is_2pow(zip_size)); ut_ad(comp || !zip_size); diff --git a/storage/xtradb/row/row0mysql.c b/storage/xtradb/row/row0mysql.c index 0182752132a..5b01adf7c82 100644 --- a/storage/xtradb/row/row0mysql.c +++ b/storage/xtradb/row/row0mysql.c @@ -3635,7 +3635,7 @@ check_next_foreign: row_mysql_handle_errors(&err, trx, NULL, NULL); - /* Fall through to raise error */ + /* fall through */ /* to raise error */ default: /* No other possible error returns */ @@ -4455,7 +4455,7 @@ loop: fputs(" InnoDB: Warning: CHECK TABLE on ", stderr); dict_index_name_print(stderr, prebuilt->trx, index); fprintf(stderr, " returned %lu\n", ret); - /* fall through (this error is ignored by CHECK TABLE) */ + /* fall through */ /* this error is ignored by CHECK TABLE */ case DB_END_OF_INDEX: func_exit: mem_free(buf); diff --git a/storage/xtradb/row/row0purge.c b/storage/xtradb/row/row0purge.c index 4186da884b6..77d60edb71f 100644 --- a/storage/xtradb/row/row0purge.c +++ b/storage/xtradb/row/row0purge.c @@ -407,8 +407,8 @@ row_purge_remove_sec_if_poss_leaf( goto func_exit; } } - /* fall through (the index entry is still needed, - or the deletion succeeded) */ + /* the index entry is still needed, or the deletion succeeded */ + /* fall through */ case ROW_NOT_DELETED_REF: /* The index entry is still needed. */ case ROW_BUFFERED: diff --git a/storage/xtradb/row/row0sel.c b/storage/xtradb/row/row0sel.c index 592ae963382..3b2568c6834 100644 --- a/storage/xtradb/row/row0sel.c +++ b/storage/xtradb/row/row0sel.c @@ -2678,6 +2678,7 @@ row_sel_field_store_in_mysql_format( case DATA_SYS: /* These column types should never be shipped to MySQL. */ ut_ad(0); + /* fall through */ case DATA_CHAR: case DATA_FIXBINARY: diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index f2782657bea..7d39c9127c3 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -2488,14 +2488,18 @@ static int my_uni_utf8 (CHARSET_INFO *cs __attribute__((unused)), return MY_CS_TOOSMALLN(count); switch (count) { - /* Fall through all cases!!! */ #ifdef UNICODE_32BIT case 6: r[5] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x4000000; + /* fall through */ case 5: r[4] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x200000; + /* fall through */ case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000; + /* fall through */ #endif case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800; + /* fall through */ case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0; + /* fall through */ case 1: r[0] = (uchar) wc; } return count; @@ -2521,9 +2525,10 @@ static int my_uni_utf8_no_range(CHARSET_INFO *cs __attribute__((unused)), switch (count) { - /* Fall through all cases!!! */ case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800; + /* fall through */ case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0; + /* fall through */ case 1: r[0]= (uchar) wc; } return count; @@ -4979,10 +4984,12 @@ my_wc_mb_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), return MY_CS_TOOSMALLN(count); switch (count) { - /* Fall through all cases!!! */ case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000; + /* fall through */ case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800; + /* fall through */ case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0; + /* fall through */ case 1: r[0] = (uchar) wc; } return count; @@ -5011,10 +5018,12 @@ my_wc_mb_utf8mb4_no_range(CHARSET_INFO *cs __attribute__((unused)), switch (count) { - /* Fall through all cases!!! */ case 4: r[3]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x10000; + /* fall through */ case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800; + /* fall through */ case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0; + /* fall through */ case 1: r[0]= (uchar) wc; } return count; diff --git a/strings/dtoa.c b/strings/dtoa.c index 6b216056f66..5f50e10c9bf 100644 --- a/strings/dtoa.c +++ b/strings/dtoa.c @@ -1377,7 +1377,7 @@ static double my_strtod_int(const char *s00, char **se, int *error, char *buf, s switch (*s) { case '-': sign= 1; - /* no break */ + /* fall through */ case '+': s++; goto break2; @@ -1465,10 +1465,9 @@ static double my_strtod_int(const char *s00, char **se, int *error, char *buf, s esign= 0; if (++s < end) switch (c= *s) { - case '-': - esign= 1; - case '+': - c= *++s; + case '-': esign= 1; + /* fall through */ + case '+': c= *++s; } if (s < end && c >= '0' && c <= '9') { @@ -2360,7 +2359,7 @@ static char *dtoa(double dd, int mode, int ndigits, int *decpt, int *sign, break; case 2: leftright= 0; - /* no break */ + /* fall through */ case 4: if (ndigits <= 0) ndigits= 1; @@ -2368,7 +2367,7 @@ static char *dtoa(double dd, int mode, int ndigits, int *decpt, int *sign, break; case 3: leftright= 0; - /* no break */ + /* fall through */ case 5: i= ndigits + k + 1; ilim= i; From 52516706c86f9f66c76836eabde7e2477694bac3 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 13 Oct 2017 20:53:55 +0200 Subject: [PATCH 054/128] cleanup mysql_install_db 1. detect resolveip location, don' assume it's in $basedir/bin 2. don't guess $scriptdir to (incorrectly) construct the $0 path 3. rename find_in_basedir -> find_in_dirs, don't prepend $basedir automatically. This allows to use identical path lists in find_in_dirs and in cannot_find_file. 4. move search path lists to CMakeLists.txt to avoid specifying the same path list twice (in find_in_dirs and in cannot_find_file). --- scripts/CMakeLists.txt | 5 ++++ scripts/mysql_install_db.sh | 48 +++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index b4bd930029d..4f5ecccc159 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -205,6 +205,11 @@ ELSE() SET(localstatedir ${MYSQL_DATADIR}) ENDIF() +SET(resolveip_locations "$basedir/bin") +SET(mysqld_locations "$basedir/libexec $basedir/sbin $basedir/bin") +SET(errmsg_locations "$basedir/share/english $basedir/share/mysql/english") +SET(pkgdata_locations "$basedir/share $basedir/share/mysql") + IF(UNIX) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_install_db.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql_install_db ESCAPE_QUOTES @ONLY) diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index aefcc1a8384..00cf77d5780 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -159,7 +159,7 @@ parse_arguments() # Try to find a specific file within --basedir which can either be a binary # release or installed source directory and return the path. -find_in_basedir() +find_in_dirs() { case "$1" in --dir) @@ -171,13 +171,13 @@ find_in_basedir() for dir in "$@" do - if test -f "$basedir/$dir/$file" + if test -f "$dir/$file" then if test -n "$return_dir" then - echo "$basedir/$dir" + echo "$dir" else - echo "$basedir/$dir/$file" + echo "$dir/$file" fi break fi @@ -239,7 +239,7 @@ then print_defaults="$builddir/extra/my_print_defaults" elif test -n "$basedir" then - print_defaults=`find_in_basedir my_print_defaults bin extra` + print_defaults=`find_in_dirs my_print_defaults $basedir/bin $basedir/extra` if test -z "$print_defaults" then cannot_find_file my_print_defaults $basedir/bin $basedir/extra @@ -265,41 +265,43 @@ if test -n "$srcdir" then basedir="$builddir" bindir="$basedir/client" - extra_bindir="$basedir/extra" + resolveip="$basedir/extra/resolveip" mysqld="$basedir/sql/mysqld" langdir="$basedir/sql/share/english" pkgdatadir="$srcdir/scripts" - scriptdir="$srcdir/scripts" elif test -n "$basedir" then - bindir="$basedir/bin" - extra_bindir="$bindir" - mysqld=`find_in_basedir mysqld libexec sbin bin` + bindir="$basedir/bin" # only used in the help text + resolveip=`find_in_dirs resolveip @resolveip_locations@` + if test -z "$resolveip" + then + cannot_find_file resolveip @resolveip_locations@ + exit 1 + fi + mysqld=`find_in_dirs mysqld @mysqld_locations@` if test -z "$mysqld" then - cannot_find_file mysqld $basedir/libexec $basedir/sbin $basedir/bin + cannot_find_file mysqld @mysqld_locations@ exit 1 fi - langdir=`find_in_basedir --dir errmsg.sys share/english share/mysql/english` + langdir=`find_in_dirs --dir errmsg.sys @errmsg_locations@` if test -z "$langdir" then - cannot_find_file errmsg.sys $basedir/share/english $basedir/share/mysql/english + cannot_find_file errmsg.sys @errmsg_locations@ exit 1 fi - pkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql` + pkgdatadir=`find_in_dirs --dir fill_help_tables.sql @pkgdata_locations@` if test -z "$pkgdatadir" then - cannot_find_file fill_help_tables.sql $basedir/share $basedir/share/mysql + cannot_find_file fill_help_tables.sql @pkgdata_locations@ exit 1 fi - scriptdir="$basedir/scripts" else basedir="@prefix@" bindir="@bindir@" - extra_bindir="$bindir" + resolveip="$bindir/resolveip" mysqld="@libexecdir@/mysqld" pkgdatadir="@pkgdatadir@" - scriptdir="@scriptdir@" fi # Set up paths to SQL scripts required for bootstrap @@ -342,14 +344,14 @@ hostname=`@HOSTNAME@` # Check if hostname is valid if test "$cross_bootstrap" -eq 0 -a "$in_rpm" -eq 0 -a "$force" -eq 0 then - resolved=`"$extra_bindir/resolveip" $hostname 2>&1` + resolved=`"$resolveip" $hostname 2>&1` if test $? -ne 0 then - resolved=`"$extra_bindir/resolveip" localhost 2>&1` + resolved=`"$resolveip" localhost 2>&1` if test $? -ne 0 then echo "Neither host '$hostname' nor 'localhost' could be looked up with" - echo "'$extra_bindir/resolveip'" + echo "'$resolveip'" echo "Please configure the 'hostname' command to return a correct" echo "hostname." echo "If you want to solve this at a later stage, restart this script" @@ -357,7 +359,7 @@ then link_to_help exit 1 fi - echo "WARNING: The host '$hostname' could not be looked up with resolveip." + echo "WARNING: The host '$hostname' could not be looked up with $resolveip." echo "This probably means that your libc libraries are not 100 % compatible" echo "with this binary MariaDB version. The MariaDB daemon, mysqld, should work" echo "normally with the exception that host name resolving will not work." @@ -436,7 +438,7 @@ else echo "The problem could be conflicting information in an external" echo "my.cnf files. You can ignore these by doing:" echo - echo " shell> $scriptdir/scripts/mysql_install_db --defaults-file=~/.my.cnf" + echo " shell> $0 --defaults-file=~/.my.cnf" echo echo "You can also try to start the mysqld daemon with:" echo From 93144b9e92d3d4fee3247895c1e06e8e7cfedcaa Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 13 Oct 2017 21:26:30 +0200 Subject: [PATCH 055/128] MDEV-13440 mysql_install_db fails with hard-coded langdir always search in compile-time specified paths INSTALL_BINDIR, INSTALL_SBINDIR, INSTALL_MYSQLSHAREDIR. User can set them to arbitrary values, it's not enough to search only in their usual values of bin, sbin and libexec, share and share/mysql. --- scripts/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 4f5ecccc159..93ee3e9d2ac 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -205,10 +205,10 @@ ELSE() SET(localstatedir ${MYSQL_DATADIR}) ENDIF() -SET(resolveip_locations "$basedir/bin") -SET(mysqld_locations "$basedir/libexec $basedir/sbin $basedir/bin") -SET(errmsg_locations "$basedir/share/english $basedir/share/mysql/english") -SET(pkgdata_locations "$basedir/share $basedir/share/mysql") +SET(resolveip_locations "$basedir/${INSTALL_BINDIR} $basedir/bin") +SET(mysqld_locations "$basedir/${INSTALL_SBINDIR} $basedir/libexec $basedir/sbin $basedir/bin") +SET(errmsg_locations "$basedir/${INSTALL_MYSQLSHAREDIR}/english $basedir/share/english $basedir/share/mysql/english") +SET(pkgdata_locations "$basedir/${INSTALL_MYSQLSHAREDIR} $basedir/share $basedir/share/mysql") IF(UNIX) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_install_db.sh From 421716391b8bafe9af853b1ee3f83d521b69db6e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 14 Oct 2017 15:03:43 +0200 Subject: [PATCH 056/128] MDEV-13912 Can't refer the same column twice in one ALTER TABLE backport ce6c0e584e3 MDEV-8960: Can't refer the same column twice in one ALTER TABLE Problem was that if column was created in alter table when it was refered again it was not tried to find from list of current columns. mysql_prepare_alter_table: There is two cases (1) If alter table adds a new column and then later alter changes the field definition, there was no check from list of new columns, instead an incorrect error was given. (2) If alter table adds a new column and then later alter changes the default, there was no check from list of new columns, instead an incorrect error was given. --- mysql-test/r/alter_table.result | 52 +++++++++++++++++++++++++++++++++ mysql-test/t/alter_table.test | 41 ++++++++++++++++++++++++++ sql/sql_table.cc | 45 ++++++++++++++++++++++++++-- 3 files changed, 135 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index 624cc7afa98..8e61031f8ac 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -1340,3 +1340,55 @@ rename table t2 to t1; execute stmt1; deallocate prepare stmt1; drop table t2; +# +# MDEV-8960 Can't refer the same column twice in one ALTER TABLE +# +CREATE TABLE t1 ( +`a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL, +ALTER COLUMN `consultant_id` DROP DEFAULT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `consultant_id` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +DROP TABLE t1; +CREATE TABLE t1 ( +`a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL, +ALTER COLUMN `consultant_id` SET DEFAULT 2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `consultant_id` int(11) NOT NULL DEFAULT '2' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +DROP TABLE t1; +CREATE TABLE t1 ( +`a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2, +ALTER COLUMN `consultant_id` DROP DEFAULT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `consultant_id` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +DROP TABLE t1; +CREATE TABLE t1 ( +`a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2, +ALTER COLUMN `consultant_id` DROP DEFAULT, +MODIFY COLUMN `consultant_id` BIGINT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `consultant_id` bigint(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +DROP TABLE t1; diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test index eade7ba721e..ee9616e233d 100644 --- a/mysql-test/t/alter_table.test +++ b/mysql-test/t/alter_table.test @@ -1231,3 +1231,44 @@ execute stmt1; deallocate prepare stmt1; drop table t2; +--echo # +--echo # MDEV-8960 Can't refer the same column twice in one ALTER TABLE +--echo # + +CREATE TABLE t1 ( + `a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; + +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL, +ALTER COLUMN `consultant_id` DROP DEFAULT; + +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 ( + `a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; + +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL, +ALTER COLUMN `consultant_id` SET DEFAULT 2; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 ( + `a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; + +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2, +ALTER COLUMN `consultant_id` DROP DEFAULT; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 ( + `a` int(11) DEFAULT NULL +) DEFAULT CHARSET=utf8; + +ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2, +ALTER COLUMN `consultant_id` DROP DEFAULT, +MODIFY COLUMN `consultant_id` BIGINT; +SHOW CREATE TABLE t1; +DROP TABLE t1; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index e6490876352..19093d9b2ca 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -5739,9 +5739,25 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, { if (def->change && ! def->field) { - my_error(ER_BAD_FIELD_ERROR, MYF(0), def->change, - table->s->table_name.str); - goto err; + /* + Check if there is modify for newly added field. + */ + Create_field *find; + find_it.rewind(); + while((find=find_it++)) + { + if (!my_strcasecmp(system_charset_info,find->field_name, def->field_name)) + break; + } + + if (find && !find->field) + find_it.remove(); + else + { + my_error(ER_BAD_FIELD_ERROR, MYF(0), def->change, + table->s->table_name.str); + goto err; + } } /* Check that the DATE/DATETIME not null field we are going to add is @@ -5793,6 +5809,29 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, */ alter_info->change_level= ALTER_TABLE_DATA_CHANGED; } + /* + Check if there is alter for newly added field. + */ + alter_it.rewind(); + Alter_column *alter; + while ((alter=alter_it++)) + { + if (!my_strcasecmp(system_charset_info,def->field_name, alter->name)) + break; + } + if (alter) + { + if (def->sql_type == MYSQL_TYPE_BLOB) + { + my_error(ER_BLOB_CANT_HAVE_DEFAULT, MYF(0), def->change); + goto err; + } + if ((def->def=alter->def)) // Use new default + def->flags&= ~NO_DEFAULT_VALUE_FLAG; + else + def->flags|= NO_DEFAULT_VALUE_FLAG; + alter_it.remove(); + } } if (alter_info->alter_list.elements) { From 19a702a85c69d241e360d1d5a040378928a3fdca Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 14 Oct 2017 15:59:54 +0200 Subject: [PATCH 057/128] MDEV-14056 DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option if it's a DROP TABLE, we cannot detect whether a table is temporary by looking in thd->temporary_tables - because the table might simply not exist at all. --- mysql-test/r/read_only.result | 3 +++ mysql-test/t/read_only.test | 5 +++++ sql/sql_parse.cc | 41 ++++++++++++++--------------------- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/mysql-test/r/read_only.result b/mysql-test/r/read_only.result index 807dc426696..2d0f9d730fd 100644 --- a/mysql-test/r/read_only.result +++ b/mysql-test/r/read_only.result @@ -47,6 +47,9 @@ delete t1 from t1,t3 where t1.a=t3.a; drop table t1; insert into t1 values(1); ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +drop temporary table if exists t1; +Warnings: +Note 1051 Unknown table 't1' connection default; set global read_only=0; lock table t1 write; diff --git a/mysql-test/t/read_only.test b/mysql-test/t/read_only.test index a0bd7b49273..eb9bea803c2 100644 --- a/mysql-test/t/read_only.test +++ b/mysql-test/t/read_only.test @@ -114,6 +114,11 @@ drop table t1; --error ER_OPTION_PREVENTS_STATEMENT insert into t1 values(1); +# +# MDEV-14056 DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option +# +drop temporary table if exists t1; + # # Bug#11733 COMMITs should not happen if read-only is set # diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index d003a13ae09..9f8a625325f 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -811,8 +811,7 @@ out: @retval FALSE The statement isn't updating any relevant tables. */ -static my_bool deny_updates_if_read_only_option(THD *thd, - TABLE_LIST *all_tables) +static bool deny_updates_if_read_only_option(THD *thd, TABLE_LIST *all_tables) { DBUG_ENTER("deny_updates_if_read_only_option"); @@ -821,11 +820,7 @@ static my_bool deny_updates_if_read_only_option(THD *thd, LEX *lex= thd->lex; - const my_bool user_is_super= - ((ulong)(thd->security_ctx->master_access & SUPER_ACL) == - (ulong)SUPER_ACL); - - if (user_is_super) + if (thd->security_ctx->master_access & SUPER_ACL) DBUG_RETURN(FALSE); if (!(sql_command_flags[lex->sql_command] & CF_CHANGES_DATA)) @@ -835,30 +830,26 @@ static my_bool deny_updates_if_read_only_option(THD *thd, if (lex->sql_command == SQLCOM_UPDATE_MULTI) DBUG_RETURN(FALSE); + if (lex->sql_command == SQLCOM_CREATE_DB || + lex->sql_command == SQLCOM_DROP_DB) + DBUG_RETURN(TRUE); + /* a table-to-be-created is not in the temp table list yet, so CREATE TABLE needs a special treatment */ - const bool update_real_tables= - lex->sql_command == SQLCOM_CREATE_TABLE - ? !(lex->create_info.options & HA_LEX_CREATE_TMP_TABLE) - : some_non_temp_table_to_be_updated(thd, all_tables); + if (lex->sql_command == SQLCOM_CREATE_TABLE) + DBUG_RETURN(!(lex->create_info.options & HA_LEX_CREATE_TMP_TABLE)); - const bool create_or_drop_databases= - (lex->sql_command == SQLCOM_CREATE_DB) || - (lex->sql_command == SQLCOM_DROP_DB); + /* + a table-to-be-dropped might not exist (DROP TEMPORARY TABLE IF EXISTS), + cannot use the temp table list either. + */ + if (lex->sql_command == SQLCOM_DROP_TABLE && lex->drop_temporary) + DBUG_RETURN(FALSE); - if (update_real_tables || create_or_drop_databases) - { - /* - An attempt was made to modify one or more non-temporary tables. - */ - DBUG_RETURN(TRUE); - } - - - /* Assuming that only temporary tables are modified. */ - DBUG_RETURN(FALSE); + /* Now, check thd->temporary_tables list */ + DBUG_RETURN(some_non_temp_table_to_be_updated(thd, all_tables)); } /** From b036b6b59464524d7dd54a4c9a75b5ee8a14dbe0 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 16 Oct 2017 12:34:17 +0200 Subject: [PATCH 058/128] MDEV-13937 Aria engine: Internal Error 160 after partition handling Partition wasn't setting HA_OPTION_PACK_RECORD on ALTER TABLE if the row format was PAGE. (so one bit in the null bitmap was reserved for a deleted bit - see make_empty_rec - and all actual null bits were one off) --- .../suite/parts/r/partition_alter_maria.result | 18 ++++++++++++++++++ .../suite/parts/t/partition_alter_maria.test | 18 ++++++++++++++++++ sql/sql_partition.cc | 3 ++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 mysql-test/suite/parts/r/partition_alter_maria.result create mode 100644 mysql-test/suite/parts/t/partition_alter_maria.test diff --git a/mysql-test/suite/parts/r/partition_alter_maria.result b/mysql-test/suite/parts/r/partition_alter_maria.result new file mode 100644 index 00000000000..6343566e408 --- /dev/null +++ b/mysql-test/suite/parts/r/partition_alter_maria.result @@ -0,0 +1,18 @@ +create table t1 ( +pk bigint not null auto_increment, +dt datetime default null, +unique (pk, dt) +) engine=aria row_format=dynamic +partition by range columns(dt) ( +partition `p20171231` values less than ('2017-12-31'), +partition `p20181231` values less than ('2018-12-31') +); +insert into t1 values (1,'2017-09-28 15:12:00'); +select * from t1; +pk dt +1 2017-09-28 15:12:00 +alter table t1 drop partition p20181231; +select * from t1; +pk dt +1 2017-09-28 15:12:00 +drop table t1; diff --git a/mysql-test/suite/parts/t/partition_alter_maria.test b/mysql-test/suite/parts/t/partition_alter_maria.test new file mode 100644 index 00000000000..db249591158 --- /dev/null +++ b/mysql-test/suite/parts/t/partition_alter_maria.test @@ -0,0 +1,18 @@ +# +# MDEV-13937 Aria engine: Internal Error 160 after partition handling +# +source include/have_partition.inc; +create table t1 ( + pk bigint not null auto_increment, + dt datetime default null, + unique (pk, dt) +) engine=aria row_format=dynamic + partition by range columns(dt) ( + partition `p20171231` values less than ('2017-12-31'), + partition `p20181231` values less than ('2018-12-31') +); +insert into t1 values (1,'2017-09-28 15:12:00'); +select * from t1; +alter table t1 drop partition p20181231; +select * from t1; +drop table t1; diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index bf34d328dc5..cb01f8e339f 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -6672,7 +6672,8 @@ uint fast_alter_partition_table(THD *thd, TABLE *table, lpt->alter_info= alter_info; lpt->create_info= create_info; lpt->db_options= create_info->table_options; - if (create_info->row_type == ROW_TYPE_DYNAMIC) + if (create_info->row_type != ROW_TYPE_FIXED && + create_info->row_type != ROW_TYPE_DEFAULT) lpt->db_options|= HA_OPTION_PACK_RECORD; lpt->table= fast_alter_table; lpt->old_table= table; From b000e169562697aa072600695d4f0c0412f94f4f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 17 Oct 2017 10:57:51 +0200 Subject: [PATCH 059/128] Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL)) based on: commit f7316aa0c9a Author: Ajo Robert Date: Thu Aug 24 17:03:21 2017 +0530 Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL)) Backport of Bug#19143243 fix. NAME_CONST item can return NULL_ITEM type in case of incorrect arguments. NULL_ITEM has special processing in Item_func_in function. In Item_func_in::fix_length_and_dec an array of possible comparators is created. Since NAME_CONST function has NULL_ITEM type, corresponding array element is empty. Then NAME_CONST is wrapped to ITEM_CACHE. ITEM_CACHE can not return proper type(NULL_ITEM) in Item_func_in::val_int(), so the NULL_ITEM is attempted compared with an empty comparator. The fix is to disable the caching of Item_name_const item. --- mysql-test/r/func_in.result | 6 ++++++ mysql-test/t/func_in.test | 8 ++++++++ sql/item.cc | 1 + 3 files changed, 15 insertions(+) diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result index fc56660ac62..03ddbf5402b 100644 --- a/mysql-test/r/func_in.result +++ b/mysql-test/r/func_in.result @@ -812,3 +812,9 @@ EXECUTE s; 1 DROP TABLE t1; # End of 5.3 tests +create table t1 (a int); +insert t1 values (1),(2),(3); +select * from t1 where 1 in (a, name_const('a', null)); +a +1 +drop table t1; diff --git a/mysql-test/t/func_in.test b/mysql-test/t/func_in.test index 1e695142d90..439f9868ec8 100644 --- a/mysql-test/t/func_in.test +++ b/mysql-test/t/func_in.test @@ -606,3 +606,11 @@ EXECUTE s; DROP TABLE t1; --echo # End of 5.3 tests + +# +# Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL)) +# +create table t1 (a int); +insert t1 values (1),(2),(3); +select * from t1 where 1 in (a, name_const('a', null)); +drop table t1; diff --git a/sql/item.cc b/sql/item.cc index 3c633ddc9ca..fa2e52bfd4a 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -6726,6 +6726,7 @@ bool Item::cache_const_expr_analyzer(uchar **arg) */ if (const_item() && !(basic_const_item() || item->basic_const_item() || + item->type() == Item::NULL_ITEM || /* Item_name_const hack */ item->type() == Item::FIELD_ITEM || item->type() == SUBSELECT_ITEM || /* From cd7fa0fd62da36f8c6bb88e29fd23fcfd85e3991 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Tue, 17 Oct 2017 12:04:53 +0300 Subject: [PATCH 060/128] MDEV-11934: MariaRocks: Group Commit with binlog Port the previous patch: - Implement MariaDB's Group Commit API. This is a first attempt which lacks the expected performance. To newer MariaDB (which includes newer MyRocks) --- storage/rocksdb/ha_rocksdb.cc | 106 +++++++++++++++++++++++++++++++--- 1 file changed, 99 insertions(+), 7 deletions(-) diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index 17ea7b74565..3ca58b3f935 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -1806,6 +1806,12 @@ public: */ int64_t m_n_mysql_tables_in_use = 0; + /* + MariaDB's group commit: + */ + bool commit_ordered_done; + bool commit_ordered_res; + /* for distinction between rdb_transaction_impl and rdb_writebatch_impl when using walk tx list @@ -2431,6 +2437,8 @@ public: THDVAR(m_thd, write_ignore_missing_column_families); m_is_two_phase = rocksdb_enable_2pc; + commit_ordered_done= false; + /* If m_rocksdb_reuse_tx is null this will create a new transaction object. Otherwise it will reuse the existing one. @@ -2643,6 +2651,7 @@ public: bool is_tx_started() const override { return (m_batch != nullptr); } void start_tx() override { + commit_ordered_done= false; // Do we need this here? reset(); write_opts.sync = (rocksdb_flush_log_at_trx_commit == FLUSH_LOG_SYNC); write_opts.disableWAL = THDVAR(m_thd, write_disable_wal); @@ -2831,8 +2840,7 @@ static bool rocksdb_flush_wal(handlerton* hton __attribute__((__unused__))) */ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) { -// This is "ASYNC_COMMIT" feature which is only in webscalesql - bool async=false; + bool async=false; // This is "ASYNC_COMMIT" feature which is only present in webscalesql Rdb_transaction *&tx = get_tx_from_thd(thd); if (!tx->can_prepare()) { @@ -2842,7 +2850,8 @@ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) (!my_core::thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))) { /* We were instructed to prepare the whole transaction, or this is an SQL statement end and autocommit is on */ -#ifdef MARIAROCKS_NOT_YET // disable prepare/commit + +#ifdef MARIAROCKS_NOT_YET // Crash-safe slave does not work yet std::vector slave_gtid_info; my_core::thd_slave_gtid_info(thd, &slave_gtid_info); for (const auto &it : slave_gtid_info) { @@ -2852,22 +2861,41 @@ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) #endif if (tx->is_two_phase()) { + + /* + MariaDB: the following branch is never taken. + We always flush at Prepare and rely on RocksDB's internal Group Commit + to do some grouping. + */ if (thd->durability_property == HA_IGNORE_DURABILITY || async) { tx->set_sync(false); } + + /* + MariaDB: do not flush logs if we are running in a non-crash-safe mode. + */ + if (!rocksdb_flush_log_at_trx_commit) + tx->set_sync(false); + XID xid; thd_get_xid(thd, reinterpret_cast(&xid)); if (!tx->prepare(rdb_xid_to_string(xid))) { return HA_EXIT_FAILURE; } - if (thd->durability_property == HA_IGNORE_DURABILITY ) + + /* + MariaDB: our Group Commit implementation does not use the + hton->flush_logs call (at least currently) so the following is not + needed (TODO: will we need this for binlog rotation?) + */ #ifdef MARIAROCKS_NOT_YET - (rocksdb_flush_log_at_trx_commit != FLUSH_LOG_NEVER)) { + if (thd->durability_property == HA_IGNORE_DURABILITY ) + (rocksdb_flush_log_at_trx_commit != FLUSH_LOG_NEVER)) && THDVAR(thd, flush_log_at_trx_commit)) #endif - { #ifdef MARIAROCKS_NOT_YET + { // MariaRocks: disable the // "write/sync redo log before flushing binlog cache to file" // feature. See a869c56d361bb44f46c0efeb11a8f03561676247 @@ -2875,8 +2903,8 @@ static int rocksdb_prepare(handlerton* hton, THD* thd, bool prepare_tx) we set the log sequence as '1' just to trigger hton->flush_logs */ thd_store_lsn(thd, 1, DB_TYPE_ROCKSDB); -#endif } +#endif } DEBUG_SYNC(thd, "rocksdb.prepared"); @@ -3026,6 +3054,50 @@ static int rocksdb_recover(handlerton* hton, XID* xid_list, uint len) return count; } + +/* + Handle a commit checkpoint request from server layer. + + InnoDB does this: + We put the request in a queue, so that we can notify upper layer about + checkpoint complete when we have flushed the redo log. + If we have already flushed all relevant redo log, we notify immediately. + + MariaRocks just flushes everything right away ATM +*/ + +static void rocksdb_checkpoint_request(handlerton *hton, + void *cookie) +{ + const rocksdb::Status s= rdb->SyncWAL(); + //TODO: what to do on error? + if (s.ok()) + { + rocksdb_wal_group_syncs++; + commit_checkpoint_notify_ha(hton, cookie); + } +} + +/* + @param all: TRUE - commit the transaction + FALSE - SQL statement ended +*/ +static void rocksdb_commit_ordered(handlerton *hton, THD* thd, bool all) +{ + // Same assert as InnoDB has + DBUG_ASSERT(all || (!thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | + OPTION_BEGIN))); + Rdb_transaction *&tx = get_tx_from_thd(thd); + + tx->set_sync(false); + + /* This will note the master position also */ + tx->commit_ordered_res= tx->commit(); + tx->commit_ordered_done= true; + +} + + static int rocksdb_commit(handlerton* hton, THD* thd, bool commit_tx) { DBUG_ENTER_FUNC(); @@ -3045,6 +3117,16 @@ static int rocksdb_commit(handlerton* hton, THD* thd, bool commit_tx) if (tx != nullptr) { if (commit_tx || (!my_core::thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))) { + /* + This will not add anything to commit_latency_stats, and this is correct + right? + */ + if (tx->commit_ordered_done) + { + thd_wakeup_subsequent_commits(thd, 0); + DBUG_RETURN((tx->commit_ordered_res? HA_ERR_INTERNAL_ERROR: 0)); + } + /* We get here - For a COMMIT statement that finishes a multi-statement transaction @@ -3053,6 +3135,7 @@ static int rocksdb_commit(handlerton* hton, THD* thd, bool commit_tx) if (tx->commit()) { DBUG_RETURN(HA_ERR_ROCKSDB_COMMIT_FAILED); } + thd_wakeup_subsequent_commits(thd, 0); } else { /* We get here when committing a statement within a transaction. @@ -3076,6 +3159,7 @@ static int rocksdb_commit(handlerton* hton, THD* thd, bool commit_tx) DBUG_RETURN(HA_EXIT_SUCCESS); } + static int rocksdb_rollback(handlerton *const hton, THD *const thd, bool rollback_tx) { Rdb_transaction *&tx = get_tx_from_thd(thd); @@ -3882,11 +3966,19 @@ static int rocksdb_init_func(void *const p) { rocksdb_hton->state = SHOW_OPTION_YES; rocksdb_hton->create = rocksdb_create_handler; rocksdb_hton->close_connection = rocksdb_close_connection; + rocksdb_hton->prepare = rocksdb_prepare; + rocksdb_hton->prepare_ordered = NULL; // Do not need it + rocksdb_hton->commit_by_xid = rocksdb_commit_by_xid; rocksdb_hton->rollback_by_xid = rocksdb_rollback_by_xid; rocksdb_hton->recover = rocksdb_recover; + + rocksdb_hton->commit_ordered= rocksdb_commit_ordered; rocksdb_hton->commit = rocksdb_commit; + + rocksdb_hton->commit_checkpoint_request= rocksdb_checkpoint_request; + rocksdb_hton->rollback = rocksdb_rollback; rocksdb_hton->show_status = rocksdb_show_status; rocksdb_hton->start_consistent_snapshot = From 4090ef820e869608e6f67f8a590b9fea427b73d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 17 Oct 2017 15:33:19 +0300 Subject: [PATCH 061/128] Fix check_role_is_granted for embedded --- sql/sql_acl.cc | 74 ++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 8de6bb920a9..177b4517904 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -8264,41 +8264,6 @@ static int check_role_is_granted_callback(ACL_USER_BASE *grantee, void *data) return 0; } -/* Check if a role is granted to a user/role. We traverse the role graph - and return true if we find a match. - - hostname == NULL means we are looking for a role as a starting point, - otherwise a user. -*/ -bool check_role_is_granted(const char *username, - const char *hostname, - const char *rolename) -{ - DBUG_ENTER("check_role_is_granted"); - ACL_USER_BASE *root; - bool result= false; - mysql_mutex_lock(&acl_cache->lock); - if (hostname) - root= find_user_exact(username, hostname); - else - root= find_acl_role(username); - - LEX_CSTRING role_lex; - role_lex.str= rolename; - role_lex.length= strlen(rolename); - - if (root && /* No grantee, nothing to search. */ - traverse_role_graph_down(root, &role_lex, check_role_is_granted_callback, - NULL) == -1) - { - /* We have found the role during our search. */ - result= true; - } - - /* We haven't found the role or we had no initial grantee to start from. */ - mysql_mutex_unlock(&acl_cache->lock); - DBUG_RETURN(result); -} /* Open the grant tables. @@ -10213,6 +10178,45 @@ applicable_roles_insert(ACL_USER_BASE *grantee, ACL_ROLE *role, void *ptr) #endif /*NO_EMBEDDED_ACCESS_CHECKS */ +/* Check if a role is granted to a user/role. We traverse the role graph + and return true if we find a match. + + hostname == NULL means we are looking for a role as a starting point, + otherwise a user. +*/ +bool check_role_is_granted(const char *username, + const char *hostname, + const char *rolename) +{ + DBUG_ENTER("check_role_is_granted"); + bool result= false; +#ifndef NO_EMBEDDED_ACCESS_CHECKS + ACL_USER_BASE *root; + mysql_mutex_lock(&acl_cache->lock); + if (hostname) + root= find_user_exact(username, hostname); + else + root= find_acl_role(username); + + LEX_CSTRING role_lex; + role_lex.str= rolename; + role_lex.length= strlen(rolename); + + if (root && /* No grantee, nothing to search. */ + traverse_role_graph_down(root, &role_lex, check_role_is_granted_callback, + NULL) == -1) + { + /* We have found the role during our search. */ + result= true; + } + + /* We haven't found the role or we had no initial grantee to start from. */ + mysql_mutex_unlock(&acl_cache->lock); +#endif + DBUG_RETURN(result); +} + + int fill_schema_enabled_roles(THD *thd, TABLE_LIST *tables, COND *cond) { TABLE *table= tables->table; From 74ffcbc135a24d924a87b530ed293864b135a555 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Tue, 17 Oct 2017 21:50:17 +0200 Subject: [PATCH 062/128] - Typo (from 10.1) Modified: storage/connect/value.cpp --- storage/connect/value.cpp | 63 +++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index c7a6c8dd06a..7af70ea1349 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -1659,46 +1659,45 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) if (trace) htrc("Compute: np=%d op=%d\n", np, op); - for (i = 0; i < np; i++) { - p[i] = vp[i]->IsNull() ? NULL : vp[i]->GetCharString(val[i]); + for (i = 0; i < np; i++) + if (!vp[i]->IsNull()) { + p[i] = vp[i]->GetCharString(val[i]); - if (trace) - htrc("p[%d]=%s\n", i, p[i]); + if (trace) + htrc("p[%d]=%s\n", i, p[i]); - } // endfor i + } else + return false; - if (p[0] && p[np - 1]) { - switch (op) { - case OP_CNC: - assert(np == 1 || np == 2); + switch (op) { + case OP_CNC: + assert(np == 1 || np == 2); - if (np == 2) - SetValue_psz(p[0]); + if (np == 2) + SetValue_psz(p[0]); - if ((i = Len - (signed)strlen(Strp)) > 0) - strncat(Strp, p[np - 1], i); + if ((i = Len - (signed)strlen(Strp)) > 0) + strncat(Strp, p[np - 1], i); - if (trace) - htrc("Strp=%s\n", Strp); + if (trace) + htrc("Strp=%s\n", Strp); - break; - case OP_MIN: - assert(np == 2); - SetValue_psz((strcmp(p[0], p[1]) < 0) ? p[0] : p[1]); - break; - case OP_MAX: - assert(np == 2); - SetValue_psz((strcmp(p[0], p[1]) > 0) ? p[0] : p[1]); - break; - default: - // sprintf(g->Message, MSG(BAD_EXP_OPER), op); - strcpy(g->Message, "Function not supported"); - return true; - } // endswitch op - - Null = false; - } // endif p[i] + break; + case OP_MIN: + assert(np == 2); + SetValue_psz((strcmp(p[0], p[1]) < 0) ? p[0] : p[1]); + break; + case OP_MAX: + assert(np == 2); + SetValue_psz((strcmp(p[0], p[1]) > 0) ? p[0] : p[1]); + break; + default: + // sprintf(g->Message, MSG(BAD_EXP_OPER), op); + strcpy(g->Message, "Function not supported"); + return true; + } // endswitch op + Null = false; return false; } // end of Compute From dfd010ef906705165d6866377ebd4c937adc7716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 18 Oct 2017 06:35:11 +0300 Subject: [PATCH 063/128] MDEV-14086 Setting innodb_buffer_pool_load_now or innodb_buffer_load_abort will crash if innodb_read_only When MySQL 5.6.10 introduced innodb_read_only mode, it skipped the creation of the InnoDB buffer pool dump/restore subsystem in that mode. Attempts to set the variable innodb_buf_pool_dump_now would have no effect in innodb_read_only mode, but the corresponding condition was forgotten in from the other two update functions. MySQL 5.7.20 would fix the innodb_buffer_pool_load_now, but not innodb_buffer_pool_load_abort. Let us fix both in MariaDB. --- mysql-test/suite/innodb/r/innodb-get-fk.result | 3 +++ mysql-test/suite/innodb/t/innodb-get-fk.test | 5 +++++ storage/innobase/handler/ha_innodb.cc | 4 ++-- storage/xtradb/handler/ha_innodb.cc | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb-get-fk.result b/mysql-test/suite/innodb/r/innodb-get-fk.result index ee17f262854..aa1bff8f134 100644 --- a/mysql-test/suite/innodb/r/innodb-get-fk.result +++ b/mysql-test/suite/innodb/r/innodb-get-fk.result @@ -40,6 +40,9 @@ crew_role_assigned CREATE TABLE `crew_role_assigned` ( CONSTRAINT `fk_crewRoleAssigned_crewId` FOREIGN KEY (`crew_id`) REFERENCES `crew` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_crewRoleAssigned_pilotId` FOREIGN KEY (`crew_id`) REFERENCES `pilot` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='This is a comment about tables' +SET GLOBAL innodb_buffer_pool_load_now = ON; +SET GLOBAL innodb_buffer_pool_dump_now = ON; +SET GLOBAL innodb_buffer_pool_load_abort = ON; ALTER TABLE `repro`.`crew_role_assigned` COMMENT = "This is a new comment about tables"; SHOW CREATE TABLE `repro`.`crew_role_assigned`; Table Create Table diff --git a/mysql-test/suite/innodb/t/innodb-get-fk.test b/mysql-test/suite/innodb/t/innodb-get-fk.test index 339a7968623..46eb7dd0273 100644 --- a/mysql-test/suite/innodb/t/innodb-get-fk.test +++ b/mysql-test/suite/innodb/t/innodb-get-fk.test @@ -40,6 +40,11 @@ CONSTRAINT `fk_crewRoleAssigned_pilotId` FOREIGN KEY (`crew_id`) REFERENCES `rep ALTER TABLE `repro`.`crew_role_assigned` COMMENT = 'innodb_read_only'; SHOW CREATE TABLE `repro`.`crew_role_assigned`; +# These should be ignored in innodb_read_only mode. +SET GLOBAL innodb_buffer_pool_load_now = ON; +SET GLOBAL innodb_buffer_pool_dump_now = ON; +SET GLOBAL innodb_buffer_pool_load_abort = ON; + -- let $restart_parameters= -- source include/restart_mysqld.inc diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 1c9aea2491a..4aab1b8d713 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -16375,7 +16375,7 @@ buffer_pool_load_now( const void* save) /*!< in: immediate result from check function */ { - if (*(my_bool*) save) { + if (*(my_bool*) save && !srv_read_only_mode) { buf_load_start(); } } @@ -16398,7 +16398,7 @@ buffer_pool_load_abort( const void* save) /*!< in: immediate result from check function */ { - if (*(my_bool*) save) { + if (*(my_bool*) save && !srv_read_only_mode) { buf_load_abort(); } } diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index c5fdfc0a8b7..f111a576d8f 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -17651,7 +17651,7 @@ buffer_pool_load_now( const void* save) /*!< in: immediate result from check function */ { - if (*(my_bool*) save) { + if (*(my_bool*) save && !srv_read_only_mode) { buf_load_start(); } } @@ -17674,7 +17674,7 @@ buffer_pool_load_abort( const void* save) /*!< in: immediate result from check function */ { - if (*(my_bool*) save) { + if (*(my_bool*) save && !srv_read_only_mode) { buf_load_abort(); } } From 981747956349c23f2e1aec41232a82e4b7e822b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 18 Oct 2017 08:25:04 +0300 Subject: [PATCH 064/128] Add a test of LIMIT with FULLTEXT INDEX In MariaDB, InnoDB fulltext search does not currently truncate results based on LIMIT. In MySQL 5.7, it does. --- mysql-test/suite/innodb_fts/r/fulltext.result | 36 ++++++++++++++++++- mysql-test/suite/innodb_fts/t/fulltext.test | 21 ++++++++--- 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/mysql-test/suite/innodb_fts/r/fulltext.result b/mysql-test/suite/innodb_fts/r/fulltext.result index 1cdce29cdf9..cc6cffb7bb6 100644 --- a/mysql-test/suite/innodb_fts/r/fulltext.result +++ b/mysql-test/suite/innodb_fts/r/fulltext.result @@ -1,4 +1,3 @@ -drop table if exists t1,t2,t3; CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)) ENGINE = InnoDB; INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'), ('Full-text indexes', 'are called collections'), @@ -637,3 +636,38 @@ EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1; End of 5.1 tests +create table t ( +FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY, t TEXT, FULLTEXT KEY (t) +) ENGINE=InnoDB; +INSERT INTO t values (1, 'foo bar'), (2, 'foo bar'), (3, 'foo'); +SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) +LIMIT 0; +FTS_DOC_ID t +SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) +LIMIT 1; +FTS_DOC_ID t +1 foo bar +SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) +LIMIT 2; +FTS_DOC_ID t +1 foo bar +2 foo bar +SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) +LIMIT 3; +FTS_DOC_ID t +1 foo bar +2 foo bar +3 foo +SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) +LIMIT 4; +FTS_DOC_ID t +1 foo bar +2 foo bar +3 foo +SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) +LIMIT 5; +FTS_DOC_ID t +1 foo bar +2 foo bar +3 foo +DROP TABLE t; diff --git a/mysql-test/suite/innodb_fts/t/fulltext.test b/mysql-test/suite/innodb_fts/t/fulltext.test index 90d5d5c71e0..da445cfade7 100644 --- a/mysql-test/suite/innodb_fts/t/fulltext.test +++ b/mysql-test/suite/innodb_fts/t/fulltext.test @@ -4,10 +4,6 @@ --source include/have_innodb.inc ---disable_warnings -drop table if exists t1,t2,t3; ---enable_warnings - CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)) ENGINE = InnoDB; INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'), ('Full-text indexes', 'are called collections'), @@ -679,3 +675,20 @@ DEALLOCATE PREPARE stmt; DROP TABLE t1; --echo End of 5.1 tests + +create table t ( + FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY, t TEXT, FULLTEXT KEY (t) +) ENGINE=InnoDB; + +INSERT INTO t values (1, 'foo bar'), (2, 'foo bar'), (3, 'foo'); +let $limit=0; +let $N=6; +while ($N) +{ + eval SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE) + LIMIT $limit; + inc $limit; + dec $N; +} + +DROP TABLE t; From fb5fe497e526f0677a7e2f86f34237e7efd4b806 Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Wed, 18 Oct 2017 02:36:55 -0400 Subject: [PATCH 065/128] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 2905c37cc09..87b72051a84 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=58 +MYSQL_VERSION_PATCH=59 MYSQL_VERSION_EXTRA= From 30e89acd95138d8ebfad8f3d392c41b6f2b08790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 18 Oct 2017 09:52:19 +0300 Subject: [PATCH 066/128] Import, adapt and extend a test from Oracle --- mysql-test/suite/innodb_fts/r/fulltext.result | 20 +++++++++++++++ mysql-test/suite/innodb_fts/t/fulltext.test | 25 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/mysql-test/suite/innodb_fts/r/fulltext.result b/mysql-test/suite/innodb_fts/r/fulltext.result index cc6cffb7bb6..6802894e44b 100644 --- a/mysql-test/suite/innodb_fts/r/fulltext.result +++ b/mysql-test/suite/innodb_fts/r/fulltext.result @@ -636,6 +636,26 @@ EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1; End of 5.1 tests +CREATE TABLE z(a INTEGER) engine=innodb; +CREATE TABLE q(b TEXT CHARSET latin1, fulltext(b)) engine=innodb; +EXPLAIN SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z); +ERROR 42000: syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*' +SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z); +ERROR 42000: syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*' +EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM z; +ERROR 42S22: Unknown column 'b' in 'field list' +SELECT MATCH(b) AGAINST ('*') FROM z; +ERROR 42S22: Unknown column 'b' in 'field list' +EXPLAIN SELECT MATCH(a) AGAINST ('*') FROM z; +ERROR HY000: Can't find FULLTEXT index matching the column list +SELECT MATCH(a) AGAINST ('*') FROM z; +ERROR HY000: Can't find FULLTEXT index matching the column list +EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM q; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE q ALL NULL NULL NULL NULL 1 +SELECT MATCH(b) AGAINST ('*') FROM q; +ERROR 42000: syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*' +DROP TABLE z, q; create table t ( FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY, t TEXT, FULLTEXT KEY (t) ) ENGINE=InnoDB; diff --git a/mysql-test/suite/innodb_fts/t/fulltext.test b/mysql-test/suite/innodb_fts/t/fulltext.test index da445cfade7..663b202265b 100644 --- a/mysql-test/suite/innodb_fts/t/fulltext.test +++ b/mysql-test/suite/innodb_fts/t/fulltext.test @@ -676,6 +676,31 @@ DROP TABLE t1; --echo End of 5.1 tests +# This is an adapted and extended version of an Oracle test for +# Bug#21140111: Explain ... match against: Assertion failed: ret ... +# No bug was repeatable for MariaDB. + +CREATE TABLE z(a INTEGER) engine=innodb; +CREATE TABLE q(b TEXT CHARSET latin1, fulltext(b)) engine=innodb; + +--error ER_PARSE_ERROR +EXPLAIN SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z); +--error ER_PARSE_ERROR +SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z); +--error ER_BAD_FIELD_ERROR +EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM z; +--error ER_BAD_FIELD_ERROR +SELECT MATCH(b) AGAINST ('*') FROM z; +--error ER_FT_MATCHING_KEY_NOT_FOUND +EXPLAIN SELECT MATCH(a) AGAINST ('*') FROM z; +--error ER_FT_MATCHING_KEY_NOT_FOUND +SELECT MATCH(a) AGAINST ('*') FROM z; +EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM q; +--error ER_PARSE_ERROR +SELECT MATCH(b) AGAINST ('*') FROM q; + +DROP TABLE z, q; + create table t ( FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY, t TEXT, FULLTEXT KEY (t) ) ENGINE=InnoDB; From babbf8c6fc6da92cd1b2bb23f04e996f84b0ca1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 18 Oct 2017 10:20:25 +0300 Subject: [PATCH 067/128] fts_query_free(): Fix a potential assertion failure The ownership of the field query->intersection usually transfers to query->doc_ids. In some error scenario, it could be possible that fts_query_free() would be invoked with query->intersection!=NULL. Let us handle that case, instead of intentionally crashing the server. --- storage/innobase/fts/fts0que.cc | 7 +++++-- storage/xtradb/fts/fts0que.cc | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/storage/innobase/fts/fts0que.cc b/storage/innobase/fts/fts0que.cc index 26bd0378aed..c74137031bb 100644 --- a/storage/innobase/fts/fts0que.cc +++ b/storage/innobase/fts/fts0que.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -3633,6 +3634,10 @@ fts_query_free( fts_doc_ids_free(query->deleted); } + if (query->intersection) { + fts_query_free_doc_ids(query, query->intersection); + } + if (query->doc_ids) { fts_query_free_doc_ids(query, query->doc_ids); } @@ -3657,8 +3662,6 @@ fts_query_free( rbt_free(query->word_freqs); } - ut_a(!query->intersection); - if (query->word_map) { rbt_free(query->word_map); } diff --git a/storage/xtradb/fts/fts0que.cc b/storage/xtradb/fts/fts0que.cc index f24973e26fb..358d979fff6 100644 --- a/storage/xtradb/fts/fts0que.cc +++ b/storage/xtradb/fts/fts0que.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -3653,6 +3654,10 @@ fts_query_free( fts_doc_ids_free(query->deleted); } + if (query->intersection) { + fts_query_free_doc_ids(query, query->intersection); + } + if (query->doc_ids) { fts_query_free_doc_ids(query, query->doc_ids); } @@ -3677,8 +3682,6 @@ fts_query_free( rbt_free(query->word_freqs); } - ut_a(!query->intersection); - if (query->word_map) { rbt_free(query->word_map); } From 7c9651a3710a1ab84ef2af84b6457d4ccbf8a522 Mon Sep 17 00:00:00 2001 From: Darshan M N Date: Thu, 1 Jun 2017 10:14:05 +0530 Subject: [PATCH 068/128] BUG#25479538 ASSERT:SIZE == SPACE->SIZE DURING BUF_READ_AHEAD_RANDOM Issue ===== The original issue was that the size of a fil_per_table tablespace was calculated incorrectly during truncate in the presence of an fts index. This incorrect calculation was fixed as part of BUG#25053705 along with a testcase to reproduce the bug. The assert that was added as part of it to reproduce the bug was wrong and resulted in this bug. Fix === Although the assert was removed earlier in a seperate commit as it was blocking the ntest, this patch replaces the other parts of the code that were added to reproduce the bug and replaces it with code that tries to reproduce the bug in a different way. The new code basically tries to tweak conditions so as to simulate the random read where a page that doesn't exist is tried to be read. RB: 15890 Reviewed-by: Jimmy Yang Reviewed-by: Satya Bodapati --- mysql-test/suite/innodb_fts/r/truncate.result | 31 ++++++++++++ mysql-test/suite/innodb_fts/t/truncate.opt | 1 + mysql-test/suite/innodb_fts/t/truncate.test | 50 +++++++++++++++++++ storage/innobase/buf/buf0rea.cc | 25 ++++++++++ 4 files changed, 107 insertions(+) create mode 100644 mysql-test/suite/innodb_fts/r/truncate.result create mode 100644 mysql-test/suite/innodb_fts/t/truncate.opt create mode 100644 mysql-test/suite/innodb_fts/t/truncate.test diff --git a/mysql-test/suite/innodb_fts/r/truncate.result b/mysql-test/suite/innodb_fts/r/truncate.result new file mode 100644 index 00000000000..cd88a6f93a9 --- /dev/null +++ b/mysql-test/suite/innodb_fts/r/truncate.result @@ -0,0 +1,31 @@ +# +# Bug#25053705 - INVALID I/O ON TABLE AFTER TRUNCATE +# +CREATE TABLE t1 (a INT, d INT, b VARCHAR(198), c CHAR(158), FULLTEXT fts1(c,b), +FULLTEXT fts2(c)); +TRUNCATE TABLE t1; +INSERT INTO t1 (a,d,b,c) VALUES ( +'79795','6',repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), +repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorc +cuullucocraloracurooulrooauuar','1')); +CREATE TABLE t2 (a INT, d INT, b VARCHAR(198), c CHAR(158), FULLTEXT fts1(c,b)); +INSERT INTO t2 VALUES (1, 1, repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), +repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorccuullucocraloracurooulrooauuar','1')); +create procedure insert_t2(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t2 select * from t2; +set i = i + 1; +end while; +end| +CALL insert_t2(15); +SET SESSION debug="+d,innodb_invalid_read_after_truncate"; +INSERT INTO t1 (a,d,b,c) VALUES ( +'7795','6',repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), +repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorc +cuullucocraloracurooulrooauuar','1')); +SET SESSION debug="-d,innodb_invalid_read_after_truncate"; +DROP PROCEDURE insert_t2; +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/innodb_fts/t/truncate.opt b/mysql-test/suite/innodb_fts/t/truncate.opt new file mode 100644 index 00000000000..d143088d352 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/truncate.opt @@ -0,0 +1 @@ +--innodb-random-read-ahead=1 diff --git a/mysql-test/suite/innodb_fts/t/truncate.test b/mysql-test/suite/innodb_fts/t/truncate.test new file mode 100644 index 00000000000..dbb24c91d89 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/truncate.test @@ -0,0 +1,50 @@ +--source include/have_innodb_64k.inc +--source include/have_debug.inc + +--echo # +--echo # Bug#25053705 - INVALID I/O ON TABLE AFTER TRUNCATE +--echo # + +CREATE TABLE t1 (a INT, d INT, b VARCHAR(198), c CHAR(158), FULLTEXT fts1(c,b), +FULLTEXT fts2(c)); + +TRUNCATE TABLE t1; + +INSERT INTO t1 (a,d,b,c) VALUES ( +'79795','6',repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), +repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorc +cuullucocraloracurooulrooauuar','1')); + +# The following CREATE TABLE and INSERTs are used to remove the pages related to table t1 +# from the buffer pool. +CREATE TABLE t2 (a INT, d INT, b VARCHAR(198), c CHAR(158), FULLTEXT fts1(c,b)); + +INSERT INTO t2 VALUES (1, 1, repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), +repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorccuullucocraloracurooulrooauuar','1')); + +delimiter |; +create procedure insert_t2(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t2 select * from t2; + set i = i + 1; + end while; +end| +delimiter ;| + +CALL insert_t2(15); + +SET SESSION debug="+d,innodb_invalid_read_after_truncate"; + +INSERT INTO t1 (a,d,b,c) VALUES ( +'7795','6',repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), +repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorc +cuullucocraloracurooulrooauuar','1')); + +SET SESSION debug="-d,innodb_invalid_read_after_truncate"; + +DROP PROCEDURE insert_t2; + +DROP TABLE t1; +DROP TABLE t2; diff --git a/storage/innobase/buf/buf0rea.cc b/storage/innobase/buf/buf0rea.cc index f7ea768f5c1..bc924f78844 100644 --- a/storage/innobase/buf/buf0rea.cc +++ b/storage/innobase/buf/buf0rea.cc @@ -176,6 +176,18 @@ buf_read_page_low( dst = ((buf_block_t*) bpage)->frame; } + /* This debug code is only for 5.7. In trunk, with newDD, + the space->name is no longer same as table name. */ + DBUG_EXECUTE_IF("innodb_invalid_read_after_truncate", + fil_space_t* space = fil_space_get(page_id.space()); + + if (space != NULL && strcmp(space->name, "test/t1") == 0 + && page_id.page_no() == space->size - 1) { + type = IORequest::READ; + sync = true; + } + ); + IORequest request(type | IORequest::READ); *err = fil_io( @@ -321,6 +333,19 @@ buf_read_ahead_random( that is, reside near the start of the LRU list. */ for (i = low; i < high; i++) { + /* This debug code is only for 5.7. In trunk, with newDD, + the space->name is no longer same as table name. */ + DBUG_EXECUTE_IF("innodb_invalid_read_after_truncate", + fil_space_t* space = fil_space_get(page_id.space()); + + if (space != NULL + && strcmp(space->name, "test/t1") == 0) { + high = space->size; + buf_pool_mutex_exit(buf_pool); + goto read_ahead; + } + ); + const buf_page_t* bpage = buf_page_hash_get( buf_pool, page_id_t(page_id.space(), i)); From 59d3ba0b5d68b24b7b3339700d05c6c3a6fab13e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 18 Oct 2017 07:01:46 +0300 Subject: [PATCH 069/128] Adjust the instrumentation and test --- mysql-test/suite/innodb/t/alter_table.test | 16 +++---- mysql-test/suite/innodb_fts/r/truncate.result | 8 ++-- mysql-test/suite/innodb_fts/t/truncate.test | 10 ++--- storage/innobase/buf/buf0rea.cc | 45 +++++++++---------- 4 files changed, 38 insertions(+), 41 deletions(-) diff --git a/mysql-test/suite/innodb/t/alter_table.test b/mysql-test/suite/innodb/t/alter_table.test index 13fb574972a..88007227946 100644 --- a/mysql-test/suite/innodb/t/alter_table.test +++ b/mysql-test/suite/innodb/t/alter_table.test @@ -1,10 +1,8 @@ --source include/have_innodb.inc -# -# MDEV-11995 ALTER TABLE proceeds despite reporting ER_TOO_LONG_KEY error -# -set @@sql_mode=strict_trans_tables; -create table t1(a text not null) row_format=dynamic engine=innodb; -create index idx1 on t1(a(3073)); -show create table t1; -drop table t1; -set @@sql_mode=default; +CREATE TABLE t1 ( + id1 INT AUTO_INCREMENT PRIMARY KEY, id2 VARCHAR(30) NOT NULL UNIQUE, + id3 DATETIME +) ENGINE=InnoDB; +ALTER TABLE t1 CHANGE COLUMN id2 id4 VARCHAR(40) NOT NULL; +SELECT * FROM t1 WHERE id4 LIKE 'a'; +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_fts/r/truncate.result b/mysql-test/suite/innodb_fts/r/truncate.result index cd88a6f93a9..0e21717a4d3 100644 --- a/mysql-test/suite/innodb_fts/r/truncate.result +++ b/mysql-test/suite/innodb_fts/r/truncate.result @@ -20,12 +20,12 @@ set i = i + 1; end while; end| CALL insert_t2(15); -SET SESSION debug="+d,innodb_invalid_read_after_truncate"; +SET @save_dbug = @@SESSION.DEBUG_DBUG; +SET DEBUG_DBUG = '+d,innodb_invalid_read_after_truncate'; INSERT INTO t1 (a,d,b,c) VALUES ( '7795','6',repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorc cuullucocraloracurooulrooauuar','1')); -SET SESSION debug="-d,innodb_invalid_read_after_truncate"; +SET DEBUG_DBUG = @save_dbug; DROP PROCEDURE insert_t2; -DROP TABLE t1; -DROP TABLE t2; +DROP TABLE t1,t2; diff --git a/mysql-test/suite/innodb_fts/t/truncate.test b/mysql-test/suite/innodb_fts/t/truncate.test index dbb24c91d89..46ba732b019 100644 --- a/mysql-test/suite/innodb_fts/t/truncate.test +++ b/mysql-test/suite/innodb_fts/t/truncate.test @@ -1,4 +1,4 @@ ---source include/have_innodb_64k.inc +--source include/have_innodb.inc --source include/have_debug.inc --echo # @@ -35,16 +35,16 @@ delimiter ;| CALL insert_t2(15); -SET SESSION debug="+d,innodb_invalid_read_after_truncate"; +SET @save_dbug = @@SESSION.DEBUG_DBUG; +SET DEBUG_DBUG = '+d,innodb_invalid_read_after_truncate'; INSERT INTO t1 (a,d,b,c) VALUES ( '7795','6',repeat('uololoaroolccaaruolraloouuoocorrcorurlu','1'), repeat('orouculcaocuocloooolooloooaorlroclouulrrucclulalouaulrluorooaclllluuorc cuullucocraloracurooulrooauuar','1')); -SET SESSION debug="-d,innodb_invalid_read_after_truncate"; +SET DEBUG_DBUG = @save_dbug; DROP PROCEDURE insert_t2; -DROP TABLE t1; -DROP TABLE t2; +DROP TABLE t1,t2; diff --git a/storage/innobase/buf/buf0rea.cc b/storage/innobase/buf/buf0rea.cc index bc924f78844..598da3ff706 100644 --- a/storage/innobase/buf/buf0rea.cc +++ b/storage/innobase/buf/buf0rea.cc @@ -176,17 +176,16 @@ buf_read_page_low( dst = ((buf_block_t*) bpage)->frame; } - /* This debug code is only for 5.7. In trunk, with newDD, - the space->name is no longer same as table name. */ - DBUG_EXECUTE_IF("innodb_invalid_read_after_truncate", - fil_space_t* space = fil_space_get(page_id.space()); - - if (space != NULL && strcmp(space->name, "test/t1") == 0 - && page_id.page_no() == space->size - 1) { - type = IORequest::READ; - sync = true; - } - ); + DBUG_EXECUTE_IF( + "innodb_invalid_read_after_truncate", + if (fil_space_t* space = fil_space_acquire(page_id.space())) { + if (!strcmp(space->name, "test/t1") + && page_id.page_no() == space->size - 1) { + type = 0; + sync = true; + } + fil_space_release(space); + }); IORequest request(type | IORequest::READ); @@ -333,18 +332,18 @@ buf_read_ahead_random( that is, reside near the start of the LRU list. */ for (i = low; i < high; i++) { - /* This debug code is only for 5.7. In trunk, with newDD, - the space->name is no longer same as table name. */ - DBUG_EXECUTE_IF("innodb_invalid_read_after_truncate", - fil_space_t* space = fil_space_get(page_id.space()); - - if (space != NULL - && strcmp(space->name, "test/t1") == 0) { - high = space->size; - buf_pool_mutex_exit(buf_pool); - goto read_ahead; - } - ); + DBUG_EXECUTE_IF( + "innodb_invalid_read_after_truncate", + if (fil_space_t* space = fil_space_acquire( + page_id.space())) { + bool skip = !strcmp(space->name, "test/t1"); + fil_space_release(space); + if (skip) { + high = space->size; + buf_pool_mutex_exit(buf_pool); + goto read_ahead; + } + }); const buf_page_t* bpage = buf_page_hash_get( buf_pool, page_id_t(page_id.space(), i)); From 98cc7a8eeff32eddb37a81635138c76551600e34 Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Wed, 18 Oct 2017 17:04:15 +0300 Subject: [PATCH 070/128] Fixed compiler warnings --- sql/opt_range.cc | 7 ++++--- sql/sql_test.cc | 8 +++++--- storage/connect/filamtxt.cpp | 2 +- storage/innobase/rem/rem0rec.cc | 7 ++++--- storage/maria/ma_checkpoint.c | 2 +- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 415b76a28bb..9416fc30a0c 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -4643,6 +4643,7 @@ TABLE_READ_PLAN *get_best_disjunct_quick(PARAM *param, SEL_IMERGE *imerge, double roru_index_costs; ha_rows roru_total_records; double roru_intersect_part= 1.0; + ulong n_child_scans; DBUG_ENTER("get_best_disjunct_quick"); DBUG_PRINT("info", ("Full table scan cost: %g", read_time)); @@ -4659,7 +4660,7 @@ TABLE_READ_PLAN *get_best_disjunct_quick(PARAM *param, SEL_IMERGE *imerge, } } - size_t n_child_scans= imerge->trees_next - imerge->trees; + n_child_scans= imerge->trees_next - imerge->trees; if (!n_child_scans) DBUG_RETURN(NULL); @@ -4877,8 +4878,8 @@ skip_to_ror_scan: (TIME_FOR_COMPARE_ROWID * M_LN2) + get_sweep_read_cost(param, roru_total_records); - DBUG_PRINT("info", ("ROR-union: cost %g, %d members", roru_total_cost, - n_child_scans)); + DBUG_PRINT("info", ("ROR-union: cost %g, %lu members", + roru_total_cost, n_child_scans)); TRP_ROR_UNION* roru; if (roru_total_cost < read_time) { diff --git a/sql/sql_test.cc b/sql/sql_test.cc index d16edf5b5d5..b7b70f0f55c 100644 --- a/sql/sql_test.cc +++ b/sql/sql_test.cc @@ -85,8 +85,9 @@ static my_bool print_cached_tables_callback(TDC_element *element, while ((entry= it++)) { THD *in_use= entry->in_use; - printf("%-14.14s %-32s%6ld%8ld%6d %s\n", - entry->s->db.str, entry->s->table_name.str, element->version, + printf("%-14.14s %-32s%6lu%8ld%6d %s\n", + entry->s->db.str, entry->s->table_name.str, + (ulong) element->version, in_use ? (long) in_use->thread_id : (long) 0, entry->db_stat ? 1 : 0, in_use ? lock_descriptions[(int)entry->reginfo.lock_type] : @@ -106,7 +107,8 @@ static void print_cached_tables(void) tdc_iterate(0, (my_hash_walk_action) print_cached_tables_callback, NULL, true); - printf("\nCurrent refresh version: %ld\n", tdc_refresh_version()); + printf("\nCurrent refresh version: %ld\n", + (long) tdc_refresh_version()); fflush(stdout); /* purecov: end */ return; diff --git a/storage/connect/filamtxt.cpp b/storage/connect/filamtxt.cpp index 12727b66335..0f5069bae33 100644 --- a/storage/connect/filamtxt.cpp +++ b/storage/connect/filamtxt.cpp @@ -1459,7 +1459,7 @@ int BLKFAM::ReadBuffer(PGLOBAL g) // Read the entire next block n = fread(To_Buf, 1, (size_t)BlkLen, Stream); - if (n == BlkLen) { + if ((size_t) n == (size_t) BlkLen) { // ReadBlks++; num_read++; Rbuf = (CurBlk == Block - 1) ? Last : Nrec; diff --git a/storage/innobase/rem/rem0rec.cc b/storage/innobase/rem/rem0rec.cc index c26614d5eae..f755eac84f3 100644 --- a/storage/innobase/rem/rem0rec.cc +++ b/storage/innobase/rem/rem0rec.cc @@ -570,9 +570,10 @@ rec_get_offsets_func( case REC_STATUS_SUPREMUM: /* infimum or supremum record */ ut_ad(rec_get_heap_no_new(rec) - == (rec_get_status(rec) == REC_STATUS_INFIMUM - ? PAGE_HEAP_NO_INFIMUM - : PAGE_HEAP_NO_SUPREMUM)); + == ulint(rec_get_status(rec) + == REC_STATUS_INFIMUM + ? PAGE_HEAP_NO_INFIMUM + : PAGE_HEAP_NO_SUPREMUM)); n = 1; break; default: diff --git a/storage/maria/ma_checkpoint.c b/storage/maria/ma_checkpoint.c index 84c142ca151..93983c567a8 100644 --- a/storage/maria/ma_checkpoint.c +++ b/storage/maria/ma_checkpoint.c @@ -332,8 +332,8 @@ int ma_checkpoint_init(ulong interval) res= 1; else if (interval > 0) { - compile_time_assert(sizeof(void *) >= sizeof(ulong)); size_t intv= interval; + compile_time_assert(sizeof(void *) >= sizeof(ulong)); if ((res= mysql_thread_create(key_thread_checkpoint, &checkpoint_control.thread, NULL, ma_checkpoint_background, From 2eb3c5e5420a724945a4cba914df25aa1e3744ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 18 Oct 2017 21:19:33 +0300 Subject: [PATCH 071/128] MDEV-13918 Race condition between INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS and ALTER/DROP/TRUNCATE TABLE i_s_sys_tables_fill_table_stats(): Acquire dict_operation_lock S-latch before acquiring dict_sys->mutex, to prevent the table from being removed from the data dictionary cache and from being freed while i_s_dict_fill_sys_tablestats() is accessing the table handle. --- storage/innobase/handler/i_s.cc | 4 ++++ storage/xtradb/handler/i_s.cc | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index 2f5fe45656e..41f4114494d 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -6403,6 +6403,7 @@ i_s_sys_tables_fill_table_stats( } heap = mem_heap_create(1000); + rw_lock_s_lock(&dict_operation_lock); mutex_enter(&dict_sys->mutex); mtr_start(&mtr); @@ -6429,9 +6430,11 @@ i_s_sys_tables_fill_table_stats( err_msg); } + rw_lock_s_unlock(&dict_operation_lock); mem_heap_empty(heap); /* Get the next record */ + rw_lock_s_lock(&dict_operation_lock); mutex_enter(&dict_sys->mutex); mtr_start(&mtr); rec = dict_getnext_system(&pcur, &mtr); @@ -6439,6 +6442,7 @@ i_s_sys_tables_fill_table_stats( mtr_commit(&mtr); mutex_exit(&dict_sys->mutex); + rw_lock_s_unlock(&dict_operation_lock); mem_heap_free(heap); DBUG_RETURN(0); diff --git a/storage/xtradb/handler/i_s.cc b/storage/xtradb/handler/i_s.cc index aac1074e152..011bc77dc3c 100644 --- a/storage/xtradb/handler/i_s.cc +++ b/storage/xtradb/handler/i_s.cc @@ -6384,6 +6384,7 @@ i_s_sys_tables_fill_table_stats( } heap = mem_heap_create(1000); + rw_lock_s_lock(&dict_operation_lock); mutex_enter(&dict_sys->mutex); mtr_start(&mtr); @@ -6410,9 +6411,11 @@ i_s_sys_tables_fill_table_stats( err_msg); } + rw_lock_s_unlock(&dict_operation_lock); mem_heap_empty(heap); /* Get the next record */ + rw_lock_s_lock(&dict_operation_lock); mutex_enter(&dict_sys->mutex); mtr_start(&mtr); rec = dict_getnext_system(&pcur, &mtr); @@ -6420,6 +6423,7 @@ i_s_sys_tables_fill_table_stats( mtr_commit(&mtr); mutex_exit(&dict_sys->mutex); + rw_lock_s_unlock(&dict_operation_lock); mem_heap_free(heap); DBUG_RETURN(0); From a75884e70135dc3699a16fd2745750e990e5851c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 8 Oct 2017 21:01:03 +0200 Subject: [PATCH 072/128] MDEV-13836 mariadb_config & mysql_config output differ Use mariadb_config, for C/C config variables --- scripts/mysql_config.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index 52f6d563fe5..cc6db192de2 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -114,6 +114,17 @@ if [ "$basedir" != "/usr" ]; then fi cflags="$include @CFLAGS_FOR_CLIENTS@" +mariadb_config="$basedir/bin/mariadb_config" +if test -x "$basedir/bin/mariadb_config"; then + cflags=`"$mariadb_config" --cflags` + include=`"$mariadb_config" --include` + libs=`"$mariadb_config" --libs` + plugindir=`"$mariadb_config" --plugindir` + socket=`"$mariadb_config" --socket` + port=`"$mariadb_config" --port` + version=`"$mariadb_config" --version` +fi + usage () { cat < Date: Wed, 11 Oct 2017 21:53:43 +0200 Subject: [PATCH 073/128] MDEV-13836 mariadb_config & mysql_config output differ allow to build with the default port number 3306. Now -DMYSQL_TCP_PORT=# sets the default port name and -DMYSQL_TCP_PORT_DEFAULT=# sets the magic port=0 behavior, if it's MYSQL_TCP_PORT_DEFAULT=0 it's enabled, otherwise - disabled. --- cmake/mysql_version.cmake | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cmake/mysql_version.cmake b/cmake/mysql_version.cmake index 87d61fcf344..02579c9534e 100644 --- a/cmake/mysql_version.cmake +++ b/cmake/mysql_version.cmake @@ -69,13 +69,9 @@ ENDMACRO() # Get mysql version and other interesting variables GET_MYSQL_VERSION() -SET(MYSQL_TCP_PORT_DEFAULT "3306") - +SET(MYSQL_TCP_PORT_DEFAULT 0) IF(NOT MYSQL_TCP_PORT) - SET(MYSQL_TCP_PORT ${MYSQL_TCP_PORT_DEFAULT}) - SET(MYSQL_TCP_PORT_DEFAULT "0") -ELSEIF(MYSQL_TCP_PORT EQUAL MYSQL_TCP_PORT_DEFAULT) - SET(MYSQL_TCP_PORT_DEFAULT "0") + SET(MYSQL_TCP_PORT 3306) ENDIF() IF(NOT COMPILATION_COMMENT) From 4c2c057d4044364a27fb8c217f804f6fb25fcc02 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 16 Oct 2017 17:49:52 +0200 Subject: [PATCH 074/128] MDEV-13968 sst fails with "WSREP_SST_OPT_PORT: readonly variable" --- scripts/wsrep_sst_common.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/scripts/wsrep_sst_common.sh b/scripts/wsrep_sst_common.sh index 0333a2db882..3ffaf8b10ef 100644 --- a/scripts/wsrep_sst_common.sh +++ b/scripts/wsrep_sst_common.sh @@ -45,7 +45,7 @@ case "$1" in # "traditional" notation readonly WSREP_SST_OPT_HOST=${WSREP_SST_OPT_ADDR%%[:/]*} fi - readonly WSREP_SST_OPT_PORT=$(echo $WSREP_SST_OPT_ADDR | \ + readonly WSREP_SST_OPT_ADDR_PORT=$(echo $WSREP_SST_OPT_ADDR | \ cut -d ']' -f 2 | cut -s -d ':' -f 2 | cut -d '/' -f 1) readonly WSREP_SST_OPT_PATH=${WSREP_SST_OPT_ADDR#*/} shift @@ -124,6 +124,17 @@ readonly WSREP_SST_OPT_BYPASS readonly WSREP_SST_OPT_BINLOG readonly WSREP_SST_OPT_CONF_SUFFIX +if [ -n "$WSREP_SST_OPT_ADDR_PORT" ]; then + if [ -n "$WSREP_SST_OPT_PORT" ]; then + if [ "$WSREP_SST_OPT_PORT" != "$WSREP_SST_OPT_ADDR_PORT" ]; then + wsrep_log_error "port in --port=$WSREP_SST_OPT_PORT differs from port in --address=$WSREP_SST_OPT_ADDR" + exit 2 + fi + else + readonly WSREP_SST_OPT_PORT="$WSREP_SST_OPT_ADDR_PORT" + fi +fi + # try to use my_print_defaults, mysql and mysqldump that come with the sources # (for MTR suite) SCRIPTS_DIR="$(cd $(dirname "$0"); pwd -P)" From e6df6031f6779677d40b482489c26db4ddcd0986 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 16 Oct 2017 19:33:06 +0200 Subject: [PATCH 075/128] MDEV-13969 sst mysqldump and xtrabackup-v2 handle WSREP_SST_OPT_CONF incorrectly $WSREP_SST_OPT_CONF already includes --defaults-extra-file= prefix. --- scripts/wsrep_sst_mysqldump.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/wsrep_sst_mysqldump.sh b/scripts/wsrep_sst_mysqldump.sh index f7f911ec1e8..8cfdd4e6553 100644 --- a/scripts/wsrep_sst_mysqldump.sh +++ b/scripts/wsrep_sst_mysqldump.sh @@ -117,7 +117,7 @@ GTID_BINLOG_STATE=$(echo "SHOW GLOBAL VARIABLES LIKE 'gtid_binlog_state'" |\ $MYSQL_CLIENT $AUTH -S$WSREP_SST_OPT_SOCKET --disable-reconnect --connect_timeout=10 |\ tail -1 | awk -F ' ' '{ print $2 }') -MYSQL="$MYSQL_CLIENT --defaults-extra-file=$WSREP_SST_OPT_CONF "\ +MYSQL="$MYSQL_CLIENT $WSREP_SST_OPT_CONF "\ "$AUTH -h${WSREP_SST_OPT_HOST_UNESCAPED:-$WSREP_SST_OPT_HOST} "\ "-P$WSREP_SST_OPT_PORT --disable-reconnect --connect_timeout=10" From 607d8f9e97ae9dfbf1434a34fcea017efbb86b09 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 18 Oct 2017 14:37:10 +0200 Subject: [PATCH 076/128] MDEV-14081 ALTER TABLE CHANGE COLUMN Corrupts Index Leading to Crashes in 10.2 remove remnants of 10.0 bugfix, incorrectly merged into 10.2 Using col_names[i] was obviously, wrong, must've been col_names[ifield->col_no]. incorrect column name resulted in innodb having index unique_id2(id1), while the server thought it's unique_id2(id4). But col_names[ifield->col_no] is wrong too, because `table` has non-renamed columns, so the correct column name is always dict_table_get_col_name(table, ifield->col_no) --- mysql-test/suite/innodb/r/alter_table.result | 11 ++++++++++ mysql-test/suite/innodb/r/innodb-alter.result | 2 -- mysql-test/suite/innodb/t/alter_table.test | 14 +++++++++++++ mysql-test/suite/innodb/t/innodb-alter.test | 8 -------- storage/innobase/handler/handler0alter.cc | 2 +- storage/innobase/include/row0merge.h | 5 +---- storage/innobase/row/row0merge.cc | 20 ++----------------- 7 files changed, 29 insertions(+), 33 deletions(-) diff --git a/mysql-test/suite/innodb/r/alter_table.result b/mysql-test/suite/innodb/r/alter_table.result index 304bc865f75..8a0717aa677 100644 --- a/mysql-test/suite/innodb/r/alter_table.result +++ b/mysql-test/suite/innodb/r/alter_table.result @@ -11,3 +11,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC drop table t1; set @@sql_mode=default; +create table t1 ( +id1 int(11) not null auto_increment, +id2 varchar(30) not null, +id3 datetime not null default current_timestamp, +primary key (id1), +unique key unique_id2 (id2) +) engine=innodb; +alter table t1 change column id2 id4 varchar(100) not null; +select * from t1 where id4 like 'a'; +id1 id4 id3 +drop table t1; diff --git a/mysql-test/suite/innodb/r/innodb-alter.result b/mysql-test/suite/innodb/r/innodb-alter.result index b06c6060375..831356fd872 100644 --- a/mysql-test/suite/innodb/r/innodb-alter.result +++ b/mysql-test/suite/innodb/r/innodb-alter.result @@ -640,10 +640,8 @@ CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL; ALTER TABLE t1o DROP INDEX ct, DROP INDEX FTS_DOC_ID_INDEX, CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL; ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id); -call mtr.add_suppression("InnoDB: No matching column for `FTS_DOC_ID` in index `ct` of table `test`\\.`t1o`"); ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ADD FULLTEXT INDEX(ct); -ERROR HY000: Index for table 't1o' is corrupt; try to repair it DROP TABLE sys_indexes; CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID; diff --git a/mysql-test/suite/innodb/t/alter_table.test b/mysql-test/suite/innodb/t/alter_table.test index 13fb574972a..474035436e5 100644 --- a/mysql-test/suite/innodb/t/alter_table.test +++ b/mysql-test/suite/innodb/t/alter_table.test @@ -8,3 +8,17 @@ create index idx1 on t1(a(3073)); show create table t1; drop table t1; set @@sql_mode=default; + +# +# MDEV-14081 ALTER TABLE CHANGE COLUMN Corrupts Index Leading to Crashes in 10.2 +# +create table t1 ( + id1 int(11) not null auto_increment, + id2 varchar(30) not null, + id3 datetime not null default current_timestamp, + primary key (id1), + unique key unique_id2 (id2) +) engine=innodb; +alter table t1 change column id2 id4 varchar(100) not null; +select * from t1 where id4 like 'a'; +drop table t1; diff --git a/mysql-test/suite/innodb/t/innodb-alter.test b/mysql-test/suite/innodb/t/innodb-alter.test index d936dcad15c..1810c61eabe 100644 --- a/mysql-test/suite/innodb/t/innodb-alter.test +++ b/mysql-test/suite/innodb/t/innodb-alter.test @@ -370,16 +370,8 @@ CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL; ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id); -# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE -call mtr.add_suppression("InnoDB: No matching column for `FTS_DOC_ID` in index `ct` of table `test`\\.`t1o`"); ---error ER_NOT_KEYFILE ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, ADD FULLTEXT INDEX(ct); -# FIXME: MDEV-9469 (enable this) -#--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON -#ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL, -#ALGORITHM=INPLACE; -#end of MDEV-9469 FIXME DROP TABLE sys_indexes; CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index d7fc070d1d7..f270a61e54e 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -4850,7 +4850,7 @@ new_clustered_failed: ctx->add_index[a] = row_merge_create_index( ctx->trx, ctx->new_table, - &index_defs[a], add_v, ctx->col_names); + &index_defs[a], add_v); add_key_nums[a] = index_defs[a].key_number; diff --git a/storage/innobase/include/row0merge.h b/storage/innobase/include/row0merge.h index 8ab4e2a2ee3..51ad5cc5cd7 100644 --- a/storage/innobase/include/row0merge.h +++ b/storage/innobase/include/row0merge.h @@ -265,16 +265,13 @@ row_merge_rename_index_to_drop( @param[in] index_def the index definition @param[in] add_v new virtual columns added along with add index call -@param[in] col_names column names if columns are renamed - or NULL @return index, or NULL on error */ dict_index_t* row_merge_create_index( trx_t* trx, dict_table_t* table, const index_def_t* index_def, - const dict_add_v_col_t* add_v, - const char** col_names) + const dict_add_v_col_t* add_v) MY_ATTRIBUTE((warn_unused_result)); /*********************************************************************//** diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index b463eedf8f1..beb816d681f 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -4362,16 +4362,13 @@ row_merge_create_index_graph( @param[in] index_def the index definition @param[in] add_v new virtual columns added along with add index call -@param[in] col_names column names if columns are renamed - or NULL @return index, or NULL on error */ dict_index_t* row_merge_create_index( trx_t* trx, dict_table_t* table, const index_def_t* index_def, - const dict_add_v_col_t* add_v, - const char** col_names) + const dict_add_v_col_t* add_v) { dict_index_t* index; dberr_t err; @@ -4411,20 +4408,7 @@ row_merge_create_index( table, ifield->col_no); } } else { - /* - Alter table renaming a column and then adding a index - to this new name e.g ALTER TABLE t - CHANGE COLUMN b c INT NOT NULL, ADD UNIQUE INDEX (c); - requires additional check as column names are not yet - changed when new index definitions are created. Table's - new column names are on a array of column name pointers - if any of the column names are changed. */ - - if (col_names && col_names[i]) { - name = col_names[i]; - } else { - name = dict_table_get_col_name(table, ifield->col_no); - } + name = dict_table_get_col_name(table, ifield->col_no); } dict_mem_index_add_field(index, name, ifield->prefix_len); From 7c42b091b7a995f086399efc1083314479bfb798 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 20 Oct 2017 13:36:55 +0300 Subject: [PATCH 077/128] Make rocksdb.index_merge_rocksdb2 test stable --- storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc | 1 + .../rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc b/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc index 2e8a07de349..ed270802db1 100644 --- a/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc +++ b/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc @@ -125,6 +125,7 @@ analyze table t1; -- enable_query_log # One row results tests for cases where a single row matches all conditions +--replace_column 9 # explain select key1,key2 from t1 where key1=100 and key2=100; select key1,key2 from t1 where key1=100 and key2=100; if (!$skip_ror_EXPLAIN_for_MyRocks) diff --git a/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result b/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result index ff33e6061b3..4370715925a 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result @@ -603,7 +603,7 @@ count(*) 64801 explain select key1,key2 from t1 where key1=100 and key2=100; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge key1,key2 key2,key1 5,5 NULL 2 Using intersect(key2,key1); Using where; Using index +1 SIMPLE t1 index_merge key1,key2 key2,key1 5,5 NULL # Using intersect(key2,key1); Using where; Using index select key1,key2 from t1 where key1=100 and key2=100; key1 key2 100 100 From 4995091c33db3160b2ad3243ae8e42fc3d5905b7 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 20 Oct 2017 14:15:37 +0000 Subject: [PATCH 078/128] Temporarily disable rocksdb.rpl_ddl_high_priority test --- storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def | 1 + 1 file changed, 1 insertion(+) diff --git a/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def index c45236fbd37..07a2738eee5 100644 --- a/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def @@ -4,6 +4,7 @@ consistent_snapshot_mixed_engines : Didn't try with MariaDB, yet multiclient_2pc : Didn't try with MariaDB, yet rpl_crash_safe_wal_corrupt : Didn't try with MariaDB, yet +rpl_ddl_high_priority : Didn't try with MariaDB, yet rpl_gtid_crash_safe : Didn't try with MariaDB, yet rpl_gtid_crash_safe_wal_corrupt : Didn't try with MariaDB, yet rpl_gtid_rocksdb_sys_header : Didn't try with MariaDB, yet From 2aa51f528fd5d23cc54eca8fbd07e88e7b2993c7 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 22 Oct 2017 13:18:38 +0200 Subject: [PATCH 079/128] Various compier warnings gcc 5.4 and 7.1, Debug and Release builds --- cmake/maintainer.cmake | 5 + extra/mariabackup/xtrabackup.cc | 5 +- extra/my_print_defaults.c | 3 +- sql/log_event.cc | 4 +- sql/sql_acl.cc | 4 - storage/connect/CMakeLists.txt | 39 +++----- storage/connect/fmdlex.c | 16 ++-- storage/connect/jsonudf.cpp | 2 +- storage/connect/plugutil.cpp | 2 +- storage/connect/rcmsg.c | 7 +- storage/connect/rcmsg.h | 2 +- storage/connect/tabmul.cpp | 4 +- storage/connect/value.cpp | 2 +- storage/mroonga/CMakeLists.txt | 1 + storage/mroonga/vendor/groonga/CMakeLists.txt | 3 +- .../vendor/groonga/lib/dat/cursor-factory.cpp | 1 - .../mroonga/vendor/groonga/lib/tokenizers.c | 2 +- .../third_party/snappy-1.1.2/CMakeLists.txt | 1 + .../third_party/xz-4.999.9beta/configure | 92 ------------------- .../third_party/xz-4.999.9beta/configure.ac | 57 ------------ .../third_party/xz-4.999.9beta/m4/libtool.m4 | 6 +- 21 files changed, 48 insertions(+), 210 deletions(-) diff --git a/cmake/maintainer.cmake b/cmake/maintainer.cmake index 367b78afd0d..0541cca86a5 100644 --- a/cmake/maintainer.cmake +++ b/cmake/maintainer.cmake @@ -20,6 +20,11 @@ IF(HAVE_C__Wvla) SET(MY_WARNING_FLAGS "${MY_WARNING_FLAGS} -Wvla") ENDIF() +MY_CHECK_C_COMPILER_FLAG("-Wno-format-truncation") +IF(HAVE_C__Wno_format_truncation) + SET(MY_WARNING_FLAGS "${MY_WARNING_FLAGS} -Wno-format-truncation") +ENDIF() + # Common warning flags for GCC and Clang SET(MY_C_WARNING_FLAGS "${MY_WARNING_FLAGS} -Wwrite-strings -Wdeclaration-after-statement") diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 14d7c5821c7..2c67f48af4a 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -5054,7 +5054,7 @@ xb_process_datadir( callback */ { ulint ret; - char dbpath[FN_REFLEN]; + char dbpath[OS_FILE_MAX_PATH]; os_file_dir_t dir; os_file_dir_t dbdir; os_file_stat_t dbinfo; @@ -5120,8 +5120,7 @@ next_file_item_1: goto next_datadir_item; } - sprintf(dbpath, "%s/%s", path, - dbinfo.name); + snprintf(dbpath, sizeof(dbpath), "%s/%s", path, dbinfo.name); srv_normalize_path_for_win(dbpath); dbdir = os_file_opendir(dbpath, FALSE); diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c index cb883a60f85..78940e02ca4 100644 --- a/extra/my_print_defaults.c +++ b/extra/my_print_defaults.c @@ -98,7 +98,8 @@ static struct my_option my_long_options[] = {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; -void cleanup_and_exit(int exit_code) +static void cleanup_and_exit(int exit_code) __attribute__ ((noreturn)); +static void cleanup_and_exit(int exit_code) { my_end(0); exit(exit_code); diff --git a/sql/log_event.cc b/sql/log_event.cc index 2879b767af2..f2f7b877671 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -2469,8 +2469,8 @@ log_event_print_value(IO_CACHE *file, const uchar *ptr, case 2: { strmake(typestr, "ENUM(2 bytes)", typestr_length); - if (!ptr) - goto return_null; + if (!ptr) + goto return_null; int32 i32= uint2korr(ptr); my_b_printf(file, "%d", i32); diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 0c7e3856e00..5ccc5f75118 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -634,9 +634,6 @@ bool ROLE_GRANT_PAIR::init(MEM_ROOT *mem, char *username, char *hostname, char *rolename, bool with_admin_option) { - if (!this) - return true; - size_t uname_l = safe_strlen(username); size_t hname_l = safe_strlen(hostname); size_t rname_l = safe_strlen(rolename); @@ -10516,7 +10513,6 @@ bool check_role_is_granted(const char *username, DBUG_RETURN(result); } - int fill_schema_enabled_roles(THD *thd, TABLE_LIST *tables, COND *cond) { TABLE *table= tables->table; diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 1f687c3c8d8..22860ca34d4 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -45,34 +45,17 @@ add_definitions( -DHUGE_SUPPORT -DGZ_SUPPORT -DPIVOT_SUPPORT -DUSE_TRY ) # OS specific C flags, definitions and source files. # IF(UNIX) - if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - # Bar: -Wfatal-errors removed (does not present in gcc on solaris10) - if(WITH_WARNINGS) - add_definitions(-Wall -Wextra -Wmissing-declarations) - #message(STATUS "CONNECT: GCC: All warnings enabled") - else() - add_definitions(-Wall -Wmissing-declarations) - add_definitions(-Wno-write-strings) - add_definitions(-Wno-unused-variable) - # Bar: -Wno-unused-but-set-variables commented (does not present on sol10) - # add_definitions(-Wno-unused-but-set-variable) - add_definitions(-Wno-unused-value) - add_definitions(-Wno-unused-function) - add_definitions(-Wno-parentheses) - #add_definitions(-Wno-missing-declarations) - # Bar: -Wno-int-to-pointer-cast commended (does not present in gcc on sol10) - # add_definitions(-Wno-int-to-pointer-cast) - # Bar: -Wno-narrowing commented (does not present in gcc on solaris10) - # add_definitions(-Wno-narrowing) - -# This switch is for pure C only: -# add_definitions(-Wno-implicit-function-declaration) -# These switches are for C++ only -# add_definitions(-Wno-reorder) - - #message(STATUS "CONNECT: GCC: Some warnings disabled") - endif(WITH_WARNINGS) - endif() + MY_CHECK_AND_SET_COMPILER_FLAG("-Wall -Wmissing-declarations") + if(NOT WITH_WARNINGS) + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-unused-function") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-unused-variable") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-unused-value") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-parentheses") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-strict-aliasing") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-misleading-indentation") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-format-truncation") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough") + endif(NOT WITH_WARNINGS) add_definitions( -DUNIX -DLINUX -DUBUNTU ) diff --git a/storage/connect/fmdlex.c b/storage/connect/fmdlex.c index 548a7ae5b7e..64429d9b93e 100644 --- a/storage/connect/fmdlex.c +++ b/storage/connect/fmdlex.c @@ -417,10 +417,10 @@ static PDTP pp; static void MakeParm(int n); static void MakeMMDD(int n); static void MakeAMPM(int n); -static void MakeIn(char *); -static void MakeOut(char *); -static void Quotin(char *); -static void Quotout(char *); +static void MakeIn(const char *); +static void MakeOut(const char *); +static void Quotin(const char *); +static void Quotout(const char *); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1492,7 +1492,7 @@ void MakeAMPM(int n) } /* end of MakeAMPM */ -void MakeIn(char *text) +void MakeIn(const char *text) { if (!pp->InFmt) return; @@ -1500,14 +1500,14 @@ void MakeIn(char *text) strncat(pp->InFmt, text, (pp->Outsize - 1) - strlen(pp->InFmt)); } /* end of MakeIn */ -void MakeOut(char *text) +void MakeOut(const char *text) { if (!pp->OutFmt) return; strncat(pp->OutFmt, text, (pp->Outsize - 1) - strlen(pp->OutFmt)); } /* end of MakeOut */ -void Quotin(char *text) +void Quotin(const char *text) { if (!pp->InFmt) return; @@ -1516,7 +1516,7 @@ void Quotin(char *text) pp->InFmt[strlen(pp->InFmt)-1] = '\0'; } /* end of Quotin */ -void Quotout(char *text) +void Quotout(const char *text) { if (!pp->OutFmt) return; diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index 4f0978cb548..7a7ec005e24 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -1510,7 +1510,7 @@ static my_bool CheckMemory(PGLOBAL g, UDF_INIT *initid, UDF_ARGS *args, uint n, if (!(g->Sarea = PlugAllocMem(g, ml))) { char errmsg[MAX_STR]; - sprintf(errmsg, MSG(WORK_AREA), g->Message); + snprintf(errmsg, sizeof(errmsg)-1, MSG(WORK_AREA), g->Message); strcpy(g->Message, errmsg); g->Sarea_Size = 0; return true; diff --git a/storage/connect/plugutil.cpp b/storage/connect/plugutil.cpp index d63674e2e36..0855e265704 100644 --- a/storage/connect/plugutil.cpp +++ b/storage/connect/plugutil.cpp @@ -162,7 +162,7 @@ PGLOBAL PlugInit(LPCSTR Language, uint worksize) /*******************************************************************/ if (worksize && !(g->Sarea = PlugAllocMem(g, worksize))) { char errmsg[MAX_STR]; - sprintf(errmsg, MSG(WORK_AREA), g->Message); + snprintf(errmsg, sizeof(errmsg) - 1, MSG(WORK_AREA), g->Message); strcpy(g->Message, errmsg); g->Sarea_Size = 0; } else diff --git a/storage/connect/rcmsg.c b/storage/connect/rcmsg.c index 75759e03314..895f8f5862b 100644 --- a/storage/connect/rcmsg.c +++ b/storage/connect/rcmsg.c @@ -27,9 +27,9 @@ char *msglang(void); -char *GetMsgid(int id) +const char *GetMsgid(int id) { - char *p = NULL; + const char *p = NULL; // This conditional until a real fix is found for MDEV-7304 #if defined(FRENCH) @@ -55,7 +55,8 @@ char *GetMsgid(int id) int GetRcString(int id, char *buf, int bufsize) { - char *p = NULL, msg[32]; + const char *p = NULL; + char msg[32]; if (!(p = GetMsgid(id))) { sprintf(msg, "ID=%d unknown", id); diff --git a/storage/connect/rcmsg.h b/storage/connect/rcmsg.h index b22e77f5175..499ca3b2dd4 100644 --- a/storage/connect/rcmsg.h +++ b/storage/connect/rcmsg.h @@ -5,7 +5,7 @@ extern "C" { #endif -char *GetMsgid(int id); +const char *GetMsgid(int id); int GetRcString(int id, char *buf, int bufsize); #ifdef __cplusplus diff --git a/storage/connect/tabmul.cpp b/storage/connect/tabmul.cpp index 5c41f9094ac..0967afca6cd 100644 --- a/storage/connect/tabmul.cpp +++ b/storage/connect/tabmul.cpp @@ -203,12 +203,12 @@ bool TDBMUL::InitFileNames(PGLOBAL g) // Data files can be imported from Windows (having CRLF) if (*p == '\n' || *p == '\r') { // is this enough for Unix ??? - *p--; // Eliminate ending CR or LF character + p--; // Eliminate ending CR or LF character if (p >= filename) // is this enough for Unix ??? if (*p == '\n' || *p == '\r') - *p--; // Eliminate ending CR or LF character + p--; // Eliminate ending CR or LF character } // endif p diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index f08d18b5421..83f008fbee1 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -1374,7 +1374,7 @@ bool TYPVAL::SetValue_char(const char *cp, int n) } else if (cp != Strp) { const char *p = cp + n - 1; - for (p; p >= cp; p--, n--) + for (; p >= cp; p--, n--) if (*p && *p != ' ') break; diff --git a/storage/mroonga/CMakeLists.txt b/storage/mroonga/CMakeLists.txt index 39dad9ce16b..a9f9d7cc8b2 100644 --- a/storage/mroonga/CMakeLists.txt +++ b/storage/mroonga/CMakeLists.txt @@ -343,6 +343,7 @@ else() MY_CHECK_AND_SET_COMPILER_FLAG("-fno-exceptions") MY_CHECK_AND_SET_COMPILER_FLAG("-fno-rtti") MY_CHECK_AND_SET_COMPILER_FLAG("-felide-constructors") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough") endif() set_source_files_properties(${MRN_SOURCES} PROPERTIES COMPILE_FLAGS "${MYSQL_CFLAGS} ${MRN_CXX_COMPILE_FLAGS}") diff --git a/storage/mroonga/vendor/groonga/CMakeLists.txt b/storage/mroonga/vendor/groonga/CMakeLists.txt index 2d8a59fa664..6c448a4e606 100644 --- a/storage/mroonga/vendor/groonga/CMakeLists.txt +++ b/storage/mroonga/vendor/groonga/CMakeLists.txt @@ -154,7 +154,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGCXX) MY_CHECK_AND_SET_COMPILER_FLAG("-Wformat=2") MY_CHECK_AND_SET_COMPILER_FLAG("-Wstrict-aliasing=2") MY_CHECK_AND_SET_COMPILER_FLAG("-fno-strict-aliasing") - MY_CHECK_AND_SET_COMPILER_FLAG("-Wdisabled-optimization") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-disabled-optimization") MY_CHECK_AND_SET_COMPILER_FLAG("-Wfloat-equal") MY_CHECK_AND_SET_COMPILER_FLAG("-Wpointer-arith") MY_CHECK_AND_SET_COMPILER_FLAG("-Wdeclaration-after-statement") @@ -165,6 +165,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGCXX) MY_CHECK_AND_SET_COMPILER_FLAG("-fexceptions") MY_CHECK_AND_SET_COMPILER_FLAG("-fimplicit-templates") MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-clobbered") + MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough") endif() if(NOT DEFINED CMAKE_C_COMPILE_OPTIONS_PIC) diff --git a/storage/mroonga/vendor/groonga/lib/dat/cursor-factory.cpp b/storage/mroonga/vendor/groonga/lib/dat/cursor-factory.cpp index 6dab51a2978..7276c148796 100644 --- a/storage/mroonga/vendor/groonga/lib/dat/cursor-factory.cpp +++ b/storage/mroonga/vendor/groonga/lib/dat/cursor-factory.cpp @@ -32,7 +32,6 @@ Cursor *CursorFactory::open(const Trie &trie, UInt32 offset, UInt32 limit, UInt32 flags) { - GRN_DAT_THROW_IF(PARAM_ERROR, &trie == NULL); const UInt32 cursor_type = flags & CURSOR_TYPE_MASK; switch (cursor_type) { diff --git a/storage/mroonga/vendor/groonga/lib/tokenizers.c b/storage/mroonga/vendor/groonga/lib/tokenizers.c index 28fd13c33c4..c5f112fa8cd 100644 --- a/storage/mroonga/vendor/groonga/lib/tokenizers.c +++ b/storage/mroonga/vendor/groonga/lib/tokenizers.c @@ -544,7 +544,7 @@ regexp_next(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data) grn_obj *buffer = &(tokenizer->buffer); const char *current = tokenizer->next; const char *end = tokenizer->end; - const const uint_least8_t *char_types = tokenizer->char_types; + const uint_least8_t *char_types = tokenizer->char_types; grn_tokenize_mode mode = tokenizer->query->tokenize_mode; grn_bool is_begin = tokenizer->is_begin; grn_bool is_start_token = tokenizer->is_start_token; diff --git a/storage/tokudb/PerconaFT/third_party/snappy-1.1.2/CMakeLists.txt b/storage/tokudb/PerconaFT/third_party/snappy-1.1.2/CMakeLists.txt index f9d93917627..c241f7918ee 100644 --- a/storage/tokudb/PerconaFT/third_party/snappy-1.1.2/CMakeLists.txt +++ b/storage/tokudb/PerconaFT/third_party/snappy-1.1.2/CMakeLists.txt @@ -1,3 +1,4 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) set(snappy_srcs diff --git a/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure b/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure index 9dc3178ba75..f0a417e0d29 100755 --- a/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure +++ b/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure @@ -19870,98 +19870,6 @@ if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" fi -if test "$GCC" = yes ; then - # Enable as much warnings as possible. These commented warnings won't - # work for this package though: - # * -Wunreachable-code breaks several assert(0) cases, which are - # backed up with "return LZMA_PROG_ERROR". - # * -Wcast-qual would break various things where we need a non-const - # pointer although we don't modify anything through it. - # * -Wcast-align breaks optimized CRC32 and CRC64 implementation - # on some architectures (not on x86), where this warning is bogus, - # because we take care of correct alignment. - # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations - # don't seem so useful here; at least the last one gives some - # warnings which are not bugs. - for NEW_FLAG in \ - -Wall \ - -Wextra \ - -Wformat=2 \ - -Winit-self \ - -Wmissing-include-dirs \ - -Wstrict-aliasing \ - -Wfloat-equal \ - -Wundef \ - -Wshadow \ - -Wpointer-arith \ - -Wbad-function-cast \ - -Wwrite-strings \ - -Wlogical-op \ - -Waggregate-return \ - -Wstrict-prototypes \ - -Wold-style-definition \ - -Wmissing-prototypes \ - -Wmissing-declarations \ - -Wmissing-noreturn \ - -Wredundant-decls - do - { $as_echo "$as_me:$LINENO: checking if $CC accepts $NEW_FLAG" >&5 -$as_echo_n "checking if $CC accepts $NEW_FLAG... " >&6; } - OLD_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $NEW_FLAG" - cat >conftest.$ac_ext <<_ACEOF -void foo(void) { } -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - - AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$OLD_CFLAGS" - done - - # Check whether --enable-werror was given. -if test "${enable_werror+set}" = set; then - enableval=$enable_werror; -else - enable_werror=no -fi - - if test "x$enable_werror" = "xyes"; then - AM_CFLAGS="$AM_CFLAGS -Werror" - fi -fi - - ############################################################################### # Create the makefiles and config.h ############################################################################### diff --git a/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure.ac b/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure.ac index d125a6936da..fbc59b230c9 100644 --- a/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure.ac +++ b/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/configure.ac @@ -569,63 +569,6 @@ if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" fi -if test "$GCC" = yes ; then - # Enable as much warnings as possible. These commented warnings won't - # work for this package though: - # * -Wunreachable-code breaks several assert(0) cases, which are - # backed up with "return LZMA_PROG_ERROR". - # * -Wcast-qual would break various things where we need a non-const - # pointer although we don't modify anything through it. - # * -Wcast-align breaks optimized CRC32 and CRC64 implementation - # on some architectures (not on x86), where this warning is bogus, - # because we take care of correct alignment. - # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations - # don't seem so useful here; at least the last one gives some - # warnings which are not bugs. - for NEW_FLAG in \ - -Wall \ - -Wextra \ - -Wformat=2 \ - -Winit-self \ - -Wmissing-include-dirs \ - -Wstrict-aliasing \ - -Wfloat-equal \ - -Wundef \ - -Wshadow \ - -Wpointer-arith \ - -Wbad-function-cast \ - -Wwrite-strings \ - -Wlogical-op \ - -Waggregate-return \ - -Wstrict-prototypes \ - -Wold-style-definition \ - -Wmissing-prototypes \ - -Wmissing-declarations \ - -Wmissing-noreturn \ - -Wredundant-decls - do - AC_MSG_CHECKING([if $CC accepts $NEW_FLAG]) - OLD_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $NEW_FLAG" - AC_COMPILE_IFELSE([void foo(void) { }], [ - AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - ]) - CFLAGS="$OLD_CFLAGS" - done - - AC_ARG_ENABLE([werror], - AC_HELP_STRING([--enable-werror], [Enable -Werror to abort - compilation on all compiler warnings.]), - [], [enable_werror=no]) - if test "x$enable_werror" = "xyes"; then - AM_CFLAGS="$AM_CFLAGS -Werror" - fi -fi - - ############################################################################### # Create the makefiles and config.h ############################################################################### diff --git a/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/m4/libtool.m4 b/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/m4/libtool.m4 index 39ba996cb96..faec0c309e8 100644 --- a/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/m4/libtool.m4 +++ b/storage/tokudb/PerconaFT/third_party/xz-4.999.9beta/m4/libtool.m4 @@ -1021,7 +1021,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { @@ -4826,9 +4826,9 @@ _LT_EOF # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE(int foo(void) {}, + AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}]), _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - ) + ]) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' From d577b1a9c231547c1e3197ea393a42351fd83e45 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Mon, 23 Oct 2017 09:45:47 +0000 Subject: [PATCH 080/128] MDEV-11934: MariaRocks: Group Commit with binlog Fix a failure in rocksdb_rpl.rpl_rocksdb_2pc_crash_recover test. Don't do XA with binlog if @@rocksdb_enable_2pc=OFF. --- storage/rocksdb/ha_rocksdb.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index 3ca58b3f935..d1cd6adf156 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -3088,6 +3088,16 @@ static void rocksdb_commit_ordered(handlerton *hton, THD* thd, bool all) DBUG_ASSERT(all || (!thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))); Rdb_transaction *&tx = get_tx_from_thd(thd); + if (!tx->is_two_phase()) { + /* + ordered_commit is supposedly slower as it is done sequentially + in order to preserve commit order. + + if we are not required do 2-phase commit with the binlog, do not do + anything here. + */ + return; + } tx->set_sync(false); From 6cfbffad5bd4178fbe4be2f535f2c6f0a9231f47 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Mon, 23 Oct 2017 10:04:55 +0000 Subject: [PATCH 081/128] Code cleanup --- storage/rocksdb/ha_rocksdb.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index d1cd6adf156..592bc9f0668 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -7162,12 +7162,9 @@ int ha_rocksdb::read_range_first(const key_range *const start_key, int result; eq_range = eq_range_arg; -#ifdef MARIAROCKS_NOT_YET - // Range scan direction is used to get ICP to work for backwards scans - set_end_range(end_key, RANGE_SCAN_ASC); -#else + + /* MariaDB: Pass RANGE_SCAN_ASC when we support ICP on backwards scans */ set_end_range(end_key); -#endif range_key_part = table->key_info[active_index].key_part; From 125ce6f82f5d81714e59b9dbd1b12da66ac33f39 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 23 Oct 2017 10:30:17 +0000 Subject: [PATCH 082/128] MDEV-14102 restore --remove-original options for mariabackup --- extra/mariabackup/xtrabackup.cc | 5 ++++ .../suite/mariabackup/compress_qpress.result | 15 ++++++++++++ .../suite/mariabackup/compress_qpress.test | 24 +++++++++++++++++++ mysql-test/suite/mariabackup/suite.pm | 2 ++ 4 files changed, 46 insertions(+) create mode 100644 mysql-test/suite/mariabackup/compress_qpress.result create mode 100644 mysql-test/suite/mariabackup/compress_qpress.test diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 2c67f48af4a..ad8a9241478 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -837,6 +837,11 @@ struct my_option xb_client_options[] = (uchar*) &opt_incremental_history_uuid, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"remove-original", OPT_REMOVE_ORIGINAL, "Remove .qp files after decompression.", + (uchar *) &opt_remove_original, + (uchar *) &opt_remove_original, + 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"ftwrl-wait-query-type", OPT_LOCK_WAIT_QUERY_TYPE, "This option specifies which types of queries are allowed to complete " "before innobackupex will issue the global lock. Default is all.", diff --git a/mysql-test/suite/mariabackup/compress_qpress.result b/mysql-test/suite/mariabackup/compress_qpress.result new file mode 100644 index 00000000000..f8dfb46e4db --- /dev/null +++ b/mysql-test/suite/mariabackup/compress_qpress.result @@ -0,0 +1,15 @@ +CREATE TABLE t(i INT) ENGINE INNODB; +INSERT INTO t VALUES(1); +# xtrabackup backup +INSERT INTO t VALUES(2); +# xtrabackup prepare +t.frm.qp +t.ibd.qp +# shutdown server +# remove datadir +# xtrabackup move back +# restart server +SELECT * FROM t; +i +1 +DROP TABLE t; diff --git a/mysql-test/suite/mariabackup/compress_qpress.test b/mysql-test/suite/mariabackup/compress_qpress.test new file mode 100644 index 00000000000..f86efe44e5d --- /dev/null +++ b/mysql-test/suite/mariabackup/compress_qpress.test @@ -0,0 +1,24 @@ +CREATE TABLE t(i INT) ENGINE INNODB; +INSERT INTO t VALUES(1); +echo # xtrabackup backup; +let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; + +--disable_result_log +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --compress --target-dir=$targetdir; +--enable_result_log + +INSERT INTO t VALUES(2); + + +echo # xtrabackup prepare; +--disable_result_log +list_files $targetdir/test *.qp; +exec $XTRABACKUP --decompress --remove-original --target-dir=$targetdir; +list_files $targetdir/test *.qp; +exec $XTRABACKUP --prepare --target-dir=$targetdir; +-- source include/restart_and_restore.inc +--enable_result_log + +SELECT * FROM t; +DROP TABLE t; +rmdir $targetdir; diff --git a/mysql-test/suite/mariabackup/suite.pm b/mysql-test/suite/mariabackup/suite.pm index 26d5c06cdad..b96b8a6c39d 100644 --- a/mysql-test/suite/mariabackup/suite.pm +++ b/mysql-test/suite/mariabackup/suite.pm @@ -3,6 +3,7 @@ package My::Suite::MariaBackup; @ISA = qw(My::Suite); use My::Find; use File::Basename; +use File::Which; use strict; return "Not run for embedded server" if $::opt_embedded_server; @@ -26,6 +27,7 @@ $ENV{INNOBACKUPEX}= "$mariabackup_exe --innobackupex"; sub skip_combinations { my %skip; $skip{'include/have_file_key_management.inc'} = 'needs file_key_management plugin' unless $ENV{FILE_KEY_MANAGEMENT_SO}; + $skip{'compress_qpress.test'}= 'needs qpress executable in PATH' unless which 'qpress'; %skip; } From 72407e544e27fdef2e99434e026d168dd58bfce6 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 23 Oct 2017 10:37:28 +0000 Subject: [PATCH 083/128] MDEV-13496 Use "mariabackup" rather than "xtrabackup" in console output --- extra/mariabackup/changed_page_bitmap.cc | 8 +- extra/mariabackup/wsrep.cc | 6 +- extra/mariabackup/xtrabackup.cc | 308 +++++++++++------------ 3 files changed, 158 insertions(+), 164 deletions(-) diff --git a/extra/mariabackup/changed_page_bitmap.cc b/extra/mariabackup/changed_page_bitmap.cc index 86a873ef69c..d5185b18971 100644 --- a/extra/mariabackup/changed_page_bitmap.cc +++ b/extra/mariabackup/changed_page_bitmap.cc @@ -538,7 +538,7 @@ xb_msg_missing_lsn_data( lsn_t missing_interval_start, /*! bmp_end_lsn)) { - msg("xtrabackup: incremental backup LSN " LSN_PF + msg("mariabackup: incremental backup LSN " LSN_PF " is larger than than the last checkpoint LSN " LSN_PF "\n", bmp_start_lsn, bmp_end_lsn); return NULL; @@ -700,7 +700,7 @@ xb_page_bitmap_init(void) ¤t_page_end_lsn, bmp_start_lsn))) { - msg("xtrabackup: Warning: changed page bitmap file " + msg("mariabackup: Warning: changed page bitmap file " "\'%s\' corrupted\n", bitmap_file.name); rbt_free(result); free(bitmap_files.files); @@ -805,7 +805,7 @@ xb_page_bitmap_init(void) if (UNIV_UNLIKELY(!last_page_ok)) { - msg("xtrabackup: warning: changed page bitmap file " + msg("mariabackup: warning: changed page bitmap file " "\'%s\' corrupted.\n", bitmap_file.name); rbt_free(result); free(bitmap_files.files); diff --git a/extra/mariabackup/wsrep.cc b/extra/mariabackup/wsrep.cc index 7b196725c07..3baa9e660d7 100644 --- a/extra/mariabackup/wsrep.cc +++ b/extra/mariabackup/wsrep.cc @@ -195,7 +195,7 @@ xb_write_galera_info(bool incremental_prepare) fp = fopen(XB_GALERA_INFO_FILENAME, "w"); if (fp == NULL) { - msg("xtrabackup: error: " + msg("mariabackup: error: " "could not create " XB_GALERA_INFO_FILENAME ", errno = %d\n", errno); @@ -204,12 +204,12 @@ xb_write_galera_info(bool incremental_prepare) seqno = wsrep_xid_seqno(&xid); - msg("xtrabackup: Recovered WSREP position: %s:%lld\n", + msg("mariabackup: Recovered WSREP position: %s:%lld\n", uuid_str, (long long) seqno); if (fprintf(fp, "%s:%lld", uuid_str, (long long) seqno) < 0) { - msg("xtrabackup: error: " + msg("mariabackup: error: " "could not write to " XB_GALERA_INFO_FILENAME ", errno = %d\n", errno); diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index ad8a9241478..49467f6f327 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -1159,13 +1159,13 @@ debug_sync_point(const char *name) xtrabackup_target_dir); fp = fopen(pid_path, "w"); if (fp == NULL) { - msg("xtrabackup: Error: cannot open %s\n", pid_path); + msg("mariabackup: Error: cannot open %s\n", pid_path); exit(EXIT_FAILURE); } fprintf(fp, "%u\n", (uint) pid); fclose(fp); - msg("xtrabackup: DEBUG: Suspending at debug sync point '%s'. " + msg("mariabackup: DEBUG: Suspending at debug sync point '%s'. " "Resume with 'kill -SIGCONT %u'.\n", name, (uint) pid); debug_sync_resumed= 0; @@ -1175,7 +1175,7 @@ debug_sync_point(const char *name) } /* On resume */ - msg("xtrabackup: DEBUG: removing the pid file.\n"); + msg("mariabackup: DEBUG: removing the pid file.\n"); my_delete(pid_path, MYF(MY_WME)); #endif } @@ -1470,19 +1470,19 @@ innodb_init_param(void) /* Check that values don't overflow on 32-bit systems. */ if (sizeof(ulint) == 4) { if (xtrabackup_use_memory > UINT_MAX32) { - msg("xtrabackup: use-memory can't be over 4GB" + msg("mariabackup: use-memory can't be over 4GB" " on 32-bit systems\n"); } if (innobase_buffer_pool_size > UINT_MAX32) { - msg("xtrabackup: innobase_buffer_pool_size can't be " + msg("mariabackup: innobase_buffer_pool_size can't be " "over 4GB on 32-bit systems\n"); goto error; } if (innobase_log_file_size > UINT_MAX32) { - msg("xtrabackup: innobase_log_file_size can't be " + msg("mariabackup: innobase_log_file_size can't be " "over 4GB on 32-bit systemsi\n"); goto error; @@ -1509,9 +1509,9 @@ innodb_init_param(void) read from MySQL .cnf file */ if (xtrabackup_backup) { - msg("xtrabackup: using the following InnoDB configuration:\n"); + msg("mariabackup: using the following InnoDB configuration:\n"); } else { - msg("xtrabackup: using the following InnoDB configuration " + msg("mariabackup: using the following InnoDB configuration " "for recovery:\n"); } @@ -1521,7 +1521,7 @@ innodb_init_param(void) srv_data_home = (xtrabackup_backup && innobase_data_home_dir ? innobase_data_home_dir : default_path); - msg("xtrabackup: innodb_data_home_dir = %s\n", srv_data_home); + msg("mariabackup: innodb_data_home_dir = %s\n", srv_data_home); /* Set default InnoDB data file size to 10 MB and let it be auto-extending. Thus users can use InnoDB in >= 4.0 without having @@ -1530,7 +1530,7 @@ innodb_init_param(void) if (!innobase_data_file_path) { innobase_data_file_path = (char*) "ibdata1:10M:autoextend"; } - msg("xtrabackup: innodb_data_file_path = %s\n", + msg("mariabackup: innodb_data_file_path = %s\n", innobase_data_file_path); /* Since InnoDB edits the argument in the next call, we make another @@ -1541,7 +1541,7 @@ innodb_init_param(void) ret = (my_bool) srv_parse_data_file_paths_and_sizes( internal_innobase_data_file_path); if (ret == FALSE) { - msg("xtrabackup: syntax error in innodb_data_file_path\n"); + msg("mariabackup: syntax error in innodb_data_file_path\n"); mem_free_and_error: free(internal_innobase_data_file_path); internal_innobase_data_file_path = NULL; @@ -1574,7 +1574,7 @@ mem_free_and_error: if (xtrabackup_prepare && xtrabackup_incremental_dir) { srv_log_group_home_dir = xtrabackup_incremental_dir; } - msg("xtrabackup: innodb_log_group_home_dir = %s\n", + msg("mariabackup: innodb_log_group_home_dir = %s\n", srv_log_group_home_dir); srv_normalize_path_for_win(srv_log_group_home_dir); @@ -1596,9 +1596,9 @@ mem_free_and_error: srv_n_log_files = (ulint) innobase_log_files_in_group; srv_log_file_size = (ulint) innobase_log_file_size; - msg("xtrabackup: innodb_log_files_in_group = %ld\n", + msg("mariabackup: innodb_log_files_in_group = %ld\n", srv_n_log_files); - msg("xtrabackup: innodb_log_file_size = %lld\n", + msg("mariabackup: innodb_log_file_size = %lld\n", (long long int) srv_log_file_size); srv_log_buffer_size = (ulint) innobase_log_buffer_size; @@ -1729,7 +1729,7 @@ mem_free_and_error: return(FALSE); error: - msg("xtrabackup: innodb_init_param(): Error occured.\n"); + msg("mariabackup: innodb_init_param(): Error occured.\n"); return(TRUE); } @@ -1760,7 +1760,7 @@ innodb_init(void) return(FALSE); error: - msg("xtrabackup: innodb_init(): Error occured.\n"); + msg("mariabackup: innodb_init(): Error occured.\n"); return(TRUE); } @@ -1770,7 +1770,7 @@ innodb_end() srv_fast_shutdown = (ulint) innobase_fast_shutdown; innodb_inited = 0; - msg("xtrabackup: starting shutdown with innodb_fast_shutdown = %lu\n", + msg("mariabackup: starting shutdown with innodb_fast_shutdown = %lu\n", srv_fast_shutdown); innodb_shutdown(); @@ -1801,7 +1801,7 @@ xtrabackup_read_metadata(char *filename) fp = fopen(filename,"r"); if(!fp) { - msg("xtrabackup: Error: cannot open %s\n", filename); + msg("mariabackup: Error: cannot open %s\n", filename); return(FALSE); } @@ -1880,7 +1880,7 @@ xtrabackup_stream_metadata(ds_ctxt_t *ds_ctxt) stream = ds_open(ds_ctxt, XTRABACKUP_METADATA_FILENAME, &mystat); if (stream == NULL) { - msg("xtrabackup: Error: cannot open output stream " + msg("mariabackup: Error: cannot open output stream " "for %s\n", XTRABACKUP_METADATA_FILENAME); return(FALSE); } @@ -1913,7 +1913,7 @@ xtrabackup_write_metadata(const char *filepath) fp = fopen(filepath, "w"); if(!fp) { - msg("xtrabackup: Error: cannot open %s\n", filepath); + msg("mariabackup: Error: cannot open %s\n", filepath); return(FALSE); } if (fwrite(buf, len, 1, fp) < 1) { @@ -1963,11 +1963,11 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info) fclose(fp); if (info->page_size == ULINT_UNDEFINED) { - msg("xtrabackup: page_size is required in %s\n", filepath); + msg("mariabackup: page_size is required in %s\n", filepath); r = FALSE; } if (info->space_id == ULINT_UNDEFINED) { - msg("xtrabackup: Warning: This backup was taken with XtraBackup 2.0.1 " + msg("mariabackup: Warning: This backup was taken with XtraBackup 2.0.1 " "or earlier, some DDL operations between full and incremental " "backups may be handled incorrectly\n"); } @@ -1999,7 +1999,7 @@ xb_write_delta_metadata(const char *filename, const xb_delta_info_t *info) f = ds_open(ds_meta, filename, &mystat); if (f == NULL) { - msg("xtrabackup: Error: cannot open output stream for %s\n", + msg("mariabackup: Error: cannot open output stream for %s\n", filename); return(FALSE); } @@ -2593,14 +2593,14 @@ xtrabackup_scan_log_recs( break; } - msg("xtrabackup: error:" + msg("mariabackup: error:" " log block numbers mismatch:\n" - "xtrabackup: error: expected log block no. %lu," + "mariabackup: error: expected log block no. %lu," " but got no. %lu from the log file.\n", (ulong) scanned_no, (ulong) no); if ((no - scanned_no) % blocks_in_group == 0) { - msg("xtrabackup: error:" + msg("mariabackup: error:" " it looks like InnoDB log has wrapped" " around before xtrabackup could" " process all records due to either" @@ -2612,14 +2612,14 @@ xtrabackup_scan_log_recs( } else if (!checksum_is_ok) { /* Garbage or an incompletely written log block */ - msg("xtrabackup: warning: Log block checksum mismatch" + msg("mariabackup: warning: Log block checksum mismatch" " (block no %lu at lsn " LSN_PF "): \n" "expected %lu, calculated checksum %lu\n", (ulong) no, scanned_lsn, (ulong) log_block_get_checksum(log_block), (ulong) log_block_calc_checksum(log_block)); - msg("xtrabackup: warning: this is possible when the " + msg("mariabackup: warning: this is possible when the " "log block has not been fully written by the " "server, will retry later.\n"); *finished = true; @@ -2692,7 +2692,7 @@ xtrabackup_scan_log_recs( } if (ds_write(dst_log_file, log_sys->buf, write_size)) { - msg("xtrabackup: Error: " + msg("mariabackup: Error: " "write to logfile failed\n"); return(false); } @@ -2773,7 +2773,7 @@ xtrabackup_copy_logfile(lsn_t from_lsn, my_bool is_last) error: mutex_exit(&log_sys->mutex); ds_close(dst_log_file); - msg("xtrabackup: Error: xtrabackup_copy_logfile() failed.\n"); + msg("mariabackup: Error: xtrabackup_copy_logfile() failed.\n"); return(TRUE); } @@ -3088,25 +3088,25 @@ xb_load_tablespaces(void) &flushed_lsn, &sum_of_new_sizes); if (err != DB_SUCCESS) { - msg("xtrabackup: Could not open or create data files.\n" - "xtrabackup: If you tried to add new data files, and it " + msg("mariabackup: Could not open or create data files.\n" + "mariabackup: If you tried to add new data files, and it " "failed here,\n" - "xtrabackup: you should now edit innodb_data_file_path in " + "mariabackup: you should now edit innodb_data_file_path in " "my.cnf back\n" - "xtrabackup: to what it was, and remove the new ibdata " + "mariabackup: to what it was, and remove the new ibdata " "files InnoDB created\n" - "xtrabackup: in this failed attempt. InnoDB only wrote " + "mariabackup: in this failed attempt. InnoDB only wrote " "those files full of\n" - "xtrabackup: zeros, but did not yet use them in any way. " + "mariabackup: zeros, but did not yet use them in any way. " "But be careful: do not\n" - "xtrabackup: remove old data files which contain your " + "mariabackup: remove old data files which contain your " "precious data!\n"); return(err); } /* create_new_db must not be TRUE.. */ if (create_new_db) { - msg("xtrabackup: could not find data files at the " + msg("mariabackup: could not find data files at the " "specified datadir\n"); return(DB_ERROR); } @@ -3125,7 +3125,7 @@ xb_load_tablespaces(void) srv_undo_tablespaces_init(), because fil_is_user_tablespace_id() * relies on srv_undo_tablespaces_open to be properly initialized */ - msg("xtrabackup: Generating a list of tablespaces\n"); + msg("mariabackup: Generating a list of tablespaces\n"); err = fil_load_single_table_tablespaces(xb_check_if_open_tablespace); if (err != DB_SUCCESS) { @@ -3173,7 +3173,7 @@ xb_data_files_close(void) } if (i == 1000) { - msg("xtrabackup: Warning: %lu threads created by InnoDB" + msg("mariabackup: Warning: %lu threads created by InnoDB" " had not exited at shutdown!\n", (ulong) os_thread_count); } @@ -3259,12 +3259,12 @@ xb_validate_name( /* perform only basic validation. validate length and path symbols */ if (len > NAME_LEN) { - msg("xtrabackup: name `%s` is too long.\n", name); + msg("mariabackup: name `%s` is too long.\n", name); exit(EXIT_FAILURE); } p = strpbrk(name, "/\\~"); if (p && p - name < NAME_LEN) { - msg("xtrabackup: name `%s` is not valid.\n", name); + msg("mariabackup: name `%s` is not valid.\n", name); exit(EXIT_FAILURE); } } @@ -3343,7 +3343,7 @@ xb_register_table( const char* name) /*!< in: name of table */ { if (strchr(name, '.') == NULL) { - msg("xtrabackup: `%s` is not fully qualified name.\n", name); + msg("mariabackup: `%s` is not fully qualified name.\n", name); exit(EXIT_FAILURE); } @@ -3365,7 +3365,7 @@ xb_add_regex_to_list( if (ret != 0) { regerror(ret, &compiled_regex, errbuf, sizeof(errbuf)); - msg("xtrabackup: error: %s regcomp(%s): %s\n", + msg("mariabackup: error: %s regcomp(%s): %s\n", error_context, regex, errbuf); exit(EXIT_FAILURE); } @@ -3434,7 +3434,7 @@ xb_load_list_file( /* read and store the filenames */ fp = fopen(filename, "r"); if (!fp) { - msg("xtrabackup: cannot open %s\n", + msg("mariabackup: cannot open %s\n", filename); exit(EXIT_FAILURE); } @@ -3443,7 +3443,7 @@ xb_load_list_file( if (p) { *p = '\0'; } else { - msg("xtrabackup: `%s...` name is too long", name_buf); + msg("mariabackup: `%s...` name is too long", name_buf); exit(EXIT_FAILURE); } @@ -3735,19 +3735,19 @@ xtrabackup_backup_func(void) data_thread_ctxt_t *data_threads; #ifdef USE_POSIX_FADVISE - msg("xtrabackup: uses posix_fadvise().\n"); + msg("mariabackup: uses posix_fadvise().\n"); #endif /* cd to datadir */ if (my_setwd(mysql_real_data_home,MYF(MY_WME))) { - msg("xtrabackup: cannot my_setwd %s\n", mysql_real_data_home); + msg("mariabackup: cannot my_setwd %s\n", mysql_real_data_home); exit(EXIT_FAILURE); } - msg("xtrabackup: cd to %s\n", mysql_real_data_home); + msg("mariabackup: cd to %s\n", mysql_real_data_home); - msg("xtrabackup: open files limit requested %u, set to %u\n", + msg("mariabackup: open files limit requested %u, set to %u\n", (uint) xb_open_files_limit, xb_set_max_open_files(xb_open_files_limit)); @@ -3762,7 +3762,7 @@ xtrabackup_backup_func(void) srv_close_files = (bool)xb_close_files; if (srv_close_files) - msg("xtrabackup: warning: close-files specified. Use it " + msg("mariabackup: warning: close-files specified. Use it " "at your own risk. If there are DDL operations like table DROP TABLE " "or RENAME TABLE during the backup, inconsistent backup will be " "produced.\n"); @@ -3784,7 +3784,7 @@ xtrabackup_backup_func(void) } else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT")) { srv_unix_file_flush_method = SRV_UNIX_O_DIRECT; - msg("xtrabackup: using O_DIRECT\n"); + msg("mariabackup: using O_DIRECT\n"); } else if (0 == ut_strcmp(srv_file_flush_method_str, "littlesync")) { srv_unix_file_flush_method = SRV_UNIX_LITTLESYNC; @@ -3792,23 +3792,17 @@ xtrabackup_backup_func(void) srv_unix_file_flush_method = SRV_UNIX_NOSYNC; } else if (0 == ut_strcmp(srv_file_flush_method_str, "ALL_O_DIRECT")) { srv_unix_file_flush_method = SRV_UNIX_ALL_O_DIRECT; - msg("xtrabackup: using ALL_O_DIRECT\n"); + msg("mariabackup: using ALL_O_DIRECT\n"); } else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT_NO_FSYNC")) { srv_unix_file_flush_method = SRV_UNIX_O_DIRECT_NO_FSYNC; - msg("xtrabackup: using O_DIRECT_NO_FSYNC\n"); + msg("mariabackup: using O_DIRECT_NO_FSYNC\n"); } else { - msg("xtrabackup: Unrecognized value %s for " + msg("mariabackup: Unrecognized value %s for " "innodb_flush_method\n", srv_file_flush_method_str); exit(EXIT_FAILURE); } - /* We can only use synchronous unbuffered IO on Windows for now */ - if (srv_file_flush_method_str != NULL) { - msg("xtrabackupp: Warning: " - "ignoring innodb_flush_method = %s on Windows.\n", srv_file_flush_method_str); - } - #ifdef _WIN32 srv_win_file_flush_method = SRV_WIN_IO_UNBUFFERED; srv_use_native_aio = FALSE; @@ -3871,12 +3865,12 @@ xtrabackup_backup_func(void) } if ((log_opened && log_created)) { msg( - "xtrabackup: Error: all log files must be created at the same time.\n" - "xtrabackup: All log files must be created also in database creation.\n" - "xtrabackup: If you want bigger or smaller log files, shut down the\n" - "xtrabackup: database and make sure there were no errors in shutdown.\n" - "xtrabackup: Then delete the existing log files. Edit the .cnf file\n" - "xtrabackup: and start the database again.\n"); + "mariabackup: Error: all log files must be created at the same time.\n" + "mariabackup: All log files must be created also in database creation.\n" + "mariabackup: If you want bigger or smaller log files, shut down the\n" + "mariabackup: database and make sure there were no errors in shutdown.\n" + "mariabackup: Then delete the existing log files. Edit the .cnf file\n" + "mariabackup: and start the database again.\n"); //return(DB_ERROR); exit(EXIT_FAILURE); @@ -3885,7 +3879,7 @@ xtrabackup_backup_func(void) /* log_file_created must not be TRUE, if online */ if (log_file_created) { - msg("xtrabackup: Something wrong with source files...\n"); + msg("mariabackup: Something wrong with source files...\n"); exit(EXIT_FAILURE); } @@ -3895,7 +3889,7 @@ xtrabackup_backup_func(void) if (xtrabackup_extra_lsndir &&!my_stat(xtrabackup_extra_lsndir,&stat_info,MYF(0)) && (my_mkdir(xtrabackup_extra_lsndir,0777,MYF(0)) < 0)) { - msg("xtrabackup: Error: cannot mkdir %d: %s\n", + msg("mariabackup: Error: cannot mkdir %d: %s\n", my_errno, xtrabackup_extra_lsndir); exit(EXIT_FAILURE); } @@ -3903,7 +3897,7 @@ xtrabackup_backup_func(void) /* create target dir if not exist */ if (!xtrabackup_stream_str && !my_stat(xtrabackup_target_dir,&stat_info,MYF(0)) && (my_mkdir(xtrabackup_target_dir,0777,MYF(0)) < 0)){ - msg("xtrabackup: Error: cannot mkdir %d: %s\n", + msg("mariabackup: Error: cannot mkdir %d: %s\n", my_errno, xtrabackup_target_dir); exit(EXIT_FAILURE); } @@ -3989,7 +3983,7 @@ reread_log_header: memset(&stat_info, 0, sizeof(MY_STAT)); dst_log_file = ds_open(ds_redo, XB_LOG_FILENAME, &stat_info); if (dst_log_file == NULL) { - msg("xtrabackup: error: failed to open the target stream for " + msg("mariabackup: error: failed to open the target stream for " "'%s'.\n", XB_LOG_FILENAME); ut_free(log_hdr_buf_); exit(EXIT_FAILURE); @@ -4003,7 +3997,7 @@ reread_log_header: + (sizeof "xtrabkup ") - 1)); if (ds_write(dst_log_file, log_hdr_buf, LOG_FILE_HDR_SIZE)) { - msg("xtrabackup: error: write to logfile failed\n"); + msg("mariabackup: error: write to logfile failed\n"); ut_free(log_hdr_buf_); exit(EXIT_FAILURE); } @@ -4039,7 +4033,7 @@ reread_log_header: /* Populate fil_system with tablespaces to copy */ err = xb_load_tablespaces(); if (err != DB_SUCCESS) { - msg("xtrabackup: error: xb_load_tablespaces() failed with" + msg("mariabackup: error: xb_load_tablespaces() failed with" "error code %lu\n", err); exit(EXIT_FAILURE); } @@ -4055,25 +4049,25 @@ reread_log_header: changed_page_bitmap = xb_page_bitmap_init(); } if (!changed_page_bitmap) { - msg("xtrabackup: using the full scan for incremental " + msg("mariabackup: using the full scan for incremental " "backup\n"); } else if (incremental_lsn != checkpoint_lsn_start) { /* Do not print that bitmaps are used when dummy bitmap is build for an empty LSN range. */ - msg("xtrabackup: using the changed page bitmap\n"); + msg("mariabackup: using the changed page bitmap\n"); } } ut_a(xtrabackup_parallel > 0); if (xtrabackup_parallel > 1) { - msg("xtrabackup: Starting %u threads for parallel data " + msg("mariabackup: Starting %u threads for parallel data " "files transfer\n", xtrabackup_parallel); } it = datafiles_iter_new(f_system); if (it == NULL) { - msg("xtrabackup: Error: datafiles_iter_new() failed.\n"); + msg("mariabackup: Error: datafiles_iter_new() failed.\n"); exit(EXIT_FAILURE); } @@ -4128,7 +4122,7 @@ reread_log_header: err = recv_find_max_checkpoint(&max_cp_group, &max_cp_field); if (err != DB_SUCCESS) { - msg("xtrabackup: Error: recv_find_max_checkpoint() failed.\n"); + msg("mariabackup: Error: recv_find_max_checkpoint() failed.\n"); mutex_exit(&log_sys->mutex); goto skip_last_cp; } @@ -4142,14 +4136,14 @@ reread_log_header: mutex_exit(&log_sys->mutex); - msg("xtrabackup: The latest check point (for incremental): " + msg("mariabackup: The latest check point (for incremental): " "'" LSN_PF "'\n", latest_cp); } skip_last_cp: /* stop log_copying_thread */ log_copying = FALSE; os_event_set(log_copying_stop); - msg("xtrabackup: Stopping log copying thread.\n"); + msg("mariabackup: Stopping log copying thread.\n"); while (log_copying_running) { msg("."); os_thread_sleep(200000); /*0.2 sec*/ @@ -4172,7 +4166,7 @@ skip_last_cp: metadata_last_lsn = log_copy_scanned_lsn; if (!xtrabackup_stream_metadata(ds_meta)) { - msg("xtrabackup: Error: failed to stream metadata.\n"); + msg("mariabackup: Error: failed to stream metadata.\n"); exit(EXIT_FAILURE); } if (xtrabackup_extra_lsndir) { @@ -4181,7 +4175,7 @@ skip_last_cp: sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, XTRABACKUP_METADATA_FILENAME); if (!xtrabackup_write_metadata(filename)) { - msg("xtrabackup: Error: failed to write metadata " + msg("mariabackup: Error: failed to write metadata " "to '%s'.\n", filename); exit(EXIT_FAILURE); } @@ -4203,7 +4197,7 @@ skip_last_cp: wait_throttle = NULL; } - msg("xtrabackup: Transaction log of lsn (" LSN_PF ") to (" LSN_PF + msg("mariabackup: Transaction log of lsn (" LSN_PF ") to (" LSN_PF ") was copied.\n", checkpoint_lsn_start, log_copy_scanned_lsn); xb_filters_free(); @@ -4211,7 +4205,7 @@ skip_last_cp: /* Make sure that the latest checkpoint made it to xtrabackup_logfile */ if (latest_cp > log_copy_scanned_lsn) { - msg("xtrabackup: error: last checkpoint LSN (" LSN_PF + msg("mariabackup: error: last checkpoint LSN (" LSN_PF ") is larger than last copied LSN (" LSN_PF ").\n", latest_cp, log_copy_scanned_lsn); exit(EXIT_FAILURE); @@ -4272,7 +4266,7 @@ retry: /* The following call prints an error message */ os_file_get_last_error(TRUE); - msg("xtrabackup: Warning: cannot open %s. will try to find.\n", + msg("mariabackup: Warning: cannot open %s. will try to find.\n", src_path); /* check if ib_logfile0 may be xtrabackup_logfile */ @@ -4333,7 +4327,7 @@ retry: if ( ut_memcmp(log_buf + LOG_FILE_WAS_CREATED_BY_HOT_BACKUP, (byte*)"xtrabkup", (sizeof "xtrabkup") - 1) != 0 ) { - msg("xtrabackup: notice: xtrabackup_logfile was already used " + msg("mariabackup: notice: xtrabackup_logfile was already used " "to '--prepare'.\n"); goto skip_modify; } else { @@ -4366,7 +4360,7 @@ not_consistent: } if (!checkpoint_found) { - msg("xtrabackup: No valid checkpoint found.\n"); + msg("mariabackup: No valid checkpoint found.\n"); goto error; } @@ -4472,7 +4466,7 @@ not_consistent: file_size = os_file_get_size(src_file); } - msg("xtrabackup: xtrabackup_logfile detected: size=" INT64PF ", " + msg("mariabackup: xtrabackup_logfile detected: size=" INT64PF ", " "start_lsn=(" LSN_PF ")\n", file_size, max_lsn); os_file_close(src_file); @@ -4508,7 +4502,7 @@ error: free(log_buf); if (src_file != XB_FILE_UNDEFINED) os_file_close(src_file); - msg("xtrabackup: Error: xtrabackup_init_temp_log() failed.\n"); + msg("mariabackup: Error: xtrabackup_init_temp_log() failed.\n"); return(TRUE); /*ERROR*/ } @@ -4560,14 +4554,14 @@ xb_space_create_file( OS_FILE_READ_WRITE, &ret,0); if (!ret) { - msg("xtrabackup: cannot create file %s\n", path); + msg("mariabackup: cannot create file %s\n", path); return ret; } ret = os_file_set_size(path, *file, FIL_IBD_FILE_INITIAL_SIZE * UNIV_PAGE_SIZE); if (!ret) { - msg("xtrabackup: cannot set size for file %s\n", path); + msg("mariabackup: cannot set size for file %s\n", path); os_file_close(*file); os_file_delete(0, path); return ret; @@ -4611,7 +4605,7 @@ xb_space_create_file( ut_free(buf); if (!ret) { - msg("xtrabackup: could not write the first page to %s\n", + msg("mariabackup: could not write the first page to %s\n", path); os_file_close(*file); os_file_delete(0, path); @@ -4675,7 +4669,7 @@ xb_delta_open_matching_space( /* Create the database directory if it doesn't exist yet */ if (!os_file_create_directory(dest_dir, FALSE)) { - msg("xtrabackup: error: cannot create dir %s\n", dest_dir); + msg("mariabackup: error: cannot create dir %s\n", dest_dir); return file; } @@ -4708,13 +4702,13 @@ xb_delta_open_matching_space( snprintf(tmpname, FN_REFLEN, "%s/xtrabackup_tmp_#%lu", dbname, fil_space->id); - msg("xtrabackup: Renaming %s to %s.ibd\n", + msg("mariabackup: Renaming %s to %s.ibd\n", fil_space->name, tmpname); if (!fil_rename_tablespace(NULL, fil_space->id, tmpname, NULL)) { - msg("xtrabackup: Cannot rename %s to %s\n", + msg("mariabackup: Cannot rename %s to %s\n", fil_space->name, tmpname); goto exit; } @@ -4723,7 +4717,7 @@ xb_delta_open_matching_space( if (space_id == ULINT_UNDEFINED) { - msg("xtrabackup: Error: Cannot handle DDL operation on tablespace " + msg("mariabackup: Error: Cannot handle DDL operation on tablespace " "%s\n", dest_space_name); exit(EXIT_FAILURE); } @@ -4735,13 +4729,13 @@ xb_delta_open_matching_space( strncpy(tmpname, dest_space_name, FN_REFLEN); - msg("xtrabackup: Renaming %s to %s\n", + msg("mariabackup: Renaming %s to %s\n", fil_space->name, dest_space_name); if (!fil_rename_tablespace(NULL, fil_space->id, tmpname, NULL)) { - msg("xtrabackup: Cannot rename %s to %s\n", + msg("mariabackup: Cannot rename %s to %s\n", fil_space->name, dest_space_name); goto exit; } @@ -4753,7 +4747,7 @@ xb_delta_open_matching_space( if (!fil_space_create(dest_space_name, space_id, 0, FIL_TABLESPACE, 0, false)) { - msg("xtrabackup: Cannot create tablespace %s\n", + msg("mariabackup: Cannot create tablespace %s\n", dest_space_name); goto exit; } @@ -4787,7 +4781,7 @@ found: if (ok) { *success = TRUE; } else { - msg("xtrabackup: Cannot open file %s\n", real_name); + msg("mariabackup: Cannot open file %s\n", real_name); } exit: @@ -4859,11 +4853,11 @@ xtrabackup_apply_delta( page_size = info.page_size; page_size_shift = get_bit_shift(page_size); - msg("xtrabackup: page size for %s is %lu bytes\n", + msg("mariabackup: page size for %s is %lu bytes\n", src_path, page_size); if (page_size_shift < 10 || page_size_shift > UNIV_PAGE_SIZE_SHIFT_MAX) { - msg("xtrabackup: error: invalid value of page_size " + msg("mariabackup: error: invalid value of page_size " "(%lu bytes) read from %s\n", page_size, meta_path); goto error; } @@ -4874,7 +4868,7 @@ xtrabackup_apply_delta( &success,0); if (!success) { os_file_get_last_error(TRUE); - msg("xtrabackup: error: cannot open %s\n", src_path); + msg("mariabackup: error: cannot open %s\n", src_path); goto error; } @@ -4886,7 +4880,7 @@ xtrabackup_apply_delta( dbname, space_name, info.space_id, info.zip_size, dst_path, sizeof(dst_path), &success); if (!success) { - msg("xtrabackup: error: cannot open %s\n", dst_path); + msg("mariabackup: error: cannot open %s\n", dst_path); goto error; } @@ -4925,7 +4919,7 @@ xtrabackup_apply_delta( last_buffer = TRUE; break; default: - msg("xtrabackup: error: %s seems not " + msg("mariabackup: error: %s seems not " ".delta file.\n", src_path); goto error; } @@ -4995,7 +4989,7 @@ error: os_file_close(src_file); if (dst_file != XB_FILE_UNDEFINED) os_file_close(dst_file); - msg("xtrabackup: Error: xtrabackup_apply_delta(): " + msg("mariabackup: Error: xtrabackup_apply_delta(): " "failed to apply %s to %s.\n", src_path, dst_path); return FALSE; } @@ -5104,7 +5098,7 @@ next_file_item_1: os_file_closedir(dbdir); } else { - msg("xtrabackup: Cannot open dir %s\n", + msg("mariabackup: Cannot open dir %s\n", path); } @@ -5112,7 +5106,7 @@ next_file_item_1: dir = os_file_opendir(path, FALSE); if (dir == NULL) { - msg("xtrabackup: Cannot open dir %s\n", + msg("mariabackup: Cannot open dir %s\n", path); } @@ -5254,7 +5248,7 @@ xtrabackup_close_temp_log(my_bool clear_flag) error: if (src_file != XB_FILE_UNDEFINED) os_file_close(src_file); - msg("xtrabackup: Error: xtrabackup_close_temp_log() failed.\n"); + msg("mariabackup: Error: xtrabackup_close_temp_log() failed.\n"); return(TRUE); /*ERROR*/ } @@ -5283,7 +5277,7 @@ xb_export_cfg_write_index_fields( if (fwrite(row, 1, sizeof(row), file) != sizeof(row)) { - msg("xtrabackup: Error: writing index fields."); + msg("mariabackup: Error: writing index fields."); return(false); } @@ -5297,7 +5291,7 @@ xb_export_cfg_write_index_fields( if (fwrite(row, 1, sizeof(len), file) != sizeof(len) || fwrite(field->name, 1, len, file) != len) { - msg("xtrabackup: Error: writing index column."); + msg("mariabackup: Error: writing index column."); return(false); } @@ -5324,7 +5318,7 @@ xb_export_cfg_write_indexes( mach_write_to_4(row, UT_LIST_GET_LEN(table->indexes)); if (fwrite(row, 1, sizeof(row), file) != sizeof(row)) { - msg("xtrabackup: Error: writing index count."); + msg("mariabackup: Error: writing index count."); return(false); } @@ -5372,7 +5366,7 @@ xb_export_cfg_write_indexes( if (fwrite(row, 1, sizeof(row), file) != sizeof(row)) { - msg("xtrabackup: Error: writing index meta-data."); + msg("mariabackup: Error: writing index meta-data."); return(false); } @@ -5387,7 +5381,7 @@ xb_export_cfg_write_indexes( if (fwrite(row, 1, sizeof(len), file) != sizeof(len) || fwrite(index->name, 1, len, file) != len) { - msg("xtrabackup: Error: writing index name."); + msg("mariabackup: Error: writing index name."); return(false); } @@ -5440,7 +5434,7 @@ xb_export_cfg_write_table( mach_write_to_4(ptr, col->max_prefix); if (fwrite(row, 1, sizeof(row), file) != sizeof(row)) { - msg("xtrabackup: Error: writing table column data."); + msg("mariabackup: Error: writing table column data."); return(false); } @@ -5461,7 +5455,7 @@ xb_export_cfg_write_table( if (fwrite(row, 1, sizeof(len), file) != sizeof(len) || fwrite(col_name, 1, len, file) != len) { - msg("xtrabackup: Error: writing column name."); + msg("mariabackup: Error: writing column name."); return(false); } @@ -5487,7 +5481,7 @@ xb_export_cfg_write_header( mach_write_to_4(value, IB_EXPORT_CFG_VERSION_V1); if (fwrite(&value, 1, sizeof(value), file) != sizeof(value)) { - msg("xtrabackup: Error: writing meta-data version number."); + msg("mariabackup: Error: writing meta-data version number."); return(false); } @@ -5503,7 +5497,7 @@ xb_export_cfg_write_header( if (fwrite(&value, 1, sizeof(value), file) != sizeof(value) || fwrite(hostname, 1, len, file) != len) { - msg("xtrabackup: Error: writing hostname."); + msg("mariabackup: Error: writing hostname."); return(false); } @@ -5518,7 +5512,7 @@ xb_export_cfg_write_header( if (fwrite(&value, 1, sizeof(value), file) != sizeof(value) || fwrite(table->name, 1, len, file) != len) { - msg("xtrabackup: Error: writing table name."); + msg("mariabackup: Error: writing table name."); return(false); } @@ -5529,7 +5523,7 @@ xb_export_cfg_write_header( mach_write_to_8(row, table->autoinc); if (fwrite(row, 1, sizeof(ib_uint64_t), file) != sizeof(ib_uint64_t)) { - msg("xtrabackup: Error: writing table autoinc value."); + msg("mariabackup: Error: writing table autoinc value."); return(false); } @@ -5548,7 +5542,7 @@ xb_export_cfg_write_header( mach_write_to_4(ptr, table->n_cols); if (fwrite(row, 1, sizeof(row), file) != sizeof(row)) { - msg("xtrabackup: Error: writing table meta-data."); + msg("mariabackup: Error: writing table meta-data."); return(false); } @@ -5576,7 +5570,7 @@ xb_export_cfg_write( file = fopen(file_path, "w+b"); if (file == NULL) { - msg("xtrabackup: Error: cannot open %s\n", node->name); + msg("mariabackup: Error: cannot open %s\n", node->name); success = false; } else { @@ -5592,7 +5586,7 @@ xb_export_cfg_write( } if (fclose(file) != 0) { - msg("xtrabackup: Error: cannot close %s\n", node->name); + msg("mariabackup: Error: cannot close %s\n", node->name); success = false; } @@ -5630,7 +5624,7 @@ store_binlog_info( fp = fopen(filename, "w"); if (!fp) { - msg("xtrabackup: failed to open '%s'\n", filename); + msg("mariabackup: failed to open '%s'\n", filename); return(false); } @@ -5654,11 +5648,11 @@ xtrabackup_prepare_func(int argc, char ** argv) if (my_setwd(xtrabackup_real_target_dir,MYF(MY_WME))) { - msg("xtrabackup: cannot my_setwd %s\n", + msg("mariabackup: cannot my_setwd %s\n", xtrabackup_real_target_dir); exit(EXIT_FAILURE); } - msg("xtrabackup: cd to %s\n", xtrabackup_real_target_dir); + msg("mariabackup: cd to %s\n", xtrabackup_real_target_dir); encryption_plugin_prepare_init(argc, argv); @@ -5673,36 +5667,36 @@ xtrabackup_prepare_func(int argc, char ** argv) XTRABACKUP_METADATA_FILENAME); if (!xtrabackup_read_metadata(metadata_path)) { - msg("xtrabackup: Error: failed to read metadata from '%s'\n", + msg("mariabackup: Error: failed to read metadata from '%s'\n", metadata_path); exit(EXIT_FAILURE); } if (!strcmp(metadata_type, "full-backuped")) { - msg("xtrabackup: This target seems to be not prepared yet.\n"); + msg("mariabackup: This target seems to be not prepared yet.\n"); } else if (!strcmp(metadata_type, "log-applied")) { - msg("xtrabackup: This target seems to be already " + msg("mariabackup: This target seems to be already " "prepared with --apply-log-only.\n"); goto skip_check; } else if (!strcmp(metadata_type, "full-prepared")) { - msg("xtrabackup: This target seems to be already prepared.\n"); + msg("mariabackup: This target seems to be already prepared.\n"); } else { - msg("xtrabackup: This target seems not to have correct " + msg("mariabackup: This target seems not to have correct " "metadata...\n"); exit(EXIT_FAILURE); } if (xtrabackup_incremental) { - msg("xtrabackup: error: applying incremental backup " + msg("mariabackup: error: applying incremental backup " "needs target prepared with --apply-log-only.\n"); exit(EXIT_FAILURE); } skip_check: if (xtrabackup_incremental && metadata_to_lsn != incremental_lsn) { - msg("xtrabackup: error: This incremental backup seems " + msg("mariabackup: error: This incremental backup seems " "not to be proper for the target.\n" - "xtrabackup: Check 'to_lsn' of the target and " + "mariabackup: Check 'to_lsn' of the target and " "'from_lsn' of the incremental.\n"); exit(EXIT_FAILURE); } @@ -5739,7 +5733,7 @@ skip_check: if (xtrabackup_incremental) { err = xb_data_files_init(); if (err != DB_SUCCESS) { - msg("xtrabackup: error: xb_data_files_init() failed " + msg("mariabackup: error: xb_data_files_init() failed " "with error code %lu\n", err); goto error_cleanup; } @@ -5789,8 +5783,8 @@ skip_check: srv_n_write_io_threads = 4; } - msg("xtrabackup: Starting InnoDB instance for recovery.\n" - "xtrabackup: Using %lld bytes for buffer pool " + msg("mariabackup: Starting InnoDB instance for recovery.\n" + "mariabackup: Using %lld bytes for buffer pool " "(set by --use-memory parameter)\n", xtrabackup_use_memory); srv_max_buf_pool_modified_pct = (double)max_buf_pool_modified_pct; @@ -5803,7 +5797,7 @@ skip_check: goto error_cleanup; if (xtrabackup_export) { - msg("xtrabackup: export option is specified.\n"); + msg("mariabackup: export option is specified.\n"); pfs_os_file_t info_file; char info_file_path[FN_REFLEN]; ibool success; @@ -5820,7 +5814,7 @@ skip_check: it = datafiles_iter_new(fil_system); if (it == NULL) { - msg("xtrabackup: Error: datafiles_iter_new() " + msg("mariabackup: Error: datafiles_iter_new() " "failed.\n"); exit(EXIT_FAILURE); } @@ -5867,7 +5861,7 @@ skip_check: table = dict_table_get_low(table_name); if (!table) { - msg("xtrabackup: error: " + msg("mariabackup: error: " "cannot find dictionary " "record of table %s\n", table_name); @@ -5882,7 +5876,7 @@ skip_check: index = dict_table_get_first_index(table); n_index = UT_LIST_GET_LEN(table->indexes); if (n_index > 31) { - msg("xtrabackup: warning: table '%s' has more " + msg("mariabackup: warning: table '%s' has more " "than 31 indexes, .exp file was not " "generated. Table will fail to import " "on server version prior to 5.6.\n", @@ -5898,7 +5892,7 @@ skip_check: strncpy((char *) page + 12, table_name, 500); - msg("xtrabackup: export metadata of " + msg("mariabackup: export metadata of " "table '%s' to file `%s` " "(%lu indexes)\n", table_name, info_file_path, @@ -5912,7 +5906,7 @@ skip_check: strncpy((char *) page + n_index * 512 + 12, index->name, 500); - msg("xtrabackup: name=%s, " + msg("mariabackup: name=%s, " "id.low=%lu, page=%lu\n", index->name, (ulint)(index->id & @@ -5976,17 +5970,17 @@ next_node: && srv_start_lsn < incremental_to_lsn) ||(!xtrabackup_incremental && srv_start_lsn < metadata_to_lsn)) { - msg("xtrabackup: error: " + msg("mariabackup: error: " "The transaction log file is corrupted.\n" - "xtrabackup: error: " + "mariabackup: error: " "The log was not applied to the intended LSN!\n"); - msg("xtrabackup: Log applied to lsn " LSN_PF "\n", + msg("mariabackup: Log applied to lsn " LSN_PF "\n", srv_start_lsn); if (xtrabackup_incremental) { - msg("xtrabackup: The intended lsn is " LSN_PF "\n", + msg("mariabackup: The intended lsn is " LSN_PF "\n", incremental_to_lsn); } else { - msg("xtrabackup: The intended lsn is " LSN_PF "\n", + msg("mariabackup: The intended lsn is " LSN_PF "\n", metadata_to_lsn); } exit(EXIT_FAILURE); @@ -6027,7 +6021,7 @@ next_node: sprintf(filename, "%s/%s", xtrabackup_target_dir, XTRABACKUP_METADATA_FILENAME); if (!xtrabackup_write_metadata(filename)) { - msg("xtrabackup: Error: failed to write metadata " + msg("mariabackup: Error: failed to write metadata " "to '%s'\n", filename); exit(EXIT_FAILURE); } @@ -6035,7 +6029,7 @@ next_node: if(xtrabackup_extra_lsndir) { sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, XTRABACKUP_METADATA_FILENAME); if (!xtrabackup_write_metadata(filename)) { - msg("xtrabackup: Error: failed to write " + msg("mariabackup: Error: failed to write " "metadata to '%s'\n", filename); exit(EXIT_FAILURE); } @@ -6347,7 +6341,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server) if (optend - argv[i] == 15 && !strncmp(argv[i], "--defaults-file", optend - argv[i])) { - msg("xtrabackup: Error: --defaults-file " + msg("mariabackup: Error: --defaults-file " "must be specified first on the command " "line\n"); exit(EXIT_FAILURE); @@ -6356,7 +6350,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server) !strncmp(argv[i], "--defaults-extra-file", optend - argv[i])) { - msg("xtrabackup: Error: --defaults-extra-file " + msg("mariabackup: Error: --defaults-extra-file " "must be specified first on the command " "line\n"); exit(EXIT_FAILURE); @@ -6407,7 +6401,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server) } if (!server_option) { - msg("xtrabackup: Error:" + msg("mariabackup: Error:" " unknown argument: '%s'\n", opt); exit(EXIT_FAILURE); } @@ -6542,7 +6536,7 @@ int main(int argc, char **argv) error = 1; if (error) { - msg("xtrabackup: value '%s' may be wrong format for " + msg("mariabackup: value '%s' may be wrong format for " "incremental option.\n", xtrabackup_incremental); exit(EXIT_FAILURE); } @@ -6552,7 +6546,7 @@ int main(int argc, char **argv) sprintf(filename, "%s/%s", xtrabackup_incremental_basedir, XTRABACKUP_METADATA_FILENAME); if (!xtrabackup_read_metadata(filename)) { - msg("xtrabackup: error: failed to read metadata from " + msg("mariabackup: error: failed to read metadata from " "%s\n", filename); exit(EXIT_FAILURE); } @@ -6565,7 +6559,7 @@ int main(int argc, char **argv) sprintf(filename, "%s/%s", xtrabackup_incremental_dir, XTRABACKUP_METADATA_FILENAME); if (!xtrabackup_read_metadata(filename)) { - msg("xtrabackup: error: failed to read metadata from " + msg("mariabackup: error: failed to read metadata from " "%s\n", filename); exit(EXIT_FAILURE); } @@ -6602,7 +6596,7 @@ int main(int argc, char **argv) } if (xtrabackup_export && innobase_file_per_table == FALSE) { - msg("xtrabackup: auto-enabling --innodb-file-per-table due to " + msg("mariabackup: auto-enabling --innodb-file-per-table due to " "the --export option\n"); innobase_file_per_table = TRUE; } From 433050562965d83228bcab0d39c8ec64058fe8e3 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 23 Oct 2017 14:17:50 +0000 Subject: [PATCH 084/128] Do not use File::Which, it is not always available. --- mysql-test/suite/mariabackup/suite.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/mariabackup/suite.pm b/mysql-test/suite/mariabackup/suite.pm index b96b8a6c39d..9242bbc051f 100644 --- a/mysql-test/suite/mariabackup/suite.pm +++ b/mysql-test/suite/mariabackup/suite.pm @@ -3,7 +3,6 @@ package My::Suite::MariaBackup; @ISA = qw(My::Suite); use My::Find; use File::Basename; -use File::Which; use strict; return "Not run for embedded server" if $::opt_embedded_server; @@ -24,10 +23,13 @@ $ENV{XBSTREAM}= ::mtr_exe_maybe_exists( $ENV{INNOBACKUPEX}= "$mariabackup_exe --innobackupex"; +my $have_qpress = index(`qpress 2>&1`,"Compression") > 0; + + sub skip_combinations { my %skip; $skip{'include/have_file_key_management.inc'} = 'needs file_key_management plugin' unless $ENV{FILE_KEY_MANAGEMENT_SO}; - $skip{'compress_qpress.test'}= 'needs qpress executable in PATH' unless which 'qpress'; + $skip{'compress_qpress.test'}= 'needs qpress executable in PATH' unless $have_qpress; %skip; } From 4ec88ea9c3ec52d996b39167d12a61ab95fdeacc Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 23 Oct 2017 22:01:19 +0000 Subject: [PATCH 085/128] Fix a warning on Win64 --- sql/opt_range.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 9416fc30a0c..3d9c1aef4b8 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -4643,7 +4643,7 @@ TABLE_READ_PLAN *get_best_disjunct_quick(PARAM *param, SEL_IMERGE *imerge, double roru_index_costs; ha_rows roru_total_records; double roru_intersect_part= 1.0; - ulong n_child_scans; + size_t n_child_scans; DBUG_ENTER("get_best_disjunct_quick"); DBUG_PRINT("info", ("Full table scan cost: %g", read_time)); @@ -4878,7 +4878,7 @@ skip_to_ror_scan: (TIME_FOR_COMPARE_ROWID * M_LN2) + get_sweep_read_cost(param, roru_total_records); - DBUG_PRINT("info", ("ROR-union: cost %g, %lu members", + DBUG_PRINT("info", ("ROR-union: cost %g, %zu members", roru_total_cost, n_child_scans)); TRP_ROR_UNION* roru; if (roru_total_cost < read_time) From acb336f75e9e5d3d4a35979b1d9229680d132c39 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Mon, 23 Oct 2017 15:33:13 -0700 Subject: [PATCH 086/128] MDEV-13607 MariaDB crash in fix_semijoin_strategies_for_picked_join_order An overflow of the double variable storing the estimate of the number of rows in a partial join could trigger an assertion failure during the optimization stage. --- mysql-test/r/mdev13607.result | 469 ++++++++++++++++++++++++++++++++++ mysql-test/t/mdev13607.test | 60 +++++ sql/sql_select.cc | 8 +- 3 files changed, 534 insertions(+), 3 deletions(-) create mode 100644 mysql-test/r/mdev13607.result create mode 100644 mysql-test/t/mdev13607.test diff --git a/mysql-test/r/mdev13607.result b/mysql-test/r/mdev13607.result new file mode 100644 index 00000000000..08848bc645b --- /dev/null +++ b/mysql-test/r/mdev13607.result @@ -0,0 +1,469 @@ +# +# Bug mdev-13607: overflow of current_record_count +# +CREATE TABLE t1 (id INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES +(1),(2),(3),(4),(5),(6),(7),(8),(9),(10), +(11),(12),(13),(14),(15),(16),(17),(18),(19),(20), +(21),(22),(23),(24),(25),(26),(27),(28),(29),(30), +(31),(32),(33),(34),(35),(36),(37),(38),(39),(40), +(41),(42),(43),(44),(45),(46),(47),(48),(49),(50); +CREATE TABLE t2 (id INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2); +CREATE TABLE t3 (id INT) ENGINE=InnoDB; +INSERT INTO t3 VALUES (1),(2); +ANALYZE TABLE t1, t2, t3; +Table Op Msg_type Msg_text +test.t1 analyze status OK +test.t2 analyze status OK +test.t3 analyze status OK +explain SELECT * FROM +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_1 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_2 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_3 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_4 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_5 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_6 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_7 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_8 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_9 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_10 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_11 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_12 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_13 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_14 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_15 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_16 +; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY r1 ALL NULL NULL NULL NULL 2 +1 PRIMARY d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +1 PRIMARY r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +1 PRIMARY ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join) +17 DERIVED r1 ALL NULL NULL NULL NULL 2 +17 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +17 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +17 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r1 ALL NULL NULL NULL NULL 2 +16 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +16 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +16 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r1 ALL NULL NULL NULL NULL 2 +15 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +15 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +15 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r1 ALL NULL NULL NULL NULL 2 +14 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +14 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +14 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r1 ALL NULL NULL NULL NULL 2 +13 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +13 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +13 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r1 ALL NULL NULL NULL NULL 2 +12 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +12 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +12 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r1 ALL NULL NULL NULL NULL 2 +11 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +11 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +11 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r1 ALL NULL NULL NULL NULL 2 +10 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +10 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +10 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r1 ALL NULL NULL NULL NULL 2 +9 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +9 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +9 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r1 ALL NULL NULL NULL NULL 2 +8 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +8 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +8 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r1 ALL NULL NULL NULL NULL 2 +7 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +7 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +7 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r1 ALL NULL NULL NULL NULL 2 +6 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +6 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +6 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r1 ALL NULL NULL NULL NULL 2 +5 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +5 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +5 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r1 ALL NULL NULL NULL NULL 2 +4 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +4 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +4 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r1 ALL NULL NULL NULL NULL 2 +3 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) +3 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +3 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join) +DROP TABLE t1,t2,t3; diff --git a/mysql-test/t/mdev13607.test b/mysql-test/t/mdev13607.test new file mode 100644 index 00000000000..45fdb0a74d4 --- /dev/null +++ b/mysql-test/t/mdev13607.test @@ -0,0 +1,60 @@ +--echo # +--echo # Bug mdev-13607: overflow of current_record_count +--echo # + +--source include/have_innodb.inc + +CREATE TABLE t1 (id INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES +(1),(2),(3),(4),(5),(6),(7),(8),(9),(10), +(11),(12),(13),(14),(15),(16),(17),(18),(19),(20), +(21),(22),(23),(24),(25),(26),(27),(28),(29),(30), +(31),(32),(33),(34),(35),(36),(37),(38),(39),(40), +(41),(42),(43),(44),(45),(46),(47),(48),(49),(50); + +CREATE TABLE t2 (id INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2); + +CREATE TABLE t3 (id INT) ENGINE=InnoDB; +INSERT INTO t3 VALUES (1),(2); + +ANALYZE TABLE t1, t2, t3; + +let $q= +SELECT * FROM +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_1 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_2 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_3 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_4 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_5 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_6 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_7 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_8 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_9 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_10 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_11 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_12 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_13 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_14 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_15 +INNER JOIN +(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_16 +; + +eval explain $q; + +DROP TABLE t1,t2,t3; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 8ecc54fc49f..3c2b62a6540 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -7729,9 +7729,11 @@ best_extension_by_limited_search(JOIN *join, best_access_path(join, s, remaining_tables, idx, disable_jbuf, record_count, join->positions + idx, &loose_scan_pos); - /* Compute the cost of extending the plan with 's' */ - - current_record_count= record_count * position->records_read; + /* Compute the cost of extending the plan with 's', avoid overflow */ + if (position->records_read < DBL_MAX / record_count) + current_record_count= record_count * position->records_read; + else + current_record_count= DBL_MAX; current_read_time=read_time + position->read_time + current_record_count / (double) TIME_FOR_COMPARE; From a1a79aa5760ff9595b0089ac6ad4ad917c109a03 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Mon, 23 Oct 2017 15:35:10 -0700 Subject: [PATCH 087/128] MDEV-13776 mysqld got signal 11 on delete returning The method Field_iterator_table::create_item() must take into account that it can be called when processing DELETE RETURNING. --- mysql-test/r/delete_returning.result | 12 ++++++++++++ mysql-test/t/delete_returning.test | 15 +++++++++++++++ sql/table.cc | 3 ++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/delete_returning.result b/mysql-test/r/delete_returning.result index 0618b495a53..3a95de0cdca 100644 --- a/mysql-test/r/delete_returning.result +++ b/mysql-test/r/delete_returning.result @@ -199,3 +199,15 @@ i 2 DROP PROCEDURE p1; DROP TABLE t1; +# +# MDEV-13776: DELETE ... RETURNING with sql_mode='ONLY_FULL_GROUP_BY' +# +set @sql_mode_save= @@sql_mode; +set sql_mode='ONLY_FULL_GROUP_BY'; +CREATE TABLE t1 (id INT); +INSERT INTO t1 VALUE(1),(2),(3); +DELETE FROM t1 WHERE id > 2 RETURNING *; +id +3 +set sql_mode=@sql_mode_save; +DROP TABLE t1; diff --git a/mysql-test/t/delete_returning.test b/mysql-test/t/delete_returning.test index 3790d0905a5..4448a6bcccd 100644 --- a/mysql-test/t/delete_returning.test +++ b/mysql-test/t/delete_returning.test @@ -155,3 +155,18 @@ SELECT * FROM t1; DROP PROCEDURE p1; DROP TABLE t1; +--echo # +--echo # MDEV-13776: DELETE ... RETURNING with sql_mode='ONLY_FULL_GROUP_BY' +--echo # + +set @sql_mode_save= @@sql_mode; +set sql_mode='ONLY_FULL_GROUP_BY'; + +CREATE TABLE t1 (id INT); +INSERT INTO t1 VALUE(1),(2),(3); + +DELETE FROM t1 WHERE id > 2 RETURNING *; + +set sql_mode=@sql_mode_save; + +DROP TABLE t1; diff --git a/sql/table.cc b/sql/table.cc index 54f7bc7b473..38a64348937 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -5260,7 +5260,8 @@ Item *Field_iterator_table::create_item(THD *thd) Item_field *item= new Item_field(thd, &select->context, *ptr); if (item && thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY && - !thd->lex->in_sum_func && select->cur_pos_in_select_list != UNDEF_POS) + !thd->lex->in_sum_func && select->cur_pos_in_select_list != UNDEF_POS && + select->join) { select->join->non_agg_fields.push_back(item); item->marker= select->cur_pos_in_select_list; From 439a7c994a6f01de1a3980c0405fb9e24ae3bd1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 24 Oct 2017 15:20:54 +0300 Subject: [PATCH 088/128] MDEV-14051 'Undo log record is too big.' error occurring in very narrow range of string lengths InnoDB was writing unnecessary information to the update undo log records. Most notably, if an indexed column is updated, the old value of the column would be logged twice: first as part of the update vector, and then another time because it is an indexed column. Because the InnoDB undo log record must fit in a single page, this would cause unnecessary failure of certain updates. Even after this fix, InnoDB still seems to be unnecessarily logging indexed column values for non-updated columns. It seems that non-updated secondary index columns only need to be logged when a PRIMARY KEY column is updated. To reduce risk, we are not fixing this remaining flaw in GA versions. trx_undo_page_report_modify(): Log updated indexed columns only once. --- mysql-test/suite/innodb/r/innodb-index.result | 3 +- mysql-test/suite/innodb/r/undo_log.result | 142 ++++++++++++++++++ mysql-test/suite/innodb/t/innodb-index.test | 3 +- mysql-test/suite/innodb/t/undo_log.test | 139 +++++++++++++++++ storage/innobase/trx/trx0rec.c | 24 ++- storage/xtradb/trx/trx0rec.c | 24 ++- 6 files changed, 331 insertions(+), 4 deletions(-) create mode 100644 mysql-test/suite/innodb/r/undo_log.result create mode 100644 mysql-test/suite/innodb/t/undo_log.test diff --git a/mysql-test/suite/innodb/r/innodb-index.result b/mysql-test/suite/innodb/r/innodb-index.result index 5b0fccbe615..5676b6d12cd 100644 --- a/mysql-test/suite/innodb/r/innodb-index.result +++ b/mysql-test/suite/innodb/r/innodb-index.result @@ -1046,8 +1046,9 @@ PRIMARY KEY (b(10), a), INDEX (c(767)), INDEX(b(767)) ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; INSERT INTO bug12547647 VALUES (5,repeat('khdfo5AlOq',1900),repeat('g',7751)); COMMIT; +BEGIN; UPDATE bug12547647 SET c = REPEAT('b',16928); -ERROR HY000: Undo log record is too big. +ROLLBACK; DROP TABLE bug12547647; set global innodb_file_per_table=0; set global innodb_file_format=Antelope; diff --git a/mysql-test/suite/innodb/r/undo_log.result b/mysql-test/suite/innodb/r/undo_log.result new file mode 100644 index 00000000000..a40c6b5b3bf --- /dev/null +++ b/mysql-test/suite/innodb/r/undo_log.result @@ -0,0 +1,142 @@ +CREATE TABLE test_tab ( +a_str_18 mediumtext, +b_str_3 varchar(32) DEFAULT NULL, +a_str_13 mediumtext, +b_str_5 varchar(40) DEFAULT NULL, +b_str_6 varchar(50) DEFAULT NULL, +b_str_7 char(32) DEFAULT NULL, +b_str_8 varchar(32) DEFAULT NULL, +b_str_9 varchar(255) DEFAULT NULL, +a_str_28 char(255) DEFAULT NULL, +a_str_27 varchar(255) DEFAULT NULL, +b_str_10 varchar(32) DEFAULT NULL, +a_str_26 varchar(255) DEFAULT NULL, +a_str_6 varchar(50) DEFAULT NULL, +b_str_11 varchar(32) DEFAULT NULL, +b_str_12 varchar(255) DEFAULT NULL, +b_str_13 char(32) DEFAULT NULL, +b_str_14 varchar(32) DEFAULT NULL, +b_str_15 char(32) DEFAULT NULL, +b_str_16 char(32) DEFAULT NULL, +b_str_17 varchar(32) DEFAULT NULL, +b_str_18 varchar(32) DEFAULT NULL, +a_str_25 varchar(40) DEFAULT NULL, +b_str_19 varchar(255) DEFAULT NULL, +a_str_23 varchar(40) DEFAULT NULL, +b_str_20 varchar(32) DEFAULT NULL, +a_str_21 varchar(255) DEFAULT NULL, +a_str_20 varchar(255) DEFAULT NULL, +a_str_39 varchar(255) DEFAULT NULL, +a_str_38 varchar(255) DEFAULT NULL, +a_str_37 varchar(255) DEFAULT NULL, +b_str_21 char(32) DEFAULT NULL, +b_str_23 varchar(80) DEFAULT NULL, +b_str_24 varchar(32) DEFAULT NULL, +b_str_25 varchar(32) DEFAULT NULL, +b_str_26 char(32) NOT NULL DEFAULT '', +b_str_27 varchar(255) DEFAULT NULL, +a_str_36 varchar(255) DEFAULT NULL, +a_str_33 varchar(100) DEFAULT NULL, +a_ref_10 char(32) DEFAULT NULL, +b_str_28 char(32) DEFAULT NULL, +b_str_29 char(32) DEFAULT NULL, +a_ref_6 char(32) DEFAULT NULL, +a_ref_12 varchar(32) DEFAULT NULL, +a_ref_11 varchar(32) DEFAULT NULL, +a_str_49 varchar(40) DEFAULT NULL, +b_str_30 varchar(32) DEFAULT NULL, +a_ref_3 varchar(32) DEFAULT NULL, +a_str_48 varchar(40) DEFAULT NULL, +a_ref_1 char(32) DEFAULT NULL, +b_str_31 varchar(32) DEFAULT NULL, +b_str_32 varchar(255) DEFAULT NULL, +b_str_33 char(32) DEFAULT NULL, +b_str_34 varchar(32) DEFAULT NULL, +a_str_47 varchar(40) DEFAULT NULL, +b_str_36 varchar(255) DEFAULT NULL, +a_str_46 varchar(40) DEFAULT NULL, +a_str_45 varchar(255) DEFAULT NULL, +b_str_38 varchar(32) DEFAULT NULL, +b_str_39 char(32) DEFAULT NULL, +b_str_40 varchar(32) DEFAULT NULL, +a_str_41 varchar(255) DEFAULT NULL, +b_str_41 varchar(32) DEFAULT NULL, +PRIMARY KEY (b_str_26), +UNIQUE KEY a_str_47 (a_str_47), +UNIQUE KEY a_str_49 (a_str_49), +UNIQUE KEY a_str_33 (a_str_33), +UNIQUE KEY a_str_46 (a_str_46), +UNIQUE KEY a_str_48 (a_str_48), +KEY b_str_18 (b_str_18), +KEY a_str_26 (a_str_26), +KEY b_str_27 (b_str_27,b_str_19), +KEY b_str_41 (b_str_41), +KEY b_str_15 (b_str_15), +KEY a_str_20 (a_str_20), +KEY b_str_17 (b_str_17), +KEY b_str_40 (b_str_40), +KEY b_str_24 (b_str_24), +KEY b_str_10 (b_str_10), +KEY b_str_16 (b_str_16), +KEY b_str_29 (b_str_29), +KEY a_str_41 (a_str_41), +KEY b_str_7 (b_str_7), +KEY a_str_45 (a_str_45), +KEY a_str_28 (a_str_28), +KEY a_str_37 (a_str_37), +KEY b_str_6 (b_str_6), +KEY a_ref_6 (a_ref_6), +KEY b_str_34 (b_str_34), +KEY b_str_38 (b_str_38), +KEY a_ref_10 (a_ref_10), +KEY b_str_21 (b_str_21), +KEY b_str_23 (b_str_23,b_str_19), +KEY b_str_33 (b_str_33), +KEY a_ref_12 (a_ref_12), +KEY a_str_18 (a_str_18(255)), +KEY a_str_39 (a_str_39), +KEY a_str_27 (a_str_27), +KEY a_str_25 (a_str_25), +KEY b_str_9 (b_str_9), +KEY a_str_23 (a_str_23), +KEY b_str_8 (b_str_8), +KEY a_str_21 (a_str_21), +KEY b_str_3 (b_str_3), +KEY b_str_30 (b_str_30), +KEY b_str_12 (b_str_12), +KEY b_str_25 (b_str_25), +KEY b_str_13 (b_str_13), +KEY a_str_38 (a_str_38), +KEY a_str_13 (a_str_13(255)), +KEY a_str_36 (a_str_36), +KEY b_str_28 (b_str_28), +KEY b_str_19 (b_str_19), +KEY b_str_11 (b_str_11), +KEY a_ref_1 (a_ref_1), +KEY b_str_20 (b_str_20), +KEY b_str_14 (b_str_14), +KEY a_ref_3 (a_ref_3), +KEY b_str_39 (b_str_39), +KEY b_str_32 (b_str_32), +KEY a_str_6 (a_str_6), +KEY b_str_5 (b_str_5), +KEY b_str_31 (b_str_31), +KEY a_ref_11 (a_ref_11) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT; +BEGIN; +INSERT INTO test_tab (b_str_26, a_str_13, a_str_18) VALUES +('a', REPEAT('f',4031), REPEAT('g', 4031)); +UPDATE test_tab SET a_str_13=REPEAT('h',4032), a_str_18=REPEAT('i',4032); +SELECT 'Reducing length to 4030'; +Reducing length to 4030 +Reducing length to 4030 +UPDATE test_tab SET a_str_13=REPEAT('j',4030), a_str_18=REPEAT('k',4030); +UPDATE test_tab SET a_str_13=REPEAT('l',4031), a_str_18=REPEAT('m',4031); +ROLLBACK; +SELECT COUNT(*) FROM test_tab; +COUNT(*) +0 +CHECK TABLE test_tab; +Table Op Msg_type Msg_text +test.test_tab check status OK +DROP TABLE test_tab; diff --git a/mysql-test/suite/innodb/t/innodb-index.test b/mysql-test/suite/innodb/t/innodb-index.test index cea9055b873..a9829b4f500 100644 --- a/mysql-test/suite/innodb/t/innodb-index.test +++ b/mysql-test/suite/innodb/t/innodb-index.test @@ -532,9 +532,10 @@ PRIMARY KEY (b(10), a), INDEX (c(767)), INDEX(b(767)) INSERT INTO bug12547647 VALUES (5,repeat('khdfo5AlOq',1900),repeat('g',7751)); COMMIT; +BEGIN; # The following used to cause infinite undo log allocation. ---error ER_UNDO_RECORD_TOO_BIG UPDATE bug12547647 SET c = REPEAT('b',16928); +ROLLBACK; DROP TABLE bug12547647; eval set global innodb_file_per_table=$per_table; diff --git a/mysql-test/suite/innodb/t/undo_log.test b/mysql-test/suite/innodb/t/undo_log.test new file mode 100644 index 00000000000..c1a98793d91 --- /dev/null +++ b/mysql-test/suite/innodb/t/undo_log.test @@ -0,0 +1,139 @@ +--source include/have_innodb.inc +CREATE TABLE test_tab ( +a_str_18 mediumtext, +b_str_3 varchar(32) DEFAULT NULL, +a_str_13 mediumtext, +b_str_5 varchar(40) DEFAULT NULL, +b_str_6 varchar(50) DEFAULT NULL, +b_str_7 char(32) DEFAULT NULL, +b_str_8 varchar(32) DEFAULT NULL, +b_str_9 varchar(255) DEFAULT NULL, +a_str_28 char(255) DEFAULT NULL, +a_str_27 varchar(255) DEFAULT NULL, +b_str_10 varchar(32) DEFAULT NULL, +a_str_26 varchar(255) DEFAULT NULL, +a_str_6 varchar(50) DEFAULT NULL, +b_str_11 varchar(32) DEFAULT NULL, +b_str_12 varchar(255) DEFAULT NULL, +b_str_13 char(32) DEFAULT NULL, +b_str_14 varchar(32) DEFAULT NULL, +b_str_15 char(32) DEFAULT NULL, +b_str_16 char(32) DEFAULT NULL, +b_str_17 varchar(32) DEFAULT NULL, +b_str_18 varchar(32) DEFAULT NULL, +a_str_25 varchar(40) DEFAULT NULL, +b_str_19 varchar(255) DEFAULT NULL, +a_str_23 varchar(40) DEFAULT NULL, +b_str_20 varchar(32) DEFAULT NULL, +a_str_21 varchar(255) DEFAULT NULL, +a_str_20 varchar(255) DEFAULT NULL, +a_str_39 varchar(255) DEFAULT NULL, +a_str_38 varchar(255) DEFAULT NULL, +a_str_37 varchar(255) DEFAULT NULL, +b_str_21 char(32) DEFAULT NULL, +b_str_23 varchar(80) DEFAULT NULL, +b_str_24 varchar(32) DEFAULT NULL, +b_str_25 varchar(32) DEFAULT NULL, +b_str_26 char(32) NOT NULL DEFAULT '', +b_str_27 varchar(255) DEFAULT NULL, +a_str_36 varchar(255) DEFAULT NULL, +a_str_33 varchar(100) DEFAULT NULL, +a_ref_10 char(32) DEFAULT NULL, +b_str_28 char(32) DEFAULT NULL, +b_str_29 char(32) DEFAULT NULL, +a_ref_6 char(32) DEFAULT NULL, +a_ref_12 varchar(32) DEFAULT NULL, +a_ref_11 varchar(32) DEFAULT NULL, +a_str_49 varchar(40) DEFAULT NULL, +b_str_30 varchar(32) DEFAULT NULL, +a_ref_3 varchar(32) DEFAULT NULL, +a_str_48 varchar(40) DEFAULT NULL, +a_ref_1 char(32) DEFAULT NULL, +b_str_31 varchar(32) DEFAULT NULL, +b_str_32 varchar(255) DEFAULT NULL, +b_str_33 char(32) DEFAULT NULL, +b_str_34 varchar(32) DEFAULT NULL, +a_str_47 varchar(40) DEFAULT NULL, +b_str_36 varchar(255) DEFAULT NULL, +a_str_46 varchar(40) DEFAULT NULL, +a_str_45 varchar(255) DEFAULT NULL, +b_str_38 varchar(32) DEFAULT NULL, +b_str_39 char(32) DEFAULT NULL, +b_str_40 varchar(32) DEFAULT NULL, +a_str_41 varchar(255) DEFAULT NULL, +b_str_41 varchar(32) DEFAULT NULL, +PRIMARY KEY (b_str_26), +UNIQUE KEY a_str_47 (a_str_47), +UNIQUE KEY a_str_49 (a_str_49), +UNIQUE KEY a_str_33 (a_str_33), +UNIQUE KEY a_str_46 (a_str_46), +UNIQUE KEY a_str_48 (a_str_48), +KEY b_str_18 (b_str_18), +KEY a_str_26 (a_str_26), +KEY b_str_27 (b_str_27,b_str_19), +KEY b_str_41 (b_str_41), +KEY b_str_15 (b_str_15), +KEY a_str_20 (a_str_20), +KEY b_str_17 (b_str_17), +KEY b_str_40 (b_str_40), +KEY b_str_24 (b_str_24), +KEY b_str_10 (b_str_10), +KEY b_str_16 (b_str_16), +KEY b_str_29 (b_str_29), +KEY a_str_41 (a_str_41), +KEY b_str_7 (b_str_7), +KEY a_str_45 (a_str_45), +KEY a_str_28 (a_str_28), +KEY a_str_37 (a_str_37), +KEY b_str_6 (b_str_6), +KEY a_ref_6 (a_ref_6), +KEY b_str_34 (b_str_34), +KEY b_str_38 (b_str_38), +KEY a_ref_10 (a_ref_10), +KEY b_str_21 (b_str_21), +KEY b_str_23 (b_str_23,b_str_19), +KEY b_str_33 (b_str_33), +KEY a_ref_12 (a_ref_12), +KEY a_str_18 (a_str_18(255)), +KEY a_str_39 (a_str_39), +KEY a_str_27 (a_str_27), +KEY a_str_25 (a_str_25), +KEY b_str_9 (b_str_9), +KEY a_str_23 (a_str_23), +KEY b_str_8 (b_str_8), +KEY a_str_21 (a_str_21), +KEY b_str_3 (b_str_3), +KEY b_str_30 (b_str_30), +KEY b_str_12 (b_str_12), +KEY b_str_25 (b_str_25), +KEY b_str_13 (b_str_13), +KEY a_str_38 (a_str_38), +KEY a_str_13 (a_str_13(255)), +KEY a_str_36 (a_str_36), +KEY b_str_28 (b_str_28), +KEY b_str_19 (b_str_19), +KEY b_str_11 (b_str_11), +KEY a_ref_1 (a_ref_1), +KEY b_str_20 (b_str_20), +KEY b_str_14 (b_str_14), +KEY a_ref_3 (a_ref_3), +KEY b_str_39 (b_str_39), +KEY b_str_32 (b_str_32), +KEY a_str_6 (a_str_6), +KEY b_str_5 (b_str_5), +KEY b_str_31 (b_str_31), +KEY a_ref_11 (a_ref_11) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT; + +BEGIN; +INSERT INTO test_tab (b_str_26, a_str_13, a_str_18) VALUES +('a', REPEAT('f',4031), REPEAT('g', 4031)); + +UPDATE test_tab SET a_str_13=REPEAT('h',4032), a_str_18=REPEAT('i',4032); +SELECT 'Reducing length to 4030'; +UPDATE test_tab SET a_str_13=REPEAT('j',4030), a_str_18=REPEAT('k',4030); +UPDATE test_tab SET a_str_13=REPEAT('l',4031), a_str_18=REPEAT('m',4031); +ROLLBACK; +SELECT COUNT(*) FROM test_tab; +CHECK TABLE test_tab; +DROP TABLE test_tab; diff --git a/storage/innobase/trx/trx0rec.c b/storage/innobase/trx/trx0rec.c index f80f58493aa..cc209bbc213 100644 --- a/storage/innobase/trx/trx0rec.c +++ b/storage/innobase/trx/trx0rec.c @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -773,7 +774,25 @@ trx_undo_page_report_modify( const dict_col_t* col = dict_table_get_nth_col(table, col_no); - if (col->ord_part) { + if (!col->ord_part) { + continue; + } + + if (update) { + for (i = 0; i < update->n_fields; i++) { + const dict_field_t* f + = dict_index_get_nth_field( + index, + upd_get_nth_field( + update, i) + ->field_no); + if (f->col == col) { + goto already_logged; + } + } + } + + if (TRUE) { ulint pos; /* Write field number to undo log */ @@ -823,6 +842,9 @@ trx_undo_page_report_modify( ptr += flen; } } + +already_logged: + continue; } mach_write_to_2(old_ptr, ptr - old_ptr); diff --git a/storage/xtradb/trx/trx0rec.c b/storage/xtradb/trx/trx0rec.c index ef42152aeb7..fc38f81c594 100644 --- a/storage/xtradb/trx/trx0rec.c +++ b/storage/xtradb/trx/trx0rec.c @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -786,7 +787,25 @@ trx_undo_page_report_modify( const dict_col_t* col = dict_table_get_nth_col(table, col_no); - if (col->ord_part) { + if (!col->ord_part) { + continue; + } + + if (update) { + for (i = 0; i < update->n_fields; i++) { + const dict_field_t* f + = dict_index_get_nth_field( + index, + upd_get_nth_field( + update, i) + ->field_no); + if (f->col == col) { + goto already_logged; + } + } + } + + if (TRUE) { ulint pos; /* Write field number to undo log */ @@ -836,6 +855,9 @@ trx_undo_page_report_modify( ptr += flen; } } + +already_logged: + continue; } mach_write_to_2(old_ptr, ptr - old_ptr); From b56560ed39023c1058b5e82921b2e0a728904d0c Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 24 Oct 2017 15:56:54 +0000 Subject: [PATCH 089/128] Fix a warning on Win64 --- sql/log_event.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/log_event.cc b/sql/log_event.cc index 8840861bfdc..24b7fe38b99 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -8673,7 +8673,7 @@ User_var_log_event(const char* buf, uint event_len, Old events will not have this extra byte, thence, we keep the flags set to UNDEF_F. */ - uint bytes_read= ((val + val_len) - buf_start); + uint bytes_read= (uint)((val + val_len) - buf_start); if ((data_written - bytes_read) > 0) { flags= (uint) *(buf + UV_VAL_IS_NULL + UV_VAL_TYPE_SIZE + From 632f0e71f87638353260e3cf4f8d39dabd29f450 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 24 Oct 2017 16:03:05 +0000 Subject: [PATCH 090/128] Fix my_safe_kill's create crashdump functionality on Windows. If pid belongs to my_safe_process.exe, create crashdump of my_safe_process's child, because my_safe_process is only used to start other programs. --- .../lib/My/SafeProcess/safe_kill_win.cc | 83 +++++++++++++++---- 1 file changed, 65 insertions(+), 18 deletions(-) diff --git a/mysql-test/lib/My/SafeProcess/safe_kill_win.cc b/mysql-test/lib/My/SafeProcess/safe_kill_win.cc index e5ec33af571..37442b2108c 100644 --- a/mysql-test/lib/My/SafeProcess/safe_kill_win.cc +++ b/mysql-test/lib/My/SafeProcess/safe_kill_win.cc @@ -26,7 +26,30 @@ #include #include #include -#include +#include +#include + +static DWORD find_child(DWORD pid) +{ + HANDLE h= NULL; + PROCESSENTRY32 pe={ 0 }; + DWORD child_pid = 0; + pe.dwSize = sizeof(PROCESSENTRY32); + h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + if(h == INVALID_HANDLE_VALUE) + return 0; + + for (BOOL ret = Process32First(h, &pe); ret; ret = Process32Next(h, &pe)) + { + if (pe.th32ParentProcessID == pid) + { + child_pid = pe.th32ProcessID; + break; + } + } + CloseHandle(h); + return (child_pid); +} static int create_dump(DWORD pid) { @@ -37,23 +60,46 @@ static int create_dump(DWORD pid) HANDLE file= INVALID_HANDLE_VALUE; char *p; - process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, (DWORD)pid); - if (!process) + for(;;) { - fprintf(stderr,"safe_kill : cannot open process pid=%u to create dump, last error %u\n", - pid, GetLastError()); - goto exit; + process= OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, (DWORD)pid); + if (!process) + { + fprintf(stderr,"safe_kill : cannot open process pid=%u to create dump, last error %u\n", + pid, GetLastError()); + goto exit; + } + + DWORD size= MAX_PATH; + if (QueryFullProcessImageName(process, 0, path, &size) == 0) + { + fprintf(stderr,"safe_kill : cannot read process path for pid %u, last error %u\n", + pid, GetLastError()); + goto exit; + } + const char *filename= strrchr(path, '\\'); + if (filename) + { + filename++; + // We are not interested in my_safe_process.exe, + // since it is only used to start up other programs. + // We're interested however in my_safe_processes' child. + if (strcmp(filename, "my_safe_process.exe") == 0) + { + pid= find_child(pid); + if (!pid) + { + fprintf(stderr,"safe_kill : can't find child process for safe_process.exe\n"); + goto exit; + } + CloseHandle(process); + } + else + break; + } } - DWORD size = MAX_PATH; - if (QueryFullProcessImageName(process, 0, path, &size) == 0) - { - fprintf(stderr,"safe_kill : cannot read process path for pid %u, last error %u\n", - pid, GetLastError()); - goto exit; - } - - if ((p = strrchr(path, '.')) == 0) + if ((p= strrchr(path, '.')) == 0) p= path + strlen(path); strncpy(p, ".dmp", path + MAX_PATH - p); @@ -61,7 +107,7 @@ static int create_dump(DWORD pid) /* Create dump in current directory.*/ const char *filename= strrchr(path, '\\'); if (filename == 0) - filename = path; + filename= path; else filename++; @@ -71,7 +117,7 @@ static int create_dump(DWORD pid) goto exit; } - file = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, + file= CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); if (file == INVALID_HANDLE_VALUE) @@ -88,7 +134,7 @@ static int create_dump(DWORD pid) goto exit; } - ret = 0; + ret= 0; fprintf(stderr, "Minidump written to %s, directory %s\n", filename, working_dir); exit: @@ -100,6 +146,7 @@ exit: return ret; } + int main(int argc, const char** argv ) { DWORD pid= -1; From 24bffb080bd0673146b79fe95a65febc2648bba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 24 Oct 2017 23:19:54 +0300 Subject: [PATCH 091/128] MDEV-13918 Race condition between INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS and ALTER/DROP/TRUNCATE TABLE MDEV-14021 Failing assertion: table->get_ref_count() == 0 on ALTER TABLE with implicit ALGORITHM=INPLACE Post-merge fix: Remove the now-useless use of table reference count. The dict_operation_lock S-latch whose use was introduced in the 10.0 fix will prevent the table from disappearing due to concurrent DDL operations (DROP, table-rebuilding ALTER, TRUNCATE). --- storage/innobase/handler/i_s.cc | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index 19f3fbc4dd9..c9525f36c13 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -6433,7 +6433,6 @@ i_s_sys_tables_fill_table_stats( while (rec) { const char* err_msg; dict_table_t* table_rec; - ulint ref_count; /* Fetch the dict_table_t structure corresponding to this SYS_TABLES record */ @@ -6441,16 +6440,7 @@ i_s_sys_tables_fill_table_stats( heap, rec, &table_rec, DICT_TABLE_LOAD_FROM_CACHE, &mtr); - if (table_rec != NULL) { - ut_ad(err_msg == NULL); - - ref_count = table_rec->get_ref_count(); - - /* Protect the dict_table_t object by incrementing - the reference count. */ - table_rec->acquire(); - } - + ulint ref_count = table_rec ? table_rec->get_ref_count() : 0; mutex_exit(&dict_sys->mutex); DBUG_EXECUTE_IF("test_sys_tablestats", { @@ -6459,9 +6449,11 @@ i_s_sys_tables_fill_table_stats( }}); if (table_rec != NULL) { + ut_ad(err_msg == NULL); i_s_dict_fill_sys_tablestats(thd, table_rec, ref_count, tables->table); } else { + ut_ad(err_msg != NULL); push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_CANT_FIND_SYSTEM_REC, "%s", err_msg); @@ -6474,10 +6466,6 @@ i_s_sys_tables_fill_table_stats( rw_lock_s_lock(dict_operation_lock); mutex_enter(&dict_sys->mutex); - if (table_rec != NULL) { - table_rec->release(); - } - mtr_start(&mtr); rec = dict_getnext_system(&pcur, &mtr); } From f7090df712d56148e5c7e3c72b9aee0e50525350 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Oct 2017 20:59:54 +0200 Subject: [PATCH 092/128] MDEV-13968 sst fails with "WSREP_SST_OPT_PORT: readonly variable" followup for 4c2c057d404 fix broken script (set -u) --- scripts/wsrep_sst_common.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/wsrep_sst_common.sh b/scripts/wsrep_sst_common.sh index 3ffaf8b10ef..9b09935abbf 100644 --- a/scripts/wsrep_sst_common.sh +++ b/scripts/wsrep_sst_common.sh @@ -124,8 +124,8 @@ readonly WSREP_SST_OPT_BYPASS readonly WSREP_SST_OPT_BINLOG readonly WSREP_SST_OPT_CONF_SUFFIX -if [ -n "$WSREP_SST_OPT_ADDR_PORT" ]; then - if [ -n "$WSREP_SST_OPT_PORT" ]; then +if [ -n "${WSREP_SST_OPT_ADDR_PORT:-}" ]; then + if [ -n "${WSREP_SST_OPT_PORT:-}" ]; then if [ "$WSREP_SST_OPT_PORT" != "$WSREP_SST_OPT_ADDR_PORT" ]; then wsrep_log_error "port in --port=$WSREP_SST_OPT_PORT differs from port in --address=$WSREP_SST_OPT_ADDR" exit 2 From 42e3e574260dc6ccfe161f8c0d8e8af41e599353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 12 Oct 2017 16:21:21 +0300 Subject: [PATCH 093/128] MDEV-13626: Merge InnoDB test cases from MySQL 5.7 Add missing innodb_gis tests. --- mysql-test/include/innodb_gis_undo.inc | 83 + .../suite/innodb_gis/r/bug16236208.result | 43 + .../suite/innodb_gis/r/bug16266012.result | 9 + .../suite/innodb_gis/r/bug17057168.result | 24 + mysql-test/suite/innodb_gis/r/geometry.result | 1150 +++++++++++ .../suite/innodb_gis/r/gis_split_inf.result | 23 + .../suite/innodb_gis/r/gis_split_nan.result | 292 +++ .../suite/innodb_gis/r/kill_server.result | 41 + mysql-test/suite/innodb_gis/r/multi_pk.result | 57 + .../suite/innodb_gis/r/point_basic.result | 1531 ++++++++++++++ .../suite/innodb_gis/r/point_big.result | 549 +++++ .../innodb_gis/r/repeatable_spatial.result | 154 ++ mysql-test/suite/innodb_gis/r/rollback.result | 416 ++++ .../suite/innodb_gis/r/row_format.result | 1588 ++++++++++++++ .../suite/innodb_gis/r/rtree_compress.result | 48 + .../suite/innodb_gis/r/rtree_compress2.result | 25 + .../innodb_gis/r/rtree_concurrent_srch.result | 312 +++ .../suite/innodb_gis/r/rtree_crash.result | 41 + .../innodb_gis/r/rtree_create_inplace.result | 35 + .../suite/innodb_gis/r/rtree_debug.result | 65 + .../innodb_gis/r/rtree_drop_index.result | 18 + .../suite/innodb_gis/r/rtree_estimate.result | 161 ++ .../suite/innodb_gis/r/rtree_multi_pk.result | 155 ++ .../suite/innodb_gis/r/rtree_old.result | 1821 +++++++++++++++++ .../suite/innodb_gis/r/rtree_purge.result | 23 + .../suite/innodb_gis/r/rtree_recovery.result | 61 + .../suite/innodb_gis/r/rtree_rollback1.result | 43 + .../suite/innodb_gis/r/rtree_rollback2.result | 17 + .../suite/innodb_gis/r/rtree_search.result | 252 +++ .../suite/innodb_gis/r/rtree_split.result | 86 + .../suite/innodb_gis/r/rtree_undo.result | 272 +++ mysql-test/suite/innodb_gis/r/types.result | 80 + .../suite/innodb_gis/r/update_root.result | 19 + .../suite/innodb_gis/t/bug16236208.test | 64 + .../suite/innodb_gis/t/bug16266012.test | 18 + .../suite/innodb_gis/t/bug17057168.test | 32 + mysql-test/suite/innodb_gis/t/geometry.test | 704 +++++++ .../suite/innodb_gis/t/gis_split_inf.test | 31 + .../suite/innodb_gis/t/gis_split_nan.test | 297 +++ .../suite/innodb_gis/t/kill_server.test | 64 + mysql-test/suite/innodb_gis/t/multi_pk.test | 80 + .../suite/innodb_gis/t/point_basic.test | 801 ++++++++ mysql-test/suite/innodb_gis/t/point_big.test | 322 +++ .../innodb_gis/t/repeatable_spatial.test | 241 +++ mysql-test/suite/innodb_gis/t/rollback.test | 480 +++++ mysql-test/suite/innodb_gis/t/row_format.test | 34 + .../suite/innodb_gis/t/rtree_compress.test | 64 + .../suite/innodb_gis/t/rtree_compress2.test | 58 + .../innodb_gis/t/rtree_concurrent_srch.test | 451 ++++ .../innodb_gis/t/rtree_create_inplace.test | 49 + .../suite/innodb_gis/t/rtree_debug.test | 73 + .../suite/innodb_gis/t/rtree_drop_index.test | 25 + .../suite/innodb_gis/t/rtree_estimate.test | 79 + .../suite/innodb_gis/t/rtree_multi_pk.test | 125 ++ mysql-test/suite/innodb_gis/t/rtree_old.test | 1014 +++++++++ .../suite/innodb_gis/t/rtree_purge.test | 52 + .../suite/innodb_gis/t/rtree_recovery.test | 77 + .../suite/innodb_gis/t/rtree_rollback1.test | 54 + .../suite/innodb_gis/t/rtree_rollback2.test | 34 + .../suite/innodb_gis/t/rtree_search.test | 140 ++ .../suite/innodb_gis/t/rtree_split.test | 102 + mysql-test/suite/innodb_gis/t/rtree_undo.test | 38 + mysql-test/suite/innodb_gis/t/types.test | 89 + .../suite/innodb_gis/t/update_root.test | 39 + 64 files changed, 15225 insertions(+) create mode 100644 mysql-test/include/innodb_gis_undo.inc create mode 100644 mysql-test/suite/innodb_gis/r/bug16236208.result create mode 100644 mysql-test/suite/innodb_gis/r/bug16266012.result create mode 100644 mysql-test/suite/innodb_gis/r/bug17057168.result create mode 100644 mysql-test/suite/innodb_gis/r/geometry.result create mode 100644 mysql-test/suite/innodb_gis/r/gis_split_inf.result create mode 100644 mysql-test/suite/innodb_gis/r/gis_split_nan.result create mode 100644 mysql-test/suite/innodb_gis/r/kill_server.result create mode 100644 mysql-test/suite/innodb_gis/r/multi_pk.result create mode 100644 mysql-test/suite/innodb_gis/r/point_basic.result create mode 100644 mysql-test/suite/innodb_gis/r/point_big.result create mode 100644 mysql-test/suite/innodb_gis/r/repeatable_spatial.result create mode 100644 mysql-test/suite/innodb_gis/r/rollback.result create mode 100644 mysql-test/suite/innodb_gis/r/row_format.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_compress.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_compress2.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_crash.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_create_inplace.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_debug.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_drop_index.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_estimate.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_multi_pk.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_old.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_purge.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_recovery.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_rollback1.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_rollback2.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_search.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_split.result create mode 100644 mysql-test/suite/innodb_gis/r/rtree_undo.result create mode 100644 mysql-test/suite/innodb_gis/r/types.result create mode 100644 mysql-test/suite/innodb_gis/r/update_root.result create mode 100644 mysql-test/suite/innodb_gis/t/bug16236208.test create mode 100644 mysql-test/suite/innodb_gis/t/bug16266012.test create mode 100644 mysql-test/suite/innodb_gis/t/bug17057168.test create mode 100644 mysql-test/suite/innodb_gis/t/geometry.test create mode 100644 mysql-test/suite/innodb_gis/t/gis_split_inf.test create mode 100644 mysql-test/suite/innodb_gis/t/gis_split_nan.test create mode 100644 mysql-test/suite/innodb_gis/t/kill_server.test create mode 100644 mysql-test/suite/innodb_gis/t/multi_pk.test create mode 100644 mysql-test/suite/innodb_gis/t/point_basic.test create mode 100644 mysql-test/suite/innodb_gis/t/point_big.test create mode 100644 mysql-test/suite/innodb_gis/t/repeatable_spatial.test create mode 100644 mysql-test/suite/innodb_gis/t/rollback.test create mode 100644 mysql-test/suite/innodb_gis/t/row_format.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_compress.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_compress2.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_concurrent_srch.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_create_inplace.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_debug.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_drop_index.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_estimate.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_multi_pk.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_old.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_purge.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_recovery.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_rollback1.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_rollback2.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_search.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_split.test create mode 100644 mysql-test/suite/innodb_gis/t/rtree_undo.test create mode 100644 mysql-test/suite/innodb_gis/t/types.test create mode 100644 mysql-test/suite/innodb_gis/t/update_root.test diff --git a/mysql-test/include/innodb_gis_undo.inc b/mysql-test/include/innodb_gis_undo.inc new file mode 100644 index 00000000000..075c7d1274e --- /dev/null +++ b/mysql-test/include/innodb_gis_undo.inc @@ -0,0 +1,83 @@ + +eval CREATE TABLE t1 ( + p INT NOT NULL AUTO_INCREMENT, + g LINESTRING NOT NULL, + PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=$row_format; + +if ($index == 'spatial_none') { + eval ALTER TABLE t1 ADD INDEX prefix_idx (g($prefix_size)); +} + +if ($index == 'spatial_only') { + ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +} + +if ($index == 'spatial_mixed') { + ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); + eval ALTER TABLE t1 ADD INDEX prefix_idx (g($prefix_size)); +} + +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; + +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; + +ROLLBACK; + +connection con1; +--echo # disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; SELECT * FROM t0; + +connection default; +DELETE FROM t1 WHERE p = 3; + +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; + +if ($index == 'spatial_none') { + ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +} + +if ($index == 'spatial_only') { + eval ALTER TABLE t1 ADD INDEX prefix_idx (g($prefix_size)); +} + +if ($index == 'spatial_mixed') { + ALTER TABLE t1 DROP INDEX spatial_idx, DROP INDEX prefix_idx; +} + +connection con1; +--echo # enable purge +COMMIT; + +connection default; +DELETE FROM t1 WHERE p = 2; + +--echo # wait for purge to process the update_undo records. +--source include/wait_innodb_all_purged.inc + +eval CREATE TABLE t2 ( + p INT PRIMARY KEY, + g1 POINT NOT NULL, + g2 POINT NOT NULL, + g3 LINESTRING NOT NULL, + g4 LINESTRING NOT NULL, + g5 GEOMETRY NOT NULL, + g6 GEOMETRY NOT NULL, + SPATIAL KEY (g1), + SPATIAL KEY (g2), + SPATIAL KEY (g3), + SPATIAL KEY (g4), + SPATIAL KEY (g5), + SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=$row_format; + +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; diff --git a/mysql-test/suite/innodb_gis/r/bug16236208.result b/mysql-test/suite/innodb_gis/r/bug16236208.result new file mode 100644 index 00000000000..a2b81e612a9 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/bug16236208.result @@ -0,0 +1,43 @@ +DROP TABLE IF EXISTS linestring; +CREATE TABLE linestring (pk INTEGER NOT NULL PRIMARY KEY, linestring_key +GEOMETRY NOT NULL, linestring_nokey GEOMETRY NOT NULL) ENGINE=InnoDB ; +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (1, +ST_GeomFromText('POINT(10 10) '), ST_GeomFromText('POINT(10 10) ')); +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (2, +ST_GeomFromText('LINESTRING(10 10,20 20,30 30)'), ST_GeomFromText('LINESTRING(10 +10,20 20,30 30)')); +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (3, +ST_GeomFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 +10))'), ST_GeomFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 +40,10 10))')); +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (4, +ST_GeomFromText('MULTIPOINT(0 0,5 5,10 10,20 20) '), ST_GeomFromText('MULTIPOINT(0 +0,5 5,10 10,20 20) ')); +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (5, +ST_GeomFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'), +ST_GeomFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))')); +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (6, +ST_GeomFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 +9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'), +ST_GeomFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 +9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')); +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (7, +ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'), +ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')); +CREATE INDEX linestring_index ON linestring(linestring_nokey(5)); +ALTER TABLE linestring ADD KEY (linestring_key(5)); +SELECT ST_AsText(linestring_nokey) FROM linestring FORCE KEY ( +linestring_key ) WHERE ST_CONTAINS( ST_GeomFromText('POLYGON( ( 3923 2815 , 4246 +2122 , 4028 2971 , 4017 3019 , 3923 2815 ) )') , linestring_key ) AND +ST_WITHIN( ST_GeomFromText('POLYGON( ( 4135 3009 , 4914 3087 , 4236 3194 , 4091 +3036 , 4022 3004 , 4087 3004 , 3853 2825 , 3490 3118 , 3784 3141 , 4052 3072 +, 4205 2787 , 4024 2951 , 4076 3036 , 4041 3053 , 3789 3401 , 4080 3100 , +4169 2867 , 4056 3029 , 4715 3943 , 4052 3098 , 4035 3080 , 4013 3077 , 4218 +2915 , 3789 2980 , 4058 3046 , 4042 3043 , 4135 3009 ) )') , linestring_nokey +) AND ST_CONTAINS( ST_GeomFromText('POLYGON( ( 4082 2842 , 3678 3647 , 3420 3068 +, 4018 3030 , 4082 2842 ) )') , linestring_key ) OR ST_INTERSECTS( +ST_GeomFromText('MULTILINESTRING( ( 4147 2871 , 4072 3042 , 4081 3099 , 3796 +3021 , 4007 3463 ) , ( 4042 2808 , 4109 2816 , 3730 3673 ) )') , +linestring_key ) AND ST_Length( linestring_nokey ) > 1; +ERROR 22023: Invalid GIS data provided to function st_within. +DROP TABLE linestring; diff --git a/mysql-test/suite/innodb_gis/r/bug16266012.result b/mysql-test/suite/innodb_gis/r/bug16266012.result new file mode 100644 index 00000000000..9e62563f752 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/bug16266012.result @@ -0,0 +1,9 @@ +SELECT ST_WITHIN( LINESTRINGFROMTEXT(' LINESTRING( 5 9 , 3 4 , 4 1 , 4 +4 , 4 9 ) ') , ST_SYMDIFFERENCE( ST_UNION( ST_ENVELOPE( POLYGONFROMTEXT(' +POLYGON( ( 3 2 , 0 6 , 2 3 , 8 0 , 4 6 , 7 2 , 3 2 ) ) ') ) , +MULTIPOLYGONFROMTEXT(' +MULTIPOLYGON( ( ( 0 0 , 7 1 , 6 8 , 0 0 ) ) , ( ( 9 9 , 4 0 , 4 7 , 9 9) ) ) +') ) , ST_SYMDIFFERENCE( POLYGONFROMTEXT(' POLYGON( ( 9 9 , 6 5 , 2 3 , 9 9 +) ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( ( 2 2 , 5 2 , 5 2 , 2 6 , 2 +2 ) ) , ( ( 7 7 , 3 7 , 2 9 , 7 1 , 7 7 ) ) ) ') ) ) ); +ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_union. diff --git a/mysql-test/suite/innodb_gis/r/bug17057168.result b/mysql-test/suite/innodb_gis/r/bug17057168.result new file mode 100644 index 00000000000..885989f12e3 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/bug17057168.result @@ -0,0 +1,24 @@ +CREATE DATABASE geotest; +use geotest; +CREATE TABLE tmp (id int unsigned NOT NULL PRIMARY KEY); +INSERT INTO tmp VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); +INSERT INTO tmp SELECT 10+id FROM tmp; +INSERT INTO tmp SELECT 20+id FROM tmp; +INSERT INTO tmp SELECT 40+id FROM tmp; +INSERT INTO tmp SELECT 80+id FROM tmp; +CREATE TABLE t1 (id int unsigned NOT NULL auto_increment PRIMARY KEY, +location point, INDEX (location)) ENGINE=InnoDB; +INSERT INTO t1 (location) SELECT POINT(tmp1.id, tmp2.id) FROM tmp tmp1, +tmp tmp2 ORDER BY tmp1.id, tmp2.id; +EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, +2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ref location location 28 const 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select `geotest`.`t1`.`id` AS `id`,st_astext(`geotest`.`t1`.`location`) AS `ST_AsText(location)` from `geotest`.`t1` where (`geotest`.`t1`.`location` = (point(1,2))) +SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2); +id ST_AsText(location) +163 POINT(1 2) +DROP TABLE t1; +DROP TABLE tmp; +DROP DATABASE geotest; diff --git a/mysql-test/suite/innodb_gis/r/geometry.result b/mysql-test/suite/innodb_gis/r/geometry.result new file mode 100644 index 00000000000..60c5f80f69b --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/geometry.result @@ -0,0 +1,1150 @@ +SET default_storage_engine=InnoDB; +SET innodb_strict_mode=OFF; +SET SESSION debug="+d,row_print_geometry_data"; +SHOW VARIABLES LIKE '%engine%'; +Variable_name Value +default_storage_engine InnoDB +default_tmp_storage_engine InnoDB +disabled_storage_engines +internal_tmp_disk_storage_engine InnoDB +USE test; +DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon; +DROP TABLE IF EXISTS gis_multi_point, gis_multi_line, gis_multi_polygon; +DROP TABLE IF EXISTS gis_geometrycollection, gis_geometry; +DROP TABLE IF EXISTS tab,tab2,tab3,parent,emp2; +DROP PROCEDURE IF EXISTS geominout; +DROP PROCEDURE IF EXISTS geom_insert; +DROP TRIGGER IF EXISTS geom_trigger; +DROP PROCEDURE IF EXISTS geom_cursor; +CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT) ENGINE=InnoDB; +CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING) ENGINE=InnoDB; +CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON) ENGINE=InnoDB; +CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT) ENGINE=InnoDB; +CREATE TABLE gis_multi_line (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING) ENGINE=InnoDB; +CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON) ENGINE=InnoDB; +CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION) ENGINE=InnoDB; +CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY) ENGINE=InnoDB; +SHOW FIELDS FROM gis_point; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g point YES NULL +SHOW FIELDS FROM gis_line; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g linestring YES NULL +SHOW FIELDS FROM gis_polygon; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g polygon YES NULL +SHOW FIELDS FROM gis_multi_point; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g multipoint YES NULL +SHOW FIELDS FROM gis_multi_line; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g multilinestring YES NULL +SHOW FIELDS FROM gis_multi_polygon; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g multipolygon YES NULL +SHOW FIELDS FROM gis_geometrycollection; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g geometrycollection YES NULL +SHOW FIELDS FROM gis_geometry; +Field Type Null Key Default Extra +fid int(11) NO PRI NULL +g geometry YES NULL +#INSERT using all WKT & WKB functions +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); +INSERT INTO gis_line VALUES +(105, ST_LineFromText('LINESTRING(0 0,0 10,10 0)')), +(106, ST_LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')), +(107, ST_LineStringFromWKB(ST_AsWKB(LineString(Point(10, 10), Point(40, 10))))); +INSERT INTO gis_polygon VALUES +(108, ST_PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')), +(109, ST_PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')), +(110, ST_PolyFromWKB(ST_AsWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))))); +INSERT INTO gis_multi_point VALUES +(111, ST_MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')), +(112, ST_MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')), +(113, ST_MPointFromWKB(ST_AsWKB(MultiPoint(Point(3, 6), Point(4, 10))))); +INSERT INTO gis_multi_line VALUES +(114, ST_MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')), +(115, ST_MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')), +(116, ST_MLineFromWKB(ST_AsWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))))); +INSERT INTO gis_multi_polygon VALUES +(117, ST_MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)), +((59 18,67 18,67 13,59 13,59 18)))')), +(118, ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26), +(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')), +(119, ST_MPolyFromWKB(ST_AsWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))))); +INSERT INTO gis_geometrycollection VALUES +(120, ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), +(121, ST_GeometryCollectionFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))')), +(122, ST_GeometryFromWKB(ST_AsWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))))); +#check INSERT using SELECT query +INSERT into gis_geometry SELECT * FROM gis_point; +INSERT into gis_geometry SELECT * FROM gis_line; +INSERT into gis_geometry SELECT * FROM gis_polygon; +INSERT into gis_geometry SELECT * FROM gis_multi_point; +INSERT into gis_geometry SELECT * FROM gis_multi_line; +INSERT into gis_geometry SELECT * FROM gis_multi_polygon; +INSERT into gis_geometry SELECT * FROM gis_geometrycollection; +#check format coversion functions & spatial values +SELECT fid, ST_AsText(g) FROM gis_point; +fid ST_AsText(g) +101 POINT(10 10) +102 POINT(20 10) +103 POINT(20 20) +104 POINT(10 20) +SELECT fid, ST_AsText(g) FROM gis_line; +fid ST_AsText(g) +105 LINESTRING(0 0,0 10,10 0) +106 LINESTRING(10 10,20 10,20 20,10 20,10 10) +107 LINESTRING(10 10,40 10) +SELECT fid, ST_AsText(g) FROM gis_polygon; +fid ST_AsText(g) +108 POLYGON((10 10,20 10,20 20,10 20,10 10)) +109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10)) +110 POLYGON((0 0,30 0,30 30,0 0)) +SELECT fid, ST_AsText(g) FROM gis_multi_point; +fid ST_AsText(g) +111 MULTIPOINT((0 0),(10 10),(10 20),(20 20)) +112 MULTIPOINT((1 1),(11 11),(11 21),(21 21)) +113 MULTIPOINT((3 6),(4 10)) +SELECT fid, ST_AsText(g) FROM gis_multi_line; +fid ST_AsText(g) +114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48)) +115 MULTILINESTRING((10 48,10 21,10 0)) +116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) +SELECT fid, ST_AsText(g) FROM gis_multi_polygon; +fid ST_AsText(g) +117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +119 MULTIPOLYGON(((0 3,3 3,3 0,0 3))) +SELECT fid, ST_AsText(g) FROM gis_geometrycollection; +fid ST_AsText(g) +120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +121 GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20)) +122 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) +SELECT fid, ST_AsText(g) FROM gis_geometry; +fid ST_AsText(g) +101 POINT(10 10) +102 POINT(20 10) +103 POINT(20 20) +104 POINT(10 20) +105 LINESTRING(0 0,0 10,10 0) +106 LINESTRING(10 10,20 10,20 20,10 20,10 10) +107 LINESTRING(10 10,40 10) +108 POLYGON((10 10,20 10,20 20,10 20,10 10)) +109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10)) +110 POLYGON((0 0,30 0,30 30,0 0)) +111 MULTIPOINT((0 0),(10 10),(10 20),(20 20)) +112 MULTIPOINT((1 1),(11 11),(11 21),(21 21)) +113 MULTIPOINT((3 6),(4 10)) +114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48)) +115 MULTILINESTRING((10 48,10 21,10 0)) +116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) +117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +119 MULTIPOLYGON(((0 3,3 3,3 0,0 3))) +120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +121 GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20)) +122 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) +#2.1 check DDL functionality on GIS datatypes +CREATE TABLE tab(c1 POINT,c2 LINESTRING,c3 POLYGON,C4 MULTIPOINT,c5 MULTILINESTRING , +c6 MULTIPOLYGON,c7 GEOMETRYCOLLECTION ,c8 GEOMETRY) ENGINE=InnoDB; +#check information schema for all the columns refer to 14, except POINT which is 15 +SELECT sc.name, sc.pos, sc.mtype +FROM information_schema.innodb_sys_columns sc +INNER JOIN information_schema.innodb_sys_tables st +ON sc.TABLE_ID=st.TABLE_ID +WHERE st.NAME='test/tab' +ORDER BY sc.name; +name pos mtype +c1 0 14 +c2 1 14 +c3 2 14 +C4 3 14 +c5 4 14 +c6 5 14 +c7 6 14 +c8 7 14 +#check Perform convesrion before INSERT using WKT functions +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +#Insert the spatial values +INSERT INTO tab VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +#check index on GIS datatypes +CREATE INDEX idx1 on tab(c2(5) DESC) USING BTREE; +CREATE INDEX idx3 on tab(c3(5) ASC) USING BTREE; +CREATE UNIQUE INDEX idx2 on tab(c8(5) ASC) ; +#check equality predicate on the index columns +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab NULL ref idx1 idx1 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c2` = (st_geometryfromtext('LINESTRING(10 10,20 20,30 30)'))) +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab NULL ref idx1 idx1 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c2` = (st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)'))))) +#check index with WKT function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab NULL ref idx3 idx3 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c3` = (st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))) +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab +WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab NULL ref idx3 idx3 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c3` = (st_geometryfromwkb(st_aswkb(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))))) +#check index with WKT function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab NULL const idx2 idx2 8 const # 100.00 NULL +Warnings: +Note 1003 /* select#1 */ select st_astext(' +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab NULL const idx2 idx2 8 const # 100.00 NULL +Warnings: +Note 1003 /* select#1 */ select st_astext(' +#check range predicate on the index columns +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +ERROR HY000: Incorrect arguments to >= +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +ERROR HY000: Incorrect arguments to >= +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +ERROR HY000: Incorrect arguments to >= +#check index with DELETE operation +EXPLAIN DELETE FROM tab +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 DELETE tab NULL range idx2 idx2 8 const # 100.00 Using where +#check the spatial values +SELECT ST_AsText(c1) FROM tab; +ST_AsText(c1) +POINT(10 10) +SELECT ST_AsText(c2) FROM tab; +ST_AsText(c2) +LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c3) FROM tab; +ST_AsText(c3) +POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +SELECT ST_AsText(c4) FROM tab; +ST_AsText(c4) +MULTIPOINT((0 0),(5 5),(10 10),(20 20)) +SELECT ST_AsText(c5) FROM tab; +ST_AsText(c5) +MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) +SELECT ST_AsText(c6) FROM tab; +ST_AsText(c6) +MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +SELECT ST_AsText(c7) FROM tab; +ST_AsText(c7) +GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +SELECT ST_AsText(c8) From tab; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#check by modify the column type +ALTER TABLE tab MODIFY COLUMN c1 Geometry; +ALTER TABLE tab MODIFY COLUMN c2 Geometry; +ALTER TABLE tab MODIFY COLUMN c3 Geometry; +ALTER TABLE tab MODIFY COLUMN c4 Geometry; +ALTER TABLE tab MODIFY COLUMN c5 Geometry; +ALTER TABLE tab MODIFY COLUMN c6 Geometry; +ALTER TABLE tab MODIFY COLUMN c7 Geometry; +#check column datatypes +SHOW FIELDS FROM tab; +Field Type Null Key Default Extra +c1 geometry YES NULL +c2 geometry YES MUL NULL +c3 geometry YES MUL NULL +c4 geometry YES NULL +c5 geometry YES NULL +c6 geometry YES NULL +c7 geometry YES NULL +c8 geometry YES UNI NULL +#check the data after modify +SELECT ST_AsText(c1) FROM tab; +ST_AsText(c1) +POINT(10 10) +SELECT ST_AsText(c2) FROM tab; +ST_AsText(c2) +LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c3) FROM tab; +ST_AsText(c3) +POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +SELECT ST_AsText(c4) FROM tab; +ST_AsText(c4) +MULTIPOINT((0 0),(5 5),(10 10),(20 20)) +SELECT ST_AsText(c5) FROM tab; +ST_AsText(c5) +MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) +SELECT ST_AsText(c6) FROM tab; +ST_AsText(c6) +MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +SELECT ST_AsText(c7) FROM tab; +ST_AsText(c7) +GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +SELECT ST_AsText(c8) From tab; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#check by modify the column type +ALTER TABLE tab MODIFY COLUMN c1 POINT; +ALTER TABLE tab MODIFY COLUMN c2 LINESTRING; +ALTER TABLE tab MODIFY COLUMN c3 POLYGON; +ALTER TABLE tab MODIFY COLUMN c4 MULTIPOINT; +ALTER TABLE tab MODIFY COLUMN c5 MULTILINESTRING; +ALTER TABLE tab MODIFY COLUMN c6 MULTIPOLYGON; +ALTER TABLE tab MODIFY COLUMN c7 GEOMETRYCOLLECTION; +#check column datatypes +SHOW FIELDS FROM tab; +Field Type Null Key Default Extra +c1 point YES NULL +c2 linestring YES MUL NULL +c3 polygon YES MUL NULL +c4 multipoint YES NULL +c5 multilinestring YES NULL +c6 multipolygon YES NULL +c7 geometrycollection YES NULL +c8 geometry YES UNI NULL +#check the data after modify +SELECT ST_AsText(c1) FROM tab; +ST_AsText(c1) +POINT(10 10) +SELECT ST_AsText(c2) FROM tab; +ST_AsText(c2) +LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c3) FROM tab; +ST_AsText(c3) +POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +SELECT ST_AsText(c4) FROM tab; +ST_AsText(c4) +MULTIPOINT((0 0),(5 5),(10 10),(20 20)) +SELECT ST_AsText(c5) FROM tab; +ST_AsText(c5) +MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) +SELECT ST_AsText(c6) FROM tab; +ST_AsText(c6) +MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +SELECT ST_AsText(c7) FROM tab; +ST_AsText(c7) +GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +SELECT ST_AsText(c8) From tab; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#check change the column type +ALTER TABLE tab MODIFY COLUMN c1 BLOB; +#check column datatypes +SHOW CREATE TABLE tab; +Table Create Table +tab CREATE TABLE `tab` ( + `c1` blob, + `c2` linestring DEFAULT NULL, + `c3` polygon DEFAULT NULL, + `c4` multipoint DEFAULT NULL, + `c5` multilinestring DEFAULT NULL, + `c6` multipolygon DEFAULT NULL, + `c7` geometrycollection DEFAULT NULL, + `c8` geometry DEFAULT NULL, + UNIQUE KEY `idx2` (`c8`(5)), + KEY `idx1` (`c2`(5)) USING BTREE, + KEY `idx3` (`c3`(5)) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +#check the data after modify +SELECT ST_AsText(c1) FROM tab; +ST_AsText(c1) +POINT(10 10) +#change the column name +ALTER TABLE tab CHANGE COLUMN c1 c0 GEOMETRY ; +#check column datatypes +SHOW FIELDS FROM tab; +Field Type Null Key Default Extra +c0 geometry YES NULL +c2 linestring YES MUL NULL +c3 polygon YES MUL NULL +c4 multipoint YES NULL +c5 multilinestring YES NULL +c6 multipolygon YES NULL +c7 geometrycollection YES NULL +c8 geometry YES UNI NULL +#add primary key +ALTER TABLE tab ADD PRIMARY KEY pk2(c8(5)); +#check columns +SHOW FIELDS FROM tab; +Field Type Null Key Default Extra +c0 geometry YES NULL +c2 linestring YES MUL NULL +c3 polygon YES MUL NULL +c4 multipoint YES NULL +c5 multilinestring YES NULL +c6 multipolygon YES NULL +c7 geometrycollection YES NULL +c8 geometry NO PRI NULL +#drop key +ALTER TABLE tab DROP PRIMARY KEY; +#check columns +SHOW FIELDS FROM tab; +Field Type Null Key Default Extra +c0 geometry YES NULL +c2 linestring YES MUL NULL +c3 polygon YES MUL NULL +c4 multipoint YES NULL +c5 multilinestring YES NULL +c6 multipolygon YES NULL +c7 geometrycollection YES NULL +c8 geometry NO UNI NULL +#cleanup the table +TRUNCATE TABLE tab; +#check with procedures +#crate proc with INOUT params +CREATE PROCEDURE geom_insert(IN c1 POINT,IN c2 LINESTRING,IN c3 POLYGON, +IN c4 MULTIPOINT,IN c5 MULTILINESTRING, IN c6 MULTIPOLYGON,IN c7 GEOMETRYCOLLECTION, +IN c8 GEOMETRY) +BEGIN +INSERT INTO tab VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +END | +#set the spatial values +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +#call the proc +CALL geom_insert(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +#check the values ofter proc call +SELECT ST_AsText(c0) FROM tab; +ST_AsText(c0) +POINT(10 10) +SELECT ST_AsText(c2) FROM tab; +ST_AsText(c2) +LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c3) FROM tab; +ST_AsText(c3) +POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +SELECT ST_AsText(c4) FROM tab; +ST_AsText(c4) +MULTIPOINT((0 0),(5 5),(10 10),(20 20)) +SELECT ST_AsText(c5) FROM tab; +ST_AsText(c5) +MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) +SELECT ST_AsText(c6) FROM tab; +ST_AsText(c6) +MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +SELECT ST_AsText(c7) FROM tab; +ST_AsText(c7) +GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +SELECT ST_AsText(c8) From tab; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#set the input spatial value +SET @c9=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +#crate a proc with INOUT params and pass a value. +CREATE PROCEDURE geominout(INOUT c9 GEOMETRY) +BEGIN +SELECT ST_AsText(@c9); +SET c9=ST_GeomCollFromText('GeometryCollection(Point(10 10),LineString(20 20, 30 30))'); +END| +#call the proc and then change the spatial value of c8 +CALL geominout(@c9); +ST_AsText(@c9) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#now check the out spatial values should be changed to new values +SELECT ST_AsText(@c9); +ST_AsText(@c9) +GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(20 20,30 30)) +#delete the records +TRUNCATE TABLE tab; +#create another table same as tab +CREATE TABLE tab2 AS SELECT * FROM tab; +#check the table definition +SHOW CREATE TABLE tab2; +Table Create Table +tab2 CREATE TABLE `tab2` ( + `c0` geometry DEFAULT NULL, + `c2` linestring DEFAULT NULL, + `c3` polygon DEFAULT NULL, + `c4` multipoint DEFAULT NULL, + `c5` multilinestring DEFAULT NULL, + `c6` multipolygon DEFAULT NULL, + `c7` geometrycollection DEFAULT NULL, + `c8` geometry NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +#create a tigger and populate the values into tab2 +CREATE TRIGGER geom_trigger AFTER INSERT ON tab +FOR EACH ROW +BEGIN +INSERT INTO tab2 VALUES (@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +END| +#set the spatial values +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +#Insert the spatial values +INSERT INTO tab VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +#check the values whether populated +SELECT ST_AsText(c0) FROM tab2; +ST_AsText(c0) +POINT(10 10) +SELECT ST_AsText(c2) FROM tab2; +ST_AsText(c2) +LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c3) FROM tab2; +ST_AsText(c3) +POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +SELECT ST_AsText(c4) FROM tab2; +ST_AsText(c4) +MULTIPOINT((0 0),(5 5),(10 10),(20 20)) +SELECT ST_AsText(c5) FROM tab2; +ST_AsText(c5) +MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) +SELECT ST_AsText(c6) FROM tab2; +ST_AsText(c6) +MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +SELECT ST_AsText(c7) FROM tab2; +ST_AsText(c7) +GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +SELECT ST_AsText(c8) From tab2; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#check Cursor with Geometry +CREATE PROCEDURE geom_cursor() +BEGIN +DECLARE v GEOMETRY; +DECLARE c CURSOR FOR SELECT c8 FROM tab2; +OPEN c; +FETCH c INTO v; +CLOSE c; +SELECT ST_AsText(v); +END| +# the following line was commented due the Bug#16282246 +# Once it is fixed, the comment will be removed. +# right now bug fixing date is unknown. +check self join +SELECT ST_AsText(a.c0),ST_AsText(a.c2),ST_AsText(a.c3) +FROM tab a,tab2 b WHERE a.c0=b.c0 AND a.c2=b.c2 +AND a.c3=b.c3 AND a.c4=b.c4 AND a.c5=b.c5 AND a.c6=b.c6 +AND a.c7=b.c7 AND a.c8=b.c8; +ST_AsText(a.c0) ST_AsText(a.c2) ST_AsText(a.c3) +POINT(10 10) LINESTRING(10 10,20 20,30 30) POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +#check equi join +SELECT ST_AsText(a.c2),ST_AsText(b.c2) FROM tab a,tab2 b WHERE a.c2=b.c2; +ST_AsText(a.c2) ST_AsText(b.c2) +LINESTRING(10 10,20 20,30 30) LINESTRING(10 10,20 20,30 30) +#check DELETE stmt with Where clause and a constant predicate +DELETE FROM tab +Where c8=c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); +#check the data, should 0 +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +#check UPDATE stmt with Where clause and a constant predicate +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(10 10),LineString(20 20, 30 30))'); +UPDATE tab2 SET c8=@c8 +WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); +#check the column should be modified to LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c8) From tab2; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(20 20,30 30)) +#check GIS datatypes with aggregate functions +SELECT COUNT(ST_AsText(g)) FROM gis_point; +COUNT(ST_AsText(g)) +4 +SELECT COUNT(ST_AsText(g)) FROM gis_line; +COUNT(ST_AsText(g)) +3 +SELECT COUNT(ST_AsText(g)) FROM gis_polygon; +COUNT(ST_AsText(g)) +3 +SELECT COUNT(ST_AsText(g)) FROM gis_multi_point; +COUNT(ST_AsText(g)) +3 +SELECT COUNT(ST_AsText(g)) FROM gis_multi_line; +COUNT(ST_AsText(g)) +3 +SELECT COUNT(ST_AsText(g)) FROM gis_multi_polygon; +COUNT(ST_AsText(g)) +3 +SELECT COUNT(ST_AsText(g)) FROM gis_geometrycollection; +COUNT(ST_AsText(g)) +3 +SELECT COUNT(ST_AsText(g)) FROM gis_geometry; +COUNT(ST_AsText(g)) +22 +SELECT SUM(ST_AsText(g)) FROM gis_point; +SUM(ST_AsText(g)) +0 +SELECT SUM(ST_AsText(g)) FROM gis_line; +SUM(ST_AsText(g)) +0 +SELECT AVG(ST_AsText(g)) FROM gis_polygon; +AVG(ST_AsText(g)) +0 +#here it show some string value no meaning +SELECT MAX(ST_AsText(g)) FROM gis_multi_point; +MAX(ST_AsText(g)) +MULTIPOINT((3 6),(4 10)) +#here it show some string value no meaning +SELECT MIN(ST_AsText(g)) FROM gis_multi_line; +MIN(ST_AsText(g)) +MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) +SELECT STD(ST_AsText(g)) FROM gis_multi_polygon; +STD(ST_AsText(g)) +0 +SELECT COUNT(ST_AsText(g)) FROM gis_geometrycollection; +COUNT(ST_AsText(g)) +3 +SELECT AVG(ST_AsText(g)) FROM gis_geometry; +AVG(ST_AsText(g)) +0 +#check Datatypes with compression tables +CREATE TABLE tab3(c1 POINT,c2 LINESTRING,c3 POLYGON,C4 MULTIPOINT,c5 MULTILINESTRING , +c6 MULTIPOLYGON,c7 GEOMETRYCOLLECTION ,c8 GEOMETRY) ENGINE=InnoDB +KEY_BLOCK_SIZE=8 ROW_FORMAT=COMPRESSED; +#check file format +SHOW CREATE TABLE tab3; +Table Create Table +tab3 CREATE TABLE `tab3` ( + `c1` point DEFAULT NULL, + `c2` linestring DEFAULT NULL, + `c3` polygon DEFAULT NULL, + `C4` multipoint DEFAULT NULL, + `c5` multilinestring DEFAULT NULL, + `c6` multipolygon DEFAULT NULL, + `c7` geometrycollection DEFAULT NULL, + `c8` geometry DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 +ALTER TABLE tab3 KEY_BLOCK_SIZE=16 ROW_FORMAT=Dynamic; +#check file format +SHOW CREATE TABLE tab3; +Table Create Table +tab3 CREATE TABLE `tab3` ( + `c1` point DEFAULT NULL, + `c2` linestring DEFAULT NULL, + `c3` polygon DEFAULT NULL, + `C4` multipoint DEFAULT NULL, + `c5` multilinestring DEFAULT NULL, + `c6` multipolygon DEFAULT NULL, + `c7` geometrycollection DEFAULT NULL, + `c8` geometry DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=16 +#check information schema for all the columns refer to 14, except POINT which is 15 +SELECT sc.name, sc.pos, sc.mtype +FROM information_schema.innodb_sys_columns sc +INNER JOIN information_schema.innodb_sys_tables st +ON sc.TABLE_ID=st.TABLE_ID +WHERE st.NAME='test/tab3' +ORDER BY sc.name; +name pos mtype +c1 0 14 +c2 1 14 +c3 2 14 +C4 3 14 +c5 4 14 +c6 5 14 +c7 6 14 +c8 7 14 +#check Perform convesrion before INSERT using WKT functions +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +#Insert the spatial values +INSERT INTO tab3 VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +#check index on GIS datatypes +CREATE INDEX idx1 on tab3(c2(5) DESC) USING BTREE; +CREATE INDEX idx3 on tab3(c3(5) ASC) USING BTREE; +CREATE UNIQUE INDEX idx2 on tab3(c8(5) ASC) ; +#check equality predicate on the index columns +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = (st_geometryfromtext('LINESTRING(10 10,20 20,30 30)'))) +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = (st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)'))))) +#check index with WKT function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = (st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))) +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 +WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = (st_geometryfromwkb(st_aswkb(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))))) +#check index with WKT function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL const idx2 idx2 8 const # 100.00 NULL +Warnings: +Note 1003 /* select#1 */ select st_astext(' +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL const idx2 idx2 8 const # 100.00 NULL +Warnings: +Note 1003 /* select#1 */ select st_astext(' +#check range predicate on the index columns +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +ERROR HY000: Incorrect arguments to >= +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +ERROR HY000: Incorrect arguments to >= +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); +ERROR HY000: Incorrect arguments to >= +#check index with DELETE operation +EXPLAIN DELETE FROM tab3 +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 DELETE tab3 NULL range idx2 idx2 8 const # 100.00 Using where +#check the spatial values +SELECT ST_AsText(c1) FROM tab3; +ST_AsText(c1) +POINT(10 10) +SELECT ST_AsText(c2) FROM tab3; +ST_AsText(c2) +LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c3) FROM tab3; +ST_AsText(c3) +POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10)) +SELECT ST_AsText(c4) FROM tab3; +ST_AsText(c4) +MULTIPOINT((0 0),(5 5),(10 10),(20 20)) +SELECT ST_AsText(c5) FROM tab3; +ST_AsText(c5) +MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) +SELECT ST_AsText(c6) FROM tab3; +ST_AsText(c6) +MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) +SELECT ST_AsText(c7) FROM tab3; +ST_AsText(c7) +GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) +SELECT ST_AsText(c8) From tab3; +ST_AsText(c8) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +#check with Row_format = Dynamic +ALTER TABLE tab3 ROW_FORMAT=Dynamic; +#check file format +SHOW CREATE TABLE tab3; +Table Create Table +tab3 CREATE TABLE `tab3` ( + `c1` point DEFAULT NULL, + `c2` linestring DEFAULT NULL, + `c3` polygon DEFAULT NULL, + `C4` multipoint DEFAULT NULL, + `c5` multilinestring DEFAULT NULL, + `c6` multipolygon DEFAULT NULL, + `c7` geometrycollection DEFAULT NULL, + `c8` geometry DEFAULT NULL, + UNIQUE KEY `idx2` (`c8`(5)), + KEY `idx1` (`c2`(5)) USING BTREE, + KEY `idx3` (`c3`(5)) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=16 +#check index with WKB function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = (st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)'))))) +#check index with WKT function +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = (st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))) +#check the Geometry property functions +SELECT fid, ST_Dimension(g) FROM gis_geometry; +fid ST_Dimension(g) +101 0 +102 0 +103 0 +104 0 +105 1 +106 1 +107 1 +108 2 +109 2 +110 2 +111 0 +112 0 +113 0 +114 1 +115 1 +116 1 +117 2 +118 2 +119 2 +120 1 +121 1 +122 1 +SELECT fid, ST_GeometryType(g) FROM gis_geometry; +fid ST_GeometryType(g) +101 POINT +102 POINT +103 POINT +104 POINT +105 LINESTRING +106 LINESTRING +107 LINESTRING +108 POLYGON +109 POLYGON +110 POLYGON +111 MULTIPOINT +112 MULTIPOINT +113 MULTIPOINT +114 MULTILINESTRING +115 MULTILINESTRING +116 MULTILINESTRING +117 MULTIPOLYGON +118 MULTIPOLYGON +119 MULTIPOLYGON +120 GEOMETRYCOLLECTION +121 GEOMETRYCOLLECTION +122 GEOMETRYCOLLECTION +SELECT fid, ST_IsEmpty(g) FROM gis_geometry; +fid ST_IsEmpty(g) +101 0 +102 0 +103 0 +104 0 +105 0 +106 0 +107 0 +108 0 +109 0 +110 0 +111 0 +112 0 +113 0 +114 0 +115 0 +116 0 +117 0 +118 0 +119 0 +120 0 +121 0 +122 0 +SELECT fid, ST_AsText(ST_Envelope(g)) FROM gis_geometry; +fid ST_AsText(ST_Envelope(g)) +101 POINT(10 10) +102 POINT(20 10) +103 POINT(20 20) +104 POINT(10 20) +105 POLYGON((0 0,10 0,10 10,0 10,0 0)) +106 POLYGON((10 10,20 10,20 20,10 20,10 10)) +107 LINESTRING(10 10,40 10) +108 POLYGON((10 10,20 10,20 20,10 20,10 10)) +109 POLYGON((0 0,50 0,50 50,0 50,0 0)) +110 POLYGON((0 0,30 0,30 30,0 30,0 0)) +111 POLYGON((0 0,20 0,20 20,0 20,0 0)) +112 POLYGON((1 1,21 1,21 21,1 21,1 1)) +113 POLYGON((3 6,4 6,4 10,3 10,3 6)) +114 POLYGON((10 0,16 0,16 48,10 48,10 0)) +115 LINESTRING(10 0,10 48) +116 POLYGON((1 2,21 2,21 8,1 8,1 2)) +117 POLYGON((28 0,84 0,84 42,28 42,28 0)) +118 POLYGON((28 0,84 0,84 42,28 42,28 0)) +119 POLYGON((0 0,3 0,3 3,0 3,0 0)) +120 POLYGON((0 0,10 0,10 10,0 10,0 0)) +121 POLYGON((10 10,20 10,20 20,10 20,10 10)) +122 POLYGON((3 6,44 6,44 9,3 9,3 6)) +explain extended select ST_Dimension(g), ST_GeometryType(g), ST_IsEmpty(g), ST_AsText(ST_Envelope(g)) from gis_geometry; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_geometry NULL ALL NULL NULL NULL NULL # 100.00 NULL +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select st_dimension(`test`.`gis_geometry`.`g`) AS `ST_Dimension(g)`,st_geometrytype(`test`.`gis_geometry`.`g`) AS `ST_GeometryType(g)`,st_isempty(`test`.`gis_geometry`.`g`) AS `ST_IsEmpty(g)`,st_astext(st_envelope(`test`.`gis_geometry`.`g`)) AS `ST_AsText(ST_Envelope(g))` from `test`.`gis_geometry` +#check Geometry point functions +SELECT fid, ST_X(g) FROM gis_point; +fid ST_X(g) +101 10 +102 20 +103 20 +104 10 +SELECT fid, ST_Y(g) FROM gis_point; +fid ST_Y(g) +101 10 +102 10 +103 20 +104 20 +explain extended select ST_X(g),ST_Y(g) FROM gis_point; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 NULL +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select st_x(`test`.`gis_point`.`g`) AS `ST_X(g)`,st_y(`test`.`gis_point`.`g`) AS `ST_Y(g)` from `test`.`gis_point` +SELECT fid, ST_AsText(ST_StartPoint(g)) FROM gis_line; +fid ST_AsText(ST_StartPoint(g)) +105 POINT(0 0) +106 POINT(10 10) +107 POINT(10 10) +SELECT fid, ST_AsText(ST_EndPoint(g)) FROM gis_line; +fid ST_AsText(ST_EndPoint(g)) +105 POINT(10 0) +106 POINT(10 10) +107 POINT(40 10) +SELECT fid, ST_Length(g) FROM gis_line; +fid ST_Length(g) +105 24.14213562373095 +106 40 +107 30 +SELECT fid, ST_NumPoints(g) FROM gis_line; +fid ST_NumPoints(g) +105 3 +106 5 +107 2 +SELECT fid, ST_AsText(ST_PointN(g, 2)) FROM gis_line; +fid ST_AsText(ST_PointN(g, 2)) +105 POINT(0 10) +106 POINT(20 10) +107 POINT(40 10) +SELECT fid, ST_IsClosed(g) FROM gis_line; +fid ST_IsClosed(g) +105 0 +106 1 +107 0 +explain extended select ST_AsText(ST_StartPoint(g)),ST_AsText(ST_EndPoint(g)), +ST_Length(g),ST_NumPoints(g),ST_AsText(ST_PointN(g, 2)),ST_IsClosed(g) FROM gis_line; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_line NULL ALL NULL NULL NULL NULL # 100.00 NULL +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select st_astext(st_startpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_StartPoint(g))`,st_astext(st_endpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_EndPoint(g))`,st_length(`test`.`gis_line`.`g`) AS `ST_Length(g)`,st_numpoints(`test`.`gis_line`.`g`) AS `ST_NumPoints(g)`,st_astext(st_pointn(`test`.`gis_line`.`g`,2)) AS `ST_AsText(ST_PointN(g, 2))`,st_isclosed(`test`.`gis_line`.`g`) AS `ST_IsClosed(g)` from `test`.`gis_line` +SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_polygon; +fid ST_AsText(ST_Centroid(g)) +108 POINT(15 15) +109 POINT(25.416666666666668 25.416666666666668) +110 POINT(20 10) +SELECT fid, ST_Area(g) FROM gis_polygon; +fid ST_Area(g) +108 100 +109 2400 +110 450 +SELECT fid, ST_AsText(ST_ExteriorRing(g)) FROM gis_polygon; +fid ST_AsText(ST_ExteriorRing(g)) +108 LINESTRING(10 10,20 10,20 20,10 20,10 10) +109 LINESTRING(0 0,50 0,50 50,0 50,0 0) +110 LINESTRING(0 0,30 0,30 30,0 0) +SELECT fid, ST_NumInteriorRings(g) FROM gis_polygon; +fid ST_NumInteriorRings(g) +108 0 +109 1 +110 0 +SELECT fid, ST_AsText(ST_InteriorRingN(g, 1)) FROM gis_polygon; +fid ST_AsText(ST_InteriorRingN(g, 1)) +108 NULL +109 LINESTRING(10 10,20 10,20 20,10 20,10 10) +110 NULL +explain extended select ST_AsText(ST_Centroid(g)),ST_Area(g),ST_AsText(ST_ExteriorRing(g)), +ST_NumInteriorRings(g),ST_AsText(ST_InteriorRingN(g, 1)) FROM gis_polygon; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_polygon NULL ALL NULL NULL NULL NULL # 100.00 NULL +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select st_astext(st_centroid(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_Centroid(g))`,st_area(`test`.`gis_polygon`.`g`) AS `ST_Area(g)`,st_astext(st_exteriorring(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_ExteriorRing(g))`,st_numinteriorrings(`test`.`gis_polygon`.`g`) AS `ST_NumInteriorRings(g)`,st_astext(st_interiorringn(`test`.`gis_polygon`.`g`,1)) AS `ST_AsText(ST_InteriorRingN(g, 1))` from `test`.`gis_polygon` +SELECT fid, ST_IsClosed(g) FROM gis_multi_line; +fid ST_IsClosed(g) +114 0 +115 0 +116 0 +SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_multi_polygon; +fid ST_AsText(ST_Centroid(g)) +117 POINT(57.98031067576927 17.854754130800437) +118 POINT(57.98031067576927 17.854754130800437) +119 POINT(2 2) +SELECT fid, ST_Area(g) FROM gis_multi_polygon; +fid ST_Area(g) +117 1684.5 +118 1684.5 +119 4.5 +SELECT fid, ST_NumGeometries(g) from gis_multi_point; +fid ST_NumGeometries(g) +111 4 +112 4 +113 2 +SELECT fid, ST_NumGeometries(g) from gis_multi_line; +fid ST_NumGeometries(g) +114 2 +115 1 +116 2 +SELECT fid, ST_NumGeometries(g) from gis_multi_polygon; +fid ST_NumGeometries(g) +117 2 +118 2 +119 1 +SELECT fid, ST_NumGeometries(g) from gis_geometrycollection; +fid ST_NumGeometries(g) +120 2 +121 2 +122 2 +explain extended SELECT fid, ST_NumGeometries(g) from gis_multi_point; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_multi_point NULL ALL NULL NULL NULL NULL # 100.00 NULL +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select `test`.`gis_multi_point`.`fid` AS `fid`,st_numgeometries(`test`.`gis_multi_point`.`g`) AS `ST_NumGeometries(g)` from `test`.`gis_multi_point` +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point; +fid ST_AsText(ST_GeometryN(g, 2)) +111 POINT(10 10) +112 POINT(11 11) +113 POINT(4 10) +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_line; +fid ST_AsText(ST_GeometryN(g, 2)) +114 LINESTRING(16 0,16 23,16 48) +115 NULL +116 LINESTRING(2 5,5 8,21 7) +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_polygon; +fid ST_AsText(ST_GeometryN(g, 2)) +117 POLYGON((59 18,67 18,67 13,59 13,59 18)) +118 POLYGON((59 18,67 18,67 13,59 13,59 18)) +119 NULL +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_geometrycollection; +fid ST_AsText(ST_GeometryN(g, 2)) +120 LINESTRING(0 0,10 10) +121 LINESTRING(10 10,20 20) +122 LINESTRING(3 6,7 9) +SELECT fid, ST_AsText(ST_GeometryN(g, 1)) from gis_geometrycollection; +fid ST_AsText(ST_GeometryN(g, 1)) +120 POINT(0 0) +121 POINT(10 10) +122 POINT(44 6) +explain extended SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_multi_point NULL ALL NULL NULL NULL NULL # 100.00 NULL +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select `test`.`gis_multi_point`.`fid` AS `fid`,st_astext(st_geometryn(`test`.`gis_multi_point`.`g`,2)) AS `ST_AsText(ST_GeometryN(g, 2))` from `test`.`gis_multi_point` +SELECT g1.fid as first, g2.fid as second, +MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g) as o, +MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t, +MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r +FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; +first second w c o e d t i r +120 120 1 1 0 1 0 0 1 0 +120 121 0 0 0 0 0 1 1 0 +120 122 0 0 1 0 0 0 1 0 +121 120 0 0 0 0 0 1 1 0 +121 121 1 1 0 1 0 0 1 0 +121 122 0 0 0 0 1 0 0 0 +122 120 0 0 1 0 0 0 1 0 +122 121 0 0 0 0 1 0 0 0 +122 122 1 1 0 1 0 0 1 0 +explain extended SELECT g1.fid as first, g2.fid as second, +MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g) as o, +MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t, +MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r +FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE g1 NULL ALL NULL NULL NULL NULL # 100.00 Using temporary; Using filesort +1 SIMPLE g2 NULL ALL NULL NULL NULL NULL # 100.00 Using join buffer (Block Nested Loop) +Warnings: +Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. +Note 1003 /* select#1 */ select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,mbrwithin(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,mbrcontains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,mbroverlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,mbrequals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,mbrdisjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,st_touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,mbrintersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,st_crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `first`,`second` +# check support of Foreign Key constraint +CREATE TABLE parent (id GEOMETRY NOT NULL,PRIMARY KEY (id(10))) ENGINE=INNODB; +CREATE TABLE child (id GEOMETRY, parent_id GEOMETRY, +INDEX par_ind (parent_id(10)), +FOREIGN KEY (parent_id(10)) REFERENCES parent(id) +ON DELETE CASCADE +) ENGINE=INNODB; +ERROR HY000: Cannot add foreign key constraint +#check partition table support +CREATE TABLE emp2( +id GEOMETRY NOT NULL, +store_name VARCHAR(30), +parts VARCHAR(30), +store_id GEOMETRY +) +PARTITION BY LIST(store_id) ( +PARTITION pNorth VALUES IN (10,20,30) , +PARTITION pEast VALUES IN (40,50,60) , +PARTITION pWest VALUES IN (70,80,100) +); +ERROR 42000: The storage engine for the table doesn't support GEOMETRY +#check start transaction commit & Rollback +START TRANSACTION; +DELETE FROM tab3; +ROLLBACK; +SELECT COUNT(*) FROM tab3; +COUNT(*) +1 +START TRANSACTION; +DELETE FROM tab3; +COMMIT; +SELECT COUNT(*) FROM tab3; +COUNT(*) +0 +DROP TABLE IF EXISTS gis_point, gis_line, gis_polygon, gis_multi_point; +DROP TABLE IF EXISTS gis_multi_line, gis_multi_polygon; +DROP TABLE IF EXISTS gis_geometrycollection, gis_geometry; +DROP TABLE IF EXISTS tab,tab2,tab3,parent,emp2; +Warnings: +Note 1051 Unknown table 'test.emp2' +DROP PROCEDURE IF EXISTS geominout; +DROP PROCEDURE IF EXISTS geom_insert; +DROP TRIGGER IF EXISTS geom_trigger; +Warnings: +Note 1360 Trigger does not exist +DROP PROCEDURE IF EXISTS geom_cursor; diff --git a/mysql-test/suite/innodb_gis/r/gis_split_inf.result b/mysql-test/suite/innodb_gis/r/gis_split_inf.result new file mode 100644 index 00000000000..624c982b553 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/gis_split_inf.result @@ -0,0 +1,23 @@ +create table t1(a geometrycollection not null,spatial key(a))engine=innodb; +insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-14,98), point(-14,98)), linestring(point(-97,64), point(-70,99), point(-97,64)), linestring(point(143851215403059150000000000000000000000.000000,13040009882500140000000000000000000000.000000), point(-73,85), point(-88,-29)))), multipolygon(polygon(linestring(point(41,95), point(4294967298,2050)), linestring(point(-61,85), point(-75,93), point(14,-2), point(1,84), point(-61,85)), linestring(point(-62,52), point(39,5), point(-18,12), point(-62,52))), polygon(linestring(point(-77,1), point(66,61), point(-77,1)), linestring(point(18446744073709551615,1125899906842622), point(-72,49), point(24,-66), point(82,73), point(68,22))), polygon(linestring(point(1048576,17179869181), point(-18,95), point(-90,-3), point(-33,82), point(20,-85)), linestring(point(-43,-97), point(-7,-3), point(39,-82), point(-65,-58), point(-43,-97)), linestring(point(44,-34), point(-69,58), point(44,-34)), linestring(point(57,-13), point(-17,74), point(57,-13)), linestring(point(3,71), point(-58,81), point(3,71)), linestring(point(9,25), point(77,-71), point(8388607,67108864), point(46,46), point(9,25)), linestring(point(98,-82), point(98,-82))))) ) ; +ERROR 22023: Invalid GIS data provided to function polygon. +insert into t1(a) values( geometrycollection(multilinestring(linestring(point(39,-60), point(-62,-11), point(-24,35), point(54,1)), linestring(point(-4,69), point(-22,-64), point(1.694824e+308,5.688896e+307), point(-33,-58), point(-64,-80), point(-15,-44), point(40,54)), linestring(point(-86,-54), point(11,41), point(-46,-38), point(-21,-8), point(10,70), point(-81,22), point(-46,-100)), linestring(point(-30,-48), point(50,58), point(-53,92), point(10,41), point(-46,-8)), linestring(point(-65,34), point(-92,93), point(-33,-74), point(75,-28)), linestring(point(25,-55), point(22,-10), point(-42,0), point(-86,-59), point(2,-37), point(63,-44), point(-55,-22)), linestring(point(28,0), point(-94,99), point(-32,-86)), linestring(point(9,-12), point(16,9), point(80,-73)), linestring(point(6,-55), point(83,-4)), linestring(point(-15,21), point(144115188075855876,16777212), point(-85,-31), point(-90,-50)), linestring(point(-33,33), point(21,90), point(-89,32)), linestring(point(16,24), point(73,-13), point(25,-48), point(71,52), point(-54,-78), point(-84,59), point(53,29)), linestring(point(-15,-81), point(83,43), point(-71,33), point(-8,0), point(84,-54), point(-35,38), point(-10,-50)), linestring(point(38,-50), point(20,-2), point(-57,-92)), linestring(point(5,-93), point(231601833467477080000000000000000000000.000000,51914987457169239000000000000000000000.000000), point(-94,62))), point(2,0)) ) ; +insert into t1(a) values( geometrycollection(multilinestring(linestring(point(80,-15), point(65,-57), point(-59,16), point(22,-67)), linestring(point(20,-55), point(-38,-64), point(19,-53), point(-63,-36), point(56,-37)), linestring(point(27,-8), point(-85,-75), point(4398046511106,2251799813685245)), linestring(point(45,32), point(-79,46))), multilinestring(linestring(point(8,-4), point(40,-38), point(100,95), point(5,-80), point(82,88)), linestring(point(-14,30), point(-94,51), point(-16,-29), point(37,-97), point(-26,92)), linestring(point(32,34), point(83,-23), point(-55,57), point(-15,90), point(32,-50), point(-20,-73), point(77,28)), linestring(point(4,88), point(87,74), point(-67,-58)), linestring(point(5.660747e+307,6.385657e+307), point(-58,-15), point(1.172095e+308,1.448533e+308)), linestring(point(-21,-37), point(-52,79), point(-16,-76), point(-65,-94), point(36,7), point(37,74), point(100,-57)), linestring(point(-23,-82), point(-73,23), point(18,-34)), linestring(point(20,-51), point(93,62), point(-65,84)), linestring(point(-48,31), point(-69,-96)), linestring(point(-5,78), point(10,-99), point(36,-33)), linestring(point(-84,55), point(96,1), point(-98,-29), point(-15,81), point(-27,-6), point(58,-32), point(54,-16)), linestring(point(2,5), point(2199023255553,8192)), linestring(point(12,-78), point(-97,-83)), linestring(point(-74,79), point(35,-56), point(50,95)), linestring(point(28,16), point(-39,-40), point(48,-3)), linestring(point(2199023255550,-65539), point(62,-25), point(94,-62)), linestring(point(-74,83), point(-18,75), point(91,17), point(-11,-48), point(30,100)), linestring(point(57,-13), point(88,-45)), linestring(point(20,-64), point(-37,13), point(20,35))), point(-3,-4)) ) ; +insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-34,19), point(-25,92), point(61921390294166805000000000000000000000.000000,319674749161701840000000000000000000000.000000), point(56,50), point(-34,19)), linestring(point(-26,-58), point(99,-50), point(34,-20), point(-26,-58)), linestring(point(-42,45), point(-63,-7), point(5,-89), point(-97,36), point(-42,45)), linestring(point(94,11), point(-71,4), point(94,11)), linestring(point(16,25), point(4,-33), point(-45,-33), point(-64,-77), point(16,25)), linestring(point(19,45), point(36,45), point(-83,-96), point(19,45)), linestring(point(85,-31), point(-87,52), point(85,-31))), polygon(linestring(point(55,-88), point(63,-12), point(55,-88)), linestring(point(-49,10), point(-49,10)), linestring(point(-51,-32), point(-51,-32)))), multipolygon(polygon(linestring(point(-21,-8), point(66,-58), point(100,-27), point(-21,-8)), linestring(point(-29,-13), point(-29,-13))), polygon(linestring(point(91307574660224730000000000000000000000.000000,101214152547755520000000000000000000000.000000), point(89,64), point(77,87), point(66,29), point(-71,-53)), linestring(point(38,-78), point(-43,-90), point(37,20), point(81,65), point(38,-78))), polygon(linestring(point(51,0), point(-62,8), point(-11,22), point(51,0)), linestring(point(-4,-44), point(6,82), point(-19,-90), point(131,32)))), point(-4,-7)) ) ; +ERROR 22023: Invalid GIS data provided to function polygon. +insert into t1(a) values( geometrycollection(point(10,9), linestring(point(2305843009213693955,-1125899906842621), point(78,15)), multipoint(point(-1,3), point(4,-6))) ) ; +insert into t1(a) values( geometrycollection(polygon(linestring(point(0,13), point(-12,5), point(0,13)), linestring(point(11,-2), point(6,6), point(20,-14), point(-3,-10), point(1.330588e+308,2.666476e+307)), linestring(point(16382,67), point(7,4)), linestring(point(2,7), point(-14,15), point(2,7)), linestring(point(-14,12), point(-8,-8), point(-17,-2), point(-14,12)), linestring(point(-20,-10), point(-8,-13), point(-19,-17), point(13,-3), point(-20,-10)), linestring(point(-5,13), point(7,-9), point(6,8), point(-5,13))), linestring(point(-87,19), point(-64,51), point(-16,12)), multipoint(point(-1,-10), point(2,-10), point(3.670354e+307,2.501459e+307))) ) ; +ERROR 22023: Invalid GIS data provided to function polygon. +insert into t1(a) values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) ) ; +ERROR 22023: Invalid GIS data provided to function polygon. +insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(15,84), point(39,-92), point(-99,19)), multilinestring(linestring(point(63,10), point(-47,95), point(10,-49), point(16,-65), point(-98,40), point(25,44), point(-55,-92)), linestring(point(5.266810e+307,6.648813e+307), point(47,33), point(-15,-13), point(-92,-58), point(36,73)), linestring(point(77,-56), point(-53,-10), point(-28,76), point(-51,6), point(51,-31), point(-95,81), point(92,26)), linestring(point(-91,7), point(58,53)), linestring(point(18,5), point(18,40), point(71,89), point(7.898707e+307,1.202585e+308), point(53,100)), linestring(point(-60,-18), point(-10,-31), point(-6,-25), point(-57,-95), point(16,77)))) ) ; +insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ; +ERROR 22023: Invalid GIS data provided to function polygon. +insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/gis_split_nan.result b/mysql-test/suite/innodb_gis/r/gis_split_nan.result new file mode 100644 index 00000000000..5d3d5c89108 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/gis_split_nan.result @@ -0,0 +1,292 @@ +# Creating the spatial objects +USE test; +CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT); +CREATE TABLE gis_linestring (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING); +CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON); +CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT); +CREATE TABLE gis_multi_linestring (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING); +CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON); +CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION); +# Inserting POINT Geometry Values +INSERT INTO gis_point VALUES +(101, ST_POINTFROMTEXT('POINT(0 0)')), +(102, ST_POINTFROMTEXT('POINT(1 0)')), +(103, ST_POINTFROMTEXT('POINT(0 1)')), +(104, ST_POINTFROMTEXT('POINT(1 1)')), +(105, ST_POINTFROMTEXT('POINT(-1 1)')); +INSERT INTO gis_point VALUES +(106, ST_POINTFROMWKB(POINT(0,0))), +(107, ST_POINTFROMWKB(POINT(10,0))), +(108, ST_POINTFROMWKB(POINT(0,10))), +(109, ST_POINTFROMWKB(POINT(-10,0))), +(110, ST_POINTFROMWKB(POINT(0,-10))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_point VALUES +(111, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1 1)')))), +(112, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1e308 1e308)')))), +(113, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1e308 -1e308)')))), +(114, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(-1e308 1e308)')))), +(115, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(-1e308 -1e308)')))); +# Inserting LINESTRING Geometry Values +INSERT INTO gis_linestring VALUES +(201, ST_LINEFROMTEXT('LINESTRING(0 0,5 5)')), +(202, ST_LINEFROMTEXT('LINESTRING(0 0,2 2,4 4)')), +(203, ST_LINEFROMTEXT('LINESTRING(0 0,5 5,10 10)')); +INSERT INTO gis_linestring VALUES +(204, ST_LINESTRINGFROMTEXT('LINESTRING(10 10,5 5)')), +(205, ST_LINESTRINGFROMTEXT('LINESTRING(0 0,12 12,24 24)')), +(206, ST_LINESTRINGFROMTEXT('LINESTRING(0 0,50 50,100 100)')); +INSERT INTO gis_linestring VALUES +(207, ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(5,5)))), +(208, ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,10)))), +(209, ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_linestring VALUES +(210, ST_LINESTRINGFROMWKB(LINESTRING(POINT(0,0), POINT(5,5)))), +(211, ST_LINESTRINGFROMWKB(LINESTRING(POINT(0,0), POINT(-50,-50), POINT(10,-10)))), +(212, ST_LINESTRINGFROMWKB(LINESTRING(POINT(0,0), POINT(1e308,1e308), POINT(1e308,-1e308)))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_linestring VALUES +(213, ST_LINEFROMWKB(ST_ASWKB(ST_LINEFROMTEXT('LINESTRING(1e308 1e308,1e308 -1e308)')))), +(214, ST_LINEFROMWKB(ST_ASWKB(ST_LINEFROMTEXT('LINESTRING(1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9)')))), +(215, ST_LINESTRINGFROMWKB(ST_ASWKB(ST_LINESTRINGFROMTEXT('LINESTRING(10 10,10 -10,-10 -10,-10 10,10 10)')))); +# Inserting POLYGON Geometry Values +INSERT INTO gis_polygon VALUES +(301, ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,0 0))')), +(302, ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,5 0,0 0))')), +(303, ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))')); +INSERT INTO gis_polygon VALUES +(304, ST_POLYGONFROMTEXT('POLYGON((0 0,0 50,50 50,50 0,0 0))')), +(305, ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4))')), +(306, ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))')); +INSERT INTO gis_polygon VALUES +(307, ST_POLYFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0))))), +(308, ST_POLYFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0))))), +(309, ST_POLYFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_polygon VALUES +(310, ST_POLYGONFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0))))), +(311, ST_POLYGONFROMWKB(POLYGON(LINESTRING(POINT(10,10), POINT(10,15), POINT(15,15), POINT(15,10), POINT(10,10))))), +(312, ST_POLYGONFROMWKB(POLYGON(LINESTRING(POINT(10,10), POINT(10,20), POINT(20,20), POINT(20,10), POINT(10,10)), +LINESTRING(POINT(14,14), POINT(14,16), POINT(16,16), POINT(16,14), POINT(14,14))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_polygon VALUES +(313, ST_POLYFROMWKB(ST_ASWKB(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,5 5,0 0))')))), +(314, ST_POLYFROMWKB(ST_ASWKB(ST_POLYGONFROMTEXT('POLYGON((10 0,10 10,0 10,-10 10,-10 0,-10 -10,0 10,10 -10,10 0))')))), +(315, ST_POLYGONFROMWKB(ST_ASWKB(ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))')))); +# Inserting MULTIPOINT Geometry Values +INSERT INTO gis_multi_point VALUES +(401, ST_GEOMFROMTEXT('MULTIPOINT(0 0)')), +(402, ST_GEOMFROMTEXT('MULTIPOINT(0 0,2 2,4 4)')), +(403, ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 5,10 10)')); +INSERT INTO gis_multi_point VALUES +(404, ST_GEOMFROMTEXT('MULTIPOINT(0 0,100 100)')), +(405, ST_GEOMFROMTEXT('MULTIPOINT(0 0,1e308 1e308)')), +(406, ST_GEOMFROMTEXT('MULTIPOINT(1e308 1e308,1e308 -1e308,-1e308 1e308,-1e308 -1e308)')); +INSERT INTO gis_multi_point VALUES +(407, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0)))), +(408, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0), POINT(10,10)))), +(409, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_multi_point VALUES +(410, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0)))), +(411, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0), POINT(1e308,1e308)))), +(412, ST_GEOMFROMWKB(MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308), POINT(-1e308,-1e308)))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_multi_point VALUES +(413, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOINT(0 0)')))), +(414, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOINT(0 0,1e308 1e308,-1e308 -1e308)')))), +(415, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOINT(1e308 1e308,1e308 -1e308,-1e308 1e308,-1e308 -1e308,1e308 1e308)')))); +# Inserting MULTILINESTRING Geometry Values +INSERT INTO gis_multi_linestring VALUES +(501, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 2))')), +(502, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 2,4 4))')), +(503, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 2,4 4),(6 6,8 8,10 10))')); +INSERT INTO gis_multi_linestring VALUES +(504, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,100 100,-100 -100))')), +(505, ST_GEOMFROMTEXT('MULTILINESTRING((1e308 1e308,-1e308 -1e308))')), +(506, ST_GEOMFROMTEXT('MULTILINESTRING((1e308 1e308,-1e308 -1e308),(1e308 -1e308,-1e308 1e308))')); +INSERT INTO gis_multi_linestring VALUES +(507, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2))))), +(508, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(12,12), POINT(24,24))))), +(509, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4)), +LINESTRING(POINT(6,6), POINT(8,8), POINT(10,10))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_multi_linestring VALUES +(510, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4))))), +(511, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(1,1), POINT(2,2))))), +(512, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(12,12), POINT(24,24)), +LINESTRING(POINT(36,36), POINT(48,48), POINT(50,50))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_multi_linestring VALUES +(513, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10),(0 10,10 0))')))), +(514, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10,-10 10,0 0),(0 0,-10 -10,10 -10,0 0))')))), +(515, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,0 100),(0 0,100 0),(0 0,0 -100),(0 0,-100 0))')))); +# Inserting MULTIPOLGYON Geometry Values +INSERT INTO gis_multi_polygon VALUES +(601, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))')), +(602, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)),((5 5,5 10,10 10,5 5)))')), +(603, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)))')); +INSERT INTO gis_multi_polygon VALUES +(604, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))')), +(605, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)),((0 0,0 -2,-2 -2,0 0)))')), +(606, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,-5 5,0 0)),((0 0,-5 -5,5 -5,0 0)))')); +INSERT INTO gis_multi_polygon VALUES +(607, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(5,0), POINT(5,5), POINT(0,5), POINT(0,0)))))), +(608, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), +(609, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(5,0), POINT(5,5), POINT(0,5), POINT(0,0))), +POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_multi_polygon VALUES +(610, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))), +(611, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(10,10), POINT(20,10), POINT(20,20), POINT(10,20), POINT(10,10)), +LINESTRING(POINT(14,14), POINT(14,16), POINT(16,16), POINT(16,14), POINT(14,14)))))), +(612, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))), +POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_multi_polygon VALUES +(613, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,5 -5,0 0)),((0 0,-5 5,-5 -5,0 0)))')))), +(614, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 10,-10 10,0 0)),((0 0,-10 -10,10 -10,0 0)))')))), +(615, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 0,5 -5,0 0)))')))); +# Inserting GEOMETRYCOLLECTION Geometry Values +INSERT INTO gis_geometrycollection VALUES +(701, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))')), +(702, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), +(703, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(5 5), POLYGON((0 0,0 10,10 10,10 0,0 0)))')); +INSERT INTO gis_geometrycollection VALUES +(704, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), +(705, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),' + 'LINESTRING(0 0,10 10),' + 'POLYGON((0 0,0 10,10 10,10 0,0 0,0 0, 0 0)))')), +(706, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(0 0,5 5,10 10),' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0)),' + 'MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),' + '((0 0,-10 0,-10 -10,0 -10,0 0))))')); +INSERT INTO gis_geometrycollection VALUES +(707, ST_GEOMCOLLFROMWKB(GEOMETRYCOLLECTION(POINT(0,0)))), +(708, ST_GEOMCOLLFROMWKB(GEOMETRYCOLLECTION(POINT(0,0), +LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)), +POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), +(709, ST_GEOMCOLLFROMWKB(GEOMETRYCOLLECTION(MULTIPOINT(POINT(0,0), POINT(5,5), POINT(10,10)), +MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)), +LINESTRING(POINT(10,10), POINT(5,5), POINT(0,10))), +MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))), +POLYGON(LINESTRING(POINT(0,0), POINT(-10,0), POINT(-10,-10), POINT(0,0))))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_geometrycollection VALUES +(710, ST_GEOMETRYCOLLECTIONFROMWKB(GEOMETRYCOLLECTION(POINT(0,0), +LINESTRING(POINT(0,0), POINT(100,100))))), +(711, ST_GEOMETRYCOLLECTIONFROMWKB(GEOMETRYCOLLECTION(POINT(10,10), +LINESTRING(POINT(10,10), POINT(12,12), POINT(14,14), POINT(16,16), POINT(18,18)), +POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), +(712, ST_GEOMETRYCOLLECTIONFROMWKB(GEOMETRYCOLLECTION(MULTIPOINT(POINT(10,10), POINT(15,15), POINT(20,20)), +MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)), +LINESTRING(POINT(10,10), POINT(5,5), POINT(0,10))), +MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), +LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))), +POLYGON(LINESTRING(POINT(0,0), POINT(-10,0), POINT(-10,-10), POINT(0,0))))))); +Warnings: +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +Warning 3195 st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead. +INSERT INTO gis_geometrycollection VALUES +(713, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(' + 'POINT(0 0),' + 'LINESTRING(0 0,10 10),' + 'POLYGON((0 0,0 10,10 10,10 0,0 0)),' + 'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0)),' + 'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))')))), +(714, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION(' + 'POINT(0 0)),' + 'GEOMETRYCOLLECTION(' + 'LINESTRING(0 0,10 10)),' + 'GEOMETRYCOLLECTION(' + 'POLYGON((0 0,0 10,10 10,10 0,0 0))),' + 'GEOMETRYCOLLECTION(' + 'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10)),' + 'GEOMETRYCOLLECTION(' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0))),' + 'GEOMETRYCOLLECTION(' + 'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))))')))), +(715, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION(),' + 'POINT(0 0),' + 'GEOMETRYCOLLECTION(' + 'LINESTRING(0 0,10 10),' + 'GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION())),' + 'GEOMETRYCOLLECTION(),' + 'GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION()),' + 'POLYGON((0 0,0 10,10 10,10 0,0 0)),' + 'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0)),' + 'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))')))); +# Creating a table with spatial index column +CREATE TABLE geom_index (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY NOT NULL, SPATIAL INDEX(g)); +# Inserting geometry values +INSERT INTO geom_index SELECT * FROM gis_point; +INSERT INTO geom_index SELECT * FROM gis_linestring; +INSERT INTO geom_index SELECT * FROM gis_polygon; +INSERT INTO geom_index SELECT * FROM gis_multi_point; +INSERT INTO geom_index SELECT * FROM gis_multi_linestring; +INSERT INTO geom_index SELECT * FROM gis_multi_polygon; +INSERT INTO geom_index SELECT * FROM gis_geometrycollection; +check table geom_index; +Table Op Msg_type Msg_text +test.geom_index check status OK +# Final cleanup +DROP TABLE gis_point; +DROP TABLE gis_linestring; +DROP TABLE gis_polygon; +DROP TABLE gis_multi_point; +DROP TABLE gis_multi_linestring; +DROP TABLE gis_multi_polygon; +DROP TABLE gis_geometrycollection; +DROP TABLE geom_index; diff --git a/mysql-test/suite/innodb_gis/r/kill_server.result b/mysql-test/suite/innodb_gis/r/kill_server.result new file mode 100644 index 00000000000..12ca15a420d --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/kill_server.result @@ -0,0 +1,41 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(5000); +select count(*) from t1; +count(*) +5000 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +CALL insert_t1(10000); +select count(*) from t1; +count(*) +10000 +drop index c2 on t1; +create spatial index idx on t1(c2); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` int(11) DEFAULT NULL, + `c2` geometry NOT NULL, + SPATIAL KEY `idx` (`c2`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); +START TRANSACTION; +CALL insert_t1(5000); +COMMIT; +# Kill and restart +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/multi_pk.result b/mysql-test/suite/innodb_gis/r/multi_pk.result new file mode 100644 index 00000000000..9e0cfa06157 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/multi_pk.result @@ -0,0 +1,57 @@ +create table t1 (c1 int, c2 varchar(255), c3 geometry not null, primary key(c1, c2), spatial index (c3))engine=innodb; +create function rand_string(str_length tinyint unsigned, str_type tinyint unsigned) returns varchar(255) +begin +declare counter int unsigned default 0; +declare const_chars varchar(64) default '0123456789'; +declare result varchar(255) default ''; +if str_type = 1 then +set const_chars = '0123456789'; +elseif str_type = 2 then +set const_chars = 'abcdefghijklmnopqrstuvwxyz'; +elseif str_type = 3 then +set const_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; +elseif str_type = 4 then +set const_chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; +elseif str_type = 5 then +set const_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; +else +set const_chars = '0123456789'; +end if; +while counter < str_length do +set result = concat(result,substr(const_chars,ceil(rand()*(length(const_chars)-1)),1)); +set counter = counter + 1; +end while; +return result; +end| +create procedure insert_t1(IN total int) +begin +declare i int default 1; +declare i2 int default 1; +declare str varchar(100) default ''; +declare dup_key int default 1; +while i <= total DO +set i2 = floor(0+(rand()*100)); +set str = rand_string(i2, 5); +select count(*) into dup_key from t1 where c2 = str and c1 = i; +while dup_key <> 0 do +set i2 = floor(0+(rand()*100)); +set str = rand_string(i2, 5); +select count(*) into dup_key from t1 where c2 = str and c1 = i; +end while; +insert into t1 values (i, str, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(10000); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +start transaction; +CALL insert_t1(30000); +rollback; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop procedure insert_t1; +drop function rand_string; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/point_basic.result b/mysql-test/suite/innodb_gis/r/point_basic.result new file mode 100644 index 00000000000..0e1c8de141b --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/point_basic.result @@ -0,0 +1,1531 @@ +# +# Test for basic POINT operation +# +CREATE TABLE gis_point(p1 POINT, p2 POINT) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(0 0)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(10 -20)'), ST_PointFromText('POINT(10 -20)')), +(ST_PointFromText('POINT(3.1415926 3.535897)'), ST_PointFromText('POINT(-3.932626 -3.488272)')), +(ST_PointFromText('POINT(-111.9876 234.1357)'), ST_PointFromText('POINT(-957.1914 958.1919)')); +SELECT ST_X(p1), ST_Y(p2) FROM gis_point; +ST_X(p1) ST_Y(p2) +0 0 +10 -20 +3.1415926 -3.488272 +-111.9876 958.1919 +DROP TABLE gis_point; +# +# Test when POINT is not on any indexes +# +CREATE TABLE gis_point(p1 POINT, p2 POINT) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(100.32374832 101.23741821)')), +(ST_PointFromText('POINT(105.34523342 103.18492302)'), ST_PointFromText('POINT(100.32374832 101.23741821)')), +(ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(200.32247328 101.86728201)')), +(ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(100.32374832 101.98527111)')); +EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using temporary; Using filesort +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` group by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2` +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +ST_AsText(p1) ST_AsText(p2) +POINT(100.32374832 101.23741821) POINT(100.32374832 101.98527111) +POINT(100.32374832 101.23741821) POINT(100.32374832 101.23741821) +POINT(100.32374832 101.23741821) POINT(200.32247328 101.86728201) +POINT(105.34523342 103.18492302) POINT(100.32374832 101.23741821) +SELECT ST_AsText(p1) FROM gis_point WHERE p1 = p2; +ST_AsText(p1) +POINT(100.32374832 101.23741821) +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE p1 = ST_PointFromText('POINT(100.32374832 101.23741821)'); +ST_AsText(p1) ST_AsText(p2) +POINT(100.32374832 101.23741821) POINT(100.32374832 101.23741821) +POINT(100.32374832 101.23741821) POINT(200.32247328 101.86728201) +POINT(100.32374832 101.23741821) POINT(100.32374832 101.98527111) +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE p2 = ST_PointFromText('POINT(200.32247328 101.86728201)'); +ST_AsText(p1) ST_AsText(p2) +POINT(100.32374832 101.23741821) POINT(200.32247328 101.86728201) +DROP TABLE gis_point; +# +# Test some ALTER TABLE operations on POINT tables +# +CREATE TABLE t1 ( +p POINT NOT NULL, +g GEOMETRY NOT NULL +) ENGINE=InnoDB; +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0 1)'), ST_PointFromText('POINT(10 11)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(1 1)'), ST_PointFromText('POINT(10 12)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(1 0)'), ST_PointFromText('POINT(10 13)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0 0)'), ST_PointFromText('POINT(10 14)')); +SELECT ST_AsText(p), ST_AsText(g) FROM t1; +ST_AsText(p) ST_AsText(g) +POINT(0 1) POINT(10 11) +POINT(1 1) POINT(10 12) +POINT(1 0) POINT(10 13) +POINT(0 0) POINT(10 14) +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g'; +name mtype prtype len +p 14 1535 12 +g 14 1535 12 +ALTER TABLE t1 ADD COLUMN p1 POINT, ADD COLUMN p2 POINT, ADD KEY(p); +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1' OR name = 'p2'; +name mtype prtype len +p 14 1535 12 +g 14 1535 12 +p1 14 1279 12 +p2 14 1279 12 +# NOT NULL POINT will use '' +SELECT count(*) AS `Expect 4` FROM t1 WHERE p1 = ''; +Expect 4 +0 +SELECT count(*) AS `Expect 4` FROM t1 WHERE p2 = ''; +Expect 4 +0 +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p = p1; +ST_AsText(p) ST_AsText(p1) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p = p2; +ST_AsText(p) ST_AsText(p1) +ALTER TABLE t1 DROP COLUMN p2; +# NULLABLE POINT will use NULL +ALTER TABLE t1 ADD COLUMN p2 POINT, ADD KEY(p2); +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1' OR name = 'p2'; +name mtype prtype len +p 14 1535 12 +g 14 1535 12 +p1 14 1279 12 +p2 14 1279 12 +SELECT count(*) AS `Expect 4` FROM t1 WHERE p2 IS NULL; +Expect 4 +4 +UPDATE t1 SET p2 = ST_PointFromText('POINT(10 20)'); +UPDATE t1 SET p1 = ST_PointFromText('POINT(10 20)'); +ALTER TABLE t1 DROP COLUMN p2; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; +name mtype prtype len +p 14 1535 12 +g 14 1535 12 +p1 14 1279 12 +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p = p1; +ST_AsText(p) ST_AsText(p1) +INSERT INTO t1 VALUES (ST_PointFromText('POINT(0.5 0.5)'), ST_PointFromText('POINT(0 1)'), ST_PointFromText('POINT(10 19)')); +SELECT ST_AsText(p1) FROM t1; +ST_AsText(p1) +POINT(10 20) +POINT(10 20) +POINT(10 20) +POINT(10 20) +POINT(10 19) +DELETE FROM t1 WHERE p1 = ST_PointFromText('POINT(10 19)'); +SELECT ST_AsText(p1) FROM t1; +ST_AsText(p1) +POINT(10 20) +POINT(10 20) +POINT(10 20) +POINT(10 20) +# Add spatial keys on the table +ALTER TABLE t1 ADD SPATIAL(p), ADD SPATIAL(p1); +ERROR 42000: All parts of a SPATIAL index must be NOT NULL +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; +name mtype prtype len +p 14 1535 12 +g 14 1535 12 +p1 14 1279 12 +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +ST_AsText(p) ST_AsText(p1) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); +ST_AsText(p) ST_AsText(p1) +POINT(0 1) POINT(10 20) +POINT(1 1) POINT(10 20) +POINT(1 0) POINT(10 20) +POINT(0 0) POINT(10 20) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')); +ST_AsText(p) ST_AsText(p1) +POINT(0 1) POINT(10 20) +POINT(1 1) POINT(10 20) +POINT(1 0) POINT(10 20) +POINT(0 0) POINT(10 20) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); +ST_AsText(p) ST_AsText(p1) +POINT(0 0) POINT(10 20) +# Drop spatial keys on the table +ALTER TABLE t1 DROP KEY p, DROP KEY p1; +ERROR 42000: Can't DROP 'p1'; check that column/key exists +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; +name mtype prtype len +p 14 1535 12 +g 14 1535 12 +p1 14 1279 12 +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +ST_AsText(p) ST_AsText(p1) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); +ST_AsText(p) ST_AsText(p1) +POINT(0 1) POINT(10 20) +POINT(1 1) POINT(10 20) +POINT(1 0) POINT(10 20) +POINT(0 0) POINT(10 20) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')); +ST_AsText(p) ST_AsText(p1) +POINT(0 1) POINT(10 20) +POINT(1 1) POINT(10 20) +POINT(1 0) POINT(10 20) +POINT(0 0) POINT(10 20) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); +ST_AsText(p) ST_AsText(p1) +POINT(0 0) POINT(10 20) +TRUNCATE t1; +ALTER TABLE t1 DROP COLUMN p, DROP COLUMN p1; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; +name mtype prtype len +g 14 1535 12 +ALTER TABLE t1 ADD COLUMN p POINT, ADD COLUMN p1 POINT; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; +name mtype prtype len +g 14 1535 12 +p 14 1279 12 +p1 14 1279 12 +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `g` geometry NOT NULL, + `p` point DEFAULT NULL, + `p1` point DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.5 0.5)'), ST_PointFromText('POINT(0 1)'), ST_PointFromText('POINT(10 19)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.6 0.6)'), ST_PointFromText('POINT(1 1)'), ST_PointFromText('POINT(10 20)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.7 0.7)'), ST_PointFromText('POINT(1 0)'), ST_PointFromText('POINT(10 21)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.8 0.8)'), ST_PointFromText('POINT(0 0)'), ST_PointFromText('POINT(10 22)')); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +ST_AsText(p) ST_AsText(p1) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); +ST_AsText(p) ST_AsText(p1) +POINT(1 1) POINT(10 20) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')); +ST_AsText(p) ST_AsText(p1) +POINT(0 1) POINT(10 19) +POINT(1 1) POINT(10 20) +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); +ST_AsText(p) ST_AsText(p1) +POINT(0 0) POINT(10 22) +ALTER TABLE t1 DROP COLUMN p1, ADD COLUMN p1 POINT, CHANGE COLUMN p pp POINT AFTER p1; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'pp' OR name = 'g' OR name = 'p1'; +name mtype prtype len +g 14 1535 12 +p1 14 1279 12 +pp 14 1279 12 +UPDATE t1 SET p1 = ST_PointFromText('POINT(5 5)'); +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1; +ST_AsText(pp) ST_AsText(p1) +POINT(0 1) POINT(5 5) +POINT(1 1) POINT(5 5) +POINT(1 0) POINT(5 5) +POINT(0 0) POINT(5 5) +ALTER TABLE t1 ADD SPATIAL(p1), ADD SPATIAL(pp), ALGORITHM = COPY; +ERROR 42000: All parts of a SPATIAL index must be NOT NULL +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'pp' OR name = 'g' OR name = 'p1'; +name mtype prtype len +g 14 1535 12 +p1 14 1279 12 +pp 14 1279 12 +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +ST_AsText(pp) ST_AsText(p1) +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); +ST_AsText(pp) ST_AsText(p1) +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')) ORDER BY pp; +ST_AsText(pp) ST_AsText(p1) +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(pp, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')) ORDER BY pp; +ST_AsText(pp) ST_AsText(p1) +POINT(0 0) POINT(5 5) +DROP TABLE t1; +# +# Test when the POINT is on B-TREE +# +CREATE TABLE gis_point(fid INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, p POINT, KEY(p)) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); +SELECT ST_AsText(p) FROM gis_point; +ST_AsText(p) +POINT(10 10) +POINT(20 10) +POINT(20 20) +POINT(10 20) +SELECT ST_AsText(p) FROM gis_point WHERE p = ST_PointFromText('POINT(20 20)'); +ST_AsText(p) +POINT(20 20) +INSERT INTO gis_point VALUES +(201, ST_PointFromText('POINT(100.32374832 101.23741821)')), +(202, ST_PointFromText('POINT(102.43287328 100.23489233)')), +(203, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(204, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))), +(205, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(206, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))); +'The ORDER BY will use filesort' +EXPLAIN SELECT ST_AsText(p) FROM gis_point ORDER BY p; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using filesort +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p`) AS `ST_AsText(p)` from `test`.`gis_point` order by `test`.`gis_point`.`p` +SELECT ST_AsText(p) FROM gis_point ORDER BY p; +ST_AsText(p) +POINT(10 10) +POINT(10 20) +POINT(20 10) +POINT(20 20) +POINT(101.43284962 100.45892392) +POINT(101.43284962 100.45892392) +POINT(100.32374832 101.23741821) +POINT(102.43287328 100.23489233) +POINT(103.4371864 105.248206478) +POINT(103.4371864 105.248206478) +SELECT ST_AsText(p), COUNT(*) FROM gis_point GROUP BY p; +ST_AsText(p) COUNT(*) +POINT(10 10) 1 +POINT(10 20) 1 +POINT(20 10) 1 +POINT(20 20) 1 +POINT(101.43284962 100.45892392) 2 +POINT(100.32374832 101.23741821) 1 +POINT(102.43287328 100.23489233) 1 +POINT(103.4371864 105.248206478) 2 +TRUNCATE gis_point; +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); +# Check if we can create prefix index on POINT +ALTER TABLE gis_point ADD COLUMN g POINT, ADD KEY(g(8)); +INSERT INTO gis_point VALUES +(105, ST_PointFromText('POINT(25 15)'), ST_PointFromText('POINT(100 100)')), +(106, ST_PointFromText('POINT(25 25)'), ST_PointFromText('POINT(110 110)')); +SELECT ST_AsText(p) FROM gis_point; +ST_AsText(p) +POINT(10 10) +POINT(20 10) +POINT(20 20) +POINT(10 20) +POINT(25 15) +POINT(25 25) +SELECT ST_AsText(p), ST_AsText(g) FROM gis_point WHERE g IS NULL; +ST_AsText(p) ST_AsText(g) +POINT(10 10) NULL +POINT(20 10) NULL +POINT(20 20) NULL +POINT(10 20) NULL +UPDATE gis_point SET g = ST_PointFromText('POINT(200 200)') WHERE g IS NULL OR g = ST_PointFromText('POINT(110 110)'); +SELECT ST_AsText(g) FROM gis_point WHERE g IS NULL OR g = ST_PointFromText('POINT(200 200)'); +ST_AsText(g) +POINT(200 200) +POINT(200 200) +POINT(200 200) +POINT(200 200) +POINT(200 200) +# Check the information schema tables +SELECT table_name, column_name, data_type, column_type FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='gis_point' AND (column_name = 'p' OR column_name = 'g'); +table_name column_name data_type column_type +gis_point p point point +gis_point g point point +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g'; +name mtype prtype len +p 14 1279 12 +g 14 1279 12 +SELECT length(p) FROM gis_point; +length(p) +25 +25 +25 +25 +25 +25 +ALTER TABLE gis_point DROP COLUMN g, ALGORITHM = COPY; +TRUNCATE gis_point; +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); +# Check if we can create prefix index on POINT +ALTER TABLE gis_point ADD COLUMN g POINT, ADD KEY(g(8)); +INSERT INTO gis_point VALUES +(105, ST_PointFromText('POINT(25 15)'), ST_PointFromText('POINT(100 100)')), +(106, ST_PointFromText('POINT(25 25)'), ST_PointFromText('POINT(110 110)')); +SELECT ST_AsText(p) FROM gis_point; +ST_AsText(p) +POINT(10 10) +POINT(20 10) +POINT(20 20) +POINT(10 20) +POINT(25 15) +POINT(25 25) +SELECT ST_AsText(p), ST_AsText(g) FROM gis_point WHERE g IS NULL; +ST_AsText(p) ST_AsText(g) +POINT(10 10) NULL +POINT(20 10) NULL +POINT(20 20) NULL +POINT(10 20) NULL +UPDATE gis_point SET g = ST_PointFromText('POINT(200 200)') WHERE g IS NULL OR g = ST_PointFromText('POINT(110 110)'); +SELECT ST_AsText(g) FROM gis_point WHERE g IS NULL OR g = ST_PointFromText('POINT(200 200)'); +ST_AsText(g) +POINT(200 200) +POINT(200 200) +POINT(200 200) +POINT(200 200) +POINT(200 200) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g'; +name mtype prtype len +p 14 1279 12 +g 14 1279 12 +DROP TABLE gis_point; +# +# Check the mtype of other geometry data types should be 15 +# +CREATE TABLE g ( +geom GEOMETRY NOT NULL, +l LINESTRING NOT NULL, +poly POLYGON NOT NULL, +mp MULTIPOINT NOT NULL, +ml MULTILINESTRING NOT NULL, +mpoly MULTIPOLYGON NOT NULL, +gc GEOMETRYCOLLECTION NOT NULL +) ENGINE=InnoDB; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'geom' OR name = 'l' OR name = 'poly' OR name = 'mp' OR name = 'ml' OR name = 'mpoly' OR name = 'gc'; +name mtype prtype len +geom 14 1535 12 +l 14 1535 12 +poly 14 1535 12 +mp 14 1535 12 +ml 14 1535 12 +mpoly 14 1535 12 +gc 14 1535 12 +DROP TABLE g; +# +# check the mtype and len with CREATE TABLE AS +# +CREATE TABLE t1 ( +p POINT NOT NULL, +g GEOMETRY NOT NULL +) ENGINE=InnoDB; +INSERT INTO t1 VALUES(ST_PointFromText('POINT(10 10)'),ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))')); +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' AND name='t1'; +name mtype prtype len +p 14 1535 12 +CREATE TABLE t2 AS SELECT * FROM t1; +DROP TABLE t1; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' AND name='t2'; +name mtype prtype len +p 14 1535 12 +DROP table t2; +# +# Test when POINT is used in spatial index +# +SET @ls1 = ST_GeomFromText('LINESTRING(0 20, 10 0)'); +SET @ls2 = ST_GeomFromText('LINESTRING(0 0, 10 20)'); +SET @ls3 = ST_GeomFromText('LINESTRING(20 -40, 21 -42)'); +SET @ls4 = ST_GeomFromText('LINESTRING(20 -42, 21 -40)'); +SET @poly1 = ST_GeomFromText('POLYGON((2 2, 2 10, 10 10, 10 2, 2 2))'); +SET @poly2 = ST_GeomFromText('POLYGON((0 0, -5 0, -4 -1, -6 -15, -3 -15, 0 0))'); +SET @poly3 = ST_GeomFromText('POLYGON((10.0 10.0, 20.5 20, 20.5 50, 32.0 64.0, 32.3 64.6, 5 60, 10 10))'); +SET @poly4 = ST_GeomFromText('POLYGON((0 10, -10 10, -10 -10, 0 -10, 0 10))'); +SET @p1 = ST_PointFromText('POINT(0 0)'); +SET @mpoly = ST_GeomFromText('MULTIPOLYGON(((3 3, 3 16, 16 16, 16 3, 3 3)), ((10 10, 10 50, 50 50, 50 10, 10 10)))'); +CREATE TABLE gis_point (p1 POINT NOT NULL, p2 POINT NOT NULL, SPATIAL KEY k1 (p1), SPATIAL KEY k2 (p2)) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(1 2)'), ST_PointFromText('POINT(-1 -3)')), +(ST_PointFromText('POINT(2 4)'), ST_PointFromText('POINT(-2 -6)')), +(ST_PointFromText('POINT(3 6)'), ST_PointFromText('POINT(-3 -9)')), +(ST_PointFromText('POINT(4 8)'), ST_PointFromText('POINT(-4 -12)')), +(ST_PointFromText('POINT(5 10)'), ST_PointFromText('POINT(-5 -15)')), +(ST_PointFromText('POINT(6 12)'), ST_PointFromText('POINT(-6 -18)')), +(ST_PointFromText('POINT(7 14)'), ST_PointFromText('POINT(-7 -21)')), +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(9 18)'), ST_PointFromText('POINT(-4 2)')), +(ST_PointFromText('POINT(10 21)'), ST_PointFromText('POINT(-6 3)')), +(ST_PointFromText('POINT(20.5 41)'), ST_PointFromText('POINT(-8 4)')), +(ST_PointFromText('POINT(26.25 57)'), ST_PointFromText('POINT(1 2)')), +(ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)')); +CREATE TABLE gis_point1 SELECT * FROM gis_point; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p1' OR name = 'p2'; +name mtype prtype len +p1 14 1535 12 +p2 14 1535 12 +p1 14 1535 12 +p2 14 1535 12 +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point1; +ST_AsText(p1) ST_AsText(p2) +POINT(1 2) POINT(-1 -3) +POINT(2 4) POINT(-2 -6) +POINT(3 6) POINT(-3 -9) +POINT(4 8) POINT(-4 -12) +POINT(5 10) POINT(-5 -15) +POINT(6 12) POINT(-6 -18) +POINT(7 14) POINT(-7 -21) +POINT(8 16) POINT(0 0) +POINT(9 18) POINT(-4 2) +POINT(10 21) POINT(-6 3) +POINT(20.5 41) POINT(-8 4) +POINT(26.25 57) POINT(1 2) +POINT(32.1234 64.2468) POINT(-1 -1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Intersection(@ls1, @ls2) = p1; +ST_AsText(p1) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Contains(@poly2, p2); +ST_AsText(p2) +POINT(-1 -3) +POINT(-2 -6) +POINT(-3 -9) +POINT(-4 -12) +POINT(-1 -1) +SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Equals(p2, @p1); +ST_AsText(p2) +POINT(0 0) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +ST_AsText(p1) +POINT(20.5 41) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1); +ST_AsText(p1) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(20.5 41) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly); +ST_AsText(p1) +# Check functions that use MBR, with line type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @ls1); +ST_AsText(p1) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBREquals(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @ls3); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Crosses(p1, @ls1); +ST_AsText(p1) +# Check functions that use MBR, with polygon type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Crosses(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @poly1); +ST_AsText(p1) +POINT(1 2) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBREquals(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @poly1); +ST_AsText(p1) +# Check functions that use MBR, with point type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBREquals(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Crosses(p1, @p1); +ST_AsText(p1) +# Check with MBR functions point type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @p1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +# Check with MBR functions point polygon data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @p1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +# Check with MBR functions polygon type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @poly1); +ST_AsText(p1) +POINT(1 2) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @poly1); +ST_AsText(p1) +# Check with MBR functions line type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @ls1); +ST_AsText(p1) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @ls1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @ls1); +ST_AsText(p1) +DROP TABLE gis_point1; +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point; +ST_AsText(p1) ST_AsText(p2) +POINT(1 2) POINT(-1 -3) +POINT(2 4) POINT(-2 -6) +POINT(3 6) POINT(-3 -9) +POINT(4 8) POINT(-4 -12) +POINT(5 10) POINT(-5 -15) +POINT(6 12) POINT(-6 -18) +POINT(7 14) POINT(-7 -21) +POINT(8 16) POINT(0 0) +POINT(9 18) POINT(-4 2) +POINT(10 21) POINT(-6 3) +POINT(20.5 41) POINT(-8 4) +POINT(26.25 57) POINT(1 2) +POINT(32.1234 64.2468) POINT(-1 -1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Intersection(@ls1, @ls2) = p1; +ST_AsText(p1) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2); +ST_AsText(p2) +POINT(-1 -3) +POINT(-2 -6) +POINT(-3 -9) +POINT(-4 -12) +POINT(-1 -1) +SELECT ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1); +ST_AsText(p2) +POINT(0 0) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +ST_AsText(p1) +POINT(20.5 41) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1); +ST_AsText(p1) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(20.5 41) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly); +ST_AsText(p1) +# Check functions that use MBR, with line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls3); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @ls1); +ST_AsText(p1) +# Check functions that use MBR, with polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +POINT(9 18) +POINT(8 16) +POINT(7 14) +POINT(6 12) +POINT(1 2) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); +ST_AsText(p1) +# Check functions that use MBR, with point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +POINT(9 18) +POINT(8 16) +POINT(7 14) +POINT(6 12) +POINT(5 10) +POINT(4 8) +POINT(3 6) +POINT(2 4) +POINT(1 2) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @p1); +ST_AsText(p1) +# Check with MBR functions point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +POINT(9 18) +POINT(8 16) +POINT(7 14) +POINT(6 12) +POINT(5 10) +POINT(4 8) +POINT(3 6) +POINT(2 4) +POINT(1 2) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +# Check with MBR functions point polygon data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +POINT(9 18) +POINT(8 16) +POINT(7 14) +POINT(6 12) +POINT(5 10) +POINT(4 8) +POINT(3 6) +POINT(2 4) +POINT(1 2) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +# Check with MBR functions polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +POINT(9 18) +POINT(8 16) +POINT(7 14) +POINT(6 12) +POINT(1 2) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @poly1); +ST_AsText(p1) +# Check with MBR functions line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); +ST_AsText(p1) +POINT(32.1234 64.2468) +POINT(26.25 57) +POINT(20.5 41) +POINT(10 21) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @ls1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); +ST_AsText(p1) +# Modify the storage engine to Myisam, Check the spatial functions +ALTER TABLE gis_point ENGINE Myisam; +# Check functions that use MBR, with line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); +ST_AsText(p1) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls3); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @ls1); +ST_AsText(p1) +# Check functions that use MBR, with polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); +ST_AsText(p1) +POINT(1 2) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); +ST_AsText(p1) +# Check functions that use MBR, with point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @p1); +ST_AsText(p1) +# Check with MBR functions point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +# Check with MBR functions point polygon data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +ST_AsText(p1) +# Check with MBR functions polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +ST_AsText(p1) +POINT(3 6) +POINT(4 8) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +ST_AsText(p1) +POINT(2 4) +POINT(5 10) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); +ST_AsText(p1) +POINT(1 2) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @poly1); +ST_AsText(p1) +# Check with MBR functions line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +ST_AsText(p1) +POINT(1 2) +POINT(2 4) +POINT(3 6) +POINT(4 8) +POINT(5 10) +POINT(6 12) +POINT(7 14) +POINT(8 16) +POINT(9 18) +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); +ST_AsText(p1) +POINT(10 21) +POINT(20.5 41) +POINT(26.25 57) +POINT(32.1234 64.2468) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @ls1); +ST_AsText(p1) +# No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls1); +ST_AsText(p1) +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); +ST_AsText(p1) +# Modify the storage engine to InnoDB again, do following testing +ALTER TABLE gis_point ENGINE InnoDB; +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +The ORDER BY for spatial index will use filesort +EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using filesort +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` order by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2` +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; +ST_AsText(p1) ST_AsText(p2) +POINT(2 4) POINT(-2 -6) +POINT(3 6) POINT(-3 -9) +POINT(4 8) POINT(-4 -12) +POINT(5 10) POINT(-5 -15) +POINT(6 12) POINT(-6 -18) +POINT(7 14) POINT(-7 -21) +POINT(8 16) POINT(0 0) +POINT(9 18) POINT(-4 2) +POINT(10 21) POINT(-6 3) +POINT(1 2) POINT(-1 -3) +POINT(26.25 57) POINT(1 2) +POINT(20.5 41) POINT(-8 4) +POINT(32.1234 64.2468) POINT(-1 -1) +Try to do IDU on the table and verify the result +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) +POINT(32.1234 64.2468) +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 41)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) AND (20.5 41) +POINT(32.1234 64.2468) +POINT(20.5 41) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +Use a trx to test the IDU on the table and verify the result +START TRANSACTION; +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) +POINT(32.1234 64.2468) +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 49)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 49)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) AND (20.5 49) +POINT(32.1234 64.2468) +POINT(20.5 49) +ROLLBACK; +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) AND (20.5 41) +POINT(32.1234 64.2468) +POINT(20.5 41) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +DROP TABLE gis_point; +# +# Test inserting/updating different type data into POINT field +# +CREATE TABLE gis_point (i INT, p POINT) ENGINE=InnoDB; +CREATE TABLE geom (i INT, g GEOMETRY NOT NULL, SPATIAL KEY(g)) ENGINE=InnoDB; +INSERT INTO gis_point VALUES(0, ST_PointFromText('POINT(1 1)')); +INSERT INTO gis_point VALUES(1, ST_PointFromText('POINT(2 2)')); +INSERT INTO gis_point VALUES(2, NULL); +ALTER TABLE gis_point ADD COLUMN j INT, ALGORITHM = COPY; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p'; +name mtype prtype len +p 14 1279 12 +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p'; +name mtype prtype len +p 14 1279 12 +SELECT i, ST_AsText(p) FROM gis_point; +i ST_AsText(p) +0 POINT(1 1) +1 POINT(2 2) +2 NULL +UPDATE gis_point SET p = NULL WHERE p = ST_PointFromText('POINT(1 1)'); +UPDATE gis_point SET p = ST_PointFromText('POINT(1 2)') WHERE p = ST_PointFromText('POINT(2 2)'); +UPDATE gis_point SET p = ST_PointFromText('POINT(1 1)') WHERE p IS NULL; +SELECT i, ST_AsText(p) FROM gis_point; +i ST_AsText(p) +0 POINT(1 1) +1 POINT(1 2) +2 POINT(1 1) +INSERT INTO geom VALUES(0, ST_PointFromText('POINT(0 0)')); +INSERT INTO geom VALUES(1, ST_PointFromText('POINT(10 10)')); +INSERT INTO geom VALUES(2, ST_GeomFromText('POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))')); +SELECT ST_AsText(g) FROM geom; +ST_AsText(g) +POINT(0 0) +POINT(10 10) +POLYGON((7 1,6 2,6 3,10 3,10 1,7 1)) +SELECT ST_AsText(p) FROM gis_point; +ST_AsText(p) +POINT(1 1) +POINT(1 2) +POINT(1 1) +DELETE FROM geom WHERE g = ST_GeomFromText('POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))'); +From GEOMETRY to POINT, now ALL the data are POINT +ALTER TABLE geom MODIFY g POINT NOT NULL; +SHOW CREATE TABLE geom; +Table Create Table +geom CREATE TABLE `geom` ( + `i` int(11) DEFAULT NULL, + `g` point NOT NULL, + SPATIAL KEY `g` (`g`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT ST_AsText(g) FROM geom; +ST_AsText(g) +POINT(0 0) +POINT(10 10) +From POINT to GEOMETRY, all data are POINT +ALTER TABLE geom MODIFY g GEOMETRY NOT NULL; +SHOW CREATE TABLE geom; +Table Create Table +geom CREATE TABLE `geom` ( + `i` int(11) DEFAULT NULL, + `g` geometry NOT NULL, + SPATIAL KEY `g` (`g`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +TRUNCATE TABLE geom; +From GEOMETRY to POINT, the table is empty +ALTER TABLE geom MODIFY g POINT NOT NULL; +SHOW CREATE TABLE geom; +Table Create Table +geom CREATE TABLE `geom` ( + `i` int(11) DEFAULT NULL, + `g` point NOT NULL, + SPATIAL KEY `g` (`g`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT ST_AsText(g) FROM geom; +ST_AsText(g) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +CHECK TABLE geom; +Table Op Msg_type Msg_text +test.geom check status OK +DROP TABLE gis_point, geom; +# +# Test when a geom field, such as POINT, is also a primary key +# +CREATE TABLE t1 ( +a INT NOT NULL, +p POINT NOT NULL, +l LINESTRING NOT NULL, +g GEOMETRY NOT NULL, +PRIMARY KEY(p), +SPATIAL KEY `idx2` (p), +SPATIAL KEY `idx3` (l), +SPATIAL KEY `idx4` (g) +) ENGINE=InnoDB; +INSERT INTO t1 VALUES( +1, ST_GeomFromText('POINT(10 10)'), +ST_GeomFromText('LINESTRING(1 1, 5 5, 10 10)'), +ST_GeomFromText('POLYGON((30 30, 40 40, 50 50, 30 50, 30 40, 30 30))')); +INSERT INTO t1 VALUES( +2, ST_GeomFromText('POINT(20 20)'), +ST_GeomFromText('LINESTRING(2 3, 7 8, 9 10, 15 16)'), +ST_GeomFromText('POLYGON((10 30, 30 40, 40 50, 40 30, 30 20, 10 30))')); +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +a ST_AsText(p) ST_AsText(l) ST_AsText(g) +1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +2 POINT(20 20) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) +EXPLAIN UPDATE t1 SET p = ST_GeomFromText('POINT(30 30)') WHERE p = ST_GeomFromText('POINT(20 20)'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 UPDATE t1 NULL range PRIMARY PRIMARY 27 const # 100.00 Using where +UPDATE t1 SET p = ST_GeomFromText('POINT(30 30)') WHERE p = ST_GeomFromText('POINT(20 20)'); +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +a ST_AsText(p) ST_AsText(l) ST_AsText(g) +1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +2 POINT(30 30) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) +ALTER TABLE t1 DROP PRIMARY KEY; +ALTER TABLE t1 ADD PRIMARY KEY(a); +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +a ST_AsText(p) ST_AsText(l) ST_AsText(g) +1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +2 POINT(30 30) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) +ALTER TABLE t1 DROP PRIMARY KEY; +ALTER TABLE t1 ADD PRIMARY KEY(p); +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +a ST_AsText(p) ST_AsText(l) ST_AsText(g) +1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +2 POINT(30 30) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) NOT NULL, + `p` point NOT NULL, + `l` linestring NOT NULL, + `g` geometry NOT NULL, + PRIMARY KEY (`p`(25)), + SPATIAL KEY `idx2` (`p`), + SPATIAL KEY `idx3` (`l`), + SPATIAL KEY `idx4` (`g`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +a ST_AsText(p) ST_AsText(l) ST_AsText(g) +1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +2 POINT(30 30) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) +ALTER TABLE t1 DROP PRIMARY KEY; +ALTER TABLE t1 ADD PRIMARY KEY(p); +EXPLAIN SELECT a, ST_AsText(p) FROM t1 WHERE a = 2 AND p = ST_GeomFromText('POINT(30 30)'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL const PRIMARY,idx2 PRIMARY 27 const # 100.00 NULL +Warnings: +Note 1003 /* select#1 */ select '2' AS `a`,st_astext(' +SELECT a, ST_AsText(p) FROM t1 WHERE a = 2 AND p = ST_GeomFromText('POINT(30 30)'); +a ST_AsText(p) +2 POINT(30 30) +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +a ST_AsText(p) ST_AsText(l) ST_AsText(g) +1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +2 POINT(30 30) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; +# +# Test for foreign keys. +# +CREATE TABLE parent(p POINT, PRIMARY KEY(p)) ENGINE=InnoDB; +CREATE TABLE child(p POINT NOT NULL) ENGINE=InnoDB; +ALTER TABLE parent ADD SPATIAL INDEX idx1(p ASC); +ALTER TABLE child ADD SPATIAL INDEX idx2(p ASC); +SHOW CREATE TABLE parent; +Table Create Table +parent CREATE TABLE `parent` ( + `p` point NOT NULL, + PRIMARY KEY (`p`(25)), + SPATIAL KEY `idx1` (`p`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SHOW CREATE TABLE child; +Table Create Table +child CREATE TABLE `child` ( + `p` point NOT NULL, + SPATIAL KEY `idx2` (`p`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); +ERROR HY000: Cannot add foreign key constraint +ALTER TABLE parent DROP INDEX idx1; +ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); +ERROR HY000: Cannot add foreign key constraint +ALTER TABLE child DROP INDEX idx2; +ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); +ERROR HY000: Cannot add foreign key constraint +DROP TABLE child, parent; +# +# Bug#28763: Selecting geometry fields in UNION caused server crash. +# +CREATE TABLE t1(f1 GEOMETRY, f2 POINT, f3 GEOMETRY) ENGINE=InnoDB; +SELECT f1 FROM t1 UNION SELECT f1 FROM t1; +f1 +INSERT INTO t1 (f2,f3) VALUES (ST_GeomFromText('POINT(1 1)'), +ST_GeomFromText('POINT(2 2)')); +SELECT ST_AsText(f2),ST_AsText(f3) FROM t1; +ST_AsText(f2) ST_AsText(f3) +POINT(1 1) POINT(2 2) +SELECT ST_AsText(a) FROM (SELECT f2 AS a FROM t1 UNION SELECT f3 FROM t1) t; +ST_AsText(a) +POINT(1 1) +POINT(2 2) +CREATE TABLE t2 AS SELECT f2 AS a FROM t1 UNION SELECT f3 FROM t1; +DESC t2; +Field Type Null Key Default Extra +a geometry YES NULL +SELECT ST_AsText(a) FROM t2; +ST_AsText(a) +POINT(1 1) +POINT(2 2) +DROP TABLE t1, t2; diff --git a/mysql-test/suite/innodb_gis/r/point_big.result b/mysql-test/suite/innodb_gis/r/point_big.result new file mode 100644 index 00000000000..de3632994a0 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/point_big.result @@ -0,0 +1,549 @@ +# +# Test when the POINT is on B-TREE +# +CREATE TABLE t1(fid INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, p POINT, KEY(p)) ENGINE=InnoDB; +INSERT INTO t1 VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); +SELECT ST_AsText(p) FROM t1; +ST_AsText(p) +POINT(10 10) +POINT(20 10) +POINT(20 20) +POINT(10 20) +SELECT ST_AsText(p) FROM t1 WHERE p = ST_PointFromText('POINT(20 20)'); +ST_AsText(p) +POINT(20 20) +INSERT INTO t1 VALUES +(201, ST_PointFromText('POINT(100.32374832 101.23741821)')), +(202, ST_PointFromText('POINT(102.43287328 100.23489233)')), +(203, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(204, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))), +(205, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(206, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))); +SELECT ST_AsText(p), COUNT(*) FROM t1 GROUP BY p; +ST_AsText(p) COUNT(*) +POINT(10 10) 1 +POINT(10 20) 1 +POINT(20 10) 1 +POINT(20 20) 1 +POINT(101.43284962 100.45892392) 2 +POINT(100.32374832 101.23741821) 1 +POINT(102.43287328 100.23489233) 1 +POINT(103.4371864 105.248206478) 2 +TRUNCATE t1; +SELECT * FROM t1; +fid p +INSERT INTO t1(p) VALUES(ST_PointFromText('POINT(10 10)')), +(ST_PointFromText('POINT(10 20)')), +(ST_PointFromText('POINT(10 40)')), +(ST_PointFromText('POINT(10 60)')), +(ST_PointFromText('POINT(20 15)')), +(ST_PointFromText('POINT(30 10)')), +(ST_PointFromText('POINT(40 10)')), +(ST_PointFromText('POINT(50 10)')), +(ST_PointFromText('POINT(60 5)')), +(ST_PointFromText('POINT(60 10)')), +(ST_PointFromText('POINT(60 20)')), +(ST_PointFromText('POINT(60 100)')), +(ST_PointFromText('POINT(100 100)')), +(ST_PointFromText('POINT(80 60)')), +(ST_PointFromText('POINT(81 50)')), +(ST_PointFromText('POINT(82 70)')), +(ST_PointFromText('POINT(83 30)')), +(ST_PointFromText('POINT(20 100)')), +(ST_PointFromText('POINT(150 2000)')), +(ST_PointFromText('POINT(109 230)')), +(ST_PointFromText('POINT(280 250)')), +(ST_PointFromText('POINT(176 175)')), +(ST_PointFromText('POINT(200 10)')), +(NULL), +(NULL); +SELECT ST_AsText(p) FROM t1; +ST_AsText(p) +POINT(10 10) +POINT(10 20) +POINT(10 40) +POINT(10 60) +POINT(20 15) +POINT(30 10) +POINT(40 10) +POINT(50 10) +POINT(60 5) +POINT(60 10) +POINT(60 20) +POINT(60 100) +POINT(100 100) +POINT(80 60) +POINT(81 50) +POINT(82 70) +POINT(83 30) +POINT(20 100) +POINT(150 2000) +POINT(109 230) +POINT(280 250) +POINT(176 175) +POINT(200 10) +NULL +NULL +SELECT COUNT(*) FROM t1; +COUNT(*) +25 +SELECT ST_AsText(p) FROM t1; +ST_AsText(p) +POINT(10 10) +POINT(10 20) +POINT(10 40) +POINT(10 60) +POINT(20 15) +POINT(30 10) +POINT(40 10) +POINT(50 10) +POINT(60 5) +POINT(60 10) +POINT(60 20) +POINT(60 100) +POINT(100 100) +POINT(80 60) +POINT(81 50) +POINT(82 70) +POINT(83 30) +POINT(20 100) +POINT(150 2000) +POINT(109 230) +POINT(280 250) +POINT(176 175) +POINT(200 10) +NULL +NULL +SELECT COUNT(*) FROM t1; +COUNT(*) +25 +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +SELECT COUNT(*) FROM t1; +COUNT(*) +102400 +SELECT ST_AsText(p), COUNT(*) FROM t1 GROUP BY p; +ST_AsText(p) COUNT(*) +NULL 8192 +POINT(10 10) 4096 +POINT(10 20) 4096 +POINT(10 40) 4096 +POINT(10 60) 4096 +POINT(20 15) 4096 +POINT(20 100) 4096 +POINT(30 10) 4096 +POINT(40 10) 4096 +POINT(50 10) 4096 +POINT(60 5) 4096 +POINT(60 10) 4096 +POINT(60 20) 4096 +POINT(60 100) 4096 +POINT(80 60) 4096 +POINT(100 100) 4096 +POINT(176 175) 4096 +POINT(200 10) 4096 +POINT(81 50) 4096 +POINT(109 230) 4096 +POINT(82 70) 4096 +POINT(280 250) 4096 +POINT(83 30) 4096 +POINT(150 2000) 4096 +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(280 250)'); +COUNT(*) +4096 +DELETE FROM t1 WHERE p = ST_PointFromText('POINT(280 250)'); +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(280 250)'); +COUNT(*) +0 +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 5)'); +COUNT(*) +4096 +DELETE FROM t1 WHERE P = ST_PointFromText('POINT(60 5)'); +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 5)'); +COUNT(*) +0 +SELECT ST_AsText(p), COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 10)') OR p = ST_PointFromText('POINT(60 20)') OR p = ST_PointFromText('POINT(60 30)') GROUP BY p; +ST_AsText(p) COUNT(*) +POINT(60 10) 4096 +POINT(60 20) 4096 +UPDATE t1 SET p = ST_PointFromText('POINT(101 102)') WHERE p = ST_PointFromText('POINT(60 10)') OR p = ST_PointFromText('POINT(60 20)') OR p = ST_PointFromText('POINT(60 30)'); +SELECT ST_AsText(p), COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 10)') OR p = ST_PointFromText('POINT(60 20)') OR p = ST_PointFromText('POINT(60 30)') GROUP BY p; +ST_AsText(p) COUNT(*) +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(101 102)'); +COUNT(*) +8192 +SELECT COUNT(*) FROM t1 WHERE p IS NULL; +COUNT(*) +8192 +UPDATE t1 SET p = ST_PointFromText('POINT(160 160)') WHERE p IS NULL; +SELECT COUNT(*) FROM t1 WHERE p IS NULL; +COUNT(*) +0 +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(160 160)'); +COUNT(*) +8192 +SELECT ST_AsText(p), COUNT(*) FROM t1 GROUP BY p; +ST_AsText(p) COUNT(*) +POINT(10 10) 4096 +POINT(10 20) 4096 +POINT(10 40) 4096 +POINT(10 60) 4096 +POINT(20 15) 4096 +POINT(20 100) 4096 +POINT(30 10) 4096 +POINT(40 10) 4096 +POINT(50 10) 4096 +POINT(60 100) 4096 +POINT(80 60) 4096 +POINT(100 100) 4096 +POINT(160 160) 8192 +POINT(176 175) 4096 +POINT(200 10) 4096 +POINT(81 50) 4096 +POINT(101 102) 8192 +POINT(109 230) 4096 +POINT(82 70) 4096 +POINT(83 30) 4096 +POINT(150 2000) 4096 +SELECT COUNT(*) FROM t1; +COUNT(*) +94208 +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; +# +# Test when POINT is used in spatial index +# +SET @ls1 = ST_GeomFromText('LINESTRING(0 20, 10 0)'); +SET @ls2 = ST_GeomFromText('LINESTRING(0 0, 10 20)'); +SET @ls3 = ST_GeomFromText('LINESTRING(20 -40, 21 -42)'); +SET @ls4 = ST_GeomFromText('LINESTRING(20 -42, 21 -40)'); +SET @poly1 = ST_GeomFromText('POLYGON((2 2, 2 10, 10 10, 10 2, 2 2))'); +SET @poly2 = ST_GeomFromText('POLYGON((0 0, -5 0, -4 -1, -6 -15, -3 -15, 0 0))'); +SET @poly3 = ST_GeomFromText('POLYGON((10.0 10.0, 20.5 20, 20.5 50, 32.0 64.0, 32.3 64.6, 5 60, 10 10))'); +SET @poly4 = ST_GeomFromText('POLYGON((0 10, -10 10, -10 -10, 0 -10, 0 10))'); +SET @p1 = ST_PointFromText('POINT(0 0)'); +SET @mpoly = ST_GeomFromText('MULTIPOLYGON(((3 3, 3 16, 16 16, 16 3, 3 3)), ((10 10, 10 50, 50 50, 50 10, 10 10)))'); +CREATE TABLE gis_point (p1 POINT NOT NULL, p2 POINT NOT NULL, SPATIAL KEY k1 (p1), SPATIAL KEY k2 (p2)) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(1 2)'), ST_PointFromText('POINT(-1 -3)')), +(ST_PointFromText('POINT(2 4)'), ST_PointFromText('POINT(-2 -6)')), +(ST_PointFromText('POINT(3 6)'), ST_PointFromText('POINT(-3 -9)')), +(ST_PointFromText('POINT(4 8)'), ST_PointFromText('POINT(-4 -12)')), +(ST_PointFromText('POINT(5 10)'), ST_PointFromText('POINT(-5 -15)')), +(ST_PointFromText('POINT(6 12)'), ST_PointFromText('POINT(-6 -18)')), +(ST_PointFromText('POINT(7 14)'), ST_PointFromText('POINT(-7 -21)')), +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(9 18)'), ST_PointFromText('POINT(-4 2)')), +(ST_PointFromText('POINT(10 21)'), ST_PointFromText('POINT(-6 3)')), +(ST_PointFromText('POINT(20.5 41)'), ST_PointFromText('POINT(-8 4)')), +(ST_PointFromText('POINT(26.25 57)'), ST_PointFromText('POINT(1 2)')), +(ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)')); +'The ORDER BY for spatial index will use filesort' +EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using filesort +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` order by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2` +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; +ST_AsText(p1) ST_AsText(p2) +POINT(2 4) POINT(-2 -6) +POINT(3 6) POINT(-3 -9) +POINT(4 8) POINT(-4 -12) +POINT(5 10) POINT(-5 -15) +POINT(6 12) POINT(-6 -18) +POINT(7 14) POINT(-7 -21) +POINT(8 16) POINT(0 0) +POINT(9 18) POINT(-4 2) +POINT(10 21) POINT(-6 3) +POINT(1 2) POINT(-1 -3) +POINT(26.25 57) POINT(1 2) +POINT(20.5 41) POINT(-8 4) +POINT(32.1234 64.2468) POINT(-1 -1) +'Try to do IDU on the table and verify the result' +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) +POINT(32.1234 64.2468) +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 41)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) AND (20.5 41) +POINT(32.1234 64.2468) +POINT(20.5 41) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +============================================================ +Use a trx to test the IDU on the table and verify the result +============================================================ +START TRANSACTION; +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) +POINT(32.1234 64.2468) +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 49)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 49)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) AND (20.5 49) +POINT(32.1234 64.2468) +POINT(20.5 49) +ROLLBACK; +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); +Expect (32.1234 64.2468) AND (20.5 41) +POINT(32.1234 64.2468) +POINT(20.5 41) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +======================================================= +Enlarge the table by inserting the same data and verify +======================================================= +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(2 4) POINT(-2 -6) +1024 POINT(3 6) POINT(-3 -9) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +1024 POINT(8 16) POINT(0 0) +1024 POINT(9 18) POINT(-4 2) +1024 POINT(10 21) POINT(-6 3) +1024 POINT(1 2) POINT(-1 -3) +1024 POINT(26.25 57) POINT(1 2) +1024 POINT(20.5 41) POINT(-8 4) +1024 POINT(32.1234 64.2468) POINT(-1 -1) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_Intersection(@ls1, @ls2) = p1 GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(5 10) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(3 6) +1024 POINT(4 8) +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2; +COUNT(*) ST_AsText(p2) +1024 POINT(-2 -6) +1024 POINT(-3 -9) +1024 POINT(-4 -12) +1024 POINT(-1 -3) +1024 POINT(-1 -1) +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2; +COUNT(*) ST_AsText(p2) +1024 POINT(0 0) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(20.5 41) +1024 POINT(32.1234 64.2468) +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +1024 POINT(20.5 41) POINT(-8 4) +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +====================================================================== +Build another new table with the same schema, will insert data from this table to the orignal one +====================================================================== +CREATE TABLE p(p1 POINT NOT NULL, p2 POINT NOT NULL, SPATIAL INDEX k1(p2)) ENGINE=InnoDB; +INSERT INTO p VALUES(ST_PointFromText('POINT(1000 -1000)'), ST_PointFromText('POINT(-201 203.56)')); +INSERT INTO p VALUES(ST_PointFromText('POINT(20.5 43.9832)'), ST_PointFromText('POINT(-0 0)')); +INSERT INTO p VALUES(ST_PointFromText('POINT(-4.2 -6.98)'), ST_PointFromText('POINT(-120.5 343.9832)')); +INSERT INTO p SELECT * FROM p WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((0 0, 0 2000, 2000 2000, 2000 -2000, 0 -2000, 0 0))')); +INSERT INTO p SELECT * FROM p WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((0 0, -10 0, -100 -100, 0 -50, 0 0))')); +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM p GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +2 POINT(1000 -1000) POINT(-201 203.56) +2 POINT(20.5 43.9832) POINT(-0 0) +2 POINT(-4.2 -6.98) POINT(-120.5 343.9832) +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(2 4) POINT(-2 -6) +1024 POINT(3 6) POINT(-3 -9) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +1024 POINT(8 16) POINT(0 0) +1024 POINT(9 18) POINT(-4 2) +1024 POINT(10 21) POINT(-6 3) +1024 POINT(1 2) POINT(-1 -3) +1024 POINT(26.25 57) POINT(1 2) +14 POINT(1000 -1000) POINT(-201 203.56) +1024 POINT(20.5 41) POINT(-8 4) +14 POINT(20.5 43.9832) POINT(-0 0) +1024 POINT(32.1234 64.2468) POINT(-1 -1) +14 POINT(-4.2 -6.98) POINT(-120.5 343.9832) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(20.5 41) +1024 POINT(32.1234 64.2468) +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE MBRWithin(p2, @poly2) GROUP BY p2; +COUNT(*) ST_AsText(p2) +1024 POINT(-2 -6) +1024 POINT(-3 -9) +1024 POINT(-4 -12) +1024 POINT(-1 -3) +1024 POINT(-1 -1) +DROP TABLE p; +================================ +Use a trx to test IUD and verify +================================ +============================================= +Delete those rows selected from another table +============================================= +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(2 4) POINT(-2 -6) +1024 POINT(3 6) POINT(-3 -9) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +1024 POINT(8 16) POINT(0 0) +1024 POINT(9 18) POINT(-4 2) +1024 POINT(10 21) POINT(-6 3) +1024 POINT(1 2) POINT(-1 -3) +1024 POINT(26.25 57) POINT(1 2) +14 POINT(1000 -1000) POINT(-201 203.56) +1024 POINT(20.5 41) POINT(-8 4) +14 POINT(20.5 43.9832) POINT(-0 0) +1024 POINT(32.1234 64.2468) POINT(-1 -1) +14 POINT(-4.2 -6.98) POINT(-120.5 343.9832) +UPDATE gis_point SET p2 = ST_PointFromText('POINT(2000 2000)') WHERE ST_Contains(ST_GeomFromText('POLYGON((-100 100, -400 100, -400 400, -100 400, -100 100))'), p2) OR ST_Contains(ST_GeomFromText('POLYGON((-0.0001 -0.0002, -0.0001 0.00002, 0.00000005 0.000001, 0.0000025 -0.001, -0.0001 -0.0002))'), p2); +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +'To remove all the just updated rows' +DELETE FROM gis_point WHERE ST_Intersection(ST_GeomFromText('LINESTRING(1800 1900, 2200 2100)'), ST_GeomFromText('LINESTRING(0 0, 2001 2001)')) = p2; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')); +====================================================================== +Following results should be almost the same with those at the beginning +====================================================================== +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(2 4) POINT(-2 -6) +1024 POINT(3 6) POINT(-3 -9) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +2 POINT(8 16) POINT(0 0) +1024 POINT(9 18) POINT(-4 2) +1024 POINT(10 21) POINT(-6 3) +1024 POINT(1 2) POINT(-1 -3) +1024 POINT(26.25 57) POINT(1 2) +1024 POINT(20.5 41) POINT(-8 4) +1024 POINT(32.1234 64.2468) POINT(-1 -1) +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) +FROM gis_point +WHERE ST_Contains(ST_GeomFromText('POLYGON((-1000 -1000, -1000 1000, 1000 1000, 1001 -1001, -1000 -1000))'), p1) +GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(2 4) POINT(-2 -6) +1024 POINT(3 6) POINT(-3 -9) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +2 POINT(8 16) POINT(0 0) +1024 POINT(9 18) POINT(-4 2) +1024 POINT(10 21) POINT(-6 3) +1024 POINT(1 2) POINT(-1 -3) +1024 POINT(26.25 57) POINT(1 2) +1024 POINT(20.5 41) POINT(-8 4) +1024 POINT(32.1234 64.2468) POINT(-1 -1) +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +ST_AsText(p1) ST_AsText(p2) +POINT(2 4) POINT(-2 -6) +POINT(3 6) POINT(-3 -9) +POINT(4 8) POINT(-4 -12) +POINT(5 10) POINT(-5 -15) +POINT(6 12) POINT(-6 -18) +POINT(7 14) POINT(-7 -21) +POINT(8 16) POINT(0 0) +POINT(9 18) POINT(-4 2) +POINT(10 21) POINT(-6 3) +POINT(1 2) POINT(-1 -3) +POINT(26.25 57) POINT(1 2) +POINT(20.5 41) POINT(-8 4) +POINT(32.1234 64.2468) POINT(-1 -1) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_Intersection(@ls1, @ls2) = p1 GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(5 10) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(3 6) +1024 POINT(4 8) +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2; +COUNT(*) ST_AsText(p2) +1024 POINT(-2 -6) +1024 POINT(-3 -9) +1024 POINT(-4 -12) +1024 POINT(-1 -3) +1024 POINT(-1 -1) +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2; +COUNT(*) ST_AsText(p2) +2 POINT(0 0) +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1; +COUNT(*) ST_AsText(p1) +1024 POINT(20.5 41) +1024 POINT(32.1234 64.2468) +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +1024 POINT(4 8) POINT(-4 -12) +1024 POINT(5 10) POINT(-5 -15) +1024 POINT(6 12) POINT(-6 -18) +1024 POINT(7 14) POINT(-7 -21) +1024 POINT(20.5 41) POINT(-8 4) +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2; +COUNT(*) ST_AsText(p1) ST_AsText(p2) +CHECK TABLE gis_point; +Table Op Msg_type Msg_text +test.gis_point check status OK +DROP TABLE gis_point; diff --git a/mysql-test/suite/innodb_gis/r/repeatable_spatial.result b/mysql-test/suite/innodb_gis/r/repeatable_spatial.result new file mode 100644 index 00000000000..6a2ab9a4ad2 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/repeatable_spatial.result @@ -0,0 +1,154 @@ +CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL, +c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL) +ENGINE=InnoDB; +ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC); +ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC); +ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon'; +ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry'; +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))')); +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; +c1 ST_AsText(c2) ST_AsText(c3) ST_AsText(c4) ST_AsText(c5) +1 POINT(10 10) LINESTRING(5 5,20 20,30 30) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +"In connection 1" +SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; +SELECT @@tx_isolation; +@@tx_isolation +REPEATABLE-READ +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; +c1 ST_AsText(c2) ST_AsText(c3) ST_AsText(c4) ST_AsText(c5) +1 POINT(10 10) LINESTRING(5 5,20 20,30 30) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +"In connection 2" +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +SELECT @@tx_isolation; +@@tx_isolation +READ-COMMITTED +START TRANSACTION; +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))')); +SET @g1 = ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'); +SET @g2 = ST_GeomFromText('POINT(10 10)'); +UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))') +WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2); +"In connection 1" +SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'); +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3); +c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +START TRANSACTION; +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +"In connection 2" +SELECT COUNT(*) FROM tab; +COUNT(*) +2 +COMMIT; +"In connection 1" +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +SET @g4 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))'); +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); +ST_AsText(c5) +COMMIT; +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); +ST_AsText(c5) +POLYGON((300 300,400 400,500 500,300 500,300 400,300 300)) +SELECT COUNT(*) FROM tab; +COUNT(*) +2 +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab; +c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) +1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300)) +2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) +DROP TABLE tab; +CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL, +c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL) +ENGINE=InnoDB; +ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC); +ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC); +ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon'; +ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry'; +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))')); +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; +c1 ST_AsText(c2) ST_AsText(c3) ST_AsText(c4) ST_AsText(c5) +1 POINT(10 10) LINESTRING(5 5,20 20,30 30) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +"In connection 1" +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +SELECT @@tx_isolation; +@@tx_isolation +REPEATABLE-READ +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; +c1 ST_AsText(c2) ST_AsText(c3) ST_AsText(c4) ST_AsText(c5) +1 POINT(10 10) LINESTRING(5 5,20 20,30 30) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) +"In connection 2" +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +SELECT @@tx_isolation; +@@tx_isolation +READ-COMMITTED +START TRANSACTION; +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))')); +SET @g1 = ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'); +SET @g2 = ST_GeomFromText('POINT(10 10)'); +UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))') +WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2); +"In connection 1" +SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'); +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3); +c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +START TRANSACTION; +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +"In connection 2" +SELECT COUNT(*) FROM tab; +COUNT(*) +2 +COMMIT; +"In connection 1" +SELECT COUNT(*) FROM tab; +COUNT(*) +1 +SET @g4 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))'); +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); +ST_AsText(c5) +COMMIT; +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); +ST_AsText(c5) +POLYGON((300 300,400 400,500 500,300 500,300 400,300 300)) +SELECT COUNT(*) FROM tab; +COUNT(*) +2 +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab; +c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) +1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300)) +2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) +DROP TABLE tab; diff --git a/mysql-test/suite/innodb_gis/r/rollback.result b/mysql-test/suite/innodb_gis/r/rollback.result new file mode 100644 index 00000000000..8471065359e --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rollback.result @@ -0,0 +1,416 @@ +CREATE TABLE t4 (id bigint(12) unsigned NOT NULL auto_increment, +c2 varchar(15) collate utf8_bin default NULL, +c1 varchar(15) collate utf8_bin default NULL, +c3 varchar(10) collate utf8_bin default NULL, +spatial_point point NOT NULL, +PRIMARY KEY(id), +SPATIAL KEY (spatial_point) +)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES +('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), +('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), +('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), +('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), +('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), +('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), +('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), +('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), +('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), +('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), +('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), +('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), +('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), +('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), +('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), +('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), +('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), +('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), +('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), +('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), +('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), +('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), +('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), +('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), +('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), +('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), +('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), +('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), +('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), +('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), +('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), +('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), +('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), +('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), +('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), +('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), +('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), +('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), +('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), +('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), +('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), +('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), +('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), +('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), +('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), +('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), +('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), +('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), +('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), +('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), +('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), +('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), +('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), +('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), +('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), +('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), +('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), +('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), +('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), +('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), +('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), +('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), +('b', 's', 's', ST_GeomFromText('POINT(223 211)')), +('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), +('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), +('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), +('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), +('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), +('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), +('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), +('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), +('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), +('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), +('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), +('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), +('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), +('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), +('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), +('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), +('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), +('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), +('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), +('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), +('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), +('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), +('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), +('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), +('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), +('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), +('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), +('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), +('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), +('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), +('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), +('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), +('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), +('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), +('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), +('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), +('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES +('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), +('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), +('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), +('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), +('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), +('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), +('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), +('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), +('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), +('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), +('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), +('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), +('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), +('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), +('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), +('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), +('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), +('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), +('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), +('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), +('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), +('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), +('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), +('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), +('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), +('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), +('z', 't', 't', ST_GeomFromText('POINT(99 134)')), +('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), +('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), +('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), +('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), +('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), +('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), +('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), +('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), +('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), +('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), +('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), +('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), +('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), +('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), +('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), +('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), +('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), +('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), +('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), +('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), +('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), +('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), +('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), +('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), +('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), +('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), +('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), +('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), +('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), +('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), +('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), +('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), +('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), +('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), +('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), +('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), +('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), +('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), +('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), +('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), +('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), +('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), +('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), +('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), +('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), +('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), +('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), +('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), +('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), +('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), +('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), +('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), +('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), +('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), +('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), +('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), +('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), +('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), +('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), +('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), +('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), +('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), +('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), +('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), +('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), +('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), +('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), +('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), +('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), +('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), +('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), +('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), +('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), +('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), +('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), +('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), +('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), +('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), +('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), +('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), +('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), +('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), +('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), +('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), +('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), +('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), +('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), +('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), +('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), +('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), +('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), +('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), +('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), +('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), +('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), +('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), +('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), +('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), +('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), +('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), +('m', 's', 's', ST_GeomFromText('POINT(172 149)')), +('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), +('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), +('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), +('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), +('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), +('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), +('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), +('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), +('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), +('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), +('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), +('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), +('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), +('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), +('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), +('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), +('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), +('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), +('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), +('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), +('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES +('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), +('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), +('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), +('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), +('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), +('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), +('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), +('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), +('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), +('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), +('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), +('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), +('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), +('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), +('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), +('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), +('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), +('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), +('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), +('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), +('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), +('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), +('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), +('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), +('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), +('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), +('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), +('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), +('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), +('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), +('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), +('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), +('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), +('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), +('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), +('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), +('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), +('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), +('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), +('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), +('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), +('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), +('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), +('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), +('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), +('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), +('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), +('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), +('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), +('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), +('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), +('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), +('l', 's', 't', ST_GeomFromText('POINT(83 18)')), +('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), +('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), +('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), +('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), +('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), +('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), +('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), +('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), +('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), +('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), +('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), +('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), +('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), +('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), +('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), +('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), +('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), +('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), +('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), +('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), +('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), +('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), +('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), +('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), +('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), +('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), +('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), +('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), +('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), +('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), +('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), +('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), +('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), +('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), +('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), +('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), +('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), +('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), +('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), +('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), +('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), +('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), +('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), +('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), +('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), +('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), +('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); +start transaction; +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +rollback; +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); +INSERT INTO t4 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +DELETE FROM t4 WHERE id = 1280; +INSERT INTO t4 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +start transaction; +DELETE FROM t4 WHERE id = 1280; +rollback; +start transaction; +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES +('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +rollback; +DROP TABLE t4; +SET GLOBAL innodb_file_per_table='on'; +SET GLOBAL innodb_file_format='Barracuda'; +create table t1(i int primary key, +a geometry not null, spatial index(a)) row_format=dynamic engine=innodb; +insert into t1 values(1, st_geomfromtext(concat('multilinestring(','(-4286 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-4286 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-768 -136,-771 2864,-772 2860,-777 2862,-775 2858,-775 2863,-770 2866,-765 2871,-761 2874,-759 2878,-759 2883,-759 2886,-758 2886,-758 2886,-755 2890,-752 2890,-751 2890,1249 2890,1250 2892,1251 2892,1251 2892,1256 2897,1259 2894,1256 2899,1253 2904,1256 2904,1257 2906,1252 2910,1253 2910,1256 2912,1255 2913,1260 2911,1256 2913,1255 2918,1257 2921,1259 2925,1262 2922,1263 2923,1266 2926,1268 2929,1269 2932,1273 2937,1277 2942,1282 2942,1284 2939,1287 2935,1290 2935,1293 2938,1296 2940,1299 2942,1302 2947,1307 2952,1311 2956,1312 2958,1307 2956,1311 2955,1307 2956,1307 2960,1307 2962,1311 2965,1315 2967,1314 2968,1319 2969,1322 2973,1324 2978,1323 2977,1327 2982,1330 7982,1332 7985,1332 7986,1332 7988,1328 7991,1328 7991,1328 7991,1253 2910,1249 2908,1251 2908,1253 2913,1253 2909,1256 2914,1255 2916,1259 2919,1261 2923,1262 2923,1266 2925,1270 2930,1270 2932,1267 2929,1269 2929,1269 2931,1269 2926,1265 1926,1270 1926,1274 1926,1274 1929,1269 1929,1270 1931,1272 1935,1269 1935,1273 1938,1278 1938,1278 1938,1280 1943,1275 1948,1276 1951,1279 1948,1280 1952,1281 1952,1286 1954,1290 1958,1290 1963,1294 1964,1298 1962,1298 1958,1302 1963,1302 1967,1307 -2033,1311 -2030,1307 -2030,1310 -2025,1314 -2020,1317 -1020,1321 -1016,1321 -1018,1321 -1015,1326 -1016,1324 -1016,1327 -1011,1326 -1007,1326 -1002,1326 -1004,1321 -1004,1321 -1003,1324 -1008,1328 -1007,1328 -1003,1333 -999,1336 -998,1339 -997,1337 -996,1340 -2996,1335 -3000,1339 -2996,1343 -2995,1346 -2990,1341 -2990,1345 -2991,1345 -2995,1269 2931,1269 2936,1271 2941,1275 2941,6275 2943,6274 2943,6279 2939,6274 2942,6274 2946,6275 2947,6276 2948,6280 2947,6282 2951,6287 2952,6287 2956,6289 2959,6294 4959,6298 4964,6302 4965,6300 6965,6305 6965,11305 6967,11305 6967,11310 6966,11310 6966,11314 6964,11318 6969,11318 6972,11323 6974,11328 6977,11329 6979,11333 6982,11337 6982,11334 6982,11337 6983,11341 6988,11345 6991,11349 6992,11353 6993,11353 6996,11353 7000,11356 7000,11353 6000,11350 6002,11353 6004,11354 6007,11356 6009,11358 6009,11359 6011,11363 6016,11365 6013,11369 6015,11372 6017,11377 6022,11381 6025,11382 9025,11385 9029,11390 9024,11389 9020,11391 9020,11389 9016,11394 12016,11397 12021,11400 12021,11405 12024,11405 8024,11403 8029,11403 8032,11401 8033,11406 8032,11402 8027,11406 8027,11410 8029,11408 8030,11408 8035,11413 8035,11418 8038,11423 8038,11428 8036,11428 8037,11433 8033,11435 8032,6435 8035,6439 8036,6440 8034,6441 8039,6442 8043,6446 8045,6451 12045,6454 12050,6454 12049,6455 12054,6457 12057,6458 12060,6461 13060,6466 13060,6467 13065,6467 13070,6465 13073,6465 13073,6466 13077,6463 16077,6465 16081,6468 16077,6471 16077,6475 16078,6475 16080,6470 16082,6465 16084,6465 16088,6470 16091,6471 16091,6469 16089,6473 16091,6477 16091,6477 16093,6480 16098,6476 16099,6478 16099,6481 16100,6486 16105,6486 16110,6488 16105,6485 16107,6487 16108,6484 16104,6485 16101,6488 16101,6489 16103,6493 16105,6493 16108,6490 16110,6487 16113,6492 16116,6495 16118,6499 16123,6497 16124,6496 16127,6498 16132,6497 16134,6499 16138,6503 16143,6502 16138,6500 16140,6502 16144,6502 16146,6503 16150,6498 16151,6500 16154,6495 16154,6494 16154,6499 16156,7499 16158,7504 16161,7507 16166,7503 16163,7505 16163,7508 16163,7511 16165,7514 16162,7517 16165,7519 16166,7524 16165,7527 16168,7529 16172,7534 16172,7534 16177,7539 16179,7537 16179,7538 16184,7538 16185,7538 16189,7540 16191,7540 16193,7541 16193,7545 16197,7550 16199,7554 16204,7558 16208,7559 16211,7560 16214,7564 16216,7563 16215,7558 16219,7558 16216,7555 16221,7559 16223,7559 16224,7559 16226,7561 16231,7558 16235,7553 16240,7552 16236,7557 16234,7552 16236,7554 16238,7557 16239,7552 16243,7553 16243,7555 16243,7555 14243,7558 14248,7559 14243,7559 14239,7561 14241,7561 14243,7561 14248,7562 14250,7566 14254,7570 14254,7575 14256,7575 14259,7576 14259,7579 14259,7583 14257,7583 14257,7583 14253,7584 14249,7579 14247,7576 14245,7579 14250,7577 14253,7582 14256,7582 14257,7578 14253,7575 14252,7577 14255,7578 14255,7578 14256,7581 14257,7584 14252,7588 14252,7592 14249,7592 18249,7588 18253,7590 18255,7592 18259,7596 18254,7601 18255,7601 17255,7605 17256,7610 17258,7613 17261,7617 17262,7619 17266,7617 17267,7621 17268,7623 17272,7626 17272,7626 17277,7625 17282,7620 17281,7617 17284,7618 17287,7617 17283,7616 17281,7621 17279,7624 17281,7624 17282,7624 17279,7628 17279,7628 17280,7633 17284,7637 17280,7638 17280,7638 17281,7641 17282,7641 17282,7638 17283,7638 17284,7643 17280,7647 17281,7652 17285,7656 17285,7658 17288,7660 17290,7661 17292,7664 17297,7666 17302,7663 17304,7664 17300,7659 17303,7661 17303,7657 17307,7659 17307,8659 17310,8661 17313,8664 17314,8665 17313,8665 17309,8669 17313,8671 17316,8670 17320,8668 17320,3668 17323,3665 17324,3661 17329,3661 17331,1661 17332,1661 17333,1663 17338,1668 17333,1663 17333,1667 17331,1668 17331,1664 17334,1666 17337,1665 17337,6499 16138,6503 18138,10503 18142,10503 18142,10505 21142,10502 21144,10502 21142,10504 21141,10504 21139,10508 21140,10512 21141,10512 21143,10515 21144,10517 21147,10517 21143,10519 21143,10519 21146,10519 21142,10519 21142,10522 21141,10523 21141,10523 21145,10523 21149,10527 21153,10531 21154,10534 21158,10531 21158,10527 21160,10532 21165,10534 21165,10531 21165,10533 21162,10529 21163,10532 21160,10534 21163,10535 21161,10540 25161,10538 25164,10538 25166,10540 25171,10543 25171,10547 25175,10547 25175,10550 25178,10552 25182,10556 25177,10558 25181,10558 25183,10563 25187,10564 25183,10560 25188,10565 25188,10569 25191,10573 25195,10575 25199,7581 14257,7585 14257,7586 14257,7588 14254,7590 14255,7593 14256,7590 14260,7595 14263,7595 14259,7597 14256,7598 14261,7598 14258,7599 14261,7600 14261,7602 14258,7602 14258,7598 14259,7598 14264,7600 14267,7601 17267,7597 17268,7602 17273,7605 17276,7605 17276,7603 17279,7604 17279,7608 17278,7613 17282,7615 17285,7617 17288,2617 17288,2617 17289,2620 17289,2620 17285,-1380 17288,-1382 17287,-1384 17292,-1384 17294,-1380 17295,-1380 17297,-1380 17299,-1375 17303,-1372 17303,-1373 17298,-1368 13298,-1365 13301,-1366 13297,-1371 13295,-1371 13298,-1371 13298,-1375 13301,-1378 13302,-1378 13302,-1377 13302,-1374 13301,-1373 13306,-1370 13311,-1371 13307,-1366 13307,-1365 13309,11349 6992,11352 6992,11354 6997,11356 7002,11356 7007,11359 7010,11354 7005,9354 7009,9356 7011,9359 7016,9360 7014,9360 7015,9363 8015,9367 11015,9370 11012,9367 11012,9368 11016,9363 11017,9360 11018,9364 11021,9359 11016,11402 8027,11399 8029,11400 8033,11401 8034,11405 8029,11407 8027,11410 8029,12410 8033,12414 8035,12412 8040,12415 8040,12416 8045,12421 8042,12426 8037,12424 8042,12427 8042,12430 8044,12434 8046,12430 8048,12434 8045,9434 8045,9439 8043,9442 8043,9442 8045,9442 8040,9442 8035,9438 8038,9440 8039,9445 8036,9446 8039,9441 8043,12441 8047,12440 8048,12444 8052,12445 8057,12450 8053,12452 8053,12448 8054,12443 8058,12441 8063,12444 8067,12449 8067,12448 8071,12451 8076,12454 8073,17454 8073,17457 8074,17459 8079,17463 8079,17461 8080,17464 4080,17467 4085,17463 4085,17463 4088,17462 4090,17464 4095,17468 4094,17464 4097,17464 4093,17466 4088,17469 4092,17470 4094,17472 4089,17470 4090,17473 4089,17478 4094,17474 4091,17477 4095,17482 4100,17487 4103,17492 4101,17492 4104,17493 4101,17495 4106,17497 4106,17502 4111,17505 4111,17504 4113,17505 4115,17509 4119,17504 4123,17505 4127,17503 4131,17503 4126,17504 4126,17506 4129,17501 4132,17502 4133,17499 4133,17503 5133,17503 5135,17498 5134,21498 5134,21498 5131,21498 5133,21497 5138,21501 5140,21502 5138,21502 5141,21505 5136,21501 5139,21501 5141,21505 5146,21510 5151,21510 5155,21512 5156,21508 5159,21508 5163,21512 5167,21517 5169,21521 5173,21519 5172,21517 5172,21515 5172,21515 5173,21516 5172,21515 5169,21516 5170,21516 5170,21516 5168,21520 5172,21523 5172,21525 5174,21522 5176,21523 5180,21527 5176,21527 5177,21527 5178,21531 5183,21533 5181,21538 5176,21539 5179,21544 9179,21544 9184,21547 9186,21548 9184,21553 9188,21553 9193,21554 9195,21556 9200,21556 9201,21555 9201,21556 9205,21561 9205,21556 9202,21561 9203,22561 9204,22566 9204,22561 9208,22559 9210,22564 9207,22560 9205,22560 9208,22564 9210,22567 9214,22569 9218,22572 9222,22576 9218,23576 9222,24576 9220,24574 9224,24569 9228,24569 9228,6481 16100,6483 16101,6486 16104,6485 16108,8485 16110,8486 16115,8482 16110,8483 16115,8485 16110,8486 16106,8487 16103,8490 16106,8486 16107,8487 16104,8487 16104,8492 16108,8493 17108,8488 17108,8490 17110,8494 17114,8495 17113,8495 17117,8498 17117,8503 17122,8498 17124,8498 17128,8494 17129,8496 17134,8496 17134,8497 17135,8498 17135,8501 17135,8502 17132,8506 17132,8501 17130,8505 17131,21515 5169,21518 5164,21523 5160,21528 5162,21530 8162,21532 8164,21536 8165,21536 8168,21540 8169,21543 8165,25543 8169,25545 8173,25549 8169,29549 8174,29546 8177,29547 8172,29552 8177,29552 8180,29557 8180,29558 8175,34558 8180,34558 8176,34555 8179,34556 8181,7584 14249,7586 14250,7588 14252,7591 14256,7587 14257,7590 14257,7592 17257,7597 17261,7601 17265,7605 17268,7606 17273,7610 17268,7612 17270,7612 17271,7615 17266,7617 17266,7622 17270,7627 17272,7627 19272,7631 19277,7636 19279,7636 19280,7636 19285,7637 19287,7639 19290,7644 19295,7647 19291,7649 19296,7653 19296,7653 19291,7656 19292,7657 19292,7653 19292,7653 19297,7652 19297,7648 19299,7647 19303,7647 19304,7649 19307,7654 19309,7651 21309,7653 21309,7657 21313,7659 21309,7662 21310,7666 21314,7663 21314,7663 21317,7658 21317,7661 21321,7666 21323,7667 21328,7662 21333,7663 21328,7667 21332,7669 21334,7671 21330,7674 21326,7675 21331,7679 21336,7681 21338,7681 21342,7681 21342,7677 21345,7682 21346,3682 21348,3680 21350,3681 21351,3680 21349,3681 21349,3686 21350,8686 21355,8682 21354,8685 21350,8681 21345,8684 21350,8683 21353,8681 21356,8681 21358,8684 21361,8684 21364,8684 21367,8685 21363,8685 21365,8685 21362,8688 21358,8690 21359,8687 21364,8687 21364,8689 21361,8691 21356,8696 21353,8696 21352,8699 21352,8699 21357,8703 21358,8706 21353,8708 21358,17503 4126,17505 4129,20505 4133,20510 4133,20515 4128,21515 4129,21516 9129,21519 9131,21524 9134,21522 9135,21522 9138,21518 9137,21516 9138,21516 9138,21515 12138,21516 12142,21518 12146,21513 12144,21517 12149,21521 12144,21521 12148,21523 12151,21527 12148,21527 12143,21528 12148,21528 12145,21533 12149,21534 12152,21537 12155,21532 7155,21536 7153,21540 7157,21536 7154,21540 7154,21539 7157,21539 7160,21542 7160,21547 7164,21551 7168,21554 9168,21556 9168,21556 9169,21559 9166,21561 9169,21565 9171,21568 9176,21565 9181,21567 9180,23567 9178,23570 9181,23575 9181,23571 9181,20571 9176,20574 9179,20569 9182,20569 9184,20570 9189,20565 9191,20562 9195,20559 9196,20559 9201,20563 9197,20564 9193,20565 9197,20565 9200,20565 9200,20563 9201,20559 9205,20564 13205,20560 13207,20560 13212,20555 13213,20558 13217,20554 13217,20558 13219,20559 13222,20561 13223,20561 13226,20561 13231,20562 13232,20567 13235,20564 13239,20560 13239,20560 13236,20560 13236,20560 13237,20564 13241,24564 13241,28564 13242,28564 13240,28561 13237,28561 13240,28562 13243,28563 13243,28560 13248,28559 13248,28559 9248,28562 9245,28564 9241,28567 9245,28568 9240,28568 9245,28571 9247,28571 9248,28574 9253,28572 9256,28576 9257,28577 9257,28574 9257,10564 25183,10566 25188,10567 25190,10568 25186,10569 25187,10570 25188,10573 25185,10568 25185,10570 25187,10573 25191,10573 25193,10578 25193,10578 25198,10581 25202,10582 25206,10578 25206,10579 25211,10580 25206,10582 25208,12426 8037,12427 8042,12432 8047,12437 8047,12435 8051,12435 9051,12432 9054,12433 9056,12435 9061,12438 9062,12435 9062,12438 9067,12434 9071,12431 9075,12436 11075,12436 11075,12441 11080,12445 11085,12449 11089,12445 11091,12442 11091,12442 11093,12442 11093,12443 11098,12439 11098,12440 11099,7440 11104,7442 11107,7446 11110,7446 11114,7451 6114,7452 6110,11452 6105,11452 6104,11454 6103,11459 6106,11462 6107,13462 6107,13458 6104,12458 9104,17458 9109,17458 9110,17460 9113,17465 12113,17468 12112,17468 12114,17466 12111,17470 12116,17469 12119,17472 12123,17470 12118,17474 12118,17476 12120,13476 12121,13480 17121,13480 17125,13484 17123,13489 17122,13489 17125,13487 17127,13487 17132,13486 17131,13491 17136,13491 17139,13495 17144,13496 17147,13496 21147,13498 21149,13498 21154,16498 21159,16503 21162,16504 26162,16509 26160,16509 26163,16509 26162,16514 26159,16518 26163,16522 26158,16518 30158,16516 30161,16516 30164,16517 30169,16520 30167,16525 30168,16528 30170,17528 30170,17532 30175,17533 30177,17533 30182,17536 30186,17537 30189,17540 30193,20540 30193,20541 30196,20541 30197,20542 30196,20544 30195,20548 30200,20553 30199,20557 30201,20561 30206,20565 30210,20566 30209,20568 30214,20568 30217,20563 30217,20563 30218,20565 30222,20567 30222,20572 30225,20567 29225,20570 29225,20570 29230,20573 29231,20571 29230,20569 29232,20570 29236,17504 4123,17505 4127,17508 5127,17505 5131,17505 5135,17509 5140,17508 5142,17510 5139,17515 5141,17517 5144,17522 5144,17524 5146,17529 5147,17529 5152,17533 8152,17533 8150,17537 8153,17532 8158,17533 11158,17536 11163,17540 16163,17540 16165,17542 16168,17542 16171,17542 16171,17547 16167,17548 16170,17550 16170,17545 16175,17549 16178,17549 16179,17549 16179,20549 16181,20551 16186,20549 15186,20550 15186,20547 15188,20550 15184,20546 15186,20545 15191,20548 15190,20552 15193,20557 15195,20552 15196,20557 15193,20562 15196,20562 15199,20567 15202,20563 15207,20564 15207,20564 15209,20568 15209,20571 13209,20573 13209,20576 13211,20577 13216,20574 14216,20570 14215,20568 17215,20568 17216,20570 17218,20575 17218,20580 16218,20583 16215,20586 16217,20581 16220,20582 16224,20585 16224,20588 16229,20590 16231,20592 16235,20595 16232,20595 16234,20598 16238,20603 16240,20607 16236,20608 16236,20608 16239,20611 21239,20613 21244,20614 21246,20612 21244,20612 21242,20615 21239,20616 21241,20621 21242,17621 21244,17626 21245,17629 21244,15629 21239,15632 21240,15636 21245,15637 21247,15639 21244,15637 21245,15642 21245,15647 21244,15646 21248,15650 21252,15653 21247,15651 21250,15649 21250,15645 21250,19645 21253,19648 21256,19647 21253,19643 21249,19646 21249,19648 21245,19650 21242,19647 21240,19652 21240,14652 21240,14657 21243,14659 21244,14664 21241,14659 21239,14654 21240,14651 21244,14647 21246,14647 21249,14650 21247,14651 21252,14651 21255,14649 21258,14652 21262,14655 21262,14652 21260,14653 21255,14653 21255,14653 21257,14656 21258,14651 21258,14653 21261,14654 21263,14654 21264,14659 21267,14660 21263,14664 21264,14666 26264,14661 26266,14661 26263,14661 26264,14666 26265,14667 26265,14665 26263,14669 26263,14667 26263,14669 26261,14667 26263,14671 26261,14671 26263,12671 26264,12672 26266,12677 26269,17677 26269,17673 26271,17676 26271,17676 26273,17681 26278,17685 26278,21536 8168,21539 8171,21543 8169,21538 8170,21541 8170,21544 8171,21548 8166,21548 8168,21552 8171,21555 8173,21558 8168,21557 8168,21562 8163,21559 8168,21559 8172,21564 8177,21569 8175,21568 8175,21573 8178,21575 8180,21570 8183,21570 8186,21566 8184,21569 8185,21569 8187,25569 8190,25571 8193,25575 8193,25576 8194,25576 13194,25580 13194,25584 13196,25589 13197,25592 13200,25595 13205,25592 17205,25593 17209,25594 17213,27594 17209,27592 17213,27590 17212,27592 17217,27592 17220,27596 17224,27599 17227,27603 17232,27603 17227,27605 17229,28605 17230,28607 17234,28609 17230,28610 17231,28610 17236,28611 17238,28613 17241,28614 17241,28615 17243,28616 18243,28618 18246,28618 18246,28622 18246,28627 18246,28632 18245,27632 18245,27634 18245,27633 18244,27638 18245,-1366 13297,-1365 13299,-1362 13303,-1362 13300,-1361 13304,-1366 13308,-1368 13304,-1368 13306,-1367 13309,-1363 13313,-1358 13313,-1353 13318,-1351 13319,-1347 13323,-1343 13318,-1343 13322,-1340 13317,-1337 13318,-1337 13322,-1337 13324,-1335 13327,-1339 13328,-339 13328,-334 13333,-331 13336,-327 13338,-326 13340,-326 13342,-321 13340,-318 13343,-317 11343,-312 11345,-307 11349,-311 11353,-314 11350,-311 11353,-313 11349,-308 11352,-313 11347,-308 11351,-306 9351,-306 9351,-306 9351,-301 9355,-301 9356,-299 9359,-297 9355,-297 9354,-296 9359,-294 9364,-290 9360,-294 9355,-289 9357,-291 9353,-286 9355,-4286 9351,-4283 9347,-4281 9344,-4281 9344,-4280 9342,-4280 9342,-4280 9339,-4277 9335,-4274 9333,-4274 9335,-4269 9336,-4265 9339,-4260 9340,-4256 9339,-4251 9336,-4251 9339,-4249 9344,-4254 9344,-4255 9348,-4253 7348,-4251 7352,-4247 7354,-4243 7357,-4242 7357,-4240 7362,-4240 7367,-4235 7371,-3235 7371,-3230 7376,-3225 7375,-3221 7372,-3223 7369,-3223 7371,-3223 7369,-3225 7364,-3220 7364,-3218 11364,-3218 11368,-3215 11369,-3210 11372,-3210 11369,-3208 11373,-3207 11377,-3207 11381,-3209 11384,-3209 11383,-1209 11379,-1211 11383,-1209 11383,-1205 11379,-1200 11384,-1197 11379,-1195 11375,-1197 11376,-1192 11377,-1192 11379,-1192 11384,-1188 11382,-1186 11382,-1181 11384,-1180 11388,-1176 11389,-1171 11388,-1171 11393,-1169 11393,-1164 11398,-1162 11393,-1158 11392,-1155 11395,-1155 11397,-155 16397,-156 16401,-156 16406,-158 16409,-158 16412,-158 16414,-160 16415,-158 20415,2842 20411,2847 20413,2848 20417,2848 20417,2848 20412,2850 20407,2850 20403,2846 20408,2847 20406,2849 20406,2854 20402,2858 20403,2863 23403,2858 23402,2855 23405,2858 23400,2857 23400,2852 26400,2849 26404,2850 26406,2855 26410,2859 26415,2863 26411,2866 26411,2866 26411,2866 26412,2868 26415,2868 26419,2868 26423,2873 26424,2876 26425,14656 21258,14661 21260,14664 21262,14664 22262,14662 22267,14662 22268,14662 22268,14658 22273,14660 22278,14658 22277,14659 22278,14660 22283,14661 22281,14661 22285,14661 22288,14664 22290,14659 22295,14662 22298,14663 22301,14667 22301,14668 22301,14673 22303,14678 22306,14681 22302,14686 22299,14686 22301,14683 22304,14686 22305,14687 22301,14689 25301,14684 25301,14684 25299,14685 25300,14685 25301,14685 24301,14688 24301,14693 24303,14693 24298,14693 24298,14688 24299,14689 24297,14690 24299,14690 24302,14690 24302,14686 24303,14686 24306,14688 24302,8492 16108,8494 16113,8498 16116,8495 16116,8496 16116,8499 16116,8504 20116,8508 20119,8508 20119,8507 20119,8509 20123,8509 20127,8512 20128,8514 20130,8519 20135,8522 20136,8522 20136,8524 20138,8524 20141,8528 20142,8526 20145,8530 20141,8530 20145,8532 20149,8531 20151,8536 20155,8535 20154,8539 20154,8539 20149,8539 20149,8543 20146,8540 25146,8538 23146,8540 23149,8540 23149,8545 23151,8546 23152,8551 23152,8555 23152,8559 23153,8561 23153,10561 18153,10561 18153,12561 18158,12564 18159,12566 18163,12567 18165,12564 18165,12568 20165,12570 20170,12575 20173,12579 20177,12576 20177,12579 20176,12584 20176,12583 20181,12585 20182,12583 20186,12582 20187,12585 20192,12582 20194,12584 20198,12586 20198,12581 20201,12582 20204,12581 20206,13581 20209,13586 20211,13586 20216,13589 20217,13589 20213,13586 20215,13588 20213,13592 20215,13596 20216,13596 20221,13600 20221,13598 20224,13595 20221,13598 20226,13602 20229,15602 20232,15606 20232,15611 20232,15610 20232,15613 20235,15617 20239,15612 20234,15612 20233,15615 20237,15617 20233,15619 20234,15619 20229,15623 25229,15624 25229,20624 25228,20628 25229,20631 25234,20630 25239,20634 25241,20632 25244,20636 25240,20634 25237,20639 25236,20634 25241,7590 14257,7592 14260,7592 14262,7592 14265,7595 14266,7600 14263,7600 14268,7604 14270,7609 14274,7611 14275,7615 14275,7620 14277,7620 14276,7625 14277,7625 14277,7628 14281,7628 14286,7630 14284,7630 14284,8543 20146,8542 20148,8546 20150,8550 20152,8550 20153,8550 20158,8545 20156,8545 20157,8550 20157,8550 20155,8550 20157,8553 20161,8557 20161,8557 20165,8560 20161,8563 20159,8568 20154,8570 20158,8573 20161,8573 20166,8577 20168,8580 20171,8584 20173,8585 20175,8580 20180,8582 20183,8582 20188,8582 20188,8585 20193,8588 20198,8589 20199,8591 20197,8594 20198,8596 20196,8592 23196,8597 25196,8601 25199,8601 25203,8604 25202,8604 25202,8599 25205,8601 25210,8601 25206,8603 25206,8606 25206,8605 25211,8609 25211,8613 25208,8614 25205,8619 25208,8619 25210,8621 25214,8619 29214,8615 29218,8616 29219,8617 29217,8622 29222,11622 29225,11624 29229,11623 29230,9623 29225,9621 29224,9625 29227,9628 29227,9624 29232,9626 29237,9631 29241,9634 29245,9635 29248,9638 29253,9643 29258,9646 29258,9647 29255,9648 29253,9650 29258,9648 29262,9647 29262,9642 29267,9646 29267,14646 29269,14650 29274,14655 29279,14654 29277,14655 29275,14653 29276,14655 29273,14656 29269,14653 29272,14656 29272,14656 29274,14660 29276,14663 29276,14660 29278,14659 29281,14659 29276,14661 29272,14656 29273,14657 29274,14652 29270,14654 29274,14657 29270,14659 29272,14655 29275,14657 29270,14659 32270,14660 32270,14662 32273,14665 32277,12665 32279,12670 32279,12670 32277,12670 32274,12672 32277,12677 32282,12682 32285,12678 32289,12674 32291,12677 32287,12679 32287,12683 32292,12685 32292,12680 32289,12682 32294,12683 32299,12687 32298,12692 32300,12695 32305,12699 32310,12703 32311,12704 32312,21515 5172,21516 5175,21518 5175,21513 5177,21516 5182,21520 5186,21525 5185,21529 5185,21528 5186,21530 5181,21533 5178,21537 5183,21537 5183,26537 5183,26534 5183,26539 5183,26542 5178,26542 5176,26544 5176,26546 5177,26548 5175,26549 5178,26548 5181,26548 5184,26553 10184,26557 10179,26559 10175,26563 10171,26563 10173,26564 10170,26568 10169,26572 10171,26577 10171,26581 10169,26577 10173,26573 10169,26575 10171,26578 12171,26576 12175,26576 12180,26581 12183,26577 12183,26580 12184,26582 12181,26582 12182,26583 12182,26588 12186,26590 12191,26593 12193,26593 12198,26598 12198,26602 12193,26602 12193,26604 12195,26607 12195,26611 12196,26615 12196,26615 12200,21534 12152,21534 12152,21537 12147,21540 12147,21545 12150,21545 12145,21548 12150,21549 12152,21544 12152,21544 12150,21547 12153,21552 12152,21553 12157,20553 12161,20553 12156,20556 12152,15556 12157,15559 12160,15557 12163,15561 12163,15564 12166,15565 12165,15561 12161,15559 12163,15559 12168,-4274 9335,-4274 9339,-4276 9341,-4276 9344,-4273 9341,-4271 9341,-4266 9342,-4266 9339,-4269 9335,-4265 9339,-4263 9342,-4259 9345,-4254 9345,-4250 9340,-4250 9335,-4245 9338,-4242 9341,-4240 9341,-3240 9346,-3242 9349,-3241 9351,-3239 9352,-3238 9355,-3237 9358,-3233 9356,-3232 9358,-3233 9358,-3228 9363,-3228 9364,-3223 9369,-3226 9369,-3224 9373,-3222 9378,-3217 9379,-3215 9384,-3215 9384,-3215 9389,-3215 9394,-3215 9390,-3210 9385,-210 9386,-207 9389,-208 9389,1328 -1007,1328 -1010,1329 -1013,1334 -1018,1339 -1013,1344 -1013,1346 -1013,1350 -1015,1351 -2015,1353 -2016,1353 -2011,1350 -2016,1350 -2013,1354 -2010,1356 -2005,1359 -2007,1364 -2005,1363 -2005,1365 -2000,1362 -1999,1365 -1998,1366 -1998,1362 -1994,1364 -1989,1365 -1988,3668 17323,3665 17327,3663 17332,3666 17337,3667 17341,11433 8033,11434 8035,11434 8031,11437 8031,11437 8032,11441 8033,11439 8033,11442 8036,11445 8037,11448 8038,11452 8043,11454 8047,11456 8047,11459 8044,11454 8049,11457 8051,11460 8052,11463 8055,11458 8057,1346 -2990,1346 -2986,1350 -2982,1347 -2986,1352 -2983,1352 -5983,1355 -5979,1358 -5974,1354 -5970,1356 -5965,1360 -5964,1362 -5960,1364 -5960,1364 -5960,1369 -5960,1364 -5963,1369 -5960,1374 -5957,1378 -5952,1380 -5951,1384 -5951,1380 -5948,1380 -5944,1384 -5942,1387 -5945,5387 -5949,5391 -5950,5395 -5950,5395 -5951,5395 -5949,5400 -5954,5404 -5953,5402 -5958,7402 -5958,7403 -5963,7404 -5960,7404 -5959,11363 6016,11359 6018,11364 6023,11365 6024,11365 6023,11369 6025,11373 6020,11378 6020,11377 6024,11379 6029,11383 6033,11384 6034,11388 6037,11389 6041,11394 6043,11396 6048,11401 6048,11402 6050,11406 6052,11404 6054,11409 6058,11413 6059,11415 6060,11411 6065,11416 6068,11420 6073,11415 6076,11416 6078,11419 6083,11423 6085,11428 6086,11430 6086,11432 11086,11437 11091,11432 11088,11429 11086,11432 11086,11427 11090,11427 11095,11429 11092,11427 11092,11431 11087,11433 11088,11436 11090,11436 11091,11436 11096,11439 11099,11440 11099,11440 11095,11445 11097,15445 11102,15445 11102,15441 11099,15445 11100,15445 11102,15443 11106,15445 11110,15450 11107,15453 11110,15457 11110,15457 11115,15459 11119,15460 11117,15465 11117,15465 11120,15464 11123,15463 11124,15460 11124,15460 16124,15458 16127,15462 16122,15466 16126,15462 16131,15465 16133,15463 16135,15462 16136,15462 16140,15466 16142,15468 16147,15468 16147,15471 16149,15471 16147,15475 12147,15477 12150,15480 12147,15484 12144,15487 12145,15490 12147,15492 12149,15494 12150,15496 12153,15497 12155,15499 12150,15499 12147,15500 12143,15504 12146,15499 12150,15500 12150,15500 12152,15505 12153,15506 12157,15506 12157,15508 12158,15512 12159,19512 12162,19513 12159,19511 12163,19512 12162,19517 12167,19520 12167,19522 12168,19525 12171,19525 12172,19525 12175,19526 12172,19526 12172,19526 17172,19527 17175,19528 17176,19529 17179,19529 17178,19533 17181,19532 17183,19532 17179,19537 17174,19539 19174,19538 19171,19542 19172,19547 15172,7641 17282,7646 17284,7649 17284,7652 17284,7654 17285,7650 17289,7647 17291,7645 17296,7649 17297,7650 17294,7653 17294,7653 17298,7656 17303,7658 17308,7662 17313,7666 17308,7664 17313,7669 17313,7669 17313,7669 17316,7667 17313,7667 18313,7663 18314,7661 18316,7662 18317,7657 18318,7662 18315,7658 18316,7661 18318,7661 18322,7664 18317,7667 18315,7671 18315,7675 18315,7674 18315,7670 18316,11670 18316,16670 18321,16673 18321,16678 18322,16682 18327,16683 18332,16686 18334,16690 18334,16688 18336,16685 23336,16688 23337,14688 23338,14692 23337,14694 23338,14697 23339,14697 23342,14698 23342,14698 23343,14698 23348,14693 23350,14694 23347,14695 23347,14696 26347,14692 23347,14692 23347,14693 23350,14693 23351,14698 23355,18698 23352,18698 23356,18702 23360,18701 23362,18699 23363,18701 23363,18702 23366,18699 23366,18694 23370,18699 23370,18702 23374,18707 23378,18706 23380,18706 23381,22706 23384,22706 23385,22705 23389,22706 23384,22706 23384,22706 23384,22710 23380,22713 23381,22718 23386,22716 23390,22712 23390,22708 23390,22705 23392,22704 23397,25704 23402,25704 23402,25706 23404,25710 23404,22710 18404,22707 18402,22704 18403,22704 18406,22704 18411,22704 18411,22704 18410,22709 18410,22709 18407,22704 18405,22703 18405,22707 18405,20707 18409,20709 18412,20710 18411,20712 18414,20712 18414,20712 18412,20712 18416,20714 18412,20717 18417,20720 18419,20715 18421,20718 18422,20723 18425,20723 18430,20723 18434,20725 18435,20724 18437,20724 18433,20726 18433,20731 18437,20732 18437,20730 18438,20735 18440,20739 18438,20734 18438,20739 18437,20739 18437,20744 18439,20749 18438,20750 18434,20753 18436,20754 18431,20754 18432,20758 18433,20762 18438,20764 18443,20766 18447,20766 18450,20767 18451,20768 18451,20769 18448,20770 18452,20774 18456,20777 18458,20781 18462,20782 18463,20785 18468,17785 21468,17784 21473,17782 21477,17787 21481,17783 21482,17785 26482,17788 26482,17788 26482,17791 26479,17794 26483,17790 26483,22790 26483,22790 26479,20583 16215,20585 16220,20589 16225,20590 20225,20592 20222,23592 20227,22592 20229,22597 20233,22600 20233,22603 20237,22604 20240,22599 20241,22595 18241,22595 18242,22598 18243,22602 18247,22605 18252,22601 18256,22598 18255,22600 18257,22604 18258,22609 18261,22608 18261,22606 18264,22608 18261,22605 18265,24605 18262,24608 18263,24611 18267,24608 18267,24613 18271,24615 18272,24610 18273,24614 18272,24619 18276,24621 18281,24625 18276,24622 18280,24622 18282,24621 18279,24622 18277,24627 18279,24631 18284,24634 18289,24634 18292,24634 18294,24636 18299,24639 18294,24644 18295,24647 18298,24647 18301,24643 18303,24643 18306,24639 18311,24636 18315,24641 18317,24645 18317,24648 18319,24649 18323,24649 18328,24652 18330,24652 18329,24652 18327,24655 18322,24656 18319,24658 18319,24661 18320,24664 18316,24660 18320,24657 18318,24657 18320,24659 18325,24660 18327,24661 18323,24656 18327,24652 18323,24654 23323,24658 28323,24660 28318,24665 28319,24666 28323,24668 28325,24668 28328,24672 28325,24667 28328,24668 28325,24670 28326,24665 28330,24668 28334,24672 28336,24672 28336,24668 28339,24672 28340,24672 28338,24674 28341,24675 28346,24675 28351,24677 28356,24679 28357,24681 28356,24677 28360,24680 28355,24684 28354,24688 28356,24688 28351,24690 28356,24686 28361,24691 28364,24692 28364,24692 28365,24692 31365,24693 31370,21693 31370,21692 35370,21688 35372,21692 35377,21695 35377,21697 35377,21698 35379,21698 35374,21701 35375,21701 35379,21703 35380,21708 35383,21706 36383,21709 36383,16709 36383,16710 36386,16715 36382,16711 36386,16706 36388,16706 39388,16706 39383,16706 39379,16711 39379,16711 39376,16714 39381,16716 39386,16717 39389,16717 39391,16720 39391,16723 39387,17723 39392,17726 43392,17722 43396,19722 43399,19724 43394,19727 43391,19725 43395,19723 43398,19726 46398,19730 46400,19730 46403,19730 46405,19734 46407,19734 46410,19733 46407,19728 46412,19726 46416,19726 50416,19723 50417,19723 50416,19718 50420,19719 50424,19718 50429,19713 50433,19715 50437,19718 50442,19719 50442,19718 50444,19719 50439,19721 50443,18721 50444,18721 50446,18721 50450,18726 50451,18727 50453,18722 50451,18727 50456,18729 50455,18731 50458,18726 50458,18728 50458,18730 50463,18730 50460,18729 50456,18727 50460,18730 50462,18734 50457,18739 50455,18744 50457,18744 50461,18748 50461,18748 50466,18745 50468,18749 50463,18750 50468,18754 50472,18754 50472,18759 50472,18760 50468,18763 50473,18760 50477,18762 50477,18766 50481,18769 50483,18769 50481,18772 50482,18776 50482,18779 50486,18779 50489,18781 50489,18783 50494,18786 50496,18786 50495,18786 50498,18784 50499,18784 50499,21784 50504,21788 50502,21785 49502,21790 49501,21790 49498,21795 49494,21800 49494,21801 49495,21801 49500,21797 49505,21799 46505,21802 46508,21798 46513,21799 46516,21802 46516,21805 46519,21800 46524,21805 46527,21804 46528,21801 47528,21801 47531,21804 47533,21804 47529,21804 47534,21809 47538,21808 47538,21812 47540,21812 47535,21813 47532,21810 52532,21812 52535,21817 52536,21820 52536,21824 52541,21828 52545,19828 52545,19829 52547,19829 52551,19833 52555,19831 52552,19826 52557,17826 52562,17827 52567,17830 52568,17830 52572,17830 52575,17830 52575,17830 52574,17831 52578,17827 52582,17827 55582,17829 55583,17834 55583,17839 56583,17843 56579,17846 56580,17850 56584,17848 56588,17853 56592,17851 56596,17856 56596,17856 56600,17851 56601,17856 56601,17856 56604,20856 56604,20861 56601,20865 56596,20865 56597,20866 56597,20869 56602,20871 56603,20874 56607,20871 56605,20872 56610,20874 56613,20874 56612,20876 56617,20876 56622,20876 56626,20876 56621,20879 56623,20880 56627,20883 56624,20880 56629,20880 56629,20881 56630,20884 56630,20884 56635,20881 56636,20879 56637,20876 56632,20879 56629,20881 56633,20878 56634,20879 56634,20879 56637,20879 56642,20884 56638,20879 56639,20884 56634,20885 56631,20886 56633,20889 56632,20894 56627,20894 56631,20894 56631,20898 56632,20903 56632,20908 56630,20907 56633,20907 56636,20903 56641,20904 56641,20904 56637,20900 56639,20905 56642,20910 56643,20905 56648,20910 56653,20915 56654,20910 56659,20910 56663,20910 56664,20912 56664,20912 56666,20917 56670,20922 56670,20918 56673,20920 56675,20920 56677,20920 56677,20921 56681,20926 56677,20931 56677,20934 56680,20934 56684,20936 56689,20938 56689,20938 56690,20940 56695,20935 56696,20939 56697,20939 56699,20940 56696,20941 56694,20940 56698,20945 56700,20947 56702,20947 56707,20950 56712,20954 56713,20950 56710,20952 56706,20955 56704,20957 56708,20953 56709,20951 56714,20953 56716,20957 56720,20957 56722,20959 56725,20958 56727,20959 56728,20962 56731,20963 56736,20965 56741,20965 56740,20967 56742,20969 56737,20969 56742,20974 56744,20979 56744,20978 56745,20974 56748,20970 57748,20972 57749,20974 57751,20971 57754,20972 57752,20977 57755,20981 57758,20981 57763,20981 57765,20984 57765,20982 57767,20982 57763,20987 55763,20989 55767,20991 55770,20987 55771,20988 55774,20988 55777,20991 55775,21991 55778,21996 55778,22000 55783,22001 55783,22005 55783,22010 55785,17010 55781,17011 55783,20011 55778,20015 55783,20018 55786,20015 55791,20015 55795,20019 55792,20019 55792,20021 55792,20022 55788,20023 55783,20028 55786,25028 55790,26028 55795,26029 55790,26030 57790,26033 57794,26032 57798,26036 57802,26039 57805,26042 57805,26046 57810,26050 57811,26054 57815,26054 57819,26050 57819,26055 57820,26060 57822,26063 57823,26066 57826,26068 57824,26073 57826,26077 57831,26082 57831,26078 57836,26082 57839,26084 57839,26086 57834,26082 57834,26083 57835,26082 57840,26083 57844,26086 57843,26083 57846,22083 57849,22084 57847,22089 57847,22094 57848,22094 57853,22094 57850,22095 59850,22095 59855,22098 59858,22099 63858,22099 63861,21099 63861,21104 63862,19104 63862,19108 63864,19109 63864,19112 63868,19113 63873,19117 63876,19121 63875,19116 63877,19115 63882,19117 63878,19122 63883,19125 63884,19129 63879,19133 63879,19135 63874,19139 63871,19136 63871,19136 63873,19140 63868,19140 63873,19144 63877,20144 63879,20144 63876,20146 63880,20148 63878,20149 63877,20149 63879,20150 63882,20155 63886,20155 64886,20159 64884,20160 64884,20161 64887,20160 64887,20164 64887,12677 32287,12677 32292,12679 32297,12678 32298,12682 32294,12687 32294,12682 32296,12682 32296,12683 32298,12683 32301,12682 32305,12685 32309,12686 32311,12686 32316,12691 32311,12692 32316,12692 32312,12697 32314,12700 32319,12705 32322,12706 32327,12704 32329,12705 32332,12702 32334,12707 32338,12703 28338,12704 28340,12700 28345,12702 28345,12702 28345,12701 28348,12704 28349,12704 28345,12709 28342,12709 28343,12714 28347,12718 28351,12723 28352,12727 28353,12730 28355,12728 28353,12733 25353,15733 25353,15736 25355,15740 25356,15745 25356,15747 25351,15752 25353,15752 25354,15754 25354,15754 25353,15759 25352,15763 25352,15764 25357,15759 25352,15761 27352,15760 27354,15760 27354,15760 27355,15762 27357,15762 27354,15759 27354,15759 27354,15763 27358,15767 32358,15764 32360,15769 32360,15767 32360,15765 37360,15770 37362,15772 37363,15774 37367,15779 37363,15780 37359,15779 37363,15782 37366,15780 37370,15775 37370,15778 37365,15781 37360,15785 37356,15785 39356,15789 39358,15789 39360,15794 39365,15794 39370,15797 39375,15797 39380,15799 39379,15804 39376,15805 39377,15807 39380,15808 39385,15809 39386,15807 39386,15809 39386,15810 39389,15815 39392,15820 39392,15819 39396,15820 39398,15820 39395,15825 39400,15823 39405,15824 39403,15829 39403,15834 39406,15836 39411,15831 39415,15832 39415,15833 39415,15838 39417,15839 39419,15839 39414,15842 39413,15846 39418,15843 39420,15842 39423,15839 39420,15840 39422,15839 39420,15842 39415,15846 39410,17846 39415,17845 39411,17847 39416,17849 39420,18849 39424,18847 41424,18852 41424,18849 41429,18849 41432,18848 43432,18852 43433,18855 43433,18859 43435,18855 47435,18858 47440,18861 47435,18866 47435,18866 47439,18869 47442,18871 47445,18873 47445,21873 47445,21876 47444,21873 47449,21878 47451,21883 47456,21880 47454,21880 47454,21880 47457,21883 47459,21887 47464,21890 47465,21893 47467,21894 47464,16894 47462,16899 47457,16898 47455,16893 47456,16897 47458,16896 47455,16898 47459,16900 47464,16903 47469,16908 47471,16903 47474,16901 47473,16906 47473,16901 47478,16904 47479,16906 47475,16906 47474,16907 47475,16906 47479,16901 47482,16901 47482,16905 47486,16908 47487,16911 47490,16915 47490,16917 47492,16921 47497,16926 47498,19525 12175,19525 12176,19521 12177,19522 12181,19525 14181,19521 14181,19519 14185,19519 14189,19524 14192,19527 14192,19529 14196,19534 14200,19535 14205,19538 14208,19540 14204,19545 14207,19545 14207,19547 14210,19550 15210,19554 15210,19555 15210,19555 15213,19560 15213,19562 15212,19564 15213,19569 15210,19570 15214,19573 15214,23573 15217,28573 17217,28574 17220,28574 17219,28574 17224,28576 17229,28577 17233,28577 17236,28579 17236,28580 17238,28584 17243,28588 17248,28587 17252,28587 17252,28582 17255,29582 17259,29577 17260,29578 17262,29583 17257,29585 17257,29586 17260,29586 17265,29590 17267,29593 17267,29594 17267,29599 21267,29603 21271,29603 21272,29605 21274,29607 21276,29612 26276,29613 26279,29616 26280,29621 26277,29621 26277,29623 26282,29626 26285,29631 26289,29628 26289,29632 26290,29637 26294,29642 26290,29646 26292,29648 26291,29649 26288,29653 26293,29655 26292,29655 26293,12702 28345,12703 28348,12698 27348,12699 27349,12698 27354,12700 27354,12700 27355,12703 27360,12703 27361,12700 27362,12704 27367,12701 27371,12706 27376,12710 27372,12710 27373,12710 27368,12715 27370,12713 27374,12716 27378,12716 27380,12714 27379,12719 27374,12718 27373,12722 27376,12724 27376,12729 27371,12733 27372,12733 27377,12735 27373,12735 27374,12737 27378,12739 27379,12742 27381,12739 27381,12739 27376,12743 27378,12743 27379,9743 27375,9744 32375,9745 32377,9746 32374,9746 32372,9750 37372,9752 37375,9754 37375,9751 37377,9755 37379,9759 37379,9763 37383,9766 37385,9767 37382,9768 37383,9765 40383,9770 40378,9770 40382,9775 40384,9777 40386,9782 40391,9778 40395,9773 40395,9778 40397,9779 40399,9781 40402,9781 40398,9781 40393,9780 40396,9782 40399,9785 40398,9786 40395,9789 40390,9793 40387,9798 40390,9803 40394,9805 40397,9800 40400,9795 40402,9800 40403,9802 40407,9807 40410,9806 40407,9807 40403,9812 40400,9814 40403,9819 40403,9819 40400,9822 40405,9824 40405,9822 40408,9827 40410,9831 40413,9831 40413,9826 40412,9827 40417,9832 40418,9832 40416,9833 41416,9833 41421,9834 41416,9838 41416,9838 41421,9840 41422,9844 41424,9839 41424,9843 41427,9845 41430,9849 41430,9849 41425,9852 41423,9855 41426,9858 41429,9860 41434,9862 41436,9866 41441,9868 41436,9869 41434,9871 41434,9875 41437,9877 41437,9881 41438,9883 41438,9879 41438,20903 56641,20898 56644,20903 56647,20901 56649,20903 56645,20905 56650,20909 53650,20905 53650,20910 53652,20907 53655,20912 53652,20916 53656,20917 53656,20912 53661,20912 53660,23912 53663,23912 53663,23909 53663,23912 53665,23913 53669,23911 53669,23915 53669,23912 53671,23916 53670,23917 53675,23922 53680,23927 53683,23930 53688,23935 53689,23935 53691,23935 53691,23931 53692,23931 53694,27931 53693,27933 53695,27937 53695,27942 53699,27947 53701,27949 53703,27949 53704,27949 53708,27952 55708,27953 55710,27949 55710,27953 55710,27958 55713,27959 55718,27960 55722,27962 55725,27965 55730,27965 55732,27968 55730,27969 55733,27972 55733,27975 55734,27975 55734,27979 55737,27981 55733,27982 55732,32982 55732,32979 55734,32978 55737,32978 55738,32974 55742,32977 55746,32981 55750,32985 55746,32983 55747,32987 55750,32992 55751,32995 55751,32998 55751,32998 55753,32998 55753,32993 55753,32995 55757,32999 55758,33002 55760,33002 55761,33005 55766,33005 55767,33000 55764,32997 55767,32997 55771,33001 55773,32998 55777,33001 55777,33005 55776,33004 55776,33009 55781,33014 55786,33014 55790,33015 55790,33016 55790,33015 55786,34015 55787,34019 55790,34019 55791,34021 55793,34017 55793,34019 55796,34016 55797,34020 55793,34020 55796,34023 55792,34023 54792,34025 54797,34028 54800,34029 54799,34029 54795,34034 54796,34036 54797,34041 54792,36041 54797,36045 54801,36048 54803,36051 54804,36053 54806,11439 8033,11441 8038,11441 8039,11441 8040,11445 8035,11441 8035,11442 8039,11438 8035,11438 8035,11443 8039,16443 8038,16444 8038,14444 8040,14448 12040,14451 12036,14455 12038,14455 12041,14456 12046,14459 12049,14457 12051,14458 12046,14458 12047,14459 12042,14464 12042,14465 12047,14470 12050,14471 12055,14471 12058,14468 12060,14473 10060,14477 7060,14477 7062,14474 7062,14474 7067,16474 7063,16471 7065,16474 7067,16471 7072,16471 7068,16476 7066,16481 7069,16482 7072,16487 7072,16487 7077,16488 7077,16493 7076,16493 7079,16497 7079,16500 7079,16502 7079,16502 7079,16505 7075,16504 7080,16501 7077,16497 7079,16501 7081,16497 7080,16496 7084,16500 7086,16495 7087,16498 7084,16501 7087,16496 7087,16496 7083,17496 7083,17500 7083,17505 7088,9860 41434,9864 41435,9864 41435,9865 42435,9860 42435,9862 42436,9863 42434,9863 42430,9862 40430,9863 40427,9863 40428,20608 16239,20605 16242,20610 16237,20614 16237,20615 16242,20611 16242,20612 16245,20609 16244,20604 16242,22604 16237,22608 16239,22607 16240,22610 16244,22610 16241,22615 16246,22616 16246,22614 16251,22616 16251,22617 16249,22619 16254,22623 16252,22618 16255,22618 16259,22620 16262,22615 16262,22618 16263,22622 16263,22626 16265,22629 16266,22628 16269,22633 16267,22636 16268,22636 16267,22641 16269,22646 16269,22645 16271,22646 16273,22650 16271,22655 16274,22655 16277,22658 16279,22660 16280,22658 16280,22661 20280,22663 20282,19663 20285,19658 20288,19658 20292,19661 20295,19666 20298,19670 20301,19671 20301,19675 20301,19677 20306,19675 20311,19674 20315,19678 20318,19677 20314,19680 20315,19682 20310,19684 20314,19683 20316,19687 20315,19688 20316,19688 20319,19693 20319,19698 20322,19702 20323,19698 20323,19702 21323,19707 22323,8508 20119,8509 20119,8510 20116,8515 20113,8518 20115,8519 20116,8516 20120,8520 20119,8520 20118,8525 20123,8527 20125,8527 20125,8528 20123,8530 20126,8533 20123,8535 20127,8532 20132,8534 20136,8538 20138,8542 20141,8537 20143,8537 20145,8542 20145,8547 21145,8548 24145,8552 24145,8557 24150,8560 24147,8562 24151,8566 24156,8569 24160,8574 24156,8579 24159,8584 24164,8587 24164,8585 24167,8588 24170,8591 24171,8589 24172,8590 24176,8595 24177,8593 24174,8596 24178,8600 24179,8603 24175,8602 24178,9602 24182,9605 24177,9609 24178,9610 24182,9608 24178,9603 24183,9606 24188,9608 24193,9609 24195,9614 24196,9616 24197,9618 24201,9618 24205,9613 24209,9612 24214,9608 24211,9603 24216,9607 24221,9611 24221,9615 24217,9617 24217,9618 24221,9623 24225,9623 24225,9626 24225,9630 24225,9630 24222,9626 24223,9626 22223,9627 22223,9626 22226,9629 22228,9632 22228,9636 22225,9638 22226,9639 22227,9634 22230,9634 22231,9639 22235,9639 22240,9641 22242,9642 22246,9647 22249,9652 22250,9655 22255,9651 22256,9652 22253,9652 22256,9652 22261,9655 22262,9657 22257,9659 22261,9659 22261,9657 22264,9657 22261,9656 22264,9661 22267,9662 22270,12662 22270,12665 22265,12669 22270,12669 22270,12673 22269,11356 7007,11361 7010,11361 7010,11357 7014,11356 7015,12356 7020,12357 7015,12361 7017,11361 7018,11364 7017,11359 7018,11355 7017,11354 7020,11357 7020,11361 7023,11364 12023,11368 12028,11368 12029,11371 12030,11372 12034,14372 12034,14372 12039,14372 12042,14376 12045,14381 12047,14379 12047,14381 12049,14384 12054,14385 12051,14388 12056,14384 12056,14384 12061,14381 12058,14386 12062,14386 12059,14391 12059,14396 12060,14397 12060,14398 12056,14403 12051,14408 12052,14410 12057,14409 12057,14414 12053,14414 12051,14415 12051,14420 12049,14423 12048,14427 12044,14427 12044,14425 10044,14421 10049,14424 11049,14426 11054,14427 11059,14429 11064,14433 11064,14434 11064,14437 11065,14441 11068,14444 11072,14445 11076,13445 12076,13445 12077,13445 12081,13444 14081,13446 14081,13446 14078,13449 14083,13447 14084,13450 14085,13452 14090,13453 14087,13456 14084,13457 14083,13461 14081,13463 14082,12463 14082,12463 14087,12463 14087,12464 14087,8464 14087,8465 14083,8465 14080,8467 14085,8472 14085,8473 14085,8476 14090,8474 14094,8475 14094,8480 14094,8481 14099,8476 14103,8476 14107,8480 14111,8483 14116,8488 14120,8488 14118,8488 14120,8483 14115,8481 14118,8485 17118,8485 17114,8488 17110,8488 17115,8484 21115,8484 21118,8486 21120,8487 21120,8482 21115,8487 21118,8490 21122,8494 21127,8497 21132,8497 21133,8500 23133,8503 23135,8507 23135,8508 23132,8511 23129,8512 23125,8517 23126,8522 23125,8527 23129,8522 23131,8527 23132,8530 23132,8531 23128,8533 23132,8533 23134,8533 23139,8533 23144,8536 23143,8537 23146,8533 23146,8533 23149,8537 23152,8533 23157,8530 23158,8532 23162,8536 23162,8536 23165,8536 23165,8540 23170,8544 23171,8548 23169,8547 23173,8551 23176,8552 23173,8548 23169,8553 23173,8553 23170,8548 23173,8549 23173,8546 22173,8547 22174,8551 22177,8550 22179,8552 22183,8553 22183,8553 22184,8557 22185,6557 22185,13598 20226,13601 20227,13604 20229,13608 20233,13610 20234,13605 20237,17605 20237,17610 20242,17605 20242,17602 20241,14602 20241,18602 20236,18606 20239,18606 20244,18608 20241,16608 20245,16611 20240,16615 20239,16610 20234,16611 20232,16613 20235,16608 20235,16608 20239,16613 20242,19734 46410,19734 46410,19738 46414,19737 46414,19735 46415,19737 46418,19741 46421,19744 46423,23912 53671,23908 53673,27908 53675,27913 54675,27917 58675,27921 58677,27925 58678,27930 58678,27926 58683,27930 58686,27931 58691,27931 58695,27934 58700,27936 58699,27936 58699,27941 58695,27942 58695,27947 58699,27952 58699,27954 58703,27957 58704,27962 58708,27958 58706,27959 58703,27962 58703,27967 58706,27967 58701,27965 58701,27962 58702,27966 58703,27971 58704,27976 58706,27980 58709,27980 58712,27975 58711,27971 58716,27971 58713,27968 58712,27968 58712,27971 58711,27968 58713,27968 58710,27969 58708,27972 58706,27976 58711,27978 58716,27979 58716,27983 58718,27978 58718,27981 58719,27981 58723,27986 58725,27986 58728,27986 58731,27991 58734,27996 58738,27993 58736,27995 58732,31995 58736,31990 58735,31993 58738,31990 58734,31995 58729,31996 58729,31999 58731,31994 58726,31996 58731,12463 14087,12465 14090,12465 14093,12463 14090,12463 14095,12461 14092,12464 14093,12459 14091,12459 14091,12459 14091,12459 14096,12461 14100,12458 14103,12457 14101,12452 14101,12452 14106,12453 14103,12453 17103,12455 17104,15455 17104,15460 17108,15463 17104,15458 17108,18458 17108,21458 17105,21461 17105,21464 17110,21467 17115,21464 17120,21464 17120,21468 17123,21470 17126,21465 21126,21461 21126,21464 21128,21464 21132,21468 21137,21471 21142,21475 21146,21471 21146,21476 21147,21473 21151,21475 25151,21475 25152,21477 25153,21481 29153,21479 29158,21484 29162,21488 29162,21490 29165,21487 29170,21488 29167,21489 29162,21493 29164,21493 29169,21498 29169,21499 29164,21495 29167,21498 29167,23498 29170,23498 29169,23503 29172,23505 29171,23510 29167,23514 29164,28514 29168,28514 29172,28514 29174,28512 29172,28513 29176,28518 29179,28518 29182,28521 29177,28521 29179,28519 29179,28517 29179,28515 29177,28519 29177,28519 29179,28524 29184,28527 29183,28527 29185,28523 29187,28523 29184,28525 29189,28522 29189,28518 29186,28523 29189,28519 29189,28521 29189,28526 29193,28529 29193,28529 29196,28534 29200,28538 32200,28537 30200,28539 30202,33539 30207,33539 30209,33534 30205,33535 30208,33536 30208,33538 30213,33538 30214,33542 30218,33545 30221,33548 30222,33551 30225,33552 30227,33554 30231,33555 30233,33560 30228,33563 30225,33564 30229,33565 34229,33565 34234,33570 34231,33572 34235,33572 34239,33573 34243,33578 34239,33579 34243,33574 34247,33573 34247,33576 34243,33573 37243,33573 37246,33568 37241,33568 37244,33573 37239,33578 33239,33574 33241,33574 33239,33578 38239,33583 38242,33587 38242,33590 38242,33594 38243,33596 38247,33599 38248,33599 38252,33595 38252,33598 38257,33603 38258,33604 37258,33609 37255,33604 37257,33607 37262,33607 37265,33609 37266,33614 37271,33614 37276,33616 37278,33616 38278,33616 38282,33621 38284,33621 38288,33621 38285,33618 38289,33616 38291,33616 38294,33611 38296,33608 38301,33610 38305,33610 38300,33612 38303,33617 38308,33621 38309,33625 38305,33630 38307,33634 42307,33636 42310,33638 42314,33634 42312,33631 42315,33631 42315,27931 58691,27936 58693,27937 58695,27940 58700,27943 58703,27943 58708,27946 58709,27950 58711,27950 58714,29950 58718,29951 58723,29947 58728,29947 58732,29950 58727,29950 58727,29955 58730,29960 58734,29964 58732,29961 58734,29963 58735,29968 58739,29968 58741,34968 58739,34971 58739,34972 58739,34973 58740,34968 58741,34970 58743,34974 58745,34977 58749,34979 58744,39979 58745,39979 58742,39978 58744,39982 58748,39983 58744,39983 58744,39979 58747,39979 58752,39983 58757,39982 58759,39985 58759,39986 58759,39983 60759,39986 60762,39990 60767,39994 60770,39994 60770,39997 60770,39997 60770,40000 60775,40002 60775,40003 60779,40007 60784,40008 60787,40011 60788,40015 60788,40016 60790,40016 60792,40021 60788,40025 60788,40030 60788,40026 60786,40027 60786,40030 60787,40032 60792,40037 60795,40032 60800,40032 60799,40035 64799,40035 64801,40036 64806,40041 64803,40037 64805,40038 64801,40040 64804,40036 64804,40040 64805,40045 64810,40048 64811,40051 64813,40051 64817,13491 17139,13486 18139,13489 18139,13494 20139,13492 20138,13494 20141,13499 20145,13499 20145,13499 20148,13503 20149,13500 20149,13505 20151,9367 11012,12367 11015,12369 11011,12364 11012,12364 11015,12359 11011,12354 11011,12354 11014,12359 11017,12356 11015,12361 11015,12361 12015,12365 12016,12369 8016,12374 8021,12373 8025,11373 8021,11368 8021,11373 8024,12700 27362,13700 27363,13705 27364,13710 27368,13705 27369,13707 27367,13707 27371,13709 27375,13712 27377,13714 27373,13712 27376,13714 27379,13713 27382,13718 27384,13713 27380,13713 27385,13711 27386,13715 27386,13719 27386,13719 27389,15719 27394,15724 27398,15729 27400,15734 27401,15734 27401,15729 27396,15732 27396,15735 27397,15734 27399,15733 27400,15729 27400,15734 27400,15729 27405,15734 27405,15739 27408,15739 27408,15741 27412,15743 27416,15743 27416,15740 27416,16740 31416,16743 31421,16738 31425,16742 31430,16742 31435,16743 31439,16743 31444,16741 31449,16746 31450,16747 31455,16742 31459,16738 31463,16742 31466,16742 31471,16742 31471,16742 31471,16744 31475,16749 36475,16749 36473,16753 36478,16757 36474,16761 36477,16759 36478,16761 36481,16760 36484,16761 36485,16760 36486,16765 36491,16766 36494,16771 36498,16769 36501,16771 37501,16774 37504,16769 37507,16769 37507,16772 37503,16772 37508,16774 37511,16774 37510,18774 37515,18777 37515,18772 37512,18775 37514,18777 37517,18778 37519,18779 37517,18776 37517,18778 37520,18780 37520,18785 37522,18785 37526,18787 37523,18786 37520,18790 38520,18789 38520,18792 38522,18797 38527,18802 38529,20802 38534,20804 38535,20803 38540,20802 38539,20806 38543,20811 38546,20814 38543,20812 38541,20808 38546,20811 38544,20815 38539,20816 38535,20818 38531,20815 38531,20814 38528,20814 38533,20817 38536,20816 38539,20821 38540,20818 38542,20820 38540,20816 38540,20821 38540,20823 38541,20828 38541,20831 38546,20836 38547,20836 38548,20835 38553,20835 37553,20835 37558,20837 37558,20842 37560,20846 37561,20846 37564,20849 37569,20854 37564,20854 37565,20850 37566,20852 38566,20856 39566,20861 39566,20863 39562,20867 39566,20872 39567,20868 39566,20873 39568,20876 39573,20876 39573,20880 39575,20884 39579,20885 39580,20889 39580,20891 39584,20888 38584,20889 38587,20890 38592,20891 37592,20892 37597,20894 35597,20895 35600,20897 35603,20899 35605,16678 18322,16681 18323,16682 18323,16686 18328,16690 18326,16693 18331,11693 18335,11692 18332,11695 18332,11698 18335,11703 18335,11703 18336,11702 18339,11698 18344,11702 18349,11705 18353,11704 18357,11707 18360,11707 18359,11711 18358,11716 18358,11713 18358,11712 18360,11710 18360,11710 18362,11710 18362,11710 18367,11710 18366,11707 18366,11706 18365,11710 18369,11715 18371,11714 18374,11712 18376,11711 18377,11711 18379,11712 18384,11715 18385,11711 18385,11714 18387,11717 18389,11718 18386,11721 19386,11723 19391,11722 19395,11722 19396,11723 19398,11726 19398,11729 19403,11733 19408,11736 19407,11733 19411,6733 19407,6735 19402,6738 19402,6743 19406,6746 19406,6742 19411,6742 19414,6742 19414,6746 19419,6746 19423,6746 19418,6749 19418,6747 19418,6748 19420,6748 19424,6748 19424,6751 19427,6751 19429,6752 19429,9752 19426,9754 19428,9759 19430,9756 19431,9751 19435,9753 19440,9757 19445,9755 19443,9757 19448,9757 19448,9759 19451,9763 19451,9766 19454,9766 19456,9770 19459,9770 19462,9770 19466,9766 19467,9771 19468,9772 19468,9769 19469,9768 19470,9770 19470,9774 19473,9778 19470,9781 19470,9786 19471,9789 19471,9789 19473,9792 19478,9795 19475,9800 19478,1256 2899,1260 -1101,1256 -1097,1255 -1093,1255 -1094,1259 -1089,1260 -89,2260 -84,2258 -84,2263 -88,2267 -89,2268 -91,2269 -86,2272 -86,2272 -82,2273 -77,2276 -79,2281 -81,2283 -79,2287 -75,2292 1925,2297 1930,2299 1930,2303 1932,2308 1937,2308 1936,2313 1937,2315 1934,2316 1935,2311 1936,2316 1937,2319 1938,2322 1940,2327 1940,2331 1940,2327 1943,2329 1945,2331 1950,2336 1950,2339 1954,2338 1954,7338 1954,7337 1958,7341 1960,7341 1964,8550 20152,8554 20152,8553 15152,8550 15152,8554 15154,8552 15149,8552 15153,8556 15151,8556 15148,8552 15152,8547 15149,8552 15154,8552 15155,8553 15156,8550 15156,8553 15160,8556 15164,8558 15163,8561 15163,8563 15167,8559 15169,8559 15166,8564 15167,8568 15171,8572 16171,8572 16173,8574 16170,8571 16174,8575 16174,8576 16174,8576 16174,8580 16178,8579 16183,8574 16184,8576 16184,7576 16186,7572 16181,7577 16181,7577 16185,7578 16190,7583 16185,7583 16185,7587 16185,12587 19185,12582 19188,12587 19193,12587 19195,10534 21158,10538 21162,10540 19162,10543 19158,10547 19158,10551 19160,10551 19158,10554 19158,10553 19157,10555 19157,10555 19154,10552 19156,10553 19161,10555 19166,10558 19165,10560 19165,10561 19165,10561 19165,10564 19166,10567 19164,10570 19162,10575 19165,10577 19164,10577 19168,10578 19168,10574 19171,10574 19172,10571 19175,10573 19178,6503 16143,6507 16146,6509 16142,6510 16142,6510 16143,6512 16143,6514 16146,6517 16148,6522 16143,6525 16143,6530 16143,6534 16146,6531 16144,8490 16106,8490 16106,8492 16109,8489 16110,8491 16106,8487 16109,8488 16104,8490 17104,8495 17108,8490 17109,8493 17108,8498 17111,8500 17111,8500 17109,8501 17113,8506 17118,8506 17118,8506 17123,4506 17125,4511 17123,4516 17126,4514 17125,4519 17124,4520 17126,4525 17129,4530 17124,4526 17124,4528 17124,4533 17127,4535 17127,4531 16127,4531 16124,4534 16124,4538 16125,2538 16130,2539 16131,2544 16133,2544 16129,2540 16129,2545 16129,2550 16126,7550 16126,7555 16128,7559 16124,7559 16129,7560 16132,7561 16128,7566 16132,9566 16136,9568 16136,9573 16141,9570 16144,9571 16146,9573 16150,9577 16153,9581 16148,9579 16153,9584 16157,9586 16160,9581 16162,9578 16165,10578 16162,10579 16163,10574 18163,10570 18164,10568 18164,10570 18169,10572 18170,10575 18170,10575 18175,10579 18176,10580 18176,10585 18176,10581 20176,10586 20178,10587 20178,10585 20179,10585 20177,10581 20178,10584 20183,10586 20187,10590 20187,10591 20190,10587 20188,10591 20187,10591 20192,10592 20191,10597 20195,10602 20194,10602 20195,10607 20197,10607 20198,13607 20201,13607 20200,13607 20204,13604 20204,13605 20209,13607 20209,13612 20214,13615 20218,13615 20218,13619 20220,13624 20224,13628 20219,18628 20216,18630 20213,18635 20213,18632 20211,18629 20211,18632 20215,18632 20216,18632 20217,18632 20217,18627 20214,18630 20209,18633 20212,18636 20212,18638 20217,18643 20222,22643 20219,22643 20219,22644 20219,22644 20214,22645 20216,22645 21216,22646 21220,22642 21224,22642 21221,22641 21224,22638 21229,22641 21232,22642 21235,22643 21238,22644 21236,22649 21237,22704 18411,22704 18412,22699 18412,22696 18416,22701 18412,22703 18416,22698 18416,22693 18418,22695 18422,22698 18422,22700 18426,22705 18427,22706 18427,22708 18432,22708 18432,22704 18431,22709 18427,22709 18432,22709 18436,22713 21436,22718 21438,22719 21437,22721 21440,22725 21443,22727 21445,22724 21450,22724 21451,22727 21453,22730 21453,22730 21458,22734 21460,22738 21464,20738 21464,20742 21465,22742 21465,22741 21464,22736 21464,22738 21464,22742 21460,22742 21460,22744 21458,22743 21458,22741 21455,22741 21460,22739 21456,22739 21458,22734 23458,22732 23458,22733 23463,22731 23467,22731 23469,22736 23472,22739 23472,22742 23471,22744 23471,24744 23466,24744 23468,24739 23471,24742 23474,24747 23478,24747 23481,24747 23483,24747 23486,24751 25486,24753 25489,24758 25493,24762 25497,24764 25499,24769 25496,24773 25498,24777 25499,24779 25503,24782 25500,24782 25498,24777 25498,24779 25495,24775 25495,24776 25495,24777 25495,24781 25500,24778 25503,24778 25499,24780 25500,24777 22500,24775 22505,24777 22505,24777 22501,24778 22502,24778 22505,24774 22509,24776 22509,24776 22509,24781 22509,24784 22511,24780 22513,24780 22514,24783 22515,24786 22520,24786 22520,24791 22518,24788 22517,24791 22522,24794 22525,24791 22524,24791 22528,24789 22530,24794 22530,24799 22525,24795 22524,24798 22520,24796 22516,24801 22511,24803 22516,24804 22521,24804 22526,24806 22524,24805 22524,24809 22529,24810 22531,24813 22536,24817 22536,24815 22535,24810 22530,24815 22530,24816 22530,24818 22531,24818 22531,24818 22533,24822 22533,24820 22530,24816 22529,24820 22532,24822 22533,24822 27533,24823 27536,24826 27540,24829 27541,24832 27546,24833 27549,24832 27553,24833 27552,24833 27551,24836 27551,24839 27554,24841 27554,24841 27556,24842 27559,24847 27557,24847 27562,24842 27566,24840 27564,24842 27568,24844 27563,25844 27565,25847 27569,25848 27564,25851 27561,25855 27559,25856 27556,25852 27556,25857 27561,25857 27564,25858 27564,25863 27567,25868 27567,25871 27564,25872 27565,25875 27570,25877 27573,25878 27575,25879 27574,25884 27579,25887 27577,25886 27579,25882 27582,25882 27578,25882 27582,25884 27578,25887 27583,25891 27584,25895 27582,25895 27582,25898 27583,25900 27580,11433 8033,11435 8037,11439 8040,11444 8044,11439 8048,11441 8045,11446 8044,11446 8039,11451 8038,11451 8043,11450 8046,11451 8046,11447 8049,11443 8052,11445 8057,11441 8058,11439 8060,11444 8056,11445 8053,11448 8053,11450 8049,11455 8044,11453 8042,11454 8044,11451 8049,11453 8049,11458 8052,11459 8055,11457 8053,11460 8053,11461 8055,11465 9055,11466 9056,12466 9058,12467 9054,12472 4054,12467 4056,12467 4059,12470 4058,12468 4060,14468 4064,14467 4063,14471 4060,14473 4062,14471 4067,14468 4072,14471 4076,14466 4077,14467 4074,14472 4075,14472 4080,14476 4085,14476 4090,14481 4090,14485 4091,14490 4095,14493 4095,14495 4100,14492 4100,14497 4102,14499 4100,14501 4101,14500 4106,14500 4107,14496 4108,14495 4110,14494 7110,33625 38305,38625 38310,38625 38315,38623 38318,38625 38317,38629 38318,38632 38313,38634 38313,38639 38314,38640 38317,38644 38320,38649 38321,38647 38317,38647 38322,38643 38324,38640 38319,38645 38319,38646 38319,38645 38316,38644 38318,38646 38319,38644 38324,38647 38328,38652 38325,38649 38328,38651 38332,40651 43332,40651 43335,40655 43335,40652 43339,40652 43339,40654 43336,40654 43337,40657 43333,40656 43335,40656 43338,40656 43343,40656 43341,40659 43346,45659 43348,45664 43350,45666 43346,45665 43351,45669 43355,45673 43355,45674 43359,50674 43360,50678 43363,50678 43364,50679 43367,50682 43371,50687 43374,50690 43374,50690 43377,50693 43377,50698 43382,50693 43386,50689 43386,50692 43390,50695 43392,50699 43392,50704 43397,50707 43395,50711 43391,50706 43393,50709 43393,50711 43395,50710 43397,50714 43394,50718 43394,50715 43394,50717 43399,50722 43403,50724 43407,50728 43407,50730 43408,47730 43403,47730 43404,47733 43408,47737 43409,47735 43414,47738 43416,47741 43416,47744 43421,47743 43422,47748 43424,47753 43419,47754 43420,47749 43419,52749 43423,52751 43421,52753 43421,52750 43426,52752 43428,52748 43430,52748 43426,52747 43431,52744 43431,52748 43435,52748 43435,52750 45435,52753 45440,52753 45440,52757 45442,52761 45447,52758 45447,52761 45447,52761 45452,52758 45454,52758 45455,52758 45456,52761 45460,52759 45458,52755 45463,52759 45464,52756 45461,52756 45462,52758 45467,52760 45470,52759 45469,52762 45473,52762 45474,15617 20233,15612 20238,15611 20242,15613 20237,15617 20238,15618 20239,15621 20236,15623 20240,15622 20240,15622 20245,15623 20244,15628 20242,15628 20247,15625 20246,15628 20250,15630 24250,15632 24251,15634 24253,15629 24252,15633 24250,15629 24250,15633 24248,15629 24248,15634 24248,15636 24253,15640 24253,15643 24257,15639 24254,15642 24257,15643 26257,15648 26255,15643 26256,15641 26258,15646 26262,15646 26263,15651 26263,15648 26267,15653 27267,15656 27270,15660 27272,15662 29272,15658 29276,15658 29277,15658 29272,15663 29274,15663 29274,17663 29274,17663 29279,17668 29283,17671 29285,17670 29287,17675 29289,17676 29293,17679 29296,17682 29297,17685 29299,17686 29300,17687 29305,17685 33305,17686 33310,17687 33310,17689 33306,17687 34306,17691 34304,17694 34306,17696 34306,17695 34309,17691 34314,17691 34311,17692 34306,17696 34310,17700 34310,17697 34312,17699 34316,17704 34318,17701 34318,17705 34322,17704 34321,17706 34319,17706 34319,17702 34316,17707 37316,17710 37318,19710 37313,19705 37313,19708 37308,19712 37310,19710 37312,19711 37307,19711 37307,19714 37310,19718 37312,19719 37309,19723 37312,19727 37315,19729 37317,19731 37322,19734 37323,19735 37324,19737 37322,19742 37326,19740 37331,19745 37335,19742 37335,19742 37340,19745 37341,19749 37341,19749 37342,19752 37347,19757 37347,19762 37345,19764 37341,19768 37345,19769 37350,19771 37355,19773 33355,19770 33360,19765 33364,19769 33364,19773 33365,22773 33364,22771 33360,22775 38360,22779 38364,22780 38369,22782 38371,22784 38371,22789 40371,22792 40375,22789 40375,22789 40377,22793 40376,23793 40378,23795 41378,23791 41378,23792 41378,23796 41382,23798 41383,22798 41386,22799 41390,22804 41390,22804 41391,22808 41391,22812 41393,22814 39393,22819 39393,22821 39395,22823 39397,22828 36397,22832 36392,22832 36393,22836 36396,22836 36401,22838 36402,19838 36403,19837 36408,19841 36408,19843 36409,19845 36404,19847 36405,19847 36408,19847 36411,19848 36413,19850 36415,19845 36419,19841 36417,19843 36419,19843 36419,19846 36424,19848 36425,19850 36425,19845 36425,19846 36425,19848 36430,19852 36430,19849 36435,19846 36440,19851 36440,19846 36438,19848 36439,19844 36442,19845 36446,19841 36448,19841 36449,19841 38449,19841 38452,19846 38455,19848 38458,19852 42458,19856 42462,19859 42463,19859 42465,19861 42462,19862 42463,19864 42463,19867 42467,19870 42470,19871 42468,21871 42467,26871 42464,26867 42466,26872 42463,26872 42464,26874 42463,26879 42466,26882 42466,26883 42471,26879 42476,26878 42477,27878 42479,27882 42479,27883 42480,27886 42483,27887 42487,27885 42484,27887 42483,27890 42484,27890 42485,22890 42486,22890 42489,22890 42491,22895 42494,22897 42498,22899 42502,22901 42502,22896 42503,22892 42498,22896 42498,22891 42502,22892 42505,22897 42507,22898 42511,22903 42515,22906 42510,22911 42513,17911 42508,17915 42512,17918 42509,17913 44509,17915 44514,17919 44510,17923 44514,17927 44510,17927 44513,17927 44517,17928 44521,21928 44517,21930 44516,21931 44513,21929 44513,21933 44517,21934 44519,21933 44520,21934 44520,21937 44520,21938 44520,21943 44520,21938 44523,21940 44527,21936 44532,21941 44536,21942 44541,21937 44545,21938 44545,21938 44545,21940 44543,21937 44538,21941 44543,21938 44547,21938 44547,21938 44547,21937 44551,21937 44551,21933 44556,21935 44554,21937 44558,21940 44562,21944 44564,21949 44561,21952 44566,21955 44568,21960 44569,21963 44571,21963 44571,21965 44574,25965 44579,25967 44584,25967 44584,25970 44588,22970 41588,22970 41586,22975 41585,22974 41589,22970 41593,22966 41598,22965 41598,22970 41598,22965 41601,22965 41604,22965 46604,22968 46604,27968 46602,27968 46602,25968 46601,25967 45601,25968 45602,25971 45607,25975 45610,25979 45614,25977 45612,25975 45609,26975 45609,26980 46609,26979 46613,26982 46610,26982 46611,26980 46615,26982 46616,26985 46616,26986 46617,26987 46615,30987 46617,30987 46622,30986 46626,30988 46629,30989 46627,17671 29285,17673 26285,17677 26286,17678 26285,17681 26289,15681 26292,15685 26297,10685 26297,10689 26301,10689 26297,10693 26300,10695 26301,10691 26297,10696 26299,10696 26304,10692 26306,10688 26301,10690 26302,10690 26307,10686 26305,10684 26309,10686 26312,10691 26313,10688 26318,10683 26320,10684 26325,10683 26328,14683 26328,14680 21328,14681 21331,14683 21335,14680 21333,14677 21333,14682 25333,14684 25334,14689 25338,14693 25338,14698 25341,14696 25342,18696 25343,20696 25345,20699 25349,20702 25346,20703 25351,20703 25351,20704 25351,20704 25354,20700 26354,20705 26352,20706 26351,20706 26351,20703 26354,20708 26354,20712 26355,20712 26352,20717 26349,20717 26346,20722 26351,20727 26353,20729 26348,20734 26353,24734 26349,24729 26349,24729 26352,24725 26349,24725 26353,24726 26353,24729 26355,24729 26357,24732 26359,24735 26362,24735 26364,24730 26364,24730 26363,24734 26365,24739 26368,24739 26364,24739 26366,24739 26367,24734 26370,24735 26365,24732 26367,24732 26369,24729 26372,24728 26370,24726 26365,24728 26368,24731 26370,24734 26375,24738 26378,24733 26378,24733 26381,24729 26381,13496 17147,13491 17152,13495 17148,13496 17146,13498 17141,13498 17145,13501 17147,13502 17149,13502 17153,13505 17149,13505 17152,13500 17149,13496 20149,13492 20150,13497 20155,8497 20151,8501 20153,8502 20156,8506 20159,8503 20159,12503 19159,12503 19159,12505 19164,12500 19159,12500 19164,12500 15164,12503 15169,12508 15168,12511 15170,12514 15170,12510 15169,12512 15172,12512 15172,12515 15172,12519 15175,12522 15176,12525 15180,12528 15184,23912 53663,23915 53661,28915 53666,28914 53667,28918 53664,28921 53667,28922 53667,28924 53670,28925 53674,28926 53674,28927 53672,28922 53676,28924 53677,28927 53678,28932 56678,28934 56682,28935 56683,28936 56688,28938 56688,28934 56691,28938 56693,28942 56690,28939 56694,28939 56698,28942 56695,28946 56698,28950 56701,28953 56706,28954 56706,28949 56708,28950 56708,28953 56709,28958 56706,28960 56709,28965 56707,28965 56707,28965 56705,28963 56709,28966 59709,28969 59710,28973 59711,28977 59715,28977 59717,28982 59719,28981 59715,28985 59718,28986 59718,33986 59721,35986 59723,35990 59723,35990 61723,35993 61726,35995 61728,35998 61724,36000 61721,36004 61723,36002 61718,36007 61718,36010 61719,36010 61721,36010 61721,36010 61721,36015 61721,36018 61716,36022 61717,36024 61718,36025 61723,36029 61722,36031 61726,36035 61722,36040 62722,36042 62722,36044 62722,36049 62724,36051 62720,36053 62723,36052 62719,36055 62717,36056 62712,36059 62714,36058 67714,36059 67716,40059 67716,40063 67719,40067 67722,40069 67726,40065 67724,40067 67721,40067 67722,40071 67721,40075 67726,37075 67730,37076 67733,37076 67736,37072 67741,37072 67741,37072 67744,37076 67744,37079 67745,37081 67750,37082 67750,37082 67753,37082 67753,37083 67752,37081 67753,37084 67753,37087 67757,37087 67758,37083 67753,37084 67758,37084 67761,37088 67759,37091 67762,37088 67762,37090 67767,37090 72767,37090 72771,37085 72771,37089 72774,38089 71774,38090 71771,38086 71771,38086 71774,38086 71777,38089 71782,38089 71782,38087 71780,38092 71782,38087 71785,38083 71783,38081 71781,38078 71781,38078 71783,38076 71786,38075 71787,38078 71783,38079 71781,38081 71781,41081 71783,41081 71778,41082 71778,41085 71783,41085 71783,41088 71785,41083 71789,41083 71794,41088 71796,41088 71796,41092 71798,41095 71794,41095 71789,41098 71790,41093 71790,41091 71795,41092 71796,41087 71798,41084 71796,41086 71797,41084 71799,41084 71795,41086 71798,41085 71799,41089 71803,41085 71804,41083 71802,41083 71803,41079 71803,41081 71808,41081 71809,41083 71810,41083 71809,41085 71810,41082 71814,41087 71817,41089 71818,41086 71813,41083 71813,39083 71816,39083 71814,39085 71814,39083 71814,39086 71818,39087 71820,39087 71824,39091 71826,39096 71829,39098 74829,39102 74830,39107 74833,39110 74836,39115 74835,39115 74836,39115 74838,39115 74835,39119 74838,39117 74840,39121 74840,39125 74843,39121 74848,39122 77848,39122 77844,39123 77848,39126 77851,39131 77855,39136 77857,39132 77857,39135 78857,39135 78859,39136 78864,39133 78865,39135 78866,39139 79866,39142 79870,39147 79872,39146 79872,39150 79876,39150 78876,39154 78879,39154 75879,39154 75881,39158 75881,39157 75884,39160 75884,39155 75884,39160 75889,39156 75891,39158 75888,39163 75891,39163 75894,39166 75891,39166 75895,39167 75900,39170 75901,39170 75906,35170 75907,35171 75911,35176 75906,35172 75908,35173 75908,35178 75908,35175 75909,35170 75908,35170 75903,35168 75904,35173 75906,35178 75903,35179 75904,35179 75908,35182 75905,35184 71905,35188 71902,35185 71904,35186 71907,35187 71908,35189 71903,35191 71905,35195 71900,35197 71904,35198 71909,35200 71907,35199 71903,35201 71900,40201 71896,25028 55790,25029 55785,28029 55789,28031 55790,28032 55790,28037 55794,28042 55793,28043 55798,28046 55803,30046 55803,30051 55806,30050 55810,30049 55810,30049 55812,30049 55816,30054 55820,2545 16129,2540 16133,2542 16137,2542 16139,2544 16138,2545 16139,7545 16136,7546 16139,7541 16142,7542 16142,7543 20142,7547 20143,11547 20143,11550 20139,11555 20139,11556 20137,11552 20142,11555 24142,11556 24145,11559 24140,11563 24143,11567 24139,16567 24136,16567 24139,16572 24142,16573 24147,14573 24143,14574 24147,14570 24145,14573 24150,14569 24150,14570 24145,14573 24149,14575 24150,14575 24154,14579 24149,14579 24153,14576 24157,14576 24152,14571 24149,14571 24152,14575 24150,14572 24151,15572 24153,15575 24149,15577 24154,15582 24151,15582 24153,15586 24156,15587 24152,15588 24157,15590 24162,15590 24166,15590 24166,20590 24166,17590 24169,17595 24171,17597 24172,17599 24172,17595 24174,17599 24178,17599 24181,18599 24184,18594 24187,18597 24187,18593 24189,18597 24192,18601 24192,18599 24197,18599 24197,18603 24200,18605 24204,18600 24205,18605 24201,18605 24197,18610 24202,18608 24205,18611 24204,18613 24208,18617 24203,22617 24205,22619 29205,22622 31205,22622 31209,22623 31214,22624 31212,22627 31214,22623 31214,22626 31215,22629 31214,22633 31218,22631 31221,22630 31223,22632 31227,21937 44551,21935 44555,21939 44551,21934 44553,21936 44554,21933 44556,21935 44552,21935 44553,21939 44548,21939 44551,21939 44551,21938 44555,21938 44558,21938 44559,21941 44559,21945 44558,19945 44562,19942 44560,19943 44561,19939 44565,19940 44561,19939 44556,19935 44557,9770 19466,9773 19471,9775 19471,9770 19471,9770 19468,9770 19467,9772 19466,9772 19468,9774 19469,9775 19472,12775 19470,12773 19466,12773 19467,12773 19464,12773 19466,12776 19461,12779 19461,12779 19465,12780 19465,12782 19460,12781 19458,12776 19461,12776 19461,12777 19463,12778 19466,12776 19466,12780 19463,12780 19466,12785 19468,12789 19473,12788 19477,12793 19475,12798 19480,12802 19482,12803 24482,12802 24484,16802 24486,16806 28486,16808 28486,16812 28490,16812 28494,16815 28498,16816 28498,16818 28502,16818 28504,16819 28509,19819 28513,19819 28510,19821 28515,19816 28510,19811 28510,19811 28511,19809 28511,19810 28510,19813 28515,22813 28510,22818 28514,22818 28515,22815 28516,22818 28514,22819 28514)',')'))); +start transaction; +update t1 set a=st_geomfromtext(concat('multilinestring(','(-4287 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-768 -136,-771 2864,-772 2860,-777 2862,-775 2858,-775 2863,-770 2866,-765 2871,-761 2874,-759 2878,-759 2883,-759 2886,-758 2886,-758 2886,-755 2890,-752 2890,-751 2890,1249 2890,1250 2892,1251 2892,1251 2892,1256 2897,1259 2894,1256 2899,1253 2904,1256 2904,1257 2906,1252 2910,1253 2910,1256 2912,1255 2913,1260 2911,1256 2913,1255 2918,1257 2921,1259 2925,1262 2922,1263 2923,1266 2926,1268 2929,1269 2932,1273 2937,1277 2942,1282 2942,1284 2939,1287 2935,1290 2935,1293 2938,1296 2940,1299 2942,1302 2947,1307 2952,1311 2956,1312 2958,1307 2956,1311 2955,1307 2956,1307 2960,1307 2962,1311 2965,1315 2967,1314 2968,1319 2969,1322 2973,1324 2978,1323 2977,1327 2982,1330 7982,1332 7985,1332 7986,1332 7988,1328 7991,1328 7991,1328 7991,1253 2910,1249 2908,1251 2908,1253 2913,1253 2909,1256 2914,1255 2916,1259 2919,1261 2923,1262 2923,1266 2925,1270 2930,1270 2932,1267 2929,1269 2929,1269 2931,1269 2926,1265 1926,1270 1926,1274 1926,1274 1929,1269 1929,1270 1931,1272 1935,1269 1935,1273 1938,1278 1938,1278 1938,1280 1943,1275 1948,1276 1951,1279 1948,1280 1952,1281 1952,1286 1954,1290 1958,1290 1963,1294 1964,1298 1962,1298 1958,1302 1963,1302 1967,1307 -2033,1311 -2030,1307 -2030,1310 -2025,1314 -2020,1317 -1020,1321 -1016,1321 -1018,1321 -1015,1326 -1016,1324 -1016,1327 -1011,1326 -1007,1326 -1002,1326 -1004,1321 -1004,1321 -1003,1324 -1008,1328 -1007,1328 -1003,1333 -999,1336 -998,1339 -997,1337 -996,1340 -2996,1335 -3000,1339 -2996,1343 -2995,1346 -2990,1341 -2990,1345 -2991,1345 -2995,1269 2931,1269 2936,1271 2941,1275 2941,6275 2943,6274 2943,6279 2939,6274 2942,6274 2946,6275 2947,6276 2948,6280 2947,6282 2951,6287 2952,6287 2956,6289 2959,6294 4959,6298 4964,6302 4965,6300 6965,6305 6965,11305 6967,11305 6967,11310 6966,11310 6966,11314 6964,11318 6969,11318 6972,11323 6974,11328 6977,11329 6979,11333 6982,11337 6982,11334 6982,11337 6983,11341 6988,11345 6991,11349 6992,11353 6993,11353 6996,11353 7000,11356 7000,11353 6000,11350 6002,11353 6004,11354 6007,11356 6009,11358 6009,11359 6011,11363 6016,11365 6013,11369 6015,11372 6017,11377 6022,11381 6025,11382 9025,11385 9029,11390 9024,11389 9020,11391 9020,11389 9016,11394 12016,11397 12021,11400 12021,11405 12024,11405 8024,11403 8029,11403 8032,11401 8033,11406 8032,11402 8027,11406 8027,11410 8029,11408 8030,11408 8035,11413 8035,11418 8038,11423 8038,11428 8036,11428 8037,11433 8033,11435 8032,6435 8035,6439 8036,6440 8034,6441 8039,6442 8043,6446 8045,6451 12045,6454 12050,6454 12049,6455 12054,6457 12057,6458 12060,6461 13060,6466 13060,6467 13065,6467 13070,6465 13073,6465 13073,6466 13077,6463 16077,6465 16081,6468 16077,6471 16077,6475 16078,6475 16080,6470 16082,6465 16084,6465 16088,6470 16091,6471 16091,6469 16089,6473 16091,6477 16091,6477 16093,6480 16098,6476 16099,6478 16099,6481 16100,6486 16105,6486 16110,6488 16105,6485 16107,6487 16108,6484 16104,6485 16101,6488 16101,6489 16103,6493 16105,6493 16108,6490 16110,6487 16113,6492 16116,6495 16118,6499 16123,6497 16124,6496 16127,6498 16132,6497 16134,6499 16138,6503 16143,6502 16138,6500 16140,6502 16144,6502 16146,6503 16150,6498 16151,6500 16154,6495 16154,6494 16154,6499 16156,7499 16158,7504 16161,7507 16166,7503 16163,7505 16163,7508 16163,7511 16165,7514 16162,7517 16165,7519 16166,7524 16165,7527 16168,7529 16172,7534 16172,7534 16177,7539 16179,7537 16179,7538 16184,7538 16185,7538 16189,7540 16191,7540 16193,7541 16193,7545 16197,7550 16199,7554 16204,7558 16208,7559 16211,7560 16214,7564 16216,7563 16215,7558 16219,7558 16216,7555 16221,7559 16223,7559 16224,7559 16226,7561 16231,7558 16235,7553 16240,7552 16236,7557 16234,7552 16236,7554 16238,7557 16239,7552 16243,7553 16243,7555 16243,7555 14243,7558 14248,7559 14243,7559 14239,7561 14241,7561 14243,7561 14248,7562 14250,7566 14254,7570 14254,7575 14256,7575 14259,7576 14259,7579 14259,7583 14257,7583 14257,7583 14253,7584 14249,7579 14247,7576 14245,7579 14250,7577 14253,7582 14256,7582 14257,7578 14253,7575 14252,7577 14255,7578 14255,7578 14256,7581 14257,7584 14252,7588 14252,7592 14249,7592 18249,7588 18253,7590 18255,7592 18259,7596 18254,7601 18255,7601 17255,7605 17256,7610 17258,7613 17261,7617 17262,7619 17266,7617 17267,7621 17268,7623 17272,7626 17272,7626 17277,7625 17282,7620 17281,7617 17284,7618 17287,7617 17283,7616 17281,7621 17279,7624 17281,7624 17282,7624 17279,7628 17279,7628 17280,7633 17284,7637 17280,7638 17280,7638 17281,7641 17282,7641 17282,7638 17283,7638 17284,7643 17280,7647 17281,7652 17285,7656 17285,7658 17288,7660 17290,7661 17292,7664 17297,7666 17302,7663 17304,7664 17300,7659 17303,7661 17303,7657 17307,7659 17307,8659 17310,8661 17313,8664 17314,8665 17313,8665 17309,8669 17313,8671 17316,8670 17320,8668 17320,3668 17323,3665 17324,3661 17329,3661 17331,1661 17332,1661 17333,1663 17338,1668 17333,1663 17333,1667 17331,1668 17331,1664 17334,1666 17337,1665 17337,6499 16138,6503 18138,10503 18142,10503 18142,10505 21142,10502 21144,10502 21142,10504 21141,10504 21139,10508 21140,10512 21141,10512 21143,10515 21144,10517 21147,10517 21143,10519 21143,10519 21146,10519 21142,10519 21142,10522 21141,10523 21141,10523 21145,10523 21149,10527 21153,10531 21154,10534 21158,10531 21158,10527 21160,10532 21165,10534 21165,10531 21165,10533 21162,10529 21163,10532 21160,10534 21163,10535 21161,10540 25161,10538 25164,10538 25166,10540 25171,10543 25171,10547 25175,10547 25175,10550 25178,10552 25182,10556 25177,10558 25181,10558 25183,10563 25187,10564 25183,10560 25188,10565 25188,10569 25191,10573 25195,10575 25199,7581 14257,7585 14257,7586 14257,7588 14254,7590 14255,7593 14256,7590 14260,7595 14263,7595 14259,7597 14256,7598 14261,7598 14258,7599 14261,7600 14261,7602 14258,7602 14258,7598 14259,7598 14264,7600 14267,7601 17267,7597 17268,7602 17273,7605 17276,7605 17276,7603 17279,7604 17279,7608 17278,7613 17282,7615 17285,7617 17288,2617 17288,2617 17289,2620 17289,2620 17285,-1380 17288,-1382 17287,-1384 17292,-1384 17294,-1380 17295,-1380 17297,-1380 17299,-1375 17303,-1372 17303,-1373 17298,-1368 13298,-1365 13301,-1366 13297,-1371 13295,-1371 13298,-1371 13298,-1375 13301,-1378 13302,-1378 13302,-1377 13302,-1374 13301,-1373 13306,-1370 13311,-1371 13307,-1366 13307,-1365 13309,11349 6992,11352 6992,11354 6997,11356 7002,11356 7007,11359 7010,11354 7005,9354 7009,9356 7011,9359 7016,9360 7014,9360 7015,9363 8015,9367 11015,9370 11012,9367 11012,9368 11016,9363 11017,9360 11018,9364 11021,9359 11016,11402 8027,11399 8029,11400 8033,11401 8034,11405 8029,11407 8027,11410 8029,12410 8033,12414 8035,12412 8040,12415 8040,12416 8045,12421 8042,12426 8037,12424 8042,12427 8042,12430 8044,12434 8046,12430 8048,12434 8045,9434 8045,9439 8043,9442 8043,9442 8045,9442 8040,9442 8035,9438 8038,9440 8039,9445 8036,9446 8039,9441 8043,12441 8047,12440 8048,12444 8052,12445 8057,12450 8053,12452 8053,12448 8054,12443 8058,12441 8063,12444 8067,12449 8067,12448 8071,12451 8076,12454 8073,17454 8073,17457 8074,17459 8079,17463 8079,17461 8080,17464 4080,17467 4085,17463 4085,17463 4088,17462 4090,17464 4095,17468 4094,17464 4097,17464 4093,17466 4088,17469 4092,17470 4094,17472 4089,17470 4090,17473 4089,17478 4094,17474 4091,17477 4095,17482 4100,17487 4103,17492 4101,17492 4104,17493 4101,17495 4106,17497 4106,17502 4111,17505 4111,17504 4113,17505 4115,17509 4119,17504 4123,17505 4127,17503 4131,17503 4126,17504 4126,17506 4129,17501 4132,17502 4133,17499 4133,17503 5133,17503 5135,17498 5134,21498 5134,21498 5131,21498 5133,21497 5138,21501 5140,21502 5138,21502 5141,21505 5136,21501 5139,21501 5141,21505 5146,21510 5151,21510 5155,21512 5156,21508 5159,21508 5163,21512 5167,21517 5169,21521 5173,21519 5172,21517 5172,21515 5172,21515 5173,21516 5172,21515 5169,21516 5170,21516 5170,21516 5168,21520 5172,21523 5172,21525 5174,21522 5176,21523 5180,21527 5176,21527 5177,21527 5178,21531 5183,21533 5181,21538 5176,21539 5179,21544 9179,21544 9184,21547 9186,21548 9184,21553 9188,21553 9193,21554 9195,21556 9200,21556 9201,21555 9201,21556 9205,21561 9205,21556 9202,21561 9203,22561 9204,22566 9204,22561 9208,22559 9210,22564 9207,22560 9205,22560 9208,22564 9210,22567 9214,22569 9218,22572 9222,22576 9218,23576 9222,24576 9220,24574 9224,24569 9228,24569 9228,6481 16100,6483 16101,6486 16104,6485 16108,8485 16110,8486 16115,8482 16110,8483 16115,8485 16110,8486 16106,8487 16103,8490 16106,8486 16107,8487 16104,8487 16104,8492 16108,8493 17108,8488 17108,8490 17110,8494 17114,8495 17113,8495 17117,8498 17117,8503 17122,8498 17124,8498 17128,8494 17129,8496 17134,8496 17134,8497 17135,8498 17135,8501 17135,8502 17132,8506 17132,8501 17130,8505 17131,21515 5169,21518 5164,21523 5160,21528 5162,21530 8162,21532 8164,21536 8165,21536 8168,21540 8169,21543 8165,25543 8169,25545 8173,25549 8169,29549 8174,29546 8177,29547 8172,29552 8177,29552 8180,29557 8180,29558 8175,34558 8180,34558 8176,34555 8179,34556 8181,7584 14249,7586 14250,7588 14252,7591 14256,7587 14257,7590 14257,7592 17257,7597 17261,7601 17265,7605 17268,7606 17273,7610 17268,7612 17270,7612 17271,7615 17266,7617 17266,7622 17270,7627 17272,7627 19272,7631 19277,7636 19279,7636 19280,7636 19285,7637 19287,7639 19290,7644 19295,7647 19291,7649 19296,7653 19296,7653 19291,7656 19292,7657 19292,7653 19292,7653 19297,7652 19297,7648 19299,7647 19303,7647 19304,7649 19307,7654 19309,7651 21309,7653 21309,7657 21313,7659 21309,7662 21310,7666 21314,7663 21314,7663 21317,7658 21317,7661 21321,7666 21323,7667 21328,7662 21333,7663 21328,7667 21332,7669 21334,7671 21330,7674 21326,7675 21331,7679 21336,7681 21338,7681 21342,7681 21342,7677 21345,7682 21346,3682 21348,3680 21350,3681 21351,3680 21349,3681 21349,3686 21350,8686 21355,8682 21354,8685 21350,8681 21345,8684 21350,8683 21353,8681 21356,8681 21358,8684 21361,8684 21364,8684 21367,8685 21363,8685 21365,8685 21362,8688 21358,8690 21359,8687 21364,8687 21364,8689 21361,8691 21356,8696 21353,8696 21352,8699 21352,8699 21357,8703 21358,8706 21353,8708 21358,17503 4126,17505 4129,20505 4133,20510 4133,20515 4128,21515 4129,21516 9129,21519 9131,21524 9134,21522 9135,21522 9138,21518 9137,21516 9138,21516 9138,21515 12138,21516 12142,21518 12146,21513 12144,21517 12149,21521 12144,21521 12148,21523 12151,21527 12148,21527 12143,21528 12148,21528 12145,21533 12149,21534 12152,21537 12155,21532 7155,21536 7153,21540 7157,21536 7154,21540 7154,21539 7157,21539 7160,21542 7160,21547 7164,21551 7168,21554 9168,21556 9168,21556 9169,21559 9166,21561 9169,21565 9171,21568 9176,21565 9181,21567 9180,23567 9178,23570 9181,23575 9181,23571 9181,20571 9176,20574 9179,20569 9182,20569 9184,20570 9189,20565 9191,20562 9195,20559 9196,20559 9201,20563 9197,20564 9193,20565 9197,20565 9200,20565 9200,20563 9201,20559 9205,20564 13205,20560 13207,20560 13212,20555 13213,20558 13217,20554 13217,20558 13219,20559 13222,20561 13223,20561 13226,20561 13231,20562 13232,20567 13235,20564 13239,20560 13239,20560 13236,20560 13236,20560 13237,20564 13241,24564 13241,28564 13242,28564 13240,28561 13237,28561 13240,28562 13243,28563 13243,28560 13248,28559 13248,28559 9248,28562 9245,28564 9241,28567 9245,28568 9240,28568 9245,28571 9247,28571 9248,28574 9253,28572 9256,28576 9257,28577 9257,28574 9257,10564 25183,10566 25188,10567 25190,10568 25186,10569 25187,10570 25188,10573 25185,10568 25185,10570 25187,10573 25191,10573 25193,10578 25193,10578 25198,10581 25202,10582 25206,10578 25206,10579 25211,10580 25206,10582 25208,12426 8037,12427 8042,12432 8047,12437 8047,12435 8051,12435 9051,12432 9054,12433 9056,12435 9061,12438 9062,12435 9062,12438 9067,12434 9071,12431 9075,12436 11075,12436 11075,12441 11080,12445 11085,12449 11089,12445 11091,12442 11091,12442 11093,12442 11093,12443 11098,12439 11098,12440 11099,7440 11104,7442 11107,7446 11110,7446 11114,7451 6114,7452 6110,11452 6105,11452 6104,11454 6103,11459 6106,11462 6107,13462 6107,13458 6104,12458 9104,17458 9109,17458 9110,17460 9113,17465 12113,17468 12112,17468 12114,17466 12111,17470 12116,17469 12119,17472 12123,17470 12118,17474 12118,17476 12120,13476 12121,13480 17121,13480 17125,13484 17123,13489 17122,13489 17125,13487 17127,13487 17132,13486 17131,13491 17136,13491 17139,13495 17144,13496 17147,13496 21147,13498 21149,13498 21154,16498 21159,16503 21162,16504 26162,16509 26160,16509 26163,16509 26162,16514 26159,16518 26163,16522 26158,16518 30158,16516 30161,16516 30164,16517 30169,16520 30167,16525 30168,16528 30170,17528 30170,17532 30175,17533 30177,17533 30182,17536 30186,17537 30189,17540 30193,20540 30193,20541 30196,20541 30197,20542 30196,20544 30195,20548 30200,20553 30199,20557 30201,20561 30206,20565 30210,20566 30209,20568 30214,20568 30217,20563 30217,20563 30218,20565 30222,20567 30222,20572 30225,20567 29225,20570 29225,20570 29230,20573 29231,20571 29230,20569 29232,20570 29236,17504 4123,17505 4127,17508 5127,17505 5131,17505 5135,17509 5140,17508 5142,17510 5139,17515 5141,17517 5144,17522 5144,17524 5146,17529 5147,17529 5152,17533 8152,17533 8150,17537 8153,17532 8158,17533 11158,17536 11163,17540 16163,17540 16165,17542 16168,17542 16171,17542 16171,17547 16167,17548 16170,17550 16170,17545 16175,17549 16178,17549 16179,17549 16179,20549 16181,20551 16186,20549 15186,20550 15186,20547 15188,20550 15184,20546 15186,20545 15191,20548 15190,20552 15193,20557 15195,20552 15196,20557 15193,20562 15196,20562 15199,20567 15202,20563 15207,20564 15207,20564 15209,20568 15209,20571 13209,20573 13209,20576 13211,20577 13216,20574 14216,20570 14215,20568 17215,20568 17216,20570 17218,20575 17218,20580 16218,20583 16215,20586 16217,20581 16220,20582 16224,20585 16224,20588 16229,20590 16231,20592 16235,20595 16232,20595 16234,20598 16238,20603 16240,20607 16236,20608 16236,20608 16239,20611 21239,20613 21244,20614 21246,20612 21244,20612 21242,20615 21239,20616 21241,20621 21242,17621 21244,17626 21245,17629 21244,15629 21239,15632 21240,15636 21245,15637 21247,15639 21244,15637 21245,15642 21245,15647 21244,15646 21248,15650 21252,15653 21247,15651 21250,15649 21250,15645 21250,19645 21253,19648 21256,19647 21253,19643 21249,19646 21249,19648 21245,19650 21242,19647 21240,19652 21240,14652 21240,14657 21243,14659 21244,14664 21241,14659 21239,14654 21240,14651 21244,14647 21246,14647 21249,14650 21247,14651 21252,14651 21255,14649 21258,14652 21262,14655 21262,14652 21260,14653 21255,14653 21255,14653 21257,14656 21258,14651 21258,14653 21261,14654 21263,14654 21264,14659 21267,14660 21263,14664 21264,14666 26264,14661 26266,14661 26263,14661 26264,14666 26265,14667 26265,14665 26263,14669 26263,14667 26263,14669 26261,14667 26263,14671 26261,14671 26263,12671 26264,12672 26266,12677 26269,17677 26269,17673 26271,17676 26271,17676 26273,17681 26278,17685 26278,21536 8168,21539 8171,21543 8169,21538 8170,21541 8170,21544 8171,21548 8166,21548 8168,21552 8171,21555 8173,21558 8168,21557 8168,21562 8163,21559 8168,21559 8172,21564 8177,21569 8175,21568 8175,21573 8178,21575 8180,21570 8183,21570 8186,21566 8184,21569 8185,21569 8187,25569 8190,25571 8193,25575 8193,25576 8194,25576 13194,25580 13194,25584 13196,25589 13197,25592 13200,25595 13205,25592 17205,25593 17209,25594 17213,27594 17209,27592 17213,27590 17212,27592 17217,27592 17220,27596 17224,27599 17227,27603 17232,27603 17227,27605 17229,28605 17230,28607 17234,28609 17230,28610 17231,28610 17236,28611 17238,28613 17241,28614 17241,28615 17243,28616 18243,28618 18246,28618 18246,28622 18246,28627 18246,28632 18245,27632 18245,27634 18245,27633 18244,27638 18245,-1366 13297,-1365 13299,-1362 13303,-1362 13300,-1361 13304,-1366 13308,-1368 13304,-1368 13306,-1367 13309,-1363 13313,-1358 13313,-1353 13318,-1351 13319,-1347 13323,-1343 13318,-1343 13322,-1340 13317,-1337 13318,-1337 13322,-1337 13324,-1335 13327,-1339 13328,-339 13328,-334 13333,-331 13336,-327 13338,-326 13340,-326 13342,-321 13340,-318 13343,-317 11343,-312 11345,-307 11349,-311 11353,-314 11350,-311 11353,-313 11349,-308 11352,-313 11347,-308 11351,-306 9351,-306 9351,-306 9351,-301 9355,-301 9356,-299 9359,-297 9355,-297 9354,-296 9359,-294 9364,-290 9360,-294 9355,-289 9357,-291 9353,-286 9355,-4286 9351,-4283 9347,-4281 9344,-4281 9344,-4280 9342,-4280 9342,-4280 9339,-4277 9335,-4274 9333,-4274 9335,-4269 9336,-4265 9339,-4260 9340,-4256 9339,-4251 9336,-4251 9339,-4249 9344,-4254 9344,-4255 9348,-4253 7348,-4251 7352,-4247 7354,-4243 7357,-4242 7357,-4240 7362,-4240 7367,-4235 7371,-3235 7371,-3230 7376,-3225 7375,-3221 7372,-3223 7369,-3223 7371,-3223 7369,-3225 7364,-3220 7364,-3218 11364,-3218 11368,-3215 11369,-3210 11372,-3210 11369,-3208 11373,-3207 11377,-3207 11381,-3209 11384,-3209 11383,-1209 11379,-1211 11383,-1209 11383,-1205 11379,-1200 11384,-1197 11379,-1195 11375,-1197 11376,-1192 11377,-1192 11379,-1192 11384,-1188 11382,-1186 11382,-1181 11384,-1180 11388,-1176 11389,-1171 11388,-1171 11393,-1169 11393,-1164 11398,-1162 11393,-1158 11392,-1155 11395,-1155 11397,-155 16397,-156 16401,-156 16406,-158 16409,-158 16412,-158 16414,-160 16415,-158 20415,2842 20411,2847 20413,2848 20417,2848 20417,2848 20412,2850 20407,2850 20403,2846 20408,2847 20406,2849 20406,2854 20402,2858 20403,2863 23403,2858 23402,2855 23405,2858 23400,2857 23400,2852 26400,2849 26404,2850 26406,2855 26410,2859 26415,2863 26411,2866 26411,2866 26411,2866 26412,2868 26415,2868 26419,2868 26423,2873 26424,2876 26425,14656 21258,14661 21260,14664 21262,14664 22262,14662 22267,14662 22268,14662 22268,14658 22273,14660 22278,14658 22277,14659 22278,14660 22283,14661 22281,14661 22285,14661 22288,14664 22290,14659 22295,14662 22298,14663 22301,14667 22301,14668 22301,14673 22303,14678 22306,14681 22302,14686 22299,14686 22301,14683 22304,14686 22305,14687 22301,14689 25301,14684 25301,14684 25299,14685 25300,14685 25301,14685 24301,14688 24301,14693 24303,14693 24298,14693 24298,14688 24299,14689 24297,14690 24299,14690 24302,14690 24302,14686 24303,14686 24306,14688 24302,8492 16108,8494 16113,8498 16116,8495 16116,8496 16116,8499 16116,8504 20116,8508 20119,8508 20119,8507 20119,8509 20123,8509 20127,8512 20128,8514 20130,8519 20135,8522 20136,8522 20136,8524 20138,8524 20141,8528 20142,8526 20145,8530 20141,8530 20145,8532 20149,8531 20151,8536 20155,8535 20154,8539 20154,8539 20149,8539 20149,8543 20146,8540 25146,8538 23146,8540 23149,8540 23149,8545 23151,8546 23152,8551 23152,8555 23152,8559 23153,8561 23153,10561 18153,10561 18153,12561 18158,12564 18159,12566 18163,12567 18165,12564 18165,12568 20165,12570 20170,12575 20173,12579 20177,12576 20177,12579 20176,12584 20176,12583 20181,12585 20182,12583 20186,12582 20187,12585 20192,12582 20194,12584 20198,12586 20198,12581 20201,12582 20204,12581 20206,13581 20209,13586 20211,13586 20216,13589 20217,13589 20213,13586 20215,13588 20213,13592 20215,13596 20216,13596 20221,13600 20221,13598 20224,13595 20221,13598 20226,13602 20229,15602 20232,15606 20232,15611 20232,15610 20232,15613 20235,15617 20239,15612 20234,15612 20233,15615 20237,15617 20233,15619 20234,15619 20229,15623 25229,15624 25229,20624 25228,20628 25229,20631 25234,20630 25239,20634 25241,20632 25244,20636 25240,20634 25237,20639 25236,20634 25241,7590 14257,7592 14260,7592 14262,7592 14265,7595 14266,7600 14263,7600 14268,7604 14270,7609 14274,7611 14275,7615 14275,7620 14277,7620 14276,7625 14277,7625 14277,7628 14281,7628 14286,7630 14284,7630 14284,8543 20146,8542 20148,8546 20150,8550 20152,8550 20153,8550 20158,8545 20156,8545 20157,8550 20157,8550 20155,8550 20157,8553 20161,8557 20161,8557 20165,8560 20161,8563 20159,8568 20154,8570 20158,8573 20161,8573 20166,8577 20168,8580 20171,8584 20173,8585 20175,8580 20180,8582 20183,8582 20188,8582 20188,8585 20193,8588 20198,8589 20199,8591 20197,8594 20198,8596 20196,8592 23196,8597 25196,8601 25199,8601 25203,8604 25202,8604 25202,8599 25205,8601 25210,8601 25206,8603 25206,8606 25206,8605 25211,8609 25211,8613 25208,8614 25205,8619 25208,8619 25210,8621 25214,8619 29214,8615 29218,8616 29219,8617 29217,8622 29222,11622 29225,11624 29229,11623 29230,9623 29225,9621 29224,9625 29227,9628 29227,9624 29232,9626 29237,9631 29241,9634 29245,9635 29248,9638 29253,9643 29258,9646 29258,9647 29255,9648 29253,9650 29258,9648 29262,9647 29262,9642 29267,9646 29267,14646 29269,14650 29274,14655 29279,14654 29277,14655 29275,14653 29276,14655 29273,14656 29269,14653 29272,14656 29272,14656 29274,14660 29276,14663 29276,14660 29278,14659 29281,14659 29276,14661 29272,14656 29273,14657 29274,14652 29270,14654 29274,14657 29270,14659 29272,14655 29275,14657 29270,14659 32270,14660 32270,14662 32273,14665 32277,12665 32279,12670 32279,12670 32277,12670 32274,12672 32277,12677 32282,12682 32285,12678 32289,12674 32291,12677 32287,12679 32287,12683 32292,12685 32292,12680 32289,12682 32294,12683 32299,12687 32298,12692 32300,12695 32305,12699 32310,12703 32311,12704 32312,21515 5172,21516 5175,21518 5175,21513 5177,21516 5182,21520 5186,21525 5185,21529 5185,21528 5186,21530 5181,21533 5178,21537 5183,21537 5183,26537 5183,26534 5183,26539 5183,26542 5178,26542 5176,26544 5176,26546 5177,26548 5175,26549 5178,26548 5181,26548 5184,26553 10184,26557 10179,26559 10175,26563 10171,26563 10173,26564 10170,26568 10169,26572 10171,26577 10171,26581 10169,26577 10173,26573 10169,26575 10171,26578 12171,26576 12175,26576 12180,26581 12183,26577 12183,26580 12184,26582 12181,26582 12182,26583 12182,26588 12186,26590 12191,26593 12193,26593 12198,26598 12198,26602 12193,26602 12193,26604 12195,26607 12195,26611 12196,26615 12196,26615 12200,21534 12152,21534 12152,21537 12147,21540 12147,21545 12150,21545 12145,21548 12150,21549 12152,21544 12152,21544 12150,21547 12153,21552 12152,21553 12157,20553 12161,20553 12156,20556 12152,15556 12157,15559 12160,15557 12163,15561 12163,15564 12166,15565 12165,15561 12161,15559 12163,15559 12168,-4274 9335,-4274 9339,-4276 9341,-4276 9344,-4273 9341,-4271 9341,-4266 9342,-4266 9339,-4269 9335,-4265 9339,-4263 9342,-4259 9345,-4254 9345,-4250 9340,-4250 9335,-4245 9338,-4242 9341,-4240 9341,-3240 9346,-3242 9349,-3241 9351,-3239 9352,-3238 9355,-3237 9358,-3233 9356,-3232 9358,-3233 9358,-3228 9363,-3228 9364,-3223 9369,-3226 9369,-3224 9373,-3222 9378,-3217 9379,-3215 9384,-3215 9384,-3215 9389,-3215 9394,-3215 9390,-3210 9385,-210 9386,-207 9389,-208 9389,1328 -1007,1328 -1010,1329 -1013,1334 -1018,1339 -1013,1344 -1013,1346 -1013,1350 -1015,1351 -2015,1353 -2016,1353 -2011,1350 -2016,1350 -2013,1354 -2010,1356 -2005,1359 -2007,1364 -2005,1363 -2005,1365 -2000,1362 -1999,1365 -1998,1366 -1998,1362 -1994,1364 -1989,1365 -1988,3668 17323,3665 17327,3663 17332,3666 17337,3667 17341,11433 8033,11434 8035,11434 8031,11437 8031,11437 8032,11441 8033,11439 8033,11442 8036,11445 8037,11448 8038,11452 8043,11454 8047,11456 8047,11459 8044,11454 8049,11457 8051,11460 8052,11463 8055,11458 8057,1346 -2990,1346 -2986,1350 -2982,1347 -2986,1352 -2983,1352 -5983,1355 -5979,1358 -5974,1354 -5970,1356 -5965,1360 -5964,1362 -5960,1364 -5960,1364 -5960,1369 -5960,1364 -5963,1369 -5960,1374 -5957,1378 -5952,1380 -5951,1384 -5951,1380 -5948,1380 -5944,1384 -5942,1387 -5945,5387 -5949,5391 -5950,5395 -5950,5395 -5951,5395 -5949,5400 -5954,5404 -5953,5402 -5958,7402 -5958,7403 -5963,7404 -5960,7404 -5959,11363 6016,11359 6018,11364 6023,11365 6024,11365 6023,11369 6025,11373 6020,11378 6020,11377 6024,11379 6029,11383 6033,11384 6034,11388 6037,11389 6041,11394 6043,11396 6048,11401 6048,11402 6050,11406 6052,11404 6054,11409 6058,11413 6059,11415 6060,11411 6065,11416 6068,11420 6073,11415 6076,11416 6078,11419 6083,11423 6085,11428 6086,11430 6086,11432 11086,11437 11091,11432 11088,11429 11086,11432 11086,11427 11090,11427 11095,11429 11092,11427 11092,11431 11087,11433 11088,11436 11090,11436 11091,11436 11096,11439 11099,11440 11099,11440 11095,11445 11097,15445 11102,15445 11102,15441 11099,15445 11100,15445 11102,15443 11106,15445 11110,15450 11107,15453 11110,15457 11110,15457 11115,15459 11119,15460 11117,15465 11117,15465 11120,15464 11123,15463 11124,15460 11124,15460 16124,15458 16127,15462 16122,15466 16126,15462 16131,15465 16133,15463 16135,15462 16136,15462 16140,15466 16142,15468 16147,15468 16147,15471 16149,15471 16147,15475 12147,15477 12150,15480 12147,15484 12144,15487 12145,15490 12147,15492 12149,15494 12150,15496 12153,15497 12155,15499 12150,15499 12147,15500 12143,15504 12146,15499 12150,15500 12150,15500 12152,15505 12153,15506 12157,15506 12157,15508 12158,15512 12159,19512 12162,19513 12159,19511 12163,19512 12162,19517 12167,19520 12167,19522 12168,19525 12171,19525 12172,19525 12175,19526 12172,19526 12172,19526 17172,19527 17175,19528 17176,19529 17179,19529 17178,19533 17181,19532 17183,19532 17179,19537 17174,19539 19174,19538 19171,19542 19172,19547 15172,7641 17282,7646 17284,7649 17284,7652 17284,7654 17285,7650 17289,7647 17291,7645 17296,7649 17297,7650 17294,7653 17294,7653 17298,7656 17303,7658 17308,7662 17313,7666 17308,7664 17313,7669 17313,7669 17313,7669 17316,7667 17313,7667 18313,7663 18314,7661 18316,7662 18317,7657 18318,7662 18315,7658 18316,7661 18318,7661 18322,7664 18317,7667 18315,7671 18315,7675 18315,7674 18315,7670 18316,11670 18316,16670 18321,16673 18321,16678 18322,16682 18327,16683 18332,16686 18334,16690 18334,16688 18336,16685 23336,16688 23337,14688 23338,14692 23337,14694 23338,14697 23339,14697 23342,14698 23342,14698 23343,14698 23348,14693 23350,14694 23347,14695 23347,14696 26347,14692 23347,14692 23347,14693 23350,14693 23351,14698 23355,18698 23352,18698 23356,18702 23360,18701 23362,18699 23363,18701 23363,18702 23366,18699 23366,18694 23370,18699 23370,18702 23374,18707 23378,18706 23380,18706 23381,22706 23384,22706 23385,22705 23389,22706 23384,22706 23384,22706 23384,22710 23380,22713 23381,22718 23386,22716 23390,22712 23390,22708 23390,22705 23392,22704 23397,25704 23402,25704 23402,25706 23404,25710 23404,22710 18404,22707 18402,22704 18403,22704 18406,22704 18411,22704 18411,22704 18410,22709 18410,22709 18407,22704 18405,22703 18405,22707 18405,20707 18409,20709 18412,20710 18411,20712 18414,20712 18414,20712 18412,20712 18416,20714 18412,20717 18417,20720 18419,20715 18421,20718 18422,20723 18425,20723 18430,20723 18434,20725 18435,20724 18437,20724 18433,20726 18433,20731 18437,20732 18437,20730 18438,20735 18440,20739 18438,20734 18438,20739 18437,20739 18437,20744 18439,20749 18438,20750 18434,20753 18436,20754 18431,20754 18432,20758 18433,20762 18438,20764 18443,20766 18447,20766 18450,20767 18451,20768 18451,20769 18448,20770 18452,20774 18456,20777 18458,20781 18462,20782 18463,20785 18468,17785 21468,17784 21473,17782 21477,17787 21481,17783 21482,17785 26482,17788 26482,17788 26482,17791 26479,17794 26483,17790 26483,22790 26483,22790 26479,20583 16215,20585 16220,20589 16225,20590 20225,20592 20222,23592 20227,22592 20229,22597 20233,22600 20233,22603 20237,22604 20240,22599 20241,22595 18241,22595 18242,22598 18243,22602 18247,22605 18252,22601 18256,22598 18255,22600 18257,22604 18258,22609 18261,22608 18261,22606 18264,22608 18261,22605 18265,24605 18262,24608 18263,24611 18267,24608 18267,24613 18271,24615 18272,24610 18273,24614 18272,24619 18276,24621 18281,24625 18276,24622 18280,24622 18282,24621 18279,24622 18277,24627 18279,24631 18284,24634 18289,24634 18292,24634 18294,24636 18299,24639 18294,24644 18295,24647 18298,24647 18301,24643 18303,24643 18306,24639 18311,24636 18315,24641 18317,24645 18317,24648 18319,24649 18323,24649 18328,24652 18330,24652 18329,24652 18327,24655 18322,24656 18319,24658 18319,24661 18320,24664 18316,24660 18320,24657 18318,24657 18320,24659 18325,24660 18327,24661 18323,24656 18327,24652 18323,24654 23323,24658 28323,24660 28318,24665 28319,24666 28323,24668 28325,24668 28328,24672 28325,24667 28328,24668 28325,24670 28326,24665 28330,24668 28334,24672 28336,24672 28336,24668 28339,24672 28340,24672 28338,24674 28341,24675 28346,24675 28351,24677 28356,24679 28357,24681 28356,24677 28360,24680 28355,24684 28354,24688 28356,24688 28351,24690 28356,24686 28361,24691 28364,24692 28364,24692 28365,24692 31365,24693 31370,21693 31370,21692 35370,21688 35372,21692 35377,21695 35377,21697 35377,21698 35379,21698 35374,21701 35375,21701 35379,21703 35380,21708 35383,21706 36383,21709 36383,16709 36383,16710 36386,16715 36382,16711 36386,16706 36388,16706 39388,16706 39383,16706 39379,16711 39379,16711 39376,16714 39381,16716 39386,16717 39389,16717 39391,16720 39391,16723 39387,17723 39392,17726 43392,17722 43396,19722 43399,19724 43394,19727 43391,19725 43395,19723 43398,19726 46398,19730 46400,19730 46403,19730 46405,19734 46407,19734 46410,19733 46407,19728 46412,19726 46416,19726 50416,19723 50417,19723 50416,19718 50420,19719 50424,19718 50429,19713 50433,19715 50437,19718 50442,19719 50442,19718 50444,19719 50439,19721 50443,18721 50444,18721 50446,18721 50450,18726 50451,18727 50453,18722 50451,18727 50456,18729 50455,18731 50458,18726 50458,18728 50458,18730 50463,18730 50460,18729 50456,18727 50460,18730 50462,18734 50457,18739 50455,18744 50457,18744 50461,18748 50461,18748 50466,18745 50468,18749 50463,18750 50468,18754 50472,18754 50472,18759 50472,18760 50468,18763 50473,18760 50477,18762 50477,18766 50481,18769 50483,18769 50481,18772 50482,18776 50482,18779 50486,18779 50489,18781 50489,18783 50494,18786 50496,18786 50495,18786 50498,18784 50499,18784 50499,21784 50504,21788 50502,21785 49502,21790 49501,21790 49498,21795 49494,21800 49494,21801 49495,21801 49500,21797 49505,21799 46505,21802 46508,21798 46513,21799 46516,21802 46516,21805 46519,21800 46524,21805 46527,21804 46528,21801 47528,21801 47531,21804 47533,21804 47529,21804 47534,21809 47538,21808 47538,21812 47540,21812 47535,21813 47532,21810 52532,21812 52535,21817 52536,21820 52536,21824 52541,21828 52545,19828 52545,19829 52547,19829 52551,19833 52555,19831 52552,19826 52557,17826 52562,17827 52567,17830 52568,17830 52572,17830 52575,17830 52575,17830 52574,17831 52578,17827 52582,17827 55582,17829 55583,17834 55583,17839 56583,17843 56579,17846 56580,17850 56584,17848 56588,17853 56592,17851 56596,17856 56596,17856 56600,17851 56601,17856 56601,17856 56604,20856 56604,20861 56601,20865 56596,20865 56597,20866 56597,20869 56602,20871 56603,20874 56607,20871 56605,20872 56610,20874 56613,20874 56612,20876 56617,20876 56622,20876 56626,20876 56621,20879 56623,20880 56627,20883 56624,20880 56629,20880 56629,20881 56630,20884 56630,20884 56635,20881 56636,20879 56637,20876 56632,20879 56629,20881 56633,20878 56634,20879 56634,20879 56637,20879 56642,20884 56638,20879 56639,20884 56634,20885 56631,20886 56633,20889 56632,20894 56627,20894 56631,20894 56631,20898 56632,20903 56632,20908 56630,20907 56633,20907 56636,20903 56641,20904 56641,20904 56637,20900 56639,20905 56642,20910 56643,20905 56648,20910 56653,20915 56654,20910 56659,20910 56663,20910 56664,20912 56664,20912 56666,20917 56670,20922 56670,20918 56673,20920 56675,20920 56677,20920 56677,20921 56681,20926 56677,20931 56677,20934 56680,20934 56684,20936 56689,20938 56689,20938 56690,20940 56695,20935 56696,20939 56697,20939 56699,20940 56696,20941 56694,20940 56698,20945 56700,20947 56702,20947 56707,20950 56712,20954 56713,20950 56710,20952 56706,20955 56704,20957 56708,20953 56709,20951 56714,20953 56716,20957 56720,20957 56722,20959 56725,20958 56727,20959 56728,20962 56731,20963 56736,20965 56741,20965 56740,20967 56742,20969 56737,20969 56742,20974 56744,20979 56744,20978 56745,20974 56748,20970 57748,20972 57749,20974 57751,20971 57754,20972 57752,20977 57755,20981 57758,20981 57763,20981 57765,20984 57765,20982 57767,20982 57763,20987 55763,20989 55767,20991 55770,20987 55771,20988 55774,20988 55777,20991 55775,21991 55778,21996 55778,22000 55783,22001 55783,22005 55783,22010 55785,17010 55781,17011 55783,20011 55778,20015 55783,20018 55786,20015 55791,20015 55795,20019 55792,20019 55792,20021 55792,20022 55788,20023 55783,20028 55786,25028 55790,26028 55795,26029 55790,26030 57790,26033 57794,26032 57798,26036 57802,26039 57805,26042 57805,26046 57810,26050 57811,26054 57815,26054 57819,26050 57819,26055 57820,26060 57822,26063 57823,26066 57826,26068 57824,26073 57826,26077 57831,26082 57831,26078 57836,26082 57839,26084 57839,26086 57834,26082 57834,26083 57835,26082 57840,26083 57844,26086 57843,26083 57846,22083 57849,22084 57847,22089 57847,22094 57848,22094 57853,22094 57850,22095 59850,22095 59855,22098 59858,22099 63858,22099 63861,21099 63861,21104 63862,19104 63862,19108 63864,19109 63864,19112 63868,19113 63873,19117 63876,19121 63875,19116 63877,19115 63882,19117 63878,19122 63883,19125 63884,19129 63879,19133 63879,19135 63874,19139 63871,19136 63871,19136 63873,19140 63868,19140 63873,19144 63877,20144 63879,20144 63876,20146 63880,20148 63878,20149 63877,20149 63879,20150 63882,20155 63886,20155 64886,20159 64884,20160 64884,20161 64887,20160 64887,20164 64887,12677 32287,12677 32292,12679 32297,12678 32298,12682 32294,12687 32294,12682 32296,12682 32296,12683 32298,12683 32301,12682 32305,12685 32309,12686 32311,12686 32316,12691 32311,12692 32316,12692 32312,12697 32314,12700 32319,12705 32322,12706 32327,12704 32329,12705 32332,12702 32334,12707 32338,12703 28338,12704 28340,12700 28345,12702 28345,12702 28345,12701 28348,12704 28349,12704 28345,12709 28342,12709 28343,12714 28347,12718 28351,12723 28352,12727 28353,12730 28355,12728 28353,12733 25353,15733 25353,15736 25355,15740 25356,15745 25356,15747 25351,15752 25353,15752 25354,15754 25354,15754 25353,15759 25352,15763 25352,15764 25357,15759 25352,15761 27352,15760 27354,15760 27354,15760 27355,15762 27357,15762 27354,15759 27354,15759 27354,15763 27358,15767 32358,15764 32360,15769 32360,15767 32360,15765 37360,15770 37362,15772 37363,15774 37367,15779 37363,15780 37359,15779 37363,15782 37366,15780 37370,15775 37370,15778 37365,15781 37360,15785 37356,15785 39356,15789 39358,15789 39360,15794 39365,15794 39370,15797 39375,15797 39380,15799 39379,15804 39376,15805 39377,15807 39380,15808 39385,15809 39386,15807 39386,15809 39386,15810 39389,15815 39392,15820 39392,15819 39396,15820 39398,15820 39395,15825 39400,15823 39405,15824 39403,15829 39403,15834 39406,15836 39411,15831 39415,15832 39415,15833 39415,15838 39417,15839 39419,15839 39414,15842 39413,15846 39418,15843 39420,15842 39423,15839 39420,15840 39422,15839 39420,15842 39415,15846 39410,17846 39415,17845 39411,17847 39416,17849 39420,18849 39424,18847 41424,18852 41424,18849 41429,18849 41432,18848 43432,18852 43433,18855 43433,18859 43435,18855 47435,18858 47440,18861 47435,18866 47435,18866 47439,18869 47442,18871 47445,18873 47445,21873 47445,21876 47444,21873 47449,21878 47451,21883 47456,21880 47454,21880 47454,21880 47457,21883 47459,21887 47464,21890 47465,21893 47467,21894 47464,16894 47462,16899 47457,16898 47455,16893 47456,16897 47458,16896 47455,16898 47459,16900 47464,16903 47469,16908 47471,16903 47474,16901 47473,16906 47473,16901 47478,16904 47479,16906 47475,16906 47474,16907 47475,16906 47479,16901 47482,16901 47482,16905 47486,16908 47487,16911 47490,16915 47490,16917 47492,16921 47497,16926 47498,19525 12175,19525 12176,19521 12177,19522 12181,19525 14181,19521 14181,19519 14185,19519 14189,19524 14192,19527 14192,19529 14196,19534 14200,19535 14205,19538 14208,19540 14204,19545 14207,19545 14207,19547 14210,19550 15210,19554 15210,19555 15210,19555 15213,19560 15213,19562 15212,19564 15213,19569 15210,19570 15214,19573 15214,23573 15217,28573 17217,28574 17220,28574 17219,28574 17224,28576 17229,28577 17233,28577 17236,28579 17236,28580 17238,28584 17243,28588 17248,28587 17252,28587 17252,28582 17255,29582 17259,29577 17260,29578 17262,29583 17257,29585 17257,29586 17260,29586 17265,29590 17267,29593 17267,29594 17267,29599 21267,29603 21271,29603 21272,29605 21274,29607 21276,29612 26276,29613 26279,29616 26280,29621 26277,29621 26277,29623 26282,29626 26285,29631 26289,29628 26289,29632 26290,29637 26294,29642 26290,29646 26292,29648 26291,29649 26288,29653 26293,29655 26292,29655 26293,12702 28345,12703 28348,12698 27348,12699 27349,12698 27354,12700 27354,12700 27355,12703 27360,12703 27361,12700 27362,12704 27367,12701 27371,12706 27376,12710 27372,12710 27373,12710 27368,12715 27370,12713 27374,12716 27378,12716 27380,12714 27379,12719 27374,12718 27373,12722 27376,12724 27376,12729 27371,12733 27372,12733 27377,12735 27373,12735 27374,12737 27378,12739 27379,12742 27381,12739 27381,12739 27376,12743 27378,12743 27379,9743 27375,9744 32375,9745 32377,9746 32374,9746 32372,9750 37372,9752 37375,9754 37375,9751 37377,9755 37379,9759 37379,9763 37383,9766 37385,9767 37382,9768 37383,9765 40383,9770 40378,9770 40382,9775 40384,9777 40386,9782 40391,9778 40395,9773 40395,9778 40397,9779 40399,9781 40402,9781 40398,9781 40393,9780 40396,9782 40399,9785 40398,9786 40395,9789 40390,9793 40387,9798 40390,9803 40394,9805 40397,9800 40400,9795 40402,9800 40403,9802 40407,9807 40410,9806 40407,9807 40403,9812 40400,9814 40403,9819 40403,9819 40400,9822 40405,9824 40405,9822 40408,9827 40410,9831 40413,9831 40413,9826 40412,9827 40417,9832 40418,9832 40416,9833 41416,9833 41421,9834 41416,9838 41416,9838 41421,9840 41422,9844 41424,9839 41424,9843 41427,9845 41430,9849 41430,9849 41425,9852 41423,9855 41426,9858 41429,9860 41434,9862 41436,9866 41441,9868 41436,9869 41434,9871 41434,9875 41437,9877 41437,9881 41438,9883 41438,9879 41438,20903 56641,20898 56644,20903 56647,20901 56649,20903 56645,20905 56650,20909 53650,20905 53650,20910 53652,20907 53655,20912 53652,20916 53656,20917 53656,20912 53661,20912 53660,23912 53663,23912 53663,23909 53663,23912 53665,23913 53669,23911 53669,23915 53669,23912 53671,23916 53670,23917 53675,23922 53680,23927 53683,23930 53688,23935 53689,23935 53691,23935 53691,23931 53692,23931 53694,27931 53693,27933 53695,27937 53695,27942 53699,27947 53701,27949 53703,27949 53704,27949 53708,27952 55708,27953 55710,27949 55710,27953 55710,27958 55713,27959 55718,27960 55722,27962 55725,27965 55730,27965 55732,27968 55730,27969 55733,27972 55733,27975 55734,27975 55734,27979 55737,27981 55733,27982 55732,32982 55732,32979 55734,32978 55737,32978 55738,32974 55742,32977 55746,32981 55750,32985 55746,32983 55747,32987 55750,32992 55751,32995 55751,32998 55751,32998 55753,32998 55753,32993 55753,32995 55757,32999 55758,33002 55760,33002 55761,33005 55766,33005 55767,33000 55764,32997 55767,32997 55771,33001 55773,32998 55777,33001 55777,33005 55776,33004 55776,33009 55781,33014 55786,33014 55790,33015 55790,33016 55790,33015 55786,34015 55787,34019 55790,34019 55791,34021 55793,34017 55793,34019 55796,34016 55797,34020 55793,34020 55796,34023 55792,34023 54792,34025 54797,34028 54800,34029 54799,34029 54795,34034 54796,34036 54797,34041 54792,36041 54797,36045 54801,36048 54803,36051 54804,36053 54806,11439 8033,11441 8038,11441 8039,11441 8040,11445 8035,11441 8035,11442 8039,11438 8035,11438 8035,11443 8039,16443 8038,16444 8038,14444 8040,14448 12040,14451 12036,14455 12038,14455 12041,14456 12046,14459 12049,14457 12051,14458 12046,14458 12047,14459 12042,14464 12042,14465 12047,14470 12050,14471 12055,14471 12058,14468 12060,14473 10060,14477 7060,14477 7062,14474 7062,14474 7067,16474 7063,16471 7065,16474 7067,16471 7072,16471 7068,16476 7066,16481 7069,16482 7072,16487 7072,16487 7077,16488 7077,16493 7076,16493 7079,16497 7079,16500 7079,16502 7079,16502 7079,16505 7075,16504 7080,16501 7077,16497 7079,16501 7081,16497 7080,16496 7084,16500 7086,16495 7087,16498 7084,16501 7087,16496 7087,16496 7083,17496 7083,17500 7083,17505 7088,9860 41434,9864 41435,9864 41435,9865 42435,9860 42435,9862 42436,9863 42434,9863 42430,9862 40430,9863 40427,9863 40428,20608 16239,20605 16242,20610 16237,20614 16237,20615 16242,20611 16242,20612 16245,20609 16244,20604 16242,22604 16237,22608 16239,22607 16240,22610 16244,22610 16241,22615 16246,22616 16246,22614 16251,22616 16251,22617 16249,22619 16254,22623 16252,22618 16255,22618 16259,22620 16262,22615 16262,22618 16263,22622 16263,22626 16265,22629 16266,22628 16269,22633 16267,22636 16268,22636 16267,22641 16269,22646 16269,22645 16271,22646 16273,22650 16271,22655 16274,22655 16277,22658 16279,22660 16280,22658 16280,22661 20280,22663 20282,19663 20285,19658 20288,19658 20292,19661 20295,19666 20298,19670 20301,19671 20301,19675 20301,19677 20306,19675 20311,19674 20315,19678 20318,19677 20314,19680 20315,19682 20310,19684 20314,19683 20316,19687 20315,19688 20316,19688 20319,19693 20319,19698 20322,19702 20323,19698 20323,19702 21323,19707 22323,8508 20119,8509 20119,8510 20116,8515 20113,8518 20115,8519 20116,8516 20120,8520 20119,8520 20118,8525 20123,8527 20125,8527 20125,8528 20123,8530 20126,8533 20123,8535 20127,8532 20132,8534 20136,8538 20138,8542 20141,8537 20143,8537 20145,8542 20145,8547 21145,8548 24145,8552 24145,8557 24150,8560 24147,8562 24151,8566 24156,8569 24160,8574 24156,8579 24159,8584 24164,8587 24164,8585 24167,8588 24170,8591 24171,8589 24172,8590 24176,8595 24177,8593 24174,8596 24178,8600 24179,8603 24175,8602 24178,9602 24182,9605 24177,9609 24178,9610 24182,9608 24178,9603 24183,9606 24188,9608 24193,9609 24195,9614 24196,9616 24197,9618 24201,9618 24205,9613 24209,9612 24214,9608 24211,9603 24216,9607 24221,9611 24221,9615 24217,9617 24217,9618 24221,9623 24225,9623 24225,9626 24225,9630 24225,9630 24222,9626 24223,9626 22223,9627 22223,9626 22226,9629 22228,9632 22228,9636 22225,9638 22226,9639 22227,9634 22230,9634 22231,9639 22235,9639 22240,9641 22242,9642 22246,9647 22249,9652 22250,9655 22255,9651 22256,9652 22253,9652 22256,9652 22261,9655 22262,9657 22257,9659 22261,9659 22261,9657 22264,9657 22261,9656 22264,9661 22267,9662 22270,12662 22270,12665 22265,12669 22270,12669 22270,12673 22269,11356 7007,11361 7010,11361 7010,11357 7014,11356 7015,12356 7020,12357 7015,12361 7017,11361 7018,11364 7017,11359 7018,11355 7017,11354 7020,11357 7020,11361 7023,11364 12023,11368 12028,11368 12029,11371 12030,11372 12034,14372 12034,14372 12039,14372 12042,14376 12045,14381 12047,14379 12047,14381 12049,14384 12054,14385 12051,14388 12056,14384 12056,14384 12061,14381 12058,14386 12062,14386 12059,14391 12059,14396 12060,14397 12060,14398 12056,14403 12051,14408 12052,14410 12057,14409 12057,14414 12053,14414 12051,14415 12051,14420 12049,14423 12048,14427 12044,14427 12044,14425 10044,14421 10049,14424 11049,14426 11054,14427 11059,14429 11064,14433 11064,14434 11064,14437 11065,14441 11068,14444 11072,14445 11076,13445 12076,13445 12077,13445 12081,13444 14081,13446 14081,13446 14078,13449 14083,13447 14084,13450 14085,13452 14090,13453 14087,13456 14084,13457 14083,13461 14081,13463 14082,12463 14082,12463 14087,12463 14087,12464 14087,8464 14087,8465 14083,8465 14080,8467 14085,8472 14085,8473 14085,8476 14090,8474 14094,8475 14094,8480 14094,8481 14099,8476 14103,8476 14107,8480 14111,8483 14116,8488 14120,8488 14118,8488 14120,8483 14115,8481 14118,8485 17118,8485 17114,8488 17110,8488 17115,8484 21115,8484 21118,8486 21120,8487 21120,8482 21115,8487 21118,8490 21122,8494 21127,8497 21132,8497 21133,8500 23133,8503 23135,8507 23135,8508 23132,8511 23129,8512 23125,8517 23126,8522 23125,8527 23129,8522 23131,8527 23132,8530 23132,8531 23128,8533 23132,8533 23134,8533 23139,8533 23144,8536 23143,8537 23146,8533 23146,8533 23149,8537 23152,8533 23157,8530 23158,8532 23162,8536 23162,8536 23165,8536 23165,8540 23170,8544 23171,8548 23169,8547 23173,8551 23176,8552 23173,8548 23169,8553 23173,8553 23170,8548 23173,8549 23173,8546 22173,8547 22174,8551 22177,8550 22179,8552 22183,8553 22183,8553 22184,8557 22185,6557 22185,13598 20226,13601 20227,13604 20229,13608 20233,13610 20234,13605 20237,17605 20237,17610 20242,17605 20242,17602 20241,14602 20241,18602 20236,18606 20239,18606 20244,18608 20241,16608 20245,16611 20240,16615 20239,16610 20234,16611 20232,16613 20235,16608 20235,16608 20239,16613 20242,19734 46410,19734 46410,19738 46414,19737 46414,19735 46415,19737 46418,19741 46421,19744 46423,23912 53671,23908 53673,27908 53675,27913 54675,27917 58675,27921 58677,27925 58678,27930 58678,27926 58683,27930 58686,27931 58691,27931 58695,27934 58700,27936 58699,27936 58699,27941 58695,27942 58695,27947 58699,27952 58699,27954 58703,27957 58704,27962 58708,27958 58706,27959 58703,27962 58703,27967 58706,27967 58701,27965 58701,27962 58702,27966 58703,27971 58704,27976 58706,27980 58709,27980 58712,27975 58711,27971 58716,27971 58713,27968 58712,27968 58712,27971 58711,27968 58713,27968 58710,27969 58708,27972 58706,27976 58711,27978 58716,27979 58716,27983 58718,27978 58718,27981 58719,27981 58723,27986 58725,27986 58728,27986 58731,27991 58734,27996 58738,27993 58736,27995 58732,31995 58736,31990 58735,31993 58738,31990 58734,31995 58729,31996 58729,31999 58731,31994 58726,31996 58731,12463 14087,12465 14090,12465 14093,12463 14090,12463 14095,12461 14092,12464 14093,12459 14091,12459 14091,12459 14091,12459 14096,12461 14100,12458 14103,12457 14101,12452 14101,12452 14106,12453 14103,12453 17103,12455 17104,15455 17104,15460 17108,15463 17104,15458 17108,18458 17108,21458 17105,21461 17105,21464 17110,21467 17115,21464 17120,21464 17120,21468 17123,21470 17126,21465 21126,21461 21126,21464 21128,21464 21132,21468 21137,21471 21142,21475 21146,21471 21146,21476 21147,21473 21151,21475 25151,21475 25152,21477 25153,21481 29153,21479 29158,21484 29162,21488 29162,21490 29165,21487 29170,21488 29167,21489 29162,21493 29164,21493 29169,21498 29169,21499 29164,21495 29167,21498 29167,23498 29170,23498 29169,23503 29172,23505 29171,23510 29167,23514 29164,28514 29168,28514 29172,28514 29174,28512 29172,28513 29176,28518 29179,28518 29182,28521 29177,28521 29179,28519 29179,28517 29179,28515 29177,28519 29177,28519 29179,28524 29184,28527 29183,28527 29185,28523 29187,28523 29184,28525 29189,28522 29189,28518 29186,28523 29189,28519 29189,28521 29189,28526 29193,28529 29193,28529 29196,28534 29200,28538 32200,28537 30200,28539 30202,33539 30207,33539 30209,33534 30205,33535 30208,33536 30208,33538 30213,33538 30214,33542 30218,33545 30221,33548 30222,33551 30225,33552 30227,33554 30231,33555 30233,33560 30228,33563 30225,33564 30229,33565 34229,33565 34234,33570 34231,33572 34235,33572 34239,33573 34243,33578 34239,33579 34243,33574 34247,33573 34247,33576 34243,33573 37243,33573 37246,33568 37241,33568 37244,33573 37239,33578 33239,33574 33241,33574 33239,33578 38239,33583 38242,33587 38242,33590 38242,33594 38243,33596 38247,33599 38248,33599 38252,33595 38252,33598 38257,33603 38258,33604 37258,33609 37255,33604 37257,33607 37262,33607 37265,33609 37266,33614 37271,33614 37276,33616 37278,33616 38278,33616 38282,33621 38284,33621 38288,33621 38285,33618 38289,33616 38291,33616 38294,33611 38296,33608 38301,33610 38305,33610 38300,33612 38303,33617 38308,33621 38309,33625 38305,33630 38307,33634 42307,33636 42310,33638 42314,33634 42312,33631 42315,33631 42315,27931 58691,27936 58693,27937 58695,27940 58700,27943 58703,27943 58708,27946 58709,27950 58711,27950 58714,29950 58718,29951 58723,29947 58728,29947 58732,29950 58727,29950 58727,29955 58730,29960 58734,29964 58732,29961 58734,29963 58735,29968 58739,29968 58741,34968 58739,34971 58739,34972 58739,34973 58740,34968 58741,34970 58743,34974 58745,34977 58749,34979 58744,39979 58745,39979 58742,39978 58744,39982 58748,39983 58744,39983 58744,39979 58747,39979 58752,39983 58757,39982 58759,39985 58759,39986 58759,39983 60759,39986 60762,39990 60767,39994 60770,39994 60770,39997 60770,39997 60770,40000 60775,40002 60775,40003 60779,40007 60784,40008 60787,40011 60788,40015 60788,40016 60790,40016 60792,40021 60788,40025 60788,40030 60788,40026 60786,40027 60786,40030 60787,40032 60792,40037 60795,40032 60800,40032 60799,40035 64799,40035 64801,40036 64806,40041 64803,40037 64805,40038 64801,40040 64804,40036 64804,40040 64805,40045 64810,40048 64811,40051 64813,40051 64817,13491 17139,13486 18139,13489 18139,13494 20139,13492 20138,13494 20141,13499 20145,13499 20145,13499 20148,13503 20149,13500 20149,13505 20151,9367 11012,12367 11015,12369 11011,12364 11012,12364 11015,12359 11011,12354 11011,12354 11014,12359 11017,12356 11015,12361 11015,12361 12015,12365 12016,12369 8016,12374 8021,12373 8025,11373 8021,11368 8021,11373 8024,12700 27362,13700 27363,13705 27364,13710 27368,13705 27369,13707 27367,13707 27371,13709 27375,13712 27377,13714 27373,13712 27376,13714 27379,13713 27382,13718 27384,13713 27380,13713 27385,13711 27386,13715 27386,13719 27386,13719 27389,15719 27394,15724 27398,15729 27400,15734 27401,15734 27401,15729 27396,15732 27396,15735 27397,15734 27399,15733 27400,15729 27400,15734 27400,15729 27405,15734 27405,15739 27408,15739 27408,15741 27412,15743 27416,15743 27416,15740 27416,16740 31416,16743 31421,16738 31425,16742 31430,16742 31435,16743 31439,16743 31444,16741 31449,16746 31450,16747 31455,16742 31459,16738 31463,16742 31466,16742 31471,16742 31471,16742 31471,16744 31475,16749 36475,16749 36473,16753 36478,16757 36474,16761 36477,16759 36478,16761 36481,16760 36484,16761 36485,16760 36486,16765 36491,16766 36494,16771 36498,16769 36501,16771 37501,16774 37504,16769 37507,16769 37507,16772 37503,16772 37508,16774 37511,16774 37510,18774 37515,18777 37515,18772 37512,18775 37514,18777 37517,18778 37519,18779 37517,18776 37517,18778 37520,18780 37520,18785 37522,18785 37526,18787 37523,18786 37520,18790 38520,18789 38520,18792 38522,18797 38527,18802 38529,20802 38534,20804 38535,20803 38540,20802 38539,20806 38543,20811 38546,20814 38543,20812 38541,20808 38546,20811 38544,20815 38539,20816 38535,20818 38531,20815 38531,20814 38528,20814 38533,20817 38536,20816 38539,20821 38540,20818 38542,20820 38540,20816 38540,20821 38540,20823 38541,20828 38541,20831 38546,20836 38547,20836 38548,20835 38553,20835 37553,20835 37558,20837 37558,20842 37560,20846 37561,20846 37564,20849 37569,20854 37564,20854 37565,20850 37566,20852 38566,20856 39566,20861 39566,20863 39562,20867 39566,20872 39567,20868 39566,20873 39568,20876 39573,20876 39573,20880 39575,20884 39579,20885 39580,20889 39580,20891 39584,20888 38584,20889 38587,20890 38592,20891 37592,20892 37597,20894 35597,20895 35600,20897 35603,20899 35605,16678 18322,16681 18323,16682 18323,16686 18328,16690 18326,16693 18331,11693 18335,11692 18332,11695 18332,11698 18335,11703 18335,11703 18336,11702 18339,11698 18344,11702 18349,11705 18353,11704 18357,11707 18360,11707 18359,11711 18358,11716 18358,11713 18358,11712 18360,11710 18360,11710 18362,11710 18362,11710 18367,11710 18366,11707 18366,11706 18365,11710 18369,11715 18371,11714 18374,11712 18376,11711 18377,11711 18379,11712 18384,11715 18385,11711 18385,11714 18387,11717 18389,11718 18386,11721 19386,11723 19391,11722 19395,11722 19396,11723 19398,11726 19398,11729 19403,11733 19408,11736 19407,11733 19411,6733 19407,6735 19402,6738 19402,6743 19406,6746 19406,6742 19411,6742 19414,6742 19414,6746 19419,6746 19423,6746 19418,6749 19418,6747 19418,6748 19420,6748 19424,6748 19424,6751 19427,6751 19429,6752 19429,9752 19426,9754 19428,9759 19430,9756 19431,9751 19435,9753 19440,9757 19445,9755 19443,9757 19448,9757 19448,9759 19451,9763 19451,9766 19454,9766 19456,9770 19459,9770 19462,9770 19466,9766 19467,9771 19468,9772 19468,9769 19469,9768 19470,9770 19470,9774 19473,9778 19470,9781 19470,9786 19471,9789 19471,9789 19473,9792 19478,9795 19475,9800 19478,1256 2899,1260 -1101,1256 -1097,1255 -1093,1255 -1094,1259 -1089,1260 -89,2260 -84,2258 -84,2263 -88,2267 -89,2268 -91,2269 -86,2272 -86,2272 -82,2273 -77,2276 -79,2281 -81,2283 -79,2287 -75,2292 1925,2297 1930,2299 1930,2303 1932,2308 1937,2308 1936,2313 1937,2315 1934,2316 1935,2311 1936,2316 1937,2319 1938,2322 1940,2327 1940,2331 1940,2327 1943,2329 1945,2331 1950,2336 1950,2339 1954,2338 1954,7338 1954,7337 1958,7341 1960,7341 1964,8550 20152,8554 20152,8553 15152,8550 15152,8554 15154,8552 15149,8552 15153,8556 15151,8556 15148,8552 15152,8547 15149,8552 15154,8552 15155,8553 15156,8550 15156,8553 15160,8556 15164,8558 15163,8561 15163,8563 15167,8559 15169,8559 15166,8564 15167,8568 15171,8572 16171,8572 16173,8574 16170,8571 16174,8575 16174,8576 16174,8576 16174,8580 16178,8579 16183,8574 16184,8576 16184,7576 16186,7572 16181,7577 16181,7577 16185,7578 16190,7583 16185,7583 16185,7587 16185,12587 19185,12582 19188,12587 19193,12587 19195,10534 21158,10538 21162,10540 19162,10543 19158,10547 19158,10551 19160,10551 19158,10554 19158,10553 19157,10555 19157,10555 19154,10552 19156,10553 19161,10555 19166,10558 19165,10560 19165,10561 19165,10561 19165,10564 19166,10567 19164,10570 19162,10575 19165,10577 19164,10577 19168,10578 19168,10574 19171,10574 19172,10571 19175,10573 19178,6503 16143,6507 16146,6509 16142,6510 16142,6510 16143,6512 16143,6514 16146,6517 16148,6522 16143,6525 16143,6530 16143,6534 16146,6531 16144,8490 16106,8490 16106,8492 16109,8489 16110,8491 16106,8487 16109,8488 16104,8490 17104,8495 17108,8490 17109,8493 17108,8498 17111,8500 17111,8500 17109,8501 17113,8506 17118,8506 17118,8506 17123,4506 17125,4511 17123,4516 17126,4514 17125,4519 17124,4520 17126,4525 17129,4530 17124,4526 17124,4528 17124,4533 17127,4535 17127,4531 16127,4531 16124,4534 16124,4538 16125,2538 16130,2539 16131,2544 16133,2544 16129,2540 16129,2545 16129,2550 16126,7550 16126,7555 16128,7559 16124,7559 16129,7560 16132,7561 16128,7566 16132,9566 16136,9568 16136,9573 16141,9570 16144,9571 16146,9573 16150,9577 16153,9581 16148,9579 16153,9584 16157,9586 16160,9581 16162,9578 16165,10578 16162,10579 16163,10574 18163,10570 18164,10568 18164,10570 18169,10572 18170,10575 18170,10575 18175,10579 18176,10580 18176,10585 18176,10581 20176,10586 20178,10587 20178,10585 20179,10585 20177,10581 20178,10584 20183,10586 20187,10590 20187,10591 20190,10587 20188,10591 20187,10591 20192,10592 20191,10597 20195,10602 20194,10602 20195,10607 20197,10607 20198,13607 20201,13607 20200,13607 20204,13604 20204,13605 20209,13607 20209,13612 20214,13615 20218,13615 20218,13619 20220,13624 20224,13628 20219,18628 20216,18630 20213,18635 20213,18632 20211,18629 20211,18632 20215,18632 20216,18632 20217,18632 20217,18627 20214,18630 20209,18633 20212,18636 20212,18638 20217,18643 20222,22643 20219,22643 20219,22644 20219,22644 20214,22645 20216,22645 21216,22646 21220,22642 21224,22642 21221,22641 21224,22638 21229,22641 21232,22642 21235,22643 21238,22644 21236,22649 21237,22704 18411,22704 18412,22699 18412,22696 18416,22701 18412,22703 18416,22698 18416,22693 18418,22695 18422,22698 18422,22700 18426,22705 18427,22706 18427,22708 18432,22708 18432,22704 18431,22709 18427,22709 18432,22709 18436,22713 21436,22718 21438,22719 21437,22721 21440,22725 21443,22727 21445,22724 21450,22724 21451,22727 21453,22730 21453,22730 21458,22734 21460,22738 21464,20738 21464,20742 21465,22742 21465,22741 21464,22736 21464,22738 21464,22742 21460,22742 21460,22744 21458,22743 21458,22741 21455,22741 21460,22739 21456,22739 21458,22734 23458,22732 23458,22733 23463,22731 23467,22731 23469,22736 23472,22739 23472,22742 23471,22744 23471,24744 23466,24744 23468,24739 23471,24742 23474,24747 23478,24747 23481,24747 23483,24747 23486,24751 25486,24753 25489,24758 25493,24762 25497,24764 25499,24769 25496,24773 25498,24777 25499,24779 25503,24782 25500,24782 25498,24777 25498,24779 25495,24775 25495,24776 25495,24777 25495,24781 25500,24778 25503,24778 25499,24780 25500,24777 22500,24775 22505,24777 22505,24777 22501,24778 22502,24778 22505,24774 22509,24776 22509,24776 22509,24781 22509,24784 22511,24780 22513,24780 22514,24783 22515,24786 22520,24786 22520,24791 22518,24788 22517,24791 22522,24794 22525,24791 22524,24791 22528,24789 22530,24794 22530,24799 22525,24795 22524,24798 22520,24796 22516,24801 22511,24803 22516,24804 22521,24804 22526,24806 22524,24805 22524,24809 22529,24810 22531,24813 22536,24817 22536,24815 22535,24810 22530,24815 22530,24816 22530,24818 22531,24818 22531,24818 22533,24822 22533,24820 22530,24816 22529,24820 22532,24822 22533,24822 27533,24823 27536,24826 27540,24829 27541,24832 27546,24833 27549,24832 27553,24833 27552,24833 27551,24836 27551,24839 27554,24841 27554,24841 27556,24842 27559,24847 27557,24847 27562,24842 27566,24840 27564,24842 27568,24844 27563,25844 27565,25847 27569,25848 27564,25851 27561,25855 27559,25856 27556,25852 27556,25857 27561,25857 27564,25858 27564,25863 27567,25868 27567,25871 27564,25872 27565,25875 27570,25877 27573,25878 27575,25879 27574,25884 27579,25887 27577,25886 27579,25882 27582,25882 27578,25882 27582,25884 27578,25887 27583,25891 27584,25895 27582,25895 27582,25898 27583,25900 27580,11433 8033,11435 8037,11439 8040,11444 8044,11439 8048,11441 8045,11446 8044,11446 8039,11451 8038,11451 8043,11450 8046,11451 8046,11447 8049,11443 8052,11445 8057,11441 8058,11439 8060,11444 8056,11445 8053,11448 8053,11450 8049,11455 8044,11453 8042,11454 8044,11451 8049,11453 8049,11458 8052,11459 8055,11457 8053,11460 8053,11461 8055,11465 9055,11466 9056,12466 9058,12467 9054,12472 4054,12467 4056,12467 4059,12470 4058,12468 4060,14468 4064,14467 4063,14471 4060,14473 4062,14471 4067,14468 4072,14471 4076,14466 4077,14467 4074,14472 4075,14472 4080,14476 4085,14476 4090,14481 4090,14485 4091,14490 4095,14493 4095,14495 4100,14492 4100,14497 4102,14499 4100,14501 4101,14500 4106,14500 4107,14496 4108,14495 4110,14494 7110,33625 38305,38625 38310,38625 38315,38623 38318,38625 38317,38629 38318,38632 38313,38634 38313,38639 38314,38640 38317,38644 38320,38649 38321,38647 38317,38647 38322,38643 38324,38640 38319,38645 38319,38646 38319,38645 38316,38644 38318,38646 38319,38644 38324,38647 38328,38652 38325,38649 38328,38651 38332,40651 43332,40651 43335,40655 43335,40652 43339,40652 43339,40654 43336,40654 43337,40657 43333,40656 43335,40656 43338,40656 43343,40656 43341,40659 43346,45659 43348,45664 43350,45666 43346,45665 43351,45669 43355,45673 43355,45674 43359,50674 43360,50678 43363,50678 43364,50679 43367,50682 43371,50687 43374,50690 43374,50690 43377,50693 43377,50698 43382,50693 43386,50689 43386,50692 43390,50695 43392,50699 43392,50704 43397,50707 43395,50711 43391,50706 43393,50709 43393,50711 43395,50710 43397,50714 43394,50718 43394,50715 43394,50717 43399,50722 43403,50724 43407,50728 43407,50730 43408,47730 43403,47730 43404,47733 43408,47737 43409,47735 43414,47738 43416,47741 43416,47744 43421,47743 43422,47748 43424,47753 43419,47754 43420,47749 43419,52749 43423,52751 43421,52753 43421,52750 43426,52752 43428,52748 43430,52748 43426,52747 43431,52744 43431,52748 43435,52748 43435,52750 45435,52753 45440,52753 45440,52757 45442,52761 45447,52758 45447,52761 45447,52761 45452,52758 45454,52758 45455,52758 45456,52761 45460,52759 45458,52755 45463,52759 45464,52756 45461,52756 45462,52758 45467,52760 45470,52759 45469,52762 45473,52762 45474,15617 20233,15612 20238,15611 20242,15613 20237,15617 20238,15618 20239,15621 20236,15623 20240,15622 20240,15622 20245,15623 20244,15628 20242,15628 20247,15625 20246,15628 20250,15630 24250,15632 24251,15634 24253,15629 24252,15633 24250,15629 24250,15633 24248,15629 24248,15634 24248,15636 24253,15640 24253,15643 24257,15639 24254,15642 24257,15643 26257,15648 26255,15643 26256,15641 26258,15646 26262,15646 26263,15651 26263,15648 26267,15653 27267,15656 27270,15660 27272,15662 29272,15658 29276,15658 29277,15658 29272,15663 29274,15663 29274,17663 29274,17663 29279,17668 29283,17671 29285,17670 29287,17675 29289,17676 29293,17679 29296,17682 29297,17685 29299,17686 29300,17687 29305,17685 33305,17686 33310,17687 33310,17689 33306,17687 34306,17691 34304,17694 34306,17696 34306,17695 34309,17691 34314,17691 34311,17692 34306,17696 34310,17700 34310,17697 34312,17699 34316,17704 34318,17701 34318,17705 34322,17704 34321,17706 34319,17706 34319,17702 34316,17707 37316,17710 37318,19710 37313,19705 37313,19708 37308,19712 37310,19710 37312,19711 37307,19711 37307,19714 37310,19718 37312,19719 37309,19723 37312,19727 37315,19729 37317,19731 37322,19734 37323,19735 37324,19737 37322,19742 37326,19740 37331,19745 37335,19742 37335,19742 37340,19745 37341,19749 37341,19749 37342,19752 37347,19757 37347,19762 37345,19764 37341,19768 37345,19769 37350,19771 37355,19773 33355,19770 33360,19765 33364,19769 33364,19773 33365,22773 33364,22771 33360,22775 38360,22779 38364,22780 38369,22782 38371,22784 38371,22789 40371,22792 40375,22789 40375,22789 40377,22793 40376,23793 40378,23795 41378,23791 41378,23792 41378,23796 41382,23798 41383,22798 41386,22799 41390,22804 41390,22804 41391,22808 41391,22812 41393,22814 39393,22819 39393,22821 39395,22823 39397,22828 36397,22832 36392,22832 36393,22836 36396,22836 36401,22838 36402,19838 36403,19837 36408,19841 36408,19843 36409,19845 36404,19847 36405,19847 36408,19847 36411,19848 36413,19850 36415,19845 36419,19841 36417,19843 36419,19843 36419,19846 36424,19848 36425,19850 36425,19845 36425,19846 36425,19848 36430,19852 36430,19849 36435,19846 36440,19851 36440,19846 36438,19848 36439,19844 36442,19845 36446,19841 36448,19841 36449,19841 38449,19841 38452,19846 38455,19848 38458,19852 42458,19856 42462,19859 42463,19859 42465,19861 42462,19862 42463,19864 42463,19867 42467,19870 42470,19871 42468,21871 42467,26871 42464,26867 42466,26872 42463,26872 42464,26874 42463,26879 42466,26882 42466,26883 42471,26879 42476,26878 42477,27878 42479,27882 42479,27883 42480,27886 42483,27887 42487,27885 42484,27887 42483,27890 42484,27890 42485,22890 42486,22890 42489,22890 42491,22895 42494,22897 42498,22899 42502,22901 42502,22896 42503,22892 42498,22896 42498,22891 42502,22892 42505,22897 42507,22898 42511,22903 42515,22906 42510,22911 42513,17911 42508,17915 42512,17918 42509,17913 44509,17915 44514,17919 44510,17923 44514,17927 44510,17927 44513,17927 44517,17928 44521,21928 44517,21930 44516,21931 44513,21929 44513,21933 44517,21934 44519,21933 44520,21934 44520,21937 44520,21938 44520,21943 44520,21938 44523,21940 44527,21936 44532,21941 44536,21942 44541,21937 44545,21938 44545,21938 44545,21940 44543,21937 44538,21941 44543,21938 44547,21938 44547,21938 44547,21937 44551,21937 44551,21933 44556,21935 44554,21937 44558,21940 44562,21944 44564,21949 44561,21952 44566,21955 44568,21960 44569,21963 44571,21963 44571,21965 44574,25965 44579,25967 44584,25967 44584,25970 44588,22970 41588,22970 41586,22975 41585,22974 41589,22970 41593,22966 41598,22965 41598,22970 41598,22965 41601,22965 41604,22965 46604,22968 46604,27968 46602,27968 46602,25968 46601,25967 45601,25968 45602,25971 45607,25975 45610,25979 45614,25977 45612,25975 45609,26975 45609,26980 46609,26979 46613,26982 46610,26982 46611,26980 46615,26982 46616,26985 46616,26986 46617,26987 46615,30987 46617,30987 46622,30986 46626,30988 46629,30989 46627,17671 29285,17673 26285,17677 26286,17678 26285,17681 26289,15681 26292,15685 26297,10685 26297,10689 26301,10689 26297,10693 26300,10695 26301,10691 26297,10696 26299,10696 26304,10692 26306,10688 26301,10690 26302,10690 26307,10686 26305,10684 26309,10686 26312,10691 26313,10688 26318,10683 26320,10684 26325,10683 26328,14683 26328,14680 21328,14681 21331,14683 21335,14680 21333,14677 21333,14682 25333,14684 25334,14689 25338,14693 25338,14698 25341,14696 25342,18696 25343,20696 25345,20699 25349,20702 25346,20703 25351,20703 25351,20704 25351,20704 25354,20700 26354,20705 26352,20706 26351,20706 26351,20703 26354,20708 26354,20712 26355,20712 26352,20717 26349,20717 26346,20722 26351,20727 26353,20729 26348,20734 26353,24734 26349,24729 26349,24729 26352,24725 26349,24725 26353,24726 26353,24729 26355,24729 26357,24732 26359,24735 26362,24735 26364,24730 26364,24730 26363,24734 26365,24739 26368,24739 26364,24739 26366,24739 26367,24734 26370,24735 26365,24732 26367,24732 26369,24729 26372,24728 26370,24726 26365,24728 26368,24731 26370,24734 26375,24738 26378,24733 26378,24733 26381,24729 26381,13496 17147,13491 17152,13495 17148,13496 17146,13498 17141,13498 17145,13501 17147,13502 17149,13502 17153,13505 17149,13505 17152,13500 17149,13496 20149,13492 20150,13497 20155,8497 20151,8501 20153,8502 20156,8506 20159,8503 20159,12503 19159,12503 19159,12505 19164,12500 19159,12500 19164,12500 15164,12503 15169,12508 15168,12511 15170,12514 15170,12510 15169,12512 15172,12512 15172,12515 15172,12519 15175,12522 15176,12525 15180,12528 15184,23912 53663,23915 53661,28915 53666,28914 53667,28918 53664,28921 53667,28922 53667,28924 53670,28925 53674,28926 53674,28927 53672,28922 53676,28924 53677,28927 53678,28932 56678,28934 56682,28935 56683,28936 56688,28938 56688,28934 56691,28938 56693,28942 56690,28939 56694,28939 56698,28942 56695,28946 56698,28950 56701,28953 56706,28954 56706,28949 56708,28950 56708,28953 56709,28958 56706,28960 56709,28965 56707,28965 56707,28965 56705,28963 56709,28966 59709,28969 59710,28973 59711,28977 59715,28977 59717,28982 59719,28981 59715,28985 59718,28986 59718,33986 59721,35986 59723,35990 59723,35990 61723,35993 61726,35995 61728,35998 61724,36000 61721,36004 61723,36002 61718,36007 61718,36010 61719,36010 61721,36010 61721,36010 61721,36015 61721,36018 61716,36022 61717,36024 61718,36025 61723,36029 61722,36031 61726,36035 61722,36040 62722,36042 62722,36044 62722,36049 62724,36051 62720,36053 62723,36052 62719,36055 62717,36056 62712,36059 62714,36058 67714,36059 67716,40059 67716,40063 67719,40067 67722,40069 67726,40065 67724,40067 67721,40067 67722,40071 67721,40075 67726,37075 67730,37076 67733,37076 67736,37072 67741,37072 67741,37072 67744,37076 67744,37079 67745,37081 67750,37082 67750,37082 67753,37082 67753,37083 67752,37081 67753,37084 67753,37087 67757,37087 67758,37083 67753,37084 67758,37084 67761,37088 67759,37091 67762,37088 67762,37090 67767,37090 72767,37090 72771,37085 72771,37089 72774,38089 71774,38090 71771,38086 71771,38086 71774,38086 71777,38089 71782,38089 71782,38087 71780,38092 71782,38087 71785,38083 71783,38081 71781,38078 71781,38078 71783,38076 71786,38075 71787,38078 71783,38079 71781,38081 71781,41081 71783,41081 71778,41082 71778,41085 71783,41085 71783,41088 71785,41083 71789,41083 71794,41088 71796,41088 71796,41092 71798,41095 71794,41095 71789,41098 71790,41093 71790,41091 71795,41092 71796,41087 71798,41084 71796,41086 71797,41084 71799,41084 71795,41086 71798,41085 71799,41089 71803,41085 71804,41083 71802,41083 71803,41079 71803,41081 71808,41081 71809,41083 71810,41083 71809,41085 71810,41082 71814,41087 71817,41089 71818,41086 71813,41083 71813,39083 71816,39083 71814,39085 71814,39083 71814,39086 71818,39087 71820,39087 71824,39091 71826,39096 71829,39098 74829,39102 74830,39107 74833,39110 74836,39115 74835,39115 74836,39115 74838,39115 74835,39119 74838,39117 74840,39121 74840,39125 74843,39121 74848,39122 77848,39122 77844,39123 77848,39126 77851,39131 77855,39136 77857,39132 77857,39135 78857,39135 78859,39136 78864,39133 78865,39135 78866,39139 79866,39142 79870,39147 79872,39146 79872,39150 79876,39150 78876,39154 78879,39154 75879,39154 75881,39158 75881,39157 75884,39160 75884,39155 75884,39160 75889,39156 75891,39158 75888,39163 75891,39163 75894,39166 75891,39166 75895,39167 75900,39170 75901,39170 75906,35170 75907,35171 75911,35176 75906,35172 75908,35173 75908,35178 75908,35175 75909,35170 75908,35170 75903,35168 75904,35173 75906,35178 75903,35179 75904,35179 75908,35182 75905,35184 71905,35188 71902,35185 71904,35186 71907,35187 71908,35189 71903,35191 71905,35195 71900,35197 71904,35198 71909,35200 71907,35199 71903,35201 71900,40201 71896,25028 55790,25029 55785,28029 55789,28031 55790,28032 55790,28037 55794,28042 55793,28043 55798,28046 55803,30046 55803,30051 55806,30050 55810,30049 55810,30049 55812,30049 55816,30054 55820,2545 16129,2540 16133,2542 16137,2542 16139,2544 16138,2545 16139,7545 16136,7546 16139,7541 16142,7542 16142,7543 20142,7547 20143,11547 20143,11550 20139,11555 20139,11556 20137,11552 20142,11555 24142,11556 24145,11559 24140,11563 24143,11567 24139,16567 24136,16567 24139,16572 24142,16573 24147,14573 24143,14574 24147,14570 24145,14573 24150,14569 24150,14570 24145,14573 24149,14575 24150,14575 24154,14579 24149,14579 24153,14576 24157,14576 24152,14571 24149,14571 24152,14575 24150,14572 24151,15572 24153,15575 24149,15577 24154,15582 24151,15582 24153,15586 24156,15587 24152,15588 24157,15590 24162,15590 24166,15590 24166,20590 24166,17590 24169,17595 24171,17597 24172,17599 24172,17595 24174,17599 24178,17599 24181,18599 24184,18594 24187,18597 24187,18593 24189,18597 24192,18601 24192,18599 24197,18599 24197,18603 24200,18605 24204,18600 24205,18605 24201,18605 24197,18610 24202,18608 24205,18611 24204,18613 24208,18617 24203,22617 24205,22619 29205,22622 31205,22622 31209,22623 31214,22624 31212,22627 31214,22623 31214,22626 31215,22629 31214,22633 31218,22631 31221,22630 31223,22632 31227,21937 44551,21935 44555,21939 44551,21934 44553,21936 44554,21933 44556,21935 44552,21935 44553,21939 44548,21939 44551,21939 44551,21938 44555,21938 44558,21938 44559,21941 44559,21945 44558,19945 44562,19942 44560,19943 44561,19939 44565,19940 44561,19939 44556,19935 44557,9770 19466,9773 19471,9775 19471,9770 19471,9770 19468,9770 19467,9772 19466,9772 19468,9774 19469,9775 19472,12775 19470,12773 19466,12773 19467,12773 19464,12773 19466,12776 19461,12779 19461,12779 19465,12780 19465,12782 19460,12781 19458,12776 19461,12776 19461,12777 19463,12778 19466,12776 19466,12780 19463,12780 19466,12785 19468,12789 19473,12788 19477,12793 19475,12798 19480,12802 19482,12803 24482,12802 24484,16802 24486,16806 28486,16808 28486,16812 28490,16812 28494,16815 28498,16816 28498,16818 28502,16818 28504,16819 28509,19819 28513,19819 28510,19821 28515,19816 28510,19811 28510,19811 28511,19809 28511,19810 28510,19813 28515,22813 28510,22818 28514,22818 28515,22815 28516,22818 28514,22819 79878)',')')) where i = 1; +rollback; +start transaction; +update t1 set a=st_geomfromtext(concat('multilinestring(','(-4286 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-768 -136,-771 2864,-772 2860,-777 2862,-775 2858,-775 2863,-770 2866,-765 2871,-761 2874,-759 2878,-759 2883,-759 2886,-758 2886,-758 2886,-755 2890,-752 2890,-751 2890,1249 2890,1250 2892,1251 2892,1251 2892,1256 2897,1259 2894,1256 2899,1253 2904,1256 2904,1257 2906,1252 2910,1253 2910,1256 2912,1255 2913,1260 2911,1256 2913,1255 2918,1257 2921,1259 2925,1262 2922,1263 2923,1266 2926,1268 2929,1269 2932,1273 2937,1277 2942,1282 2942,1284 2939,1287 2935,1290 2935,1293 2938,1296 2940,1299 2942,1302 2947,1307 2952,1311 2956,1312 2958,1307 2956,1311 2955,1307 2956,1307 2960,1307 2962,1311 2965,1315 2967,1314 2968,1319 2969,1322 2973,1324 2978,1323 2977,1327 2982,1330 7982,1332 7985,1332 7986,1332 7988,1328 7991,1328 7991,1328 7991,1253 2910,1249 2908,1251 2908,1253 2913,1253 2909,1256 2914,1255 2916,1259 2919,1261 2923,1262 2923,1266 2925,1270 2930,1270 2932,1267 2929,1269 2929,1269 2931,1269 2926,1265 1926,1270 1926,1274 1926,1274 1929,1269 1929,1270 1931,1272 1935,1269 1935,1273 1938,1278 1938,1278 1938,1280 1943,1275 1948,1276 1951,1279 1948,1280 1952,1281 1952,1286 1954,1290 1958,1290 1963,1294 1964,1298 1962,1298 1958,1302 1963,1302 1967,1307 -2033,1311 -2030,1307 -2030,1310 -2025,1314 -2020,1317 -1020,1321 -1016,1321 -1018,1321 -1015,1326 -1016,1324 -1016,1327 -1011,1326 -1007,1326 -1002,1326 -1004,1321 -1004,1321 -1003,1324 -1008,1328 -1007,1328 -1003,1333 -999,1336 -998,1339 -997,1337 -996,1340 -2996,1335 -3000,1339 -2996,1343 -2995,1346 -2990,1341 -2990,1345 -2991,1345 -2995,1269 2931,1269 2936,1271 2941,1275 2941,6275 2943,6274 2943,6279 2939,6274 2942,6274 2946,6275 2947,6276 2948,6280 2947,6282 2951,6287 2952,6287 2956,6289 2959,6294 4959,6298 4964,6302 4965,6300 6965,6305 6965,11305 6967,11305 6967,11310 6966,11310 6966,11314 6964,11318 6969,11318 6972,11323 6974,11328 6977,11329 6979,11333 6982,11337 6982,11334 6982,11337 6983,11341 6988,11345 6991,11349 6992,11353 6993,11353 6996,11353 7000,11356 7000,11353 6000,11350 6002,11353 6004,11354 6007,11356 6009,11358 6009,11359 6011,11363 6016,11365 6013,11369 6015,11372 6017,11377 6022,11381 6025,11382 9025,11385 9029,11390 9024,11389 9020,11391 9020,11389 9016,11394 12016,11397 12021,11400 12021,11405 12024,11405 8024,11403 8029,11403 8032,11401 8033,11406 8032,11402 8027,11406 8027,11410 8029,11408 8030,11408 8035,11413 8035,11418 8038,11423 8038,11428 8036,11428 8037,11433 8033,11435 8032,6435 8035,6439 8036,6440 8034,6441 8039,6442 8043,6446 8045,6451 12045,6454 12050,6454 12049,6455 12054,6457 12057,6458 12060,6461 13060,6466 13060,6467 13065,6467 13070,6465 13073,6465 13073,6466 13077,6463 16077,6465 16081,6468 16077,6471 16077,6475 16078,6475 16080,6470 16082,6465 16084,6465 16088,6470 16091,6471 16091,6469 16089,6473 16091,6477 16091,6477 16093,6480 16098,6476 16099,6478 16099,6481 16100,6486 16105,6486 16110,6488 16105,6485 16107,6487 16108,6484 16104,6485 16101,6488 16101,6489 16103,6493 16105,6493 16108,6490 16110,6487 16113,6492 16116,6495 16118,6499 16123,6497 16124,6496 16127,6498 16132,6497 16134,6499 16138,6503 16143,6502 16138,6500 16140,6502 16144,6502 16146,6503 16150,6498 16151,6500 16154,6495 16154,6494 16154,6499 16156,7499 16158,7504 16161,7507 16166,7503 16163,7505 16163,7508 16163,7511 16165,7514 16162,7517 16165,7519 16166,7524 16165,7527 16168,7529 16172,7534 16172,7534 16177,7539 16179,7537 16179,7538 16184,7538 16185,7538 16189,7540 16191,7540 16193,7541 16193,7545 16197,7550 16199,7554 16204,7558 16208,7559 16211,7560 16214,7564 16216,7563 16215,7558 16219,7558 16216,7555 16221,7559 16223,7559 16224,7559 16226,7561 16231,7558 16235,7553 16240,7552 16236,7557 16234,7552 16236,7554 16238,7557 16239,7552 16243,7553 16243,7555 16243,7555 14243,7558 14248,7559 14243,7559 14239,7561 14241,7561 14243,7561 14248,7562 14250,7566 14254,7570 14254,7575 14256,7575 14259,7576 14259,7579 14259,7583 14257,7583 14257,7583 14253,7584 14249,7579 14247,7576 14245,7579 14250,7577 14253,7582 14256,7582 14257,7578 14253,7575 14252,7577 14255,7578 14255,7578 14256,7581 14257,7584 14252,7588 14252,7592 14249,7592 18249,7588 18253,7590 18255,7592 18259,7596 18254,7601 18255,7601 17255,7605 17256,7610 17258,7613 17261,7617 17262,7619 17266,7617 17267,7621 17268,7623 17272,7626 17272,7626 17277,7625 17282,7620 17281,7617 17284,7618 17287,7617 17283,7616 17281,7621 17279,7624 17281,7624 17282,7624 17279,7628 17279,7628 17280,7633 17284,7637 17280,7638 17280,7638 17281,7641 17282,7641 17282,7638 17283,7638 17284,7643 17280,7647 17281,7652 17285,7656 17285,7658 17288,7660 17290,7661 17292,7664 17297,7666 17302,7663 17304,7664 17300,7659 17303,7661 17303,7657 17307,7659 17307,8659 17310,8661 17313,8664 17314,8665 17313,8665 17309,8669 17313,8671 17316,8670 17320,8668 17320,3668 17323,3665 17324,3661 17329,3661 17331,1661 17332,1661 17333,1663 17338,1668 17333,1663 17333,1667 17331,1668 17331,1664 17334,1666 17337,1665 17337,6499 16138,6503 18138,10503 18142,10503 18142,10505 21142,10502 21144,10502 21142,10504 21141,10504 21139,10508 21140,10512 21141,10512 21143,10515 21144,10517 21147,10517 21143,10519 21143,10519 21146,10519 21142,10519 21142,10522 21141,10523 21141,10523 21145,10523 21149,10527 21153,10531 21154,10534 21158,10531 21158,10527 21160,10532 21165,10534 21165,10531 21165,10533 21162,10529 21163,10532 21160,10534 21163,10535 21161,10540 25161,10538 25164,10538 25166,10540 25171,10543 25171,10547 25175,10547 25175,10550 25178,10552 25182,10556 25177,10558 25181,10558 25183,10563 25187,10564 25183,10560 25188,10565 25188,10569 25191,10573 25195,10575 25199,7581 14257,7585 14257,7586 14257,7588 14254,7590 14255,7593 14256,7590 14260,7595 14263,7595 14259,7597 14256,7598 14261,7598 14258,7599 14261,7600 14261,7602 14258,7602 14258,7598 14259,7598 14264,7600 14267,7601 17267,7597 17268,7602 17273,7605 17276,7605 17276,7603 17279,7604 17279,7608 17278,7613 17282,7615 17285,7617 17288,2617 17288,2617 17289,2620 17289,2620 17285,-1380 17288,-1382 17287,-1384 17292,-1384 17294,-1380 17295,-1380 17297,-1380 17299,-1375 17303,-1372 17303,-1373 17298,-1368 13298,-1365 13301,-1366 13297,-1371 13295,-1371 13298,-1371 13298,-1375 13301,-1378 13302,-1378 13302,-1377 13302,-1374 13301,-1373 13306,-1370 13311,-1371 13307,-1366 13307,-1365 13309,11349 6992,11352 6992,11354 6997,11356 7002,11356 7007,11359 7010,11354 7005,9354 7009,9356 7011,9359 7016,9360 7014,9360 7015,9363 8015,9367 11015,9370 11012,9367 11012,9368 11016,9363 11017,9360 11018,9364 11021,9359 11016,11402 8027,11399 8029,11400 8033,11401 8034,11405 8029,11407 8027,11410 8029,12410 8033,12414 8035,12412 8040,12415 8040,12416 8045,12421 8042,12426 8037,12424 8042,12427 8042,12430 8044,12434 8046,12430 8048,12434 8045,9434 8045,9439 8043,9442 8043,9442 8045,9442 8040,9442 8035,9438 8038,9440 8039,9445 8036,9446 8039,9441 8043,12441 8047,12440 8048,12444 8052,12445 8057,12450 8053,12452 8053,12448 8054,12443 8058,12441 8063,12444 8067,12449 8067,12448 8071,12451 8076,12454 8073,17454 8073,17457 8074,17459 8079,17463 8079,17461 8080,17464 4080,17467 4085,17463 4085,17463 4088,17462 4090,17464 4095,17468 4094,17464 4097,17464 4093,17466 4088,17469 4092,17470 4094,17472 4089,17470 4090,17473 4089,17478 4094,17474 4091,17477 4095,17482 4100,17487 4103,17492 4101,17492 4104,17493 4101,17495 4106,17497 4106,17502 4111,17505 4111,17504 4113,17505 4115,17509 4119,17504 4123,17505 4127,17503 4131,17503 4126,17504 4126,17506 4129,17501 4132,17502 4133,17499 4133,17503 5133,17503 5135,17498 5134,21498 5134,21498 5131,21498 5133,21497 5138,21501 5140,21502 5138,21502 5141,21505 5136,21501 5139,21501 5141,21505 5146,21510 5151,21510 5155,21512 5156,21508 5159,21508 5163,21512 5167,21517 5169,21521 5173,21519 5172,21517 5172,21515 5172,21515 5173,21516 5172,21515 5169,21516 5170,21516 5170,21516 5168,21520 5172,21523 5172,21525 5174,21522 5176,21523 5180,21527 5176,21527 5177,21527 5178,21531 5183,21533 5181,21538 5176,21539 5179,21544 9179,21544 9184,21547 9186,21548 9184,21553 9188,21553 9193,21554 9195,21556 9200,21556 9201,21555 9201,21556 9205,21561 9205,21556 9202,21561 9203,22561 9204,22566 9204,22561 9208,22559 9210,22564 9207,22560 9205,22560 9208,22564 9210,22567 9214,22569 9218,22572 9222,22576 9218,23576 9222,24576 9220,24574 9224,24569 9228,24569 9228,6481 16100,6483 16101,6486 16104,6485 16108,8485 16110,8486 16115,8482 16110,8483 16115,8485 16110,8486 16106,8487 16103,8490 16106,8486 16107,8487 16104,8487 16104,8492 16108,8493 17108,8488 17108,8490 17110,8494 17114,8495 17113,8495 17117,8498 17117,8503 17122,8498 17124,8498 17128,8494 17129,8496 17134,8496 17134,8497 17135,8498 17135,8501 17135,8502 17132,8506 17132,8501 17130,8505 17131,21515 5169,21518 5164,21523 5160,21528 5162,21530 8162,21532 8164,21536 8165,21536 8168,21540 8169,21543 8165,25543 8169,25545 8173,25549 8169,29549 8174,29546 8177,29547 8172,29552 8177,29552 8180,29557 8180,29558 8175,34558 8180,34558 8176,34555 8179,34556 8181,7584 14249,7586 14250,7588 14252,7591 14256,7587 14257,7590 14257,7592 17257,7597 17261,7601 17265,7605 17268,7606 17273,7610 17268,7612 17270,7612 17271,7615 17266,7617 17266,7622 17270,7627 17272,7627 19272,7631 19277,7636 19279,7636 19280,7636 19285,7637 19287,7639 19290,7644 19295,7647 19291,7649 19296,7653 19296,7653 19291,7656 19292,7657 19292,7653 19292,7653 19297,7652 19297,7648 19299,7647 19303,7647 19304,7649 19307,7654 19309,7651 21309,7653 21309,7657 21313,7659 21309,7662 21310,7666 21314,7663 21314,7663 21317,7658 21317,7661 21321,7666 21323,7667 21328,7662 21333,7663 21328,7667 21332,7669 21334,7671 21330,7674 21326,7675 21331,7679 21336,7681 21338,7681 21342,7681 21342,7677 21345,7682 21346,3682 21348,3680 21350,3681 21351,3680 21349,3681 21349,3686 21350,8686 21355,8682 21354,8685 21350,8681 21345,8684 21350,8683 21353,8681 21356,8681 21358,8684 21361,8684 21364,8684 21367,8685 21363,8685 21365,8685 21362,8688 21358,8690 21359,8687 21364,8687 21364,8689 21361,8691 21356,8696 21353,8696 21352,8699 21352,8699 21357,8703 21358,8706 21353,8708 21358,17503 4126,17505 4129,20505 4133,20510 4133,20515 4128,21515 4129,21516 9129,21519 9131,21524 9134,21522 9135,21522 9138,21518 9137,21516 9138,21516 9138,21515 12138,21516 12142,21518 12146,21513 12144,21517 12149,21521 12144,21521 12148,21523 12151,21527 12148,21527 12143,21528 12148,21528 12145,21533 12149,21534 12152,21537 12155,21532 7155,21536 7153,21540 7157,21536 7154,21540 7154,21539 7157,21539 7160,21542 7160,21547 7164,21551 7168,21554 9168,21556 9168,21556 9169,21559 9166,21561 9169,21565 9171,21568 9176,21565 9181,21567 9180,23567 9178,23570 9181,23575 9181,23571 9181,20571 9176,20574 9179,20569 9182,20569 9184,20570 9189,20565 9191,20562 9195,20559 9196,20559 9201,20563 9197,20564 9193,20565 9197,20565 9200,20565 9200,20563 9201,20559 9205,20564 13205,20560 13207,20560 13212,20555 13213,20558 13217,20554 13217,20558 13219,20559 13222,20561 13223,20561 13226,20561 13231,20562 13232,20567 13235,20564 13239,20560 13239,20560 13236,20560 13236,20560 13237,20564 13241,24564 13241,28564 13242,28564 13240,28561 13237,28561 13240,28562 13243,28563 13243,28560 13248,28559 13248,28559 9248,28562 9245,28564 9241,28567 9245,28568 9240,28568 9245,28571 9247,28571 9248,28574 9253,28572 9256,28576 9257,28577 9257,28574 9257,10564 25183,10566 25188,10567 25190,10568 25186,10569 25187,10570 25188,10573 25185,10568 25185,10570 25187,10573 25191,10573 25193,10578 25193,10578 25198,10581 25202,10582 25206,10578 25206,10579 25211,10580 25206,10582 25208,12426 8037,12427 8042,12432 8047,12437 8047,12435 8051,12435 9051,12432 9054,12433 9056,12435 9061,12438 9062,12435 9062,12438 9067,12434 9071,12431 9075,12436 11075,12436 11075,12441 11080,12445 11085,12449 11089,12445 11091,12442 11091,12442 11093,12442 11093,12443 11098,12439 11098,12440 11099,7440 11104,7442 11107,7446 11110,7446 11114,7451 6114,7452 6110,11452 6105,11452 6104,11454 6103,11459 6106,11462 6107,13462 6107,13458 6104,12458 9104,17458 9109,17458 9110,17460 9113,17465 12113,17468 12112,17468 12114,17466 12111,17470 12116,17469 12119,17472 12123,17470 12118,17474 12118,17476 12120,13476 12121,13480 17121,13480 17125,13484 17123,13489 17122,13489 17125,13487 17127,13487 17132,13486 17131,13491 17136,13491 17139,13495 17144,13496 17147,13496 21147,13498 21149,13498 21154,16498 21159,16503 21162,16504 26162,16509 26160,16509 26163,16509 26162,16514 26159,16518 26163,16522 26158,16518 30158,16516 30161,16516 30164,16517 30169,16520 30167,16525 30168,16528 30170,17528 30170,17532 30175,17533 30177,17533 30182,17536 30186,17537 30189,17540 30193,20540 30193,20541 30196,20541 30197,20542 30196,20544 30195,20548 30200,20553 30199,20557 30201,20561 30206,20565 30210,20566 30209,20568 30214,20568 30217,20563 30217,20563 30218,20565 30222,20567 30222,20572 30225,20567 29225,20570 29225,20570 29230,20573 29231,20571 29230,20569 29232,20570 29236,17504 4123,17505 4127,17508 5127,17505 5131,17505 5135,17509 5140,17508 5142,17510 5139,17515 5141,17517 5144,17522 5144,17524 5146,17529 5147,17529 5152,17533 8152,17533 8150,17537 8153,17532 8158,17533 11158,17536 11163,17540 16163,17540 16165,17542 16168,17542 16171,17542 16171,17547 16167,17548 16170,17550 16170,17545 16175,17549 16178,17549 16179,17549 16179,20549 16181,20551 16186,20549 15186,20550 15186,20547 15188,20550 15184,20546 15186,20545 15191,20548 15190,20552 15193,20557 15195,20552 15196,20557 15193,20562 15196,20562 15199,20567 15202,20563 15207,20564 15207,20564 15209,20568 15209,20571 13209,20573 13209,20576 13211,20577 13216,20574 14216,20570 14215,20568 17215,20568 17216,20570 17218,20575 17218,20580 16218,20583 16215,20586 16217,20581 16220,20582 16224,20585 16224,20588 16229,20590 16231,20592 16235,20595 16232,20595 16234,20598 16238,20603 16240,20607 16236,20608 16236,20608 16239,20611 21239,20613 21244,20614 21246,20612 21244,20612 21242,20615 21239,20616 21241,20621 21242,17621 21244,17626 21245,17629 21244,15629 21239,15632 21240,15636 21245,15637 21247,15639 21244,15637 21245,15642 21245,15647 21244,15646 21248,15650 21252,15653 21247,15651 21250,15649 21250,15645 21250,19645 21253,19648 21256,19647 21253,19643 21249,19646 21249,19648 21245,19650 21242,19647 21240,19652 21240,14652 21240,14657 21243,14659 21244,14664 21241,14659 21239,14654 21240,14651 21244,14647 21246,14647 21249,14650 21247,14651 21252,14651 21255,14649 21258,14652 21262,14655 21262,14652 21260,14653 21255,14653 21255,14653 21257,14656 21258,14651 21258,14653 21261,14654 21263,14654 21264,14659 21267,14660 21263,14664 21264,14666 26264,14661 26266,14661 26263,14661 26264,14666 26265,14667 26265,14665 26263,14669 26263,14667 26263,14669 26261,14667 26263,14671 26261,14671 26263,12671 26264,12672 26266,12677 26269,17677 26269,17673 26271,17676 26271,17676 26273,17681 26278,17685 26278,21536 8168,21539 8171,21543 8169,21538 8170,21541 8170,21544 8171,21548 8166,21548 8168,21552 8171,21555 8173,21558 8168,21557 8168,21562 8163,21559 8168,21559 8172,21564 8177,21569 8175,21568 8175,21573 8178,21575 8180,21570 8183,21570 8186,21566 8184,21569 8185,21569 8187,25569 8190,25571 8193,25575 8193,25576 8194,25576 13194,25580 13194,25584 13196,25589 13197,25592 13200,25595 13205,25592 17205,25593 17209,25594 17213,27594 17209,27592 17213,27590 17212,27592 17217,27592 17220,27596 17224,27599 17227,27603 17232,27603 17227,27605 17229,28605 17230,28607 17234,28609 17230,28610 17231,28610 17236,28611 17238,28613 17241,28614 17241,28615 17243,28616 18243,28618 18246,28618 18246,28622 18246,28627 18246,28632 18245,27632 18245,27634 18245,27633 18244,27638 18245,-1366 13297,-1365 13299,-1362 13303,-1362 13300,-1361 13304,-1366 13308,-1368 13304,-1368 13306,-1367 13309,-1363 13313,-1358 13313,-1353 13318,-1351 13319,-1347 13323,-1343 13318,-1343 13322,-1340 13317,-1337 13318,-1337 13322,-1337 13324,-1335 13327,-1339 13328,-339 13328,-334 13333,-331 13336,-327 13338,-326 13340,-326 13342,-321 13340,-318 13343,-317 11343,-312 11345,-307 11349,-311 11353,-314 11350,-311 11353,-313 11349,-308 11352,-313 11347,-308 11351,-306 9351,-306 9351,-306 9351,-301 9355,-301 9356,-299 9359,-297 9355,-297 9354,-296 9359,-294 9364,-290 9360,-294 9355,-289 9357,-291 9353,-286 9355,-4286 9351,-4283 9347,-4281 9344,-4281 9344,-4280 9342,-4280 9342,-4280 9339,-4277 9335,-4274 9333,-4274 9335,-4269 9336,-4265 9339,-4260 9340,-4256 9339,-4251 9336,-4251 9339,-4249 9344,-4254 9344,-4255 9348,-4253 7348,-4251 7352,-4247 7354,-4243 7357,-4242 7357,-4240 7362,-4240 7367,-4235 7371,-3235 7371,-3230 7376,-3225 7375,-3221 7372,-3223 7369,-3223 7371,-3223 7369,-3225 7364,-3220 7364,-3218 11364,-3218 11368,-3215 11369,-3210 11372,-3210 11369,-3208 11373,-3207 11377,-3207 11381,-3209 11384,-3209 11383,-1209 11379,-1211 11383,-1209 11383,-1205 11379,-1200 11384,-1197 11379,-1195 11375,-1197 11376,-1192 11377,-1192 11379,-1192 11384,-1188 11382,-1186 11382,-1181 11384,-1180 11388,-1176 11389,-1171 11388,-1171 11393,-1169 11393,-1164 11398,-1162 11393,-1158 11392,-1155 11395,-1155 11397,-155 16397,-156 16401,-156 16406,-158 16409,-158 16412,-158 16414,-160 16415,-158 20415,2842 20411,2847 20413,2848 20417,2848 20417,2848 20412,2850 20407,2850 20403,2846 20408,2847 20406,2849 20406,2854 20402,2858 20403,2863 23403,2858 23402,2855 23405,2858 23400,2857 23400,2852 26400,2849 26404,2850 26406,2855 26410,2859 26415,2863 26411,2866 26411,2866 26411,2866 26412,2868 26415,2868 26419,2868 26423,2873 26424,2876 26425,14656 21258,14661 21260,14664 21262,14664 22262,14662 22267,14662 22268,14662 22268,14658 22273,14660 22278,14658 22277,14659 22278,14660 22283,14661 22281,14661 22285,14661 22288,14664 22290,14659 22295,14662 22298,14663 22301,14667 22301,14668 22301,14673 22303,14678 22306,14681 22302,14686 22299,14686 22301,14683 22304,14686 22305,14687 22301,14689 25301,14684 25301,14684 25299,14685 25300,14685 25301,14685 24301,14688 24301,14693 24303,14693 24298,14693 24298,14688 24299,14689 24297,14690 24299,14690 24302,14690 24302,14686 24303,14686 24306,14688 24302,8492 16108,8494 16113,8498 16116,8495 16116,8496 16116,8499 16116,8504 20116,8508 20119,8508 20119,8507 20119,8509 20123,8509 20127,8512 20128,8514 20130,8519 20135,8522 20136,8522 20136,8524 20138,8524 20141,8528 20142,8526 20145,8530 20141,8530 20145,8532 20149,8531 20151,8536 20155,8535 20154,8539 20154,8539 20149,8539 20149,8543 20146,8540 25146,8538 23146,8540 23149,8540 23149,8545 23151,8546 23152,8551 23152,8555 23152,8559 23153,8561 23153,10561 18153,10561 18153,12561 18158,12564 18159,12566 18163,12567 18165,12564 18165,12568 20165,12570 20170,12575 20173,12579 20177,12576 20177,12579 20176,12584 20176,12583 20181,12585 20182,12583 20186,12582 20187,12585 20192,12582 20194,12584 20198,12586 20198,12581 20201,12582 20204,12581 20206,13581 20209,13586 20211,13586 20216,13589 20217,13589 20213,13586 20215,13588 20213,13592 20215,13596 20216,13596 20221,13600 20221,13598 20224,13595 20221,13598 20226,13602 20229,15602 20232,15606 20232,15611 20232,15610 20232,15613 20235,15617 20239,15612 20234,15612 20233,15615 20237,15617 20233,15619 20234,15619 20229,15623 25229,15624 25229,20624 25228,20628 25229,20631 25234,20630 25239,20634 25241,20632 25244,20636 25240,20634 25237,20639 25236,20634 25241,7590 14257,7592 14260,7592 14262,7592 14265,7595 14266,7600 14263,7600 14268,7604 14270,7609 14274,7611 14275,7615 14275,7620 14277,7620 14276,7625 14277,7625 14277,7628 14281,7628 14286,7630 14284,7630 14284,8543 20146,8542 20148,8546 20150,8550 20152,8550 20153,8550 20158,8545 20156,8545 20157,8550 20157,8550 20155,8550 20157,8553 20161,8557 20161,8557 20165,8560 20161,8563 20159,8568 20154,8570 20158,8573 20161,8573 20166,8577 20168,8580 20171,8584 20173,8585 20175,8580 20180,8582 20183,8582 20188,8582 20188,8585 20193,8588 20198,8589 20199,8591 20197,8594 20198,8596 20196,8592 23196,8597 25196,8601 25199,8601 25203,8604 25202,8604 25202,8599 25205,8601 25210,8601 25206,8603 25206,8606 25206,8605 25211,8609 25211,8613 25208,8614 25205,8619 25208,8619 25210,8621 25214,8619 29214,8615 29218,8616 29219,8617 29217,8622 29222,11622 29225,11624 29229,11623 29230,9623 29225,9621 29224,9625 29227,9628 29227,9624 29232,9626 29237,9631 29241,9634 29245,9635 29248,9638 29253,9643 29258,9646 29258,9647 29255,9648 29253,9650 29258,9648 29262,9647 29262,9642 29267,9646 29267,14646 29269,14650 29274,14655 29279,14654 29277,14655 29275,14653 29276,14655 29273,14656 29269,14653 29272,14656 29272,14656 29274,14660 29276,14663 29276,14660 29278,14659 29281,14659 29276,14661 29272,14656 29273,14657 29274,14652 29270,14654 29274,14657 29270,14659 29272,14655 29275,14657 29270,14659 32270,14660 32270,14662 32273,14665 32277,12665 32279,12670 32279,12670 32277,12670 32274,12672 32277,12677 32282,12682 32285,12678 32289,12674 32291,12677 32287,12679 32287,12683 32292,12685 32292,12680 32289,12682 32294,12683 32299,12687 32298,12692 32300,12695 32305,12699 32310,12703 32311,12704 32312,21515 5172,21516 5175,21518 5175,21513 5177,21516 5182,21520 5186,21525 5185,21529 5185,21528 5186,21530 5181,21533 5178,21537 5183,21537 5183,26537 5183,26534 5183,26539 5183,26542 5178,26542 5176,26544 5176,26546 5177,26548 5175,26549 5178,26548 5181,26548 5184,26553 10184,26557 10179,26559 10175,26563 10171,26563 10173,26564 10170,26568 10169,26572 10171,26577 10171,26581 10169,26577 10173,26573 10169,26575 10171,26578 12171,26576 12175,26576 12180,26581 12183,26577 12183,26580 12184,26582 12181,26582 12182,26583 12182,26588 12186,26590 12191,26593 12193,26593 12198,26598 12198,26602 12193,26602 12193,26604 12195,26607 12195,26611 12196,26615 12196,26615 12200,21534 12152,21534 12152,21537 12147,21540 12147,21545 12150,21545 12145,21548 12150,21549 12152,21544 12152,21544 12150,21547 12153,21552 12152,21553 12157,20553 12161,20553 12156,20556 12152,15556 12157,15559 12160,15557 12163,15561 12163,15564 12166,15565 12165,15561 12161,15559 12163,15559 12168,-4274 9335,-4274 9339,-4276 9341,-4276 9344,-4273 9341,-4271 9341,-4266 9342,-4266 9339,-4269 9335,-4265 9339,-4263 9342,-4259 9345,-4254 9345,-4250 9340,-4250 9335,-4245 9338,-4242 9341,-4240 9341,-3240 9346,-3242 9349,-3241 9351,-3239 9352,-3238 9355,-3237 9358,-3233 9356,-3232 9358,-3233 9358,-3228 9363,-3228 9364,-3223 9369,-3226 9369,-3224 9373,-3222 9378,-3217 9379,-3215 9384,-3215 9384,-3215 9389,-3215 9394,-3215 9390,-3210 9385,-210 9386,-207 9389,-208 9389,1328 -1007,1328 -1010,1329 -1013,1334 -1018,1339 -1013,1344 -1013,1346 -1013,1350 -1015,1351 -2015,1353 -2016,1353 -2011,1350 -2016,1350 -2013,1354 -2010,1356 -2005,1359 -2007,1364 -2005,1363 -2005,1365 -2000,1362 -1999,1365 -1998,1366 -1998,1362 -1994,1364 -1989,1365 -1988,3668 17323,3665 17327,3663 17332,3666 17337,3667 17341,11433 8033,11434 8035,11434 8031,11437 8031,11437 8032,11441 8033,11439 8033,11442 8036,11445 8037,11448 8038,11452 8043,11454 8047,11456 8047,11459 8044,11454 8049,11457 8051,11460 8052,11463 8055,11458 8057,1346 -2990,1346 -2986,1350 -2982,1347 -2986,1352 -2983,1352 -5983,1355 -5979,1358 -5974,1354 -5970,1356 -5965,1360 -5964,1362 -5960,1364 -5960,1364 -5960,1369 -5960,1364 -5963,1369 -5960,1374 -5957,1378 -5952,1380 -5951,1384 -5951,1380 -5948,1380 -5944,1384 -5942,1387 -5945,5387 -5949,5391 -5950,5395 -5950,5395 -5951,5395 -5949,5400 -5954,5404 -5953,5402 -5958,7402 -5958,7403 -5963,7404 -5960,7404 -5959,11363 6016,11359 6018,11364 6023,11365 6024,11365 6023,11369 6025,11373 6020,11378 6020,11377 6024,11379 6029,11383 6033,11384 6034,11388 6037,11389 6041,11394 6043,11396 6048,11401 6048,11402 6050,11406 6052,11404 6054,11409 6058,11413 6059,11415 6060,11411 6065,11416 6068,11420 6073,11415 6076,11416 6078,11419 6083,11423 6085,11428 6086,11430 6086,11432 11086,11437 11091,11432 11088,11429 11086,11432 11086,11427 11090,11427 11095,11429 11092,11427 11092,11431 11087,11433 11088,11436 11090,11436 11091,11436 11096,11439 11099,11440 11099,11440 11095,11445 11097,15445 11102,15445 11102,15441 11099,15445 11100,15445 11102,15443 11106,15445 11110,15450 11107,15453 11110,15457 11110,15457 11115,15459 11119,15460 11117,15465 11117,15465 11120,15464 11123,15463 11124,15460 11124,15460 16124,15458 16127,15462 16122,15466 16126,15462 16131,15465 16133,15463 16135,15462 16136,15462 16140,15466 16142,15468 16147,15468 16147,15471 16149,15471 16147,15475 12147,15477 12150,15480 12147,15484 12144,15487 12145,15490 12147,15492 12149,15494 12150,15496 12153,15497 12155,15499 12150,15499 12147,15500 12143,15504 12146,15499 12150,15500 12150,15500 12152,15505 12153,15506 12157,15506 12157,15508 12158,15512 12159,19512 12162,19513 12159,19511 12163,19512 12162,19517 12167,19520 12167,19522 12168,19525 12171,19525 12172,19525 12175,19526 12172,19526 12172,19526 17172,19527 17175,19528 17176,19529 17179,19529 17178,19533 17181,19532 17183,19532 17179,19537 17174,19539 19174,19538 19171,19542 19172,19547 15172,7641 17282,7646 17284,7649 17284,7652 17284,7654 17285,7650 17289,7647 17291,7645 17296,7649 17297,7650 17294,7653 17294,7653 17298,7656 17303,7658 17308,7662 17313,7666 17308,7664 17313,7669 17313,7669 17313,7669 17316,7667 17313,7667 18313,7663 18314,7661 18316,7662 18317,7657 18318,7662 18315,7658 18316,7661 18318,7661 18322,7664 18317,7667 18315,7671 18315,7675 18315,7674 18315,7670 18316,11670 18316,16670 18321,16673 18321,16678 18322,16682 18327,16683 18332,16686 18334,16690 18334,16688 18336,16685 23336,16688 23337,14688 23338,14692 23337,14694 23338,14697 23339,14697 23342,14698 23342,14698 23343,14698 23348,14693 23350,14694 23347,14695 23347,14696 26347,14692 23347,14692 23347,14693 23350,14693 23351,14698 23355,18698 23352,18698 23356,18702 23360,18701 23362,18699 23363,18701 23363,18702 23366,18699 23366,18694 23370,18699 23370,18702 23374,18707 23378,18706 23380,18706 23381,22706 23384,22706 23385,22705 23389,22706 23384,22706 23384,22706 23384,22710 23380,22713 23381,22718 23386,22716 23390,22712 23390,22708 23390,22705 23392,22704 23397,25704 23402,25704 23402,25706 23404,25710 23404,22710 18404,22707 18402,22704 18403,22704 18406,22704 18411,22704 18411,22704 18410,22709 18410,22709 18407,22704 18405,22703 18405,22707 18405,20707 18409,20709 18412,20710 18411,20712 18414,20712 18414,20712 18412,20712 18416,20714 18412,20717 18417,20720 18419,20715 18421,20718 18422,20723 18425,20723 18430,20723 18434,20725 18435,20724 18437,20724 18433,20726 18433,20731 18437,20732 18437,20730 18438,20735 18440,20739 18438,20734 18438,20739 18437,20739 18437,20744 18439,20749 18438,20750 18434,20753 18436,20754 18431,20754 18432,20758 18433,20762 18438,20764 18443,20766 18447,20766 18450,20767 18451,20768 18451,20769 18448,20770 18452,20774 18456,20777 18458,20781 18462,20782 18463,20785 18468,17785 21468,17784 21473,17782 21477,17787 21481,17783 21482,17785 26482,17788 26482,17788 26482,17791 26479,17794 26483,17790 26483,22790 26483,22790 26479,20583 16215,20585 16220,20589 16225,20590 20225,20592 20222,23592 20227,22592 20229,22597 20233,22600 20233,22603 20237,22604 20240,22599 20241,22595 18241,22595 18242,22598 18243,22602 18247,22605 18252,22601 18256,22598 18255,22600 18257,22604 18258,22609 18261,22608 18261,22606 18264,22608 18261,22605 18265,24605 18262,24608 18263,24611 18267,24608 18267,24613 18271,24615 18272,24610 18273,24614 18272,24619 18276,24621 18281,24625 18276,24622 18280,24622 18282,24621 18279,24622 18277,24627 18279,24631 18284,24634 18289,24634 18292,24634 18294,24636 18299,24639 18294,24644 18295,24647 18298,24647 18301,24643 18303,24643 18306,24639 18311,24636 18315,24641 18317,24645 18317,24648 18319,24649 18323,24649 18328,24652 18330,24652 18329,24652 18327,24655 18322,24656 18319,24658 18319,24661 18320,24664 18316,24660 18320,24657 18318,24657 18320,24659 18325,24660 18327,24661 18323,24656 18327,24652 18323,24654 23323,24658 28323,24660 28318,24665 28319,24666 28323,24668 28325,24668 28328,24672 28325,24667 28328,24668 28325,24670 28326,24665 28330,24668 28334,24672 28336,24672 28336,24668 28339,24672 28340,24672 28338,24674 28341,24675 28346,24675 28351,24677 28356,24679 28357,24681 28356,24677 28360,24680 28355,24684 28354,24688 28356,24688 28351,24690 28356,24686 28361,24691 28364,24692 28364,24692 28365,24692 31365,24693 31370,21693 31370,21692 35370,21688 35372,21692 35377,21695 35377,21697 35377,21698 35379,21698 35374,21701 35375,21701 35379,21703 35380,21708 35383,21706 36383,21709 36383,16709 36383,16710 36386,16715 36382,16711 36386,16706 36388,16706 39388,16706 39383,16706 39379,16711 39379,16711 39376,16714 39381,16716 39386,16717 39389,16717 39391,16720 39391,16723 39387,17723 39392,17726 43392,17722 43396,19722 43399,19724 43394,19727 43391,19725 43395,19723 43398,19726 46398,19730 46400,19730 46403,19730 46405,19734 46407,19734 46410,19733 46407,19728 46412,19726 46416,19726 50416,19723 50417,19723 50416,19718 50420,19719 50424,19718 50429,19713 50433,19715 50437,19718 50442,19719 50442,19718 50444,19719 50439,19721 50443,18721 50444,18721 50446,18721 50450,18726 50451,18727 50453,18722 50451,18727 50456,18729 50455,18731 50458,18726 50458,18728 50458,18730 50463,18730 50460,18729 50456,18727 50460,18730 50462,18734 50457,18739 50455,18744 50457,18744 50461,18748 50461,18748 50466,18745 50468,18749 50463,18750 50468,18754 50472,18754 50472,18759 50472,18760 50468,18763 50473,18760 50477,18762 50477,18766 50481,18769 50483,18769 50481,18772 50482,18776 50482,18779 50486,18779 50489,18781 50489,18783 50494,18786 50496,18786 50495,18786 50498,18784 50499,18784 50499,21784 50504,21788 50502,21785 49502,21790 49501,21790 49498,21795 49494,21800 49494,21801 49495,21801 49500,21797 49505,21799 46505,21802 46508,21798 46513,21799 46516,21802 46516,21805 46519,21800 46524,21805 46527,21804 46528,21801 47528,21801 47531,21804 47533,21804 47529,21804 47534,21809 47538,21808 47538,21812 47540,21812 47535,21813 47532,21810 52532,21812 52535,21817 52536,21820 52536,21824 52541,21828 52545,19828 52545,19829 52547,19829 52551,19833 52555,19831 52552,19826 52557,17826 52562,17827 52567,17830 52568,17830 52572,17830 52575,17830 52575,17830 52574,17831 52578,17827 52582,17827 55582,17829 55583,17834 55583,17839 56583,17843 56579,17846 56580,17850 56584,17848 56588,17853 56592,17851 56596,17856 56596,17856 56600,17851 56601,17856 56601,17856 56604,20856 56604,20861 56601,20865 56596,20865 56597,20866 56597,20869 56602,20871 56603,20874 56607,20871 56605,20872 56610,20874 56613,20874 56612,20876 56617,20876 56622,20876 56626,20876 56621,20879 56623,20880 56627,20883 56624,20880 56629,20880 56629,20881 56630,20884 56630,20884 56635,20881 56636,20879 56637,20876 56632,20879 56629,20881 56633,20878 56634,20879 56634,20879 56637,20879 56642,20884 56638,20879 56639,20884 56634,20885 56631,20886 56633,20889 56632,20894 56627,20894 56631,20894 56631,20898 56632,20903 56632,20908 56630,20907 56633,20907 56636,20903 56641,20904 56641,20904 56637,20900 56639,20905 56642,20910 56643,20905 56648,20910 56653,20915 56654,20910 56659,20910 56663,20910 56664,20912 56664,20912 56666,20917 56670,20922 56670,20918 56673,20920 56675,20920 56677,20920 56677,20921 56681,20926 56677,20931 56677,20934 56680,20934 56684,20936 56689,20938 56689,20938 56690,20940 56695,20935 56696,20939 56697,20939 56699,20940 56696,20941 56694,20940 56698,20945 56700,20947 56702,20947 56707,20950 56712,20954 56713,20950 56710,20952 56706,20955 56704,20957 56708,20953 56709,20951 56714,20953 56716,20957 56720,20957 56722,20959 56725,20958 56727,20959 56728,20962 56731,20963 56736,20965 56741,20965 56740,20967 56742,20969 56737,20969 56742,20974 56744,20979 56744,20978 56745,20974 56748,20970 57748,20972 57749,20974 57751,20971 57754,20972 57752,20977 57755,20981 57758,20981 57763,20981 57765,20984 57765,20982 57767,20982 57763,20987 55763,20989 55767,20991 55770,20987 55771,20988 55774,20988 55777,20991 55775,21991 55778,21996 55778,22000 55783,22001 55783,22005 55783,22010 55785,17010 55781,17011 55783,20011 55778,20015 55783,20018 55786,20015 55791,20015 55795,20019 55792,20019 55792,20021 55792,20022 55788,20023 55783,20028 55786,25028 55790,26028 55795,26029 55790,26030 57790,26033 57794,26032 57798,26036 57802,26039 57805,26042 57805,26046 57810,26050 57811,26054 57815,26054 57819,26050 57819,26055 57820,26060 57822,26063 57823,26066 57826,26068 57824,26073 57826,26077 57831,26082 57831,26078 57836,26082 57839,26084 57839,26086 57834,26082 57834,26083 57835,26082 57840,26083 57844,26086 57843,26083 57846,22083 57849,22084 57847,22089 57847,22094 57848,22094 57853,22094 57850,22095 59850,22095 59855,22098 59858,22099 63858,22099 63861,21099 63861,21104 63862,19104 63862,19108 63864,19109 63864,19112 63868,19113 63873,19117 63876,19121 63875,19116 63877,19115 63882,19117 63878,19122 63883,19125 63884,19129 63879,19133 63879,19135 63874,19139 63871,19136 63871,19136 63873,19140 63868,19140 63873,19144 63877,20144 63879,20144 63876,20146 63880,20148 63878,20149 63877,20149 63879,20150 63882,20155 63886,20155 64886,20159 64884,20160 64884,20161 64887,20160 64887,20164 64887,12677 32287,12677 32292,12679 32297,12678 32298,12682 32294,12687 32294,12682 32296,12682 32296,12683 32298,12683 32301,12682 32305,12685 32309,12686 32311,12686 32316,12691 32311,12692 32316,12692 32312,12697 32314,12700 32319,12705 32322,12706 32327,12704 32329,12705 32332,12702 32334,12707 32338,12703 28338,12704 28340,12700 28345,12702 28345,12702 28345,12701 28348,12704 28349,12704 28345,12709 28342,12709 28343,12714 28347,12718 28351,12723 28352,12727 28353,12730 28355,12728 28353,12733 25353,15733 25353,15736 25355,15740 25356,15745 25356,15747 25351,15752 25353,15752 25354,15754 25354,15754 25353,15759 25352,15763 25352,15764 25357,15759 25352,15761 27352,15760 27354,15760 27354,15760 27355,15762 27357,15762 27354,15759 27354,15759 27354,15763 27358,15767 32358,15764 32360,15769 32360,15767 32360,15765 37360,15770 37362,15772 37363,15774 37367,15779 37363,15780 37359,15779 37363,15782 37366,15780 37370,15775 37370,15778 37365,15781 37360,15785 37356,15785 39356,15789 39358,15789 39360,15794 39365,15794 39370,15797 39375,15797 39380,15799 39379,15804 39376,15805 39377,15807 39380,15808 39385,15809 39386,15807 39386,15809 39386,15810 39389,15815 39392,15820 39392,15819 39396,15820 39398,15820 39395,15825 39400,15823 39405,15824 39403,15829 39403,15834 39406,15836 39411,15831 39415,15832 39415,15833 39415,15838 39417,15839 39419,15839 39414,15842 39413,15846 39418,15843 39420,15842 39423,15839 39420,15840 39422,15839 39420,15842 39415,15846 39410,17846 39415,17845 39411,17847 39416,17849 39420,18849 39424,18847 41424,18852 41424,18849 41429,18849 41432,18848 43432,18852 43433,18855 43433,18859 43435,18855 47435,18858 47440,18861 47435,18866 47435,18866 47439,18869 47442,18871 47445,18873 47445,21873 47445,21876 47444,21873 47449,21878 47451,21883 47456,21880 47454,21880 47454,21880 47457,21883 47459,21887 47464,21890 47465,21893 47467,21894 47464,16894 47462,16899 47457,16898 47455,16893 47456,16897 47458,16896 47455,16898 47459,16900 47464,16903 47469,16908 47471,16903 47474,16901 47473,16906 47473,16901 47478,16904 47479,16906 47475,16906 47474,16907 47475,16906 47479,16901 47482,16901 47482,16905 47486,16908 47487,16911 47490,16915 47490,16917 47492,16921 47497,16926 47498,19525 12175,19525 12176,19521 12177,19522 12181,19525 14181,19521 14181,19519 14185,19519 14189,19524 14192,19527 14192,19529 14196,19534 14200,19535 14205,19538 14208,19540 14204,19545 14207,19545 14207,19547 14210,19550 15210,19554 15210,19555 15210,19555 15213,19560 15213,19562 15212,19564 15213,19569 15210,19570 15214,19573 15214,23573 15217,28573 17217,28574 17220,28574 17219,28574 17224,28576 17229,28577 17233,28577 17236,28579 17236,28580 17238,28584 17243,28588 17248,28587 17252,28587 17252,28582 17255,29582 17259,29577 17260,29578 17262,29583 17257,29585 17257,29586 17260,29586 17265,29590 17267,29593 17267,29594 17267,29599 21267,29603 21271,29603 21272,29605 21274,29607 21276,29612 26276,29613 26279,29616 26280,29621 26277,29621 26277,29623 26282,29626 26285,29631 26289,29628 26289,29632 26290,29637 26294,29642 26290,29646 26292,29648 26291,29649 26288,29653 26293,29655 26292,29655 26293,12702 28345,12703 28348,12698 27348,12699 27349,12698 27354,12700 27354,12700 27355,12703 27360,12703 27361,12700 27362,12704 27367,12701 27371,12706 27376,12710 27372,12710 27373,12710 27368,12715 27370,12713 27374,12716 27378,12716 27380,12714 27379,12719 27374,12718 27373,12722 27376,12724 27376,12729 27371,12733 27372,12733 27377,12735 27373,12735 27374,12737 27378,12739 27379,12742 27381,12739 27381,12739 27376,12743 27378,12743 27379,9743 27375,9744 32375,9745 32377,9746 32374,9746 32372,9750 37372,9752 37375,9754 37375,9751 37377,9755 37379,9759 37379,9763 37383,9766 37385,9767 37382,9768 37383,9765 40383,9770 40378,9770 40382,9775 40384,9777 40386,9782 40391,9778 40395,9773 40395,9778 40397,9779 40399,9781 40402,9781 40398,9781 40393,9780 40396,9782 40399,9785 40398,9786 40395,9789 40390,9793 40387,9798 40390,9803 40394,9805 40397,9800 40400,9795 40402,9800 40403,9802 40407,9807 40410,9806 40407,9807 40403,9812 40400,9814 40403,9819 40403,9819 40400,9822 40405,9824 40405,9822 40408,9827 40410,9831 40413,9831 40413,9826 40412,9827 40417,9832 40418,9832 40416,9833 41416,9833 41421,9834 41416,9838 41416,9838 41421,9840 41422,9844 41424,9839 41424,9843 41427,9845 41430,9849 41430,9849 41425,9852 41423,9855 41426,9858 41429,9860 41434,9862 41436,9866 41441,9868 41436,9869 41434,9871 41434,9875 41437,9877 41437,9881 41438,9883 41438,9879 41438,20903 56641,20898 56644,20903 56647,20901 56649,20903 56645,20905 56650,20909 53650,20905 53650,20910 53652,20907 53655,20912 53652,20916 53656,20917 53656,20912 53661,20912 53660,23912 53663,23912 53663,23909 53663,23912 53665,23913 53669,23911 53669,23915 53669,23912 53671,23916 53670,23917 53675,23922 53680,23927 53683,23930 53688,23935 53689,23935 53691,23935 53691,23931 53692,23931 53694,27931 53693,27933 53695,27937 53695,27942 53699,27947 53701,27949 53703,27949 53704,27949 53708,27952 55708,27953 55710,27949 55710,27953 55710,27958 55713,27959 55718,27960 55722,27962 55725,27965 55730,27965 55732,27968 55730,27969 55733,27972 55733,27975 55734,27975 55734,27979 55737,27981 55733,27982 55732,32982 55732,32979 55734,32978 55737,32978 55738,32974 55742,32977 55746,32981 55750,32985 55746,32983 55747,32987 55750,32992 55751,32995 55751,32998 55751,32998 55753,32998 55753,32993 55753,32995 55757,32999 55758,33002 55760,33002 55761,33005 55766,33005 55767,33000 55764,32997 55767,32997 55771,33001 55773,32998 55777,33001 55777,33005 55776,33004 55776,33009 55781,33014 55786,33014 55790,33015 55790,33016 55790,33015 55786,34015 55787,34019 55790,34019 55791,34021 55793,34017 55793,34019 55796,34016 55797,34020 55793,34020 55796,34023 55792,34023 54792,34025 54797,34028 54800,34029 54799,34029 54795,34034 54796,34036 54797,34041 54792,36041 54797,36045 54801,36048 54803,36051 54804,36053 54806,11439 8033,11441 8038,11441 8039,11441 8040,11445 8035,11441 8035,11442 8039,11438 8035,11438 8035,11443 8039,16443 8038,16444 8038,14444 8040,14448 12040,14451 12036,14455 12038,14455 12041,14456 12046,14459 12049,14457 12051,14458 12046,14458 12047,14459 12042,14464 12042,14465 12047,14470 12050,14471 12055,14471 12058,14468 12060,14473 10060,14477 7060,14477 7062,14474 7062,14474 7067,16474 7063,16471 7065,16474 7067,16471 7072,16471 7068,16476 7066,16481 7069,16482 7072,16487 7072,16487 7077,16488 7077,16493 7076,16493 7079,16497 7079,16500 7079,16502 7079,16502 7079,16505 7075,16504 7080,16501 7077,16497 7079,16501 7081,16497 7080,16496 7084,16500 7086,16495 7087,16498 7084,16501 7087,16496 7087,16496 7083,17496 7083,17500 7083,17505 7088,9860 41434,9864 41435,9864 41435,9865 42435,9860 42435,9862 42436,9863 42434,9863 42430,9862 40430,9863 40427,9863 40428,20608 16239,20605 16242,20610 16237,20614 16237,20615 16242,20611 16242,20612 16245,20609 16244,20604 16242,22604 16237,22608 16239,22607 16240,22610 16244,22610 16241,22615 16246,22616 16246,22614 16251,22616 16251,22617 16249,22619 16254,22623 16252,22618 16255,22618 16259,22620 16262,22615 16262,22618 16263,22622 16263,22626 16265,22629 16266,22628 16269,22633 16267,22636 16268,22636 16267,22641 16269,22646 16269,22645 16271,22646 16273,22650 16271,22655 16274,22655 16277,22658 16279,22660 16280,22658 16280,22661 20280,22663 20282,19663 20285,19658 20288,19658 20292,19661 20295,19666 20298,19670 20301,19671 20301,19675 20301,19677 20306,19675 20311,19674 20315,19678 20318,19677 20314,19680 20315,19682 20310,19684 20314,19683 20316,19687 20315,19688 20316,19688 20319,19693 20319,19698 20322,19702 20323,19698 20323,19702 21323,19707 22323,8508 20119,8509 20119,8510 20116,8515 20113,8518 20115,8519 20116,8516 20120,8520 20119,8520 20118,8525 20123,8527 20125,8527 20125,8528 20123,8530 20126,8533 20123,8535 20127,8532 20132,8534 20136,8538 20138,8542 20141,8537 20143,8537 20145,8542 20145,8547 21145,8548 24145,8552 24145,8557 24150,8560 24147,8562 24151,8566 24156,8569 24160,8574 24156,8579 24159,8584 24164,8587 24164,8585 24167,8588 24170,8591 24171,8589 24172,8590 24176,8595 24177,8593 24174,8596 24178,8600 24179,8603 24175,8602 24178,9602 24182,9605 24177,9609 24178,9610 24182,9608 24178,9603 24183,9606 24188,9608 24193,9609 24195,9614 24196,9616 24197,9618 24201,9618 24205,9613 24209,9612 24214,9608 24211,9603 24216,9607 24221,9611 24221,9615 24217,9617 24217,9618 24221,9623 24225,9623 24225,9626 24225,9630 24225,9630 24222,9626 24223,9626 22223,9627 22223,9626 22226,9629 22228,9632 22228,9636 22225,9638 22226,9639 22227,9634 22230,9634 22231,9639 22235,9639 22240,9641 22242,9642 22246,9647 22249,9652 22250,9655 22255,9651 22256,9652 22253,9652 22256,9652 22261,9655 22262,9657 22257,9659 22261,9659 22261,9657 22264,9657 22261,9656 22264,9661 22267,9662 22270,12662 22270,12665 22265,12669 22270,12669 22270,12673 22269,11356 7007,11361 7010,11361 7010,11357 7014,11356 7015,12356 7020,12357 7015,12361 7017,11361 7018,11364 7017,11359 7018,11355 7017,11354 7020,11357 7020,11361 7023,11364 12023,11368 12028,11368 12029,11371 12030,11372 12034,14372 12034,14372 12039,14372 12042,14376 12045,14381 12047,14379 12047,14381 12049,14384 12054,14385 12051,14388 12056,14384 12056,14384 12061,14381 12058,14386 12062,14386 12059,14391 12059,14396 12060,14397 12060,14398 12056,14403 12051,14408 12052,14410 12057,14409 12057,14414 12053,14414 12051,14415 12051,14420 12049,14423 12048,14427 12044,14427 12044,14425 10044,14421 10049,14424 11049,14426 11054,14427 11059,14429 11064,14433 11064,14434 11064,14437 11065,14441 11068,14444 11072,14445 11076,13445 12076,13445 12077,13445 12081,13444 14081,13446 14081,13446 14078,13449 14083,13447 14084,13450 14085,13452 14090,13453 14087,13456 14084,13457 14083,13461 14081,13463 14082,12463 14082,12463 14087,12463 14087,12464 14087,8464 14087,8465 14083,8465 14080,8467 14085,8472 14085,8473 14085,8476 14090,8474 14094,8475 14094,8480 14094,8481 14099,8476 14103,8476 14107,8480 14111,8483 14116,8488 14120,8488 14118,8488 14120,8483 14115,8481 14118,8485 17118,8485 17114,8488 17110,8488 17115,8484 21115,8484 21118,8486 21120,8487 21120,8482 21115,8487 21118,8490 21122,8494 21127,8497 21132,8497 21133,8500 23133,8503 23135,8507 23135,8508 23132,8511 23129,8512 23125,8517 23126,8522 23125,8527 23129,8522 23131,8527 23132,8530 23132,8531 23128,8533 23132,8533 23134,8533 23139,8533 23144,8536 23143,8537 23146,8533 23146,8533 23149,8537 23152,8533 23157,8530 23158,8532 23162,8536 23162,8536 23165,8536 23165,8540 23170,8544 23171,8548 23169,8547 23173,8551 23176,8552 23173,8548 23169,8553 23173,8553 23170,8548 23173,8549 23173,8546 22173,8547 22174,8551 22177,8550 22179,8552 22183,8553 22183,8553 22184,8557 22185,6557 22185,13598 20226,13601 20227,13604 20229,13608 20233,13610 20234,13605 20237,17605 20237,17610 20242,17605 20242,17602 20241,14602 20241,18602 20236,18606 20239,18606 20244,18608 20241,16608 20245,16611 20240,16615 20239,16610 20234,16611 20232,16613 20235,16608 20235,16608 20239,16613 20242,19734 46410,19734 46410,19738 46414,19737 46414,19735 46415,19737 46418,19741 46421,19744 46423,23912 53671,23908 53673,27908 53675,27913 54675,27917 58675,27921 58677,27925 58678,27930 58678,27926 58683,27930 58686,27931 58691,27931 58695,27934 58700,27936 58699,27936 58699,27941 58695,27942 58695,27947 58699,27952 58699,27954 58703,27957 58704,27962 58708,27958 58706,27959 58703,27962 58703,27967 58706,27967 58701,27965 58701,27962 58702,27966 58703,27971 58704,27976 58706,27980 58709,27980 58712,27975 58711,27971 58716,27971 58713,27968 58712,27968 58712,27971 58711,27968 58713,27968 58710,27969 58708,27972 58706,27976 58711,27978 58716,27979 58716,27983 58718,27978 58718,27981 58719,27981 58723,27986 58725,27986 58728,27986 58731,27991 58734,27996 58738,27993 58736,27995 58732,31995 58736,31990 58735,31993 58738,31990 58734,31995 58729,31996 58729,31999 58731,31994 58726,31996 58731,12463 14087,12465 14090,12465 14093,12463 14090,12463 14095,12461 14092,12464 14093,12459 14091,12459 14091,12459 14091,12459 14096,12461 14100,12458 14103,12457 14101,12452 14101,12452 14106,12453 14103,12453 17103,12455 17104,15455 17104,15460 17108,15463 17104,15458 17108,18458 17108,21458 17105,21461 17105,21464 17110,21467 17115,21464 17120,21464 17120,21468 17123,21470 17126,21465 21126,21461 21126,21464 21128,21464 21132,21468 21137,21471 21142,21475 21146,21471 21146,21476 21147,21473 21151,21475 25151,21475 25152,21477 25153,21481 29153,21479 29158,21484 29162,21488 29162,21490 29165,21487 29170,21488 29167,21489 29162,21493 29164,21493 29169,21498 29169,21499 29164,21495 29167,21498 29167,23498 29170,23498 29169,23503 29172,23505 29171,23510 29167,23514 29164,28514 29168,28514 29172,28514 29174,28512 29172,28513 29176,28518 29179,28518 29182,28521 29177,28521 29179,28519 29179,28517 29179,28515 29177,28519 29177,28519 29179,28524 29184,28527 29183,28527 29185,28523 29187,28523 29184,28525 29189,28522 29189,28518 29186,28523 29189,28519 29189,28521 29189,28526 29193,28529 29193,28529 29196,28534 29200,28538 32200,28537 30200,28539 30202,33539 30207,33539 30209,33534 30205,33535 30208,33536 30208,33538 30213,33538 30214,33542 30218,33545 30221,33548 30222,33551 30225,33552 30227,33554 30231,33555 30233,33560 30228,33563 30225,33564 30229,33565 34229,33565 34234,33570 34231,33572 34235,33572 34239,33573 34243,33578 34239,33579 34243,33574 34247,33573 34247,33576 34243,33573 37243,33573 37246,33568 37241,33568 37244,33573 37239,33578 33239,33574 33241,33574 33239,33578 38239,33583 38242,33587 38242,33590 38242,33594 38243,33596 38247,33599 38248,33599 38252,33595 38252,33598 38257,33603 38258,33604 37258,33609 37255,33604 37257,33607 37262,33607 37265,33609 37266,33614 37271,33614 37276,33616 37278,33616 38278,33616 38282,33621 38284,33621 38288,33621 38285,33618 38289,33616 38291,33616 38294,33611 38296,33608 38301,33610 38305,33610 38300,33612 38303,33617 38308,33621 38309,33625 38305,33630 38307,33634 42307,33636 42310,33638 42314,33634 42312,33631 42315,33631 42315,27931 58691,27936 58693,27937 58695,27940 58700,27943 58703,27943 58708,27946 58709,27950 58711,27950 58714,29950 58718,29951 58723,29947 58728,29947 58732,29950 58727,29950 58727,29955 58730,29960 58734,29964 58732,29961 58734,29963 58735,29968 58739,29968 58741,34968 58739,34971 58739,34972 58739,34973 58740,34968 58741,34970 58743,34974 58745,34977 58749,34979 58744,39979 58745,39979 58742,39978 58744,39982 58748,39983 58744,39983 58744,39979 58747,39979 58752,39983 58757,39982 58759,39985 58759,39986 58759,39983 60759,39986 60762,39990 60767,39994 60770,39994 60770,39997 60770,39997 60770,40000 60775,40002 60775,40003 60779,40007 60784,40008 60787,40011 60788,40015 60788,40016 60790,40016 60792,40021 60788,40025 60788,40030 60788,40026 60786,40027 60786,40030 60787,40032 60792,40037 60795,40032 60800,40032 60799,40035 64799,40035 64801,40036 64806,40041 64803,40037 64805,40038 64801,40040 64804,40036 64804,40040 64805,40045 64810,40048 64811,40051 64813,40051 64817,13491 17139,13486 18139,13489 18139,13494 20139,13492 20138,13494 20141,13499 20145,13499 20145,13499 20148,13503 20149,13500 20149,13505 20151,9367 11012,12367 11015,12369 11011,12364 11012,12364 11015,12359 11011,12354 11011,12354 11014,12359 11017,12356 11015,12361 11015,12361 12015,12365 12016,12369 8016,12374 8021,12373 8025,11373 8021,11368 8021,11373 8024,12700 27362,13700 27363,13705 27364,13710 27368,13705 27369,13707 27367,13707 27371,13709 27375,13712 27377,13714 27373,13712 27376,13714 27379,13713 27382,13718 27384,13713 27380,13713 27385,13711 27386,13715 27386,13719 27386,13719 27389,15719 27394,15724 27398,15729 27400,15734 27401,15734 27401,15729 27396,15732 27396,15735 27397,15734 27399,15733 27400,15729 27400,15734 27400,15729 27405,15734 27405,15739 27408,15739 27408,15741 27412,15743 27416,15743 27416,15740 27416,16740 31416,16743 31421,16738 31425,16742 31430,16742 31435,16743 31439,16743 31444,16741 31449,16746 31450,16747 31455,16742 31459,16738 31463,16742 31466,16742 31471,16742 31471,16742 31471,16744 31475,16749 36475,16749 36473,16753 36478,16757 36474,16761 36477,16759 36478,16761 36481,16760 36484,16761 36485,16760 36486,16765 36491,16766 36494,16771 36498,16769 36501,16771 37501,16774 37504,16769 37507,16769 37507,16772 37503,16772 37508,16774 37511,16774 37510,18774 37515,18777 37515,18772 37512,18775 37514,18777 37517,18778 37519,18779 37517,18776 37517,18778 37520,18780 37520,18785 37522,18785 37526,18787 37523,18786 37520,18790 38520,18789 38520,18792 38522,18797 38527,18802 38529,20802 38534,20804 38535,20803 38540,20802 38539,20806 38543,20811 38546,20814 38543,20812 38541,20808 38546,20811 38544,20815 38539,20816 38535,20818 38531,20815 38531,20814 38528,20814 38533,20817 38536,20816 38539,20821 38540,20818 38542,20820 38540,20816 38540,20821 38540,20823 38541,20828 38541,20831 38546,20836 38547,20836 38548,20835 38553,20835 37553,20835 37558,20837 37558,20842 37560,20846 37561,20846 37564,20849 37569,20854 37564,20854 37565,20850 37566,20852 38566,20856 39566,20861 39566,20863 39562,20867 39566,20872 39567,20868 39566,20873 39568,20876 39573,20876 39573,20880 39575,20884 39579,20885 39580,20889 39580,20891 39584,20888 38584,20889 38587,20890 38592,20891 37592,20892 37597,20894 35597,20895 35600,20897 35603,20899 35605,16678 18322,16681 18323,16682 18323,16686 18328,16690 18326,16693 18331,11693 18335,11692 18332,11695 18332,11698 18335,11703 18335,11703 18336,11702 18339,11698 18344,11702 18349,11705 18353,11704 18357,11707 18360,11707 18359,11711 18358,11716 18358,11713 18358,11712 18360,11710 18360,11710 18362,11710 18362,11710 18367,11710 18366,11707 18366,11706 18365,11710 18369,11715 18371,11714 18374,11712 18376,11711 18377,11711 18379,11712 18384,11715 18385,11711 18385,11714 18387,11717 18389,11718 18386,11721 19386,11723 19391,11722 19395,11722 19396,11723 19398,11726 19398,11729 19403,11733 19408,11736 19407,11733 19411,6733 19407,6735 19402,6738 19402,6743 19406,6746 19406,6742 19411,6742 19414,6742 19414,6746 19419,6746 19423,6746 19418,6749 19418,6747 19418,6748 19420,6748 19424,6748 19424,6751 19427,6751 19429,6752 19429,9752 19426,9754 19428,9759 19430,9756 19431,9751 19435,9753 19440,9757 19445,9755 19443,9757 19448,9757 19448,9759 19451,9763 19451,9766 19454,9766 19456,9770 19459,9770 19462,9770 19466,9766 19467,9771 19468,9772 19468,9769 19469,9768 19470,9770 19470,9774 19473,9778 19470,9781 19470,9786 19471,9789 19471,9789 19473,9792 19478,9795 19475,9800 19478,1256 2899,1260 -1101,1256 -1097,1255 -1093,1255 -1094,1259 -1089,1260 -89,2260 -84,2258 -84,2263 -88,2267 -89,2268 -91,2269 -86,2272 -86,2272 -82,2273 -77,2276 -79,2281 -81,2283 -79,2287 -75,2292 1925,2297 1930,2299 1930,2303 1932,2308 1937,2308 1936,2313 1937,2315 1934,2316 1935,2311 1936,2316 1937,2319 1938,2322 1940,2327 1940,2331 1940,2327 1943,2329 1945,2331 1950,2336 1950,2339 1954,2338 1954,7338 1954,7337 1958,7341 1960,7341 1964,8550 20152,8554 20152,8553 15152,8550 15152,8554 15154,8552 15149,8552 15153,8556 15151,8556 15148,8552 15152,8547 15149,8552 15154,8552 15155,8553 15156,8550 15156,8553 15160,8556 15164,8558 15163,8561 15163,8563 15167,8559 15169,8559 15166,8564 15167,8568 15171,8572 16171,8572 16173,8574 16170,8571 16174,8575 16174,8576 16174,8576 16174,8580 16178,8579 16183,8574 16184,8576 16184,7576 16186,7572 16181,7577 16181,7577 16185,7578 16190,7583 16185,7583 16185,7587 16185,12587 19185,12582 19188,12587 19193,12587 19195,10534 21158,10538 21162,10540 19162,10543 19158,10547 19158,10551 19160,10551 19158,10554 19158,10553 19157,10555 19157,10555 19154,10552 19156,10553 19161,10555 19166,10558 19165,10560 19165,10561 19165,10561 19165,10564 19166,10567 19164,10570 19162,10575 19165,10577 19164,10577 19168,10578 19168,10574 19171,10574 19172,10571 19175,10573 19178,6503 16143,6507 16146,6509 16142,6510 16142,6510 16143,6512 16143,6514 16146,6517 16148,6522 16143,6525 16143,6530 16143,6534 16146,6531 16144,8490 16106,8490 16106,8492 16109,8489 16110,8491 16106,8487 16109,8488 16104,8490 17104,8495 17108,8490 17109,8493 17108,8498 17111,8500 17111,8500 17109,8501 17113,8506 17118,8506 17118,8506 17123,4506 17125,4511 17123,4516 17126,4514 17125,4519 17124,4520 17126,4525 17129,4530 17124,4526 17124,4528 17124,4533 17127,4535 17127,4531 16127,4531 16124,4534 16124,4538 16125,2538 16130,2539 16131,2544 16133,2544 16129,2540 16129,2545 16129,2550 16126,7550 16126,7555 16128,7559 16124,7559 16129,7560 16132,7561 16128,7566 16132,9566 16136,9568 16136,9573 16141,9570 16144,9571 16146,9573 16150,9577 16153,9581 16148,9579 16153,9584 16157,9586 16160,9581 16162,9578 16165,10578 16162,10579 16163,10574 18163,10570 18164,10568 18164,10570 18169,10572 18170,10575 18170,10575 18175,10579 18176,10580 18176,10585 18176,10581 20176,10586 20178,10587 20178,10585 20179,10585 20177,10581 20178,10584 20183,10586 20187,10590 20187,10591 20190,10587 20188,10591 20187,10591 20192,10592 20191,10597 20195,10602 20194,10602 20195,10607 20197,10607 20198,13607 20201,13607 20200,13607 20204,13604 20204,13605 20209,13607 20209,13612 20214,13615 20218,13615 20218,13619 20220,13624 20224,13628 20219,18628 20216,18630 20213,18635 20213,18632 20211,18629 20211,18632 20215,18632 20216,18632 20217,18632 20217,18627 20214,18630 20209,18633 20212,18636 20212,18638 20217,18643 20222,22643 20219,22643 20219,22644 20219,22644 20214,22645 20216,22645 21216,22646 21220,22642 21224,22642 21221,22641 21224,22638 21229,22641 21232,22642 21235,22643 21238,22644 21236,22649 21237,22704 18411,22704 18412,22699 18412,22696 18416,22701 18412,22703 18416,22698 18416,22693 18418,22695 18422,22698 18422,22700 18426,22705 18427,22706 18427,22708 18432,22708 18432,22704 18431,22709 18427,22709 18432,22709 18436,22713 21436,22718 21438,22719 21437,22721 21440,22725 21443,22727 21445,22724 21450,22724 21451,22727 21453,22730 21453,22730 21458,22734 21460,22738 21464,20738 21464,20742 21465,22742 21465,22741 21464,22736 21464,22738 21464,22742 21460,22742 21460,22744 21458,22743 21458,22741 21455,22741 21460,22739 21456,22739 21458,22734 23458,22732 23458,22733 23463,22731 23467,22731 23469,22736 23472,22739 23472,22742 23471,22744 23471,24744 23466,24744 23468,24739 23471,24742 23474,24747 23478,24747 23481,24747 23483,24747 23486,24751 25486,24753 25489,24758 25493,24762 25497,24764 25499,24769 25496,24773 25498,24777 25499,24779 25503,24782 25500,24782 25498,24777 25498,24779 25495,24775 25495,24776 25495,24777 25495,24781 25500,24778 25503,24778 25499,24780 25500,24777 22500,24775 22505,24777 22505,24777 22501,24778 22502,24778 22505,24774 22509,24776 22509,24776 22509,24781 22509,24784 22511,24780 22513,24780 22514,24783 22515,24786 22520,24786 22520,24791 22518,24788 22517,24791 22522,24794 22525,24791 22524,24791 22528,24789 22530,24794 22530,24799 22525,24795 22524,24798 22520,24796 22516,24801 22511,24803 22516,24804 22521,24804 22526,24806 22524,24805 22524,24809 22529,24810 22531,24813 22536,24817 22536,24815 22535,24810 22530,24815 22530,24816 22530,24818 22531,24818 22531,24818 22533,24822 22533,24820 22530,24816 22529,24820 22532,24822 22533,24822 27533,24823 27536,24826 27540,24829 27541,24832 27546,24833 27549,24832 27553,24833 27552,24833 27551,24836 27551,24839 27554,24841 27554,24841 27556,24842 27559,24847 27557,24847 27562,24842 27566,24840 27564,24842 27568,24844 27563,25844 27565,25847 27569,25848 27564,25851 27561,25855 27559,25856 27556,25852 27556,25857 27561,25857 27564,25858 27564,25863 27567,25868 27567,25871 27564,25872 27565,25875 27570,25877 27573,25878 27575,25879 27574,25884 27579,25887 27577,25886 27579,25882 27582,25882 27578,25882 27582,25884 27578,25887 27583,25891 27584,25895 27582,25895 27582,25898 27583,25900 27580,11433 8033,11435 8037,11439 8040,11444 8044,11439 8048,11441 8045,11446 8044,11446 8039,11451 8038,11451 8043,11450 8046,11451 8046,11447 8049,11443 8052,11445 8057,11441 8058,11439 8060,11444 8056,11445 8053,11448 8053,11450 8049,11455 8044,11453 8042,11454 8044,11451 8049,11453 8049,11458 8052,11459 8055,11457 8053,11460 8053,11461 8055,11465 9055,11466 9056,12466 9058,12467 9054,12472 4054,12467 4056,12467 4059,12470 4058,12468 4060,14468 4064,14467 4063,14471 4060,14473 4062,14471 4067,14468 4072,14471 4076,14466 4077,14467 4074,14472 4075,14472 4080,14476 4085,14476 4090,14481 4090,14485 4091,14490 4095,14493 4095,14495 4100,14492 4100,14497 4102,14499 4100,14501 4101,14500 4106,14500 4107,14496 4108,14495 4110,14494 7110,33625 38305,38625 38310,38625 38315,38623 38318,38625 38317,38629 38318,38632 38313,38634 38313,38639 38314,38640 38317,38644 38320,38649 38321,38647 38317,38647 38322,38643 38324,38640 38319,38645 38319,38646 38319,38645 38316,38644 38318,38646 38319,38644 38324,38647 38328,38652 38325,38649 38328,38651 38332,40651 43332,40651 43335,40655 43335,40652 43339,40652 43339,40654 43336,40654 43337,40657 43333,40656 43335,40656 43338,40656 43343,40656 43341,40659 43346,45659 43348,45664 43350,45666 43346,45665 43351,45669 43355,45673 43355,45674 43359,50674 43360,50678 43363,50678 43364,50679 43367,50682 43371,50687 43374,50690 43374,50690 43377,50693 43377,50698 43382,50693 43386,50689 43386,50692 43390,50695 43392,50699 43392,50704 43397,50707 43395,50711 43391,50706 43393,50709 43393,50711 43395,50710 43397,50714 43394,50718 43394,50715 43394,50717 43399,50722 43403,50724 43407,50728 43407,50730 43408,47730 43403,47730 43404,47733 43408,47737 43409,47735 43414,47738 43416,47741 43416,47744 43421,47743 43422,47748 43424,47753 43419,47754 43420,47749 43419,52749 43423,52751 43421,52753 43421,52750 43426,52752 43428,52748 43430,52748 43426,52747 43431,52744 43431,52748 43435,52748 43435,52750 45435,52753 45440,52753 45440,52757 45442,52761 45447,52758 45447,52761 45447,52761 45452,52758 45454,52758 45455,52758 45456,52761 45460,52759 45458,52755 45463,52759 45464,52756 45461,52756 45462,52758 45467,52760 45470,52759 45469,52762 45473,52762 45474,15617 20233,15612 20238,15611 20242,15613 20237,15617 20238,15618 20239,15621 20236,15623 20240,15622 20240,15622 20245,15623 20244,15628 20242,15628 20247,15625 20246,15628 20250,15630 24250,15632 24251,15634 24253,15629 24252,15633 24250,15629 24250,15633 24248,15629 24248,15634 24248,15636 24253,15640 24253,15643 24257,15639 24254,15642 24257,15643 26257,15648 26255,15643 26256,15641 26258,15646 26262,15646 26263,15651 26263,15648 26267,15653 27267,15656 27270,15660 27272,15662 29272,15658 29276,15658 29277,15658 29272,15663 29274,15663 29274,17663 29274,17663 29279,17668 29283,17671 29285,17670 29287,17675 29289,17676 29293,17679 29296,17682 29297,17685 29299,17686 29300,17687 29305,17685 33305,17686 33310,17687 33310,17689 33306,17687 34306,17691 34304,17694 34306,17696 34306,17695 34309,17691 34314,17691 34311,17692 34306,17696 34310,17700 34310,17697 34312,17699 34316,17704 34318,17701 34318,17705 34322,17704 34321,17706 34319,17706 34319,17702 34316,17707 37316,17710 37318,19710 37313,19705 37313,19708 37308,19712 37310,19710 37312,19711 37307,19711 37307,19714 37310,19718 37312,19719 37309,19723 37312,19727 37315,19729 37317,19731 37322,19734 37323,19735 37324,19737 37322,19742 37326,19740 37331,19745 37335,19742 37335,19742 37340,19745 37341,19749 37341,19749 37342,19752 37347,19757 37347,19762 37345,19764 37341,19768 37345,19769 37350,19771 37355,19773 33355,19770 33360,19765 33364,19769 33364,19773 33365,22773 33364,22771 33360,22775 38360,22779 38364,22780 38369,22782 38371,22784 38371,22789 40371,22792 40375,22789 40375,22789 40377,22793 40376,23793 40378,23795 41378,23791 41378,23792 41378,23796 41382,23798 41383,22798 41386,22799 41390,22804 41390,22804 41391,22808 41391,22812 41393,22814 39393,22819 39393,22821 39395,22823 39397,22828 36397,22832 36392,22832 36393,22836 36396,22836 36401,22838 36402,19838 36403,19837 36408,19841 36408,19843 36409,19845 36404,19847 36405,19847 36408,19847 36411,19848 36413,19850 36415,19845 36419,19841 36417,19843 36419,19843 36419,19846 36424,19848 36425,19850 36425,19845 36425,19846 36425,19848 36430,19852 36430,19849 36435,19846 36440,19851 36440,19846 36438,19848 36439,19844 36442,19845 36446,19841 36448,19841 36449,19841 38449,19841 38452,19846 38455,19848 38458,19852 42458,19856 42462,19859 42463,19859 42465,19861 42462,19862 42463,19864 42463,19867 42467,19870 42470,19871 42468,21871 42467,26871 42464,26867 42466,26872 42463,26872 42464,26874 42463,26879 42466,26882 42466,26883 42471,26879 42476,26878 42477,27878 42479,27882 42479,27883 42480,27886 42483,27887 42487,27885 42484,27887 42483,27890 42484,27890 42485,22890 42486,22890 42489,22890 42491,22895 42494,22897 42498,22899 42502,22901 42502,22896 42503,22892 42498,22896 42498,22891 42502,22892 42505,22897 42507,22898 42511,22903 42515,22906 42510,22911 42513,17911 42508,17915 42512,17918 42509,17913 44509,17915 44514,17919 44510,17923 44514,17927 44510,17927 44513,17927 44517,17928 44521,21928 44517,21930 44516,21931 44513,21929 44513,21933 44517,21934 44519,21933 44520,21934 44520,21937 44520,21938 44520,21943 44520,21938 44523,21940 44527,21936 44532,21941 44536,21942 44541,21937 44545,21938 44545,21938 44545,21940 44543,21937 44538,21941 44543,21938 44547,21938 44547,21938 44547,21937 44551,21937 44551,21933 44556,21935 44554,21937 44558,21940 44562,21944 44564,21949 44561,21952 44566,21955 44568,21960 44569,21963 44571,21963 44571,21965 44574,25965 44579,25967 44584,25967 44584,25970 44588,22970 41588,22970 41586,22975 41585,22974 41589,22970 41593,22966 41598,22965 41598,22970 41598,22965 41601,22965 41604,22965 46604,22968 46604,27968 46602,27968 46602,25968 46601,25967 45601,25968 45602,25971 45607,25975 45610,25979 45614,25977 45612,25975 45609,26975 45609,26980 46609,26979 46613,26982 46610,26982 46611,26980 46615,26982 46616,26985 46616,26986 46617,26987 46615,30987 46617,30987 46622,30986 46626,30988 46629,30989 46627,17671 29285,17673 26285,17677 26286,17678 26285,17681 26289,15681 26292,15685 26297,10685 26297,10689 26301,10689 26297,10693 26300,10695 26301,10691 26297,10696 26299,10696 26304,10692 26306,10688 26301,10690 26302,10690 26307,10686 26305,10684 26309,10686 26312,10691 26313,10688 26318,10683 26320,10684 26325,10683 26328,14683 26328,14680 21328,14681 21331,14683 21335,14680 21333,14677 21333,14682 25333,14684 25334,14689 25338,14693 25338,14698 25341,14696 25342,18696 25343,20696 25345,20699 25349,20702 25346,20703 25351,20703 25351,20704 25351,20704 25354,20700 26354,20705 26352,20706 26351,20706 26351,20703 26354,20708 26354,20712 26355,20712 26352,20717 26349,20717 26346,20722 26351,20727 26353,20729 26348,20734 26353,24734 26349,24729 26349,24729 26352,24725 26349,24725 26353,24726 26353,24729 26355,24729 26357,24732 26359,24735 26362,24735 26364,24730 26364,24730 26363,24734 26365,24739 26368,24739 26364,24739 26366,24739 26367,24734 26370,24735 26365,24732 26367,24732 26369,24729 26372,24728 26370,24726 26365,24728 26368,24731 26370,24734 26375,24738 26378,24733 26378,24733 26381,24729 26381,13496 17147,13491 17152,13495 17148,13496 17146,13498 17141,13498 17145,13501 17147,13502 17149,13502 17153,13505 17149,13505 17152,13500 17149,13496 20149,13492 20150,13497 20155,8497 20151,8501 20153,8502 20156,8506 20159,8503 20159,12503 19159,12503 19159,12505 19164,12500 19159,12500 19164,12500 15164,12503 15169,12508 15168,12511 15170,12514 15170,12510 15169,12512 15172,12512 15172,12515 15172,12519 15175,12522 15176,12525 15180,12528 15184,23912 53663,23915 53661,28915 53666,28914 53667,28918 53664,28921 53667,28922 53667,28924 53670,28925 53674,28926 53674,28927 53672,28922 53676,28924 53677,28927 53678,28932 56678,28934 56682,28935 56683,28936 56688,28938 56688,28934 56691,28938 56693,28942 56690,28939 56694,28939 56698,28942 56695,28946 56698,28950 56701,28953 56706,28954 56706,28949 56708,28950 56708,28953 56709,28958 56706,28960 56709,28965 56707,28965 56707,28965 56705,28963 56709,28966 59709,28969 59710,28973 59711,28977 59715,28977 59717,28982 59719,28981 59715,28985 59718,28986 59718,33986 59721,35986 59723,35990 59723,35990 61723,35993 61726,35995 61728,35998 61724,36000 61721,36004 61723,36002 61718,36007 61718,36010 61719,36010 61721,36010 61721,36010 61721,36015 61721,36018 61716,36022 61717,36024 61718,36025 61723,36029 61722,36031 61726,36035 61722,36040 62722,36042 62722,36044 62722,36049 62724,36051 62720,36053 62723,36052 62719,36055 62717,36056 62712,36059 62714,36058 67714,36059 67716,40059 67716,40063 67719,40067 67722,40069 67726,40065 67724,40067 67721,40067 67722,40071 67721,40075 67726,37075 67730,37076 67733,37076 67736,37072 67741,37072 67741,37072 67744,37076 67744,37079 67745,37081 67750,37082 67750,37082 67753,37082 67753,37083 67752,37081 67753,37084 67753,37087 67757,37087 67758,37083 67753,37084 67758,37084 67761,37088 67759,37091 67762,37088 67762,37090 67767,37090 72767,37090 72771,37085 72771,37089 72774,38089 71774,38090 71771,38086 71771,38086 71774,38086 71777,38089 71782,38089 71782,38087 71780,38092 71782,38087 71785,38083 71783,38081 71781,38078 71781,38078 71783,38076 71786,38075 71787,38078 71783,38079 71781,38081 71781,41081 71783,41081 71778,41082 71778,41085 71783,41085 71783,41088 71785,41083 71789,41083 71794,41088 71796,41088 71796,41092 71798,41095 71794,41095 71789,41098 71790,41093 71790,41091 71795,41092 71796,41087 71798,41084 71796,41086 71797,41084 71799,41084 71795,41086 71798,41085 71799,41089 71803,41085 71804,41083 71802,41083 71803,41079 71803,41081 71808,41081 71809,41083 71810,41083 71809,41085 71810,41082 71814,41087 71817,41089 71818,41086 71813,41083 71813,39083 71816,39083 71814,39085 71814,39083 71814,39086 71818,39087 71820,39087 71824,39091 71826,39096 71829,39098 74829,39102 74830,39107 74833,39110 74836,39115 74835,39115 74836,39115 74838,39115 74835,39119 74838,39117 74840,39121 74840,39125 74843,39121 74848,39122 77848,39122 77844,39123 77848,39126 77851,39131 77855,39136 77857,39132 77857,39135 78857,39135 78859,39136 78864,39133 78865,39135 78866,39139 79866,39142 79870,39147 79872,39146 79872,39150 79876,39150 78876,39154 78879,39154 75879,39154 75881,39158 75881,39157 75884,39160 75884,39155 75884,39160 75889,39156 75891,39158 75888,39163 75891,39163 75894,39166 75891,39166 75895,39167 75900,39170 75901,39170 75906,35170 75907,35171 75911,35176 75906,35172 75908,35173 75908,35178 75908,35175 75909,35170 75908,35170 75903,35168 75904,35173 75906,35178 75903,35179 75904,35179 75908,35182 75905,35184 71905,35188 71902,35185 71904,35186 71907,35187 71908,35189 71903,35191 71905,35195 71900,35197 71904,35198 71909,35200 71907,35199 71903,35201 71900,40201 71896,25028 55790,25029 55785,28029 55789,28031 55790,28032 55790,28037 55794,28042 55793,28043 55798,28046 55803,30046 55803,30051 55806,30050 55810,30049 55810,30049 55812,30049 55816,30054 55820,2545 16129,2540 16133,2542 16137,2542 16139,2544 16138,2545 16139,7545 16136,7546 16139,7541 16142,7542 16142,7543 20142,7547 20143,11547 20143,11550 20139,11555 20139,11556 20137,11552 20142,11555 24142,11556 24145,11559 24140,11563 24143,11567 24139,16567 24136,16567 24139,16572 24142,16573 24147,14573 24143,14574 24147,14570 24145,14573 24150,14569 24150,14570 24145,14573 24149,14575 24150,14575 24154,14579 24149,14579 24153,14576 24157,14576 24152,14571 24149,14571 24152,14575 24150,14572 24151,15572 24153,15575 24149,15577 24154,15582 24151,15582 24153,15586 24156,15587 24152,15588 24157,15590 24162,15590 24166,15590 24166,20590 24166,17590 24169,17595 24171,17597 24172,17599 24172,17595 24174,17599 24178,17599 24181,18599 24184,18594 24187,18597 24187,18593 24189,18597 24192,18601 24192,18599 24197,18599 24197,18603 24200,18605 24204,18600 24205,18605 24201,18605 24197,18610 24202,18608 24205,18611 24204,18613 24208,18617 24203,22617 24205,22619 29205,22622 31205,22622 31209,22623 31214,22624 31212,22627 31214,22623 31214,22626 31215,22629 31214,22633 31218,22631 31221,22630 31223,22632 31227,21937 44551,21935 44555,21939 44551,21934 44553,21936 44554,21933 44556,21935 44552,21935 44553,21939 44548,21939 44551,21939 44551,21938 44555,21938 44558,21938 44559,21941 44559,21945 44558,19945 44562,19942 44560,19943 44561,19939 44565,19940 44561,19939 44556,19935 44557,9770 19466,9773 19471,9775 19471,9770 19471,9770 19468,9770 19467,9772 19466,9772 19468,9774 19469,9775 19472,12775 19470,12773 19466,12773 19467,12773 19464,12773 19466,12776 19461,12779 19461,12779 19465,12780 19465,12782 19460,12781 19458,12776 19461,12776 19461,12777 19463,12778 19466,12776 19466,12780 19463,12780 19466,12785 19468,12789 19473,12788 19477,12793 19475,12798 19480,12802 19482,12803 24482,12802 24484,16802 24486,16806 28486,16808 28486,16812 28490,16812 28494,16815 28498,16816 28498,16818 28502,16818 28504,16819 28509,19819 28513,19819 28510,19821 28515,19816 28510,19811 28510,19811 28511,19809 28511,19810 28510,19813 28515,22813 28510,22818 28514,22818 28515,22815 28516,22818 28514,22819 28514)',')')) where i = 1; +rollback; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; +create table t1(i int primary key, +a geometry not null, b geometry not null, +c int, +spatial index(a),key(a(25)),key(b(25)), +unique key (c), +spatial index(b))engine=innodb; +insert into t1 values(0, point(0,0), point(0,0), 0); +insert into t1 values(1, point(1,1), point(1,1), 1); +insert into t1 values(2, point(2,2), point(2,2), 2); +insert into t1 values(3, point(3,3), point(3,3), 3); +insert into t1 values(4, point(4,4), point(4,4), 4); +start transaction; +update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3; +ERROR 23000: Duplicate entry '5' for key 'c' +rollback; +set session debug="+d,row_mysql_crash_if_error"; +update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3; +ERROR HY000: Lost connection to MySQL server during query +insert into t1 values(5, point(5,5), point(5,5), 5); +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/row_format.result b/mysql-test/suite/innodb_gis/r/row_format.result new file mode 100644 index 00000000000..1fd19371bcd --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/row_format.result @@ -0,0 +1,1588 @@ +SET GLOBAL innodb_file_per_table='off'; +SET GLOBAL innodb_file_format='Antelope'; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +CREATE TABLE t1 ( +id bigint(12) unsigned NOT NULL auto_increment, +c2 varchar(15) collate utf8_bin DEFAULT NULL, +c1 varchar(15) collate utf8_bin DEFAULT NULL, +c3 varchar(10) collate utf8_bin DEFAULT NULL, +spatial_point point NOT NULL, +PRIMARY KEY(id), +SPATIAL KEY (spatial_point) +) ROW_FORMAT=REDUNDANT ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), +('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), +('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), +('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), +('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), +('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), +('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), +('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), +('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), +('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), +('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), +('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), +('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), +('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), +('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), +('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), +('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), +('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), +('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), +('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), +('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), +('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), +('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), +('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), +('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), +('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), +('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), +('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), +('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), +('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), +('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), +('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), +('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), +('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), +('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), +('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), +('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), +('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), +('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), +('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), +('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), +('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), +('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), +('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), +('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), +('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), +('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), +('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), +('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), +('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), +('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), +('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), +('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), +('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), +('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), +('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), +('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), +('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), +('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), +('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), +('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), +('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), +('b', 's', 's', ST_GeomFromText('POINT(223 211)')), +('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), +('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), +('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), +('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), +('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), +('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), +('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), +('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), +('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), +('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), +('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), +('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), +('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), +('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), +('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), +('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), +('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), +('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), +('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), +('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), +('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), +('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), +('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), +('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), +('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), +('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), +('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), +('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), +('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), +('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), +('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), +('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), +('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), +('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), +('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), +('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), +('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), +('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), +('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), +('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), +('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), +('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), +('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), +('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), +('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), +('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), +('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), +('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), +('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), +('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), +('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), +('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), +('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), +('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), +('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), +('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), +('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), +('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), +('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), +('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), +('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), +('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), +('z', 't', 't', ST_GeomFromText('POINT(99 134)')), +('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), +('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), +('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), +('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), +('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), +('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), +('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), +('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), +('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), +('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), +('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), +('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), +('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), +('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), +('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), +('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), +('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), +('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), +('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), +('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), +('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), +('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), +('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), +('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), +('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), +('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), +('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), +('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), +('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), +('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), +('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), +('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), +('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), +('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), +('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), +('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), +('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), +('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), +('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), +('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), +('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), +('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), +('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), +('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), +('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), +('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), +('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), +('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), +('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), +('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), +('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), +('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), +('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), +('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), +('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), +('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), +('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), +('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), +('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), +('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), +('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), +('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), +('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), +('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), +('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), +('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), +('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), +('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), +('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), +('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), +('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), +('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), +('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), +('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), +('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), +('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), +('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), +('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), +('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), +('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), +('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), +('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), +('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), +('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), +('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), +('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), +('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), +('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), +('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), +('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), +('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), +('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), +('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), +('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), +('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), +('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), +('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), +('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), +('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), +('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), +('m', 's', 's', ST_GeomFromText('POINT(172 149)')), +('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), +('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), +('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), +('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), +('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), +('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), +('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), +('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), +('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), +('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), +('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), +('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), +('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), +('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), +('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), +('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), +('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), +('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), +('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), +('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), +('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), +('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), +('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), +('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), +('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), +('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), +('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), +('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), +('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), +('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), +('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), +('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), +('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), +('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), +('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), +('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), +('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), +('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), +('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), +('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), +('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), +('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), +('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), +('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), +('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), +('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), +('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), +('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), +('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), +('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), +('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), +('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), +('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), +('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), +('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), +('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), +('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), +('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), +('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), +('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), +('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), +('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), +('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), +('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), +('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), +('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), +('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), +('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), +('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), +('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), +('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), +('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), +('l', 's', 't', ST_GeomFromText('POINT(83 18)')), +('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), +('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), +('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), +('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), +('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), +('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), +('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), +('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), +('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), +('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), +('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), +('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), +('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), +('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), +('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), +('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), +('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), +('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), +('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), +('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), +('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), +('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), +('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), +('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), +('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), +('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), +('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), +('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), +('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), +('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), +('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), +('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), +('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), +('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), +('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), +('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), +('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), +('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), +('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), +('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), +('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), +('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), +('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), +('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), +('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), +('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), +('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +ROLLBACK; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +DELETE FROM t1 WHERE id = 1280; +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +START TRANSACTION; +DELETE FROM t1 WHERE id = 1280; +ROLLBACK; +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +ROLLBACK; +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000; +SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))'); +DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point); +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +DROP TABLE t1; +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +SET GLOBAL innodb_file_per_table='on'; +SET GLOBAL innodb_file_format='Barracuda'; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +CREATE TABLE t1 ( +id bigint(12) unsigned NOT NULL auto_increment, +c2 varchar(15) collate utf8_bin DEFAULT NULL, +c1 varchar(15) collate utf8_bin DEFAULT NULL, +c3 varchar(10) collate utf8_bin DEFAULT NULL, +spatial_point point NOT NULL, +PRIMARY KEY(id), +SPATIAL KEY (spatial_point) +) ROW_FORMAT=COMPRESSED ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), +('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), +('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), +('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), +('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), +('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), +('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), +('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), +('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), +('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), +('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), +('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), +('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), +('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), +('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), +('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), +('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), +('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), +('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), +('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), +('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), +('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), +('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), +('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), +('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), +('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), +('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), +('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), +('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), +('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), +('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), +('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), +('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), +('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), +('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), +('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), +('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), +('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), +('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), +('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), +('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), +('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), +('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), +('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), +('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), +('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), +('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), +('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), +('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), +('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), +('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), +('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), +('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), +('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), +('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), +('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), +('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), +('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), +('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), +('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), +('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), +('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), +('b', 's', 's', ST_GeomFromText('POINT(223 211)')), +('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), +('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), +('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), +('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), +('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), +('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), +('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), +('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), +('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), +('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), +('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), +('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), +('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), +('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), +('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), +('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), +('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), +('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), +('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), +('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), +('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), +('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), +('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), +('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), +('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), +('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), +('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), +('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), +('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), +('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), +('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), +('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), +('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), +('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), +('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), +('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), +('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), +('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), +('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), +('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), +('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), +('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), +('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), +('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), +('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), +('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), +('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), +('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), +('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), +('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), +('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), +('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), +('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), +('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), +('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), +('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), +('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), +('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), +('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), +('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), +('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), +('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), +('z', 't', 't', ST_GeomFromText('POINT(99 134)')), +('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), +('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), +('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), +('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), +('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), +('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), +('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), +('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), +('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), +('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), +('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), +('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), +('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), +('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), +('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), +('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), +('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), +('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), +('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), +('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), +('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), +('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), +('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), +('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), +('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), +('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), +('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), +('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), +('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), +('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), +('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), +('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), +('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), +('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), +('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), +('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), +('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), +('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), +('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), +('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), +('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), +('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), +('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), +('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), +('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), +('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), +('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), +('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), +('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), +('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), +('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), +('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), +('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), +('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), +('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), +('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), +('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), +('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), +('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), +('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), +('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), +('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), +('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), +('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), +('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), +('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), +('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), +('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), +('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), +('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), +('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), +('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), +('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), +('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), +('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), +('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), +('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), +('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), +('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), +('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), +('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), +('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), +('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), +('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), +('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), +('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), +('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), +('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), +('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), +('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), +('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), +('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), +('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), +('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), +('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), +('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), +('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), +('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), +('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), +('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), +('m', 's', 's', ST_GeomFromText('POINT(172 149)')), +('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), +('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), +('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), +('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), +('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), +('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), +('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), +('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), +('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), +('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), +('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), +('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), +('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), +('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), +('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), +('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), +('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), +('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), +('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), +('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), +('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), +('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), +('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), +('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), +('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), +('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), +('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), +('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), +('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), +('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), +('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), +('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), +('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), +('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), +('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), +('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), +('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), +('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), +('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), +('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), +('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), +('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), +('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), +('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), +('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), +('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), +('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), +('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), +('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), +('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), +('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), +('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), +('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), +('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), +('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), +('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), +('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), +('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), +('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), +('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), +('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), +('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), +('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), +('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), +('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), +('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), +('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), +('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), +('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), +('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), +('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), +('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), +('l', 's', 't', ST_GeomFromText('POINT(83 18)')), +('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), +('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), +('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), +('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), +('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), +('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), +('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), +('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), +('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), +('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), +('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), +('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), +('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), +('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), +('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), +('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), +('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), +('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), +('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), +('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), +('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), +('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), +('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), +('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), +('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), +('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), +('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), +('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), +('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), +('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), +('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), +('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), +('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), +('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), +('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), +('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), +('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), +('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), +('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), +('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), +('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), +('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), +('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), +('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), +('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), +('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), +('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +ROLLBACK; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +DELETE FROM t1 WHERE id = 1280; +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +START TRANSACTION; +DELETE FROM t1 WHERE id = 1280; +ROLLBACK; +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +ROLLBACK; +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000; +SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))'); +DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point); +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +DROP TABLE t1; +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +SET GLOBAL innodb_file_per_table='on'; +SET GLOBAL innodb_file_format='Barracuda'; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +CREATE TABLE t1 ( +id bigint(12) unsigned NOT NULL auto_increment, +c2 varchar(15) collate utf8_bin DEFAULT NULL, +c1 varchar(15) collate utf8_bin DEFAULT NULL, +c3 varchar(10) collate utf8_bin DEFAULT NULL, +spatial_point point NOT NULL, +PRIMARY KEY(id), +SPATIAL KEY (spatial_point) +) ROW_FORMAT=DYNAMIC ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), +('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), +('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), +('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), +('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), +('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), +('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), +('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), +('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), +('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), +('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), +('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), +('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), +('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), +('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), +('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), +('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), +('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), +('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), +('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), +('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), +('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), +('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), +('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), +('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), +('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), +('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), +('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), +('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), +('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), +('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), +('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), +('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), +('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), +('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), +('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), +('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), +('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), +('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), +('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), +('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), +('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), +('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), +('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), +('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), +('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), +('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), +('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), +('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), +('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), +('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), +('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), +('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), +('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), +('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), +('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), +('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), +('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), +('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), +('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), +('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), +('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), +('b', 's', 's', ST_GeomFromText('POINT(223 211)')), +('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), +('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), +('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), +('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), +('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), +('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), +('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), +('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), +('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), +('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), +('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), +('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), +('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), +('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), +('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), +('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), +('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), +('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), +('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), +('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), +('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), +('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), +('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), +('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), +('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), +('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), +('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), +('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), +('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), +('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), +('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), +('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), +('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), +('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), +('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), +('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), +('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), +('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), +('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), +('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), +('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), +('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), +('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), +('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), +('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), +('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), +('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), +('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), +('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), +('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), +('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), +('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), +('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), +('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), +('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), +('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), +('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), +('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), +('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), +('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), +('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), +('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), +('z', 't', 't', ST_GeomFromText('POINT(99 134)')), +('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), +('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), +('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), +('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), +('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), +('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), +('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), +('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), +('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), +('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), +('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), +('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), +('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), +('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), +('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), +('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), +('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), +('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), +('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), +('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), +('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), +('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), +('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), +('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), +('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), +('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), +('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), +('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), +('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), +('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), +('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), +('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), +('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), +('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), +('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), +('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), +('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), +('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), +('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), +('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), +('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), +('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), +('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), +('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), +('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), +('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), +('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), +('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), +('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), +('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), +('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), +('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), +('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), +('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), +('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), +('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), +('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), +('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), +('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), +('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), +('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), +('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), +('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), +('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), +('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), +('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), +('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), +('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), +('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), +('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), +('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), +('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), +('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), +('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), +('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), +('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), +('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), +('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), +('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), +('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), +('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), +('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), +('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), +('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), +('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), +('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), +('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), +('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), +('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), +('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), +('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), +('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), +('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), +('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), +('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), +('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), +('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), +('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), +('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), +('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), +('m', 's', 's', ST_GeomFromText('POINT(172 149)')), +('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), +('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), +('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), +('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), +('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), +('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), +('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), +('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), +('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), +('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), +('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), +('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), +('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), +('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), +('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), +('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), +('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), +('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), +('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), +('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), +('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), +('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), +('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), +('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), +('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), +('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), +('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), +('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), +('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), +('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), +('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), +('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), +('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), +('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), +('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), +('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), +('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), +('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), +('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), +('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), +('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), +('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), +('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), +('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), +('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), +('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), +('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), +('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), +('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), +('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), +('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), +('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), +('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), +('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), +('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), +('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), +('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), +('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), +('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), +('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), +('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), +('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), +('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), +('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), +('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), +('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), +('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), +('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), +('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), +('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), +('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), +('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), +('l', 's', 't', ST_GeomFromText('POINT(83 18)')), +('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), +('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), +('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), +('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), +('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), +('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), +('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), +('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), +('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), +('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), +('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), +('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), +('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), +('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), +('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), +('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), +('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), +('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), +('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), +('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), +('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), +('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), +('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), +('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), +('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), +('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), +('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), +('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), +('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), +('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), +('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), +('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), +('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), +('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), +('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), +('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), +('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), +('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), +('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), +('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), +('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), +('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), +('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), +('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), +('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), +('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), +('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +ROLLBACK; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +DELETE FROM t1 WHERE id = 1280; +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +START TRANSACTION; +DELETE FROM t1 WHERE id = 1280; +ROLLBACK; +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +ROLLBACK; +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000; +SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))'); +DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point); +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +DROP TABLE t1; +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +SET GLOBAL innodb_file_per_table='off'; +SET GLOBAL innodb_file_format='Antelope'; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html +CREATE TABLE t1 ( +id bigint(12) unsigned NOT NULL auto_increment, +c2 varchar(15) collate utf8_bin DEFAULT NULL, +c1 varchar(15) collate utf8_bin DEFAULT NULL, +c3 varchar(10) collate utf8_bin DEFAULT NULL, +spatial_point point NOT NULL, +PRIMARY KEY(id), +SPATIAL KEY (spatial_point) +) ROW_FORMAT=COMPACT ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), +('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), +('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), +('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), +('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), +('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), +('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), +('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), +('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), +('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), +('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), +('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), +('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), +('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), +('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), +('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), +('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), +('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), +('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), +('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), +('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), +('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), +('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), +('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), +('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), +('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), +('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), +('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), +('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), +('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), +('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), +('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), +('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), +('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), +('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), +('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), +('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), +('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), +('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), +('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), +('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), +('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), +('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), +('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), +('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), +('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), +('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), +('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), +('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), +('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), +('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), +('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), +('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), +('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), +('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), +('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), +('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), +('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), +('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), +('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), +('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), +('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), +('b', 's', 's', ST_GeomFromText('POINT(223 211)')), +('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), +('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), +('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), +('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), +('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), +('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), +('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), +('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), +('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), +('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), +('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), +('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), +('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), +('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), +('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), +('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), +('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), +('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), +('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), +('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), +('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), +('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), +('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), +('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), +('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), +('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), +('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), +('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), +('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), +('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), +('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), +('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), +('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), +('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), +('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), +('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), +('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), +('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), +('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), +('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), +('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), +('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), +('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), +('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), +('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), +('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), +('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), +('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), +('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), +('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), +('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), +('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), +('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), +('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), +('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), +('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), +('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), +('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), +('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), +('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), +('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), +('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), +('z', 't', 't', ST_GeomFromText('POINT(99 134)')), +('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), +('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), +('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), +('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), +('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), +('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), +('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), +('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), +('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), +('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), +('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), +('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), +('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), +('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), +('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), +('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), +('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), +('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), +('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), +('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), +('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), +('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), +('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), +('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), +('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), +('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), +('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), +('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), +('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), +('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), +('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), +('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), +('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), +('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), +('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), +('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), +('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), +('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), +('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), +('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), +('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), +('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), +('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), +('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), +('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), +('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), +('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), +('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), +('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), +('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), +('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), +('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), +('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), +('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), +('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), +('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), +('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), +('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), +('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), +('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), +('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), +('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), +('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), +('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), +('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), +('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), +('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), +('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), +('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), +('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), +('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), +('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), +('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), +('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), +('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), +('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), +('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), +('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), +('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), +('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), +('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), +('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), +('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), +('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), +('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), +('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), +('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), +('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), +('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), +('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), +('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), +('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), +('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), +('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), +('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), +('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), +('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), +('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), +('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), +('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), +('m', 's', 's', ST_GeomFromText('POINT(172 149)')), +('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), +('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), +('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), +('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), +('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), +('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), +('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), +('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), +('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), +('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), +('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), +('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), +('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), +('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), +('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), +('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), +('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), +('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), +('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), +('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), +('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), +('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), +('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), +('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), +('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), +('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), +('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), +('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), +('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), +('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), +('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), +('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), +('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), +('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), +('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), +('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), +('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), +('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), +('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), +('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), +('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), +('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), +('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), +('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), +('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), +('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), +('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), +('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), +('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), +('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), +('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), +('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), +('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), +('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), +('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), +('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), +('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), +('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), +('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), +('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), +('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), +('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), +('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), +('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), +('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), +('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), +('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), +('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), +('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), +('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), +('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), +('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), +('l', 's', 't', ST_GeomFromText('POINT(83 18)')), +('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), +('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), +('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), +('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), +('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), +('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), +('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), +('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), +('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), +('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), +('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), +('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), +('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), +('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), +('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), +('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), +('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), +('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), +('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), +('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), +('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), +('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), +('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), +('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), +('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), +('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), +('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), +('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), +('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), +('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), +('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), +('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), +('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), +('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), +('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), +('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), +('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), +('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), +('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), +('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), +('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), +('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), +('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), +('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), +('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), +('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), +('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +ROLLBACK; +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +DELETE FROM t1 WHERE id = 1280; +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); +START TRANSACTION; +DELETE FROM t1 WHERE id = 1280; +ROLLBACK; +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +ROLLBACK; +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000; +SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))'); +DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point); +SELECT COUNT(*) FROM t1; +COUNT(*) +353 +DROP TABLE t1; +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; +Warnings: +Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html diff --git a/mysql-test/suite/innodb_gis/r/rtree_compress.result b/mysql-test/suite/innodb_gis/r/rtree_compress.result new file mode 100644 index 00000000000..bbf7e8eeb93 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_compress.result @@ -0,0 +1,48 @@ +SET GLOBAL innodb_file_per_table=1; +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +start transaction; +insert into t1 select * from t1; +select count(*) from t1; +count(*) +18432 +rollback; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +select count(*) from t1; +count(*) +9216 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +9216 +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +0 +SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; +delete from t1; +SET DEBUG='-d,page_copy_rec_list_start_compress_fail'; +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +0 +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_compress2.result b/mysql-test/suite/innodb_gis/r/rtree_compress2.result new file mode 100644 index 00000000000..6e32fcc8a9f --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_compress2.result @@ -0,0 +1,25 @@ +SET GLOBAL innodb_file_per_table=1; +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(70000); +select count(*) from t1; +count(*) +70000 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); +START TRANSACTION; +CALL insert_t1(5000); +COMMIT; +# Kill and restart +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result b/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result new file mode 100644 index 00000000000..232d6fa296d --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result @@ -0,0 +1,312 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +SET SESSION debug="+d,rtr_pcur_move_to_next_return"; +set session transaction isolation level serializable; +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +SET DEBUG_SYNC = 'RESET'; +SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead'; +select count(*) from t1 where MBRWithin(t1.c2, @g1);; +# Establish session con1 (user=root) +set session transaction isolation level serializable; +SET DEBUG_SYNC = 'now WAIT_FOR started'; +insert into t1 select * from t1; +SET DEBUG_SYNC = 'now SIGNAL go_ahead'; +count(*) +576 +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +1152 +insert into t1 select * from t1; +insert into t1 select * from t1; +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +4608 +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +0 +set session transaction isolation level serializable; +truncate t1; +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +set session transaction isolation level serializable; +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +0 +set session transaction isolation level serializable; +set session innodb_lock_wait_timeout = 1; +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +commit; +select count(*) from t1; +count(*) +896 +insert into t1 values (105, Point(105, 105)); +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +1 +select @@innodb_lock_wait_timeout; +@@innodb_lock_wait_timeout +1 +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +insert into t1 select * from t1; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +select count(*) from t1; +count(*) +897 +select sleep(2); +sleep(2) +0 +commit; +truncate t1; +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +set session transaction isolation level serializable; +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +0 +set session transaction isolation level serializable; +set session innodb_lock_wait_timeout = 1; +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +commit; +select count(*) from t1; +count(*) +1792 +insert into t1 values (105, Point(105, 105)); +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +1 +select count(*) from t1 where MBRIntersects(t1.c2, @g1); +count(*) +1793 +select @@innodb_lock_wait_timeout; +@@innodb_lock_wait_timeout +1 +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 105, 200 105)')); +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +select count(*) from t1; +count(*) +1793 +select sleep(2); +sleep(2) +0 +commit; +truncate t1; +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); +set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))'); +start transaction; +delete from t1 where MBRWithin(t1.c2, @g1); +set session innodb_lock_wait_timeout = 1; +select @@innodb_lock_wait_timeout; +@@innodb_lock_wait_timeout +1 +insert into t1 values(4, Point(4,4)); +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +rollback; +truncate t1; +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); +set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))'); +start transaction; +select count(*) from t1 where MBRWithin(t1.c2, @g1) for update; +count(*) +0 +set session innodb_lock_wait_timeout = 1; +select @@innodb_lock_wait_timeout; +@@innodb_lock_wait_timeout +1 +insert into t1 values(4, Point(4,4)); +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +rollback; +truncate t1; +create procedure insert_t1(IN start int, IN total int) +begin +declare i int default 1; +set i = start; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(0, 1000); +set session transaction isolation level serializable; +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +start transaction; +set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +199 +CALL insert_t1(1001, 2000); +set session transaction isolation level serializable; +set session innodb_lock_wait_timeout = 1; +insert into t1 values (1200, Point(950, 950)); +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +select sleep(2); +sleep(2) +0 +commit; +SET SESSION debug="-d,rtr_pcur_move_to_next_return"; +drop table t1; +drop procedure insert_t1; +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (2, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (2, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); +SET SESSION debug="+d,rtr_pcur_move_to_next_return"; +set transaction isolation level serializable; +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +0 +delete from t1 where c1 = 1; +commit; +set transaction isolation level serializable; +start transaction; +set @g1 = ST_GeomFromText('Polygon((0 0, 0 300, 300 300, 300 0, 0 0))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +2 +set session innodb_lock_wait_timeout = 1; +delete from t1 where c1 = 2; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +commit; +drop table t1; +SET DEBUG_SYNC= 'RESET'; +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +start transaction; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +select count(*) from t1; +count(*) +4608 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +set transaction isolation level read uncommitted; +SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb'; +select count(*) from t1 where MBRWithin(t1.c2, @g1); +SET DEBUG_SYNC= 'now WAIT_FOR siga'; +rollback; +SET DEBUG_SYNC= 'now SIGNAL sigb'; +count(*) +1 +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +0 +DROP TABLE t1; +SET DEBUG_SYNC = 'RESET'; +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +start transaction; +CALL insert_t1(100); +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); +SET DEBUG_SYNC= 'rtr_pcur_move_to_next_return SIGNAL siga WAIT_FOR sigb'; +select count(*) from t1 where MBRWithin(t1.c2, @g1);; +SET DEBUG_SYNC= 'now WAIT_FOR siga'; +rollback; +SET DEBUG_SYNC= 'now SIGNAL sigb'; +count(*) +0 +drop procedure insert_t1; +DROP TABLE t1; +SET SESSION debug="-d,rtr_pcur_move_to_next_return"; +SET DEBUG_SYNC = 'RESET'; diff --git a/mysql-test/suite/innodb_gis/r/rtree_crash.result b/mysql-test/suite/innodb_gis/r/rtree_crash.result new file mode 100644 index 00000000000..12ca15a420d --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_crash.result @@ -0,0 +1,41 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(5000); +select count(*) from t1; +count(*) +5000 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +CALL insert_t1(10000); +select count(*) from t1; +count(*) +10000 +drop index c2 on t1; +create spatial index idx on t1(c2); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` int(11) DEFAULT NULL, + `c2` geometry NOT NULL, + SPATIAL KEY `idx` (`c2`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); +START TRANSACTION; +CALL insert_t1(5000); +COMMIT; +# Kill and restart +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result b/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result new file mode 100644 index 00000000000..5279eea8aa8 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result @@ -0,0 +1,35 @@ +CREATE TABLE t1 (c1 INT, c2 GEOMETRY NOT NULL, c3 GEOMETRY NOT NULL) ENGINE=INNODB; +INSERT INTO t1 VALUES(1, Point(1,1), ST_GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))')); +INSERT INTO t1 VALUES(2, Point(2,2), ST_GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))')); +INSERT INTO t1 VALUES(3, Point(3,3), ST_GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))')); +INSERT INTO t1 VALUES(4, Point(4,4), ST_GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))')); +INSERT INTO t1 VALUES(5, Point(5,5), ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); +INSERT INTO t1 VALUES(6, Point(6,6), ST_GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))')); +INSERT INTO t1 VALUES(7, Point(7,7), ST_GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))')); +INSERT INTO t1 VALUES(8, Point(8,8), ST_GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))')); +INSERT INTO t1 VALUES(9, Point(9,9), ST_GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +CREATE SPATIAL INDEX idx ON t1(c2); +SELECT COUNT(*) FROM t1; +COUNT(*) +4608 +SET @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +SELECT COUNT(*) FROM t1 WHERE MBRWithin(t1.c2, @g1); +COUNT(*) +4608 +SET @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +SELECT COUNT(*) FROM t1 WHERE MBRWithin(t1.c2, @g1); +COUNT(*) +0 +ALTER TABLE t1 DROP INDEX idx, ADD SPATIAL INDEX idx3(c2); +SET SESSION debug="+d,row_merge_instrument_log_check_flush"; +ALTER TABLE t1 DROP INDEX idx3, ADD SPATIAL INDEX idx4(c2), ADD SPATIAL INDEX idx5(c3); +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_debug.result b/mysql-test/suite/innodb_gis/r/rtree_debug.result new file mode 100644 index 00000000000..1c102dbfafe --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_debug.result @@ -0,0 +1,65 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values +(i, Point(i, i)), +(i + 1, Point(i + 1, i + 1)), +(i + 2, Point(i + 2, i + 2)), +(i + 3, Point(i + 3, i + 3)), +(i + 4, Point(i + 4, i + 4)), +(i + 5, Point(i + 5, i + 5)), +(i + 6, Point(i + 6, i + 6)), +(i + 7, Point(i + 7, i + 7)), +(i + 8, Point(i + 8, i + 8)), +(i + 9, Point(i + 9, i + 9)); +set i = i + 10; +end while; +end| +CALL insert_t1(5000); +select count(*) from t1; +count(*) +5000 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +CALL insert_t1(10000); +select count(*) from t1; +count(*) +10000 +drop index c2 on t1; +create spatial index idx on t1(c2); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` int(11) DEFAULT NULL, + `c2` geometry NOT NULL, + SPATIAL KEY `idx` (`c2`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SET DEBUG='+d,row_merge_ins_spatial_fail'; +create spatial index idx2 on t1(c2); +ERROR HY000: Got error 1000 from storage engine +SET DEBUG='-d,row_merge_ins_spatial_fail'; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` int(11) DEFAULT NULL, + `c2` geometry NOT NULL, + SPATIAL KEY `idx` (`c2`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +CALL insert_t1(100000); +select count(*) from t1; +count(*) +100000 +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +truncate table t1; +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_drop_index.result b/mysql-test/suite/innodb_gis/r/rtree_drop_index.result new file mode 100644 index 00000000000..f8c6adf68f6 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_drop_index.result @@ -0,0 +1,18 @@ +# +# Bug #21899444 INNODB: ASSERT FAILURE (COL->ORD_PART) +# IN DICT_COL_GET_SPATIAL_STATUS() +set global innodb_purge_stop_now = on; +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=dynamic; +ALTER TABLE t1 ADD INDEX`si`(g(500)); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +alter table t1 drop index `si`; +set global innodb_purge_run_now=on; +set global innodb_fast_shutdown = 0; +# restart +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_estimate.result b/mysql-test/suite/innodb_gis/r/rtree_estimate.result new file mode 100644 index 00000000000..24f0f5ff41a --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_estimate.result @@ -0,0 +1,161 @@ +CREATE TABLE t1 ( +g GEOMETRY NOT NULL +) ENGINE=InnoDB; +ALTER TABLE t1 ADD SPATIAL(g); +SET @g1 = ST_GeomFromText('POINT(10 10)'); +SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))'); +SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))'); +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +ST_AsText(g) +INSERT INTO t1 VALUES(@g1); +INSERT INTO t1 VALUES(@g2); +INSERT INTO t1 VALUES(@g3); +SELECT ST_AsText(g) FROM t1; +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) +ANALYZE TABLE t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +ST_AsText(g) +POINT(10 10) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g1`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +ST_AsText(g) +POINT(10 10) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g1`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +ST_AsText(g) +POINT(10 10) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g1`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +ST_AsText(g) +POINT(10 10) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g1`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +ST_AsText(g) +POINT(10 10) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g2`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g2`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g2`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g2`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g2`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g3`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g3`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g3`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g3`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g3`)) +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +ST_AsText(g) +POINT(10 10) +POLYGON((5 5,20 5,20 21,5 21,5 5)) +POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result b/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result new file mode 100644 index 00000000000..11cf8ad91c1 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result @@ -0,0 +1,155 @@ +create table t1 (i int, i2 char(10), g geometry not null, primary key (i, i2), spatial index (g))engine=innodb; +insert into t1 values (1, "111", POINT(1,1)); +insert into t1 values (2, "222", POINT(1.5,1.5)); +insert into t1 values (3, "333", POINT(3,3)); +insert into t1 values (4, "444", POINT(3.1,3.1)); +insert into t1 values (5, "555", POINT(5,5)); +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))'); +explain select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL g NULL NULL NULL 5 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_astext(t1.g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g1`)) +select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1); +ST_astext(t1.g) +POINT(1 1) +POINT(1.5 1.5) +set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))'); +delete from t1 where MBRWithin(t1.g, @g1); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +select ST_astext(t1.g) from t1; +ST_astext(t1.g) +POINT(3 3) +POINT(3.1 3.1) +POINT(5 5) +set @g1 = ST_GeomFromText('Polygon((5 5,5 5,5 5,5 5,5 5))'); +update t1 set g = POINT(2,2) where MBRWithin(t1.g, @g1); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +select ST_astext(t1.g) from t1; +ST_astext(t1.g) +POINT(3 3) +POINT(3.1 3.1) +POINT(2 2) +show indexes from t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment +t1 0 PRIMARY 1 i A # NULL NULL BTREE +t1 0 PRIMARY 2 i2 A # NULL NULL BTREE +t1 1 g 1 g A # 32 NULL SPATIAL +drop table t1; +create table t1 (name VARCHAR(100), square GEOMETRY not null, spatial index (square))engine=innodb; +INSERT INTO t1 VALUES("small", ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); +INSERT INTO t1 VALUES("big", ST_GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); +INSERT INTO t1 VALUES("up", ST_GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))')); +INSERT INTO t1 VALUES("up2", ST_GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))')); +INSERT INTO t1 VALUES("up3", ST_GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))')); +INSERT INTO t1 VALUES("down", ST_GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))')); +INSERT INTO t1 VALUES("down2", ST_GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))')); +INSERT INTO t1 VALUES("down3", ST_GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))')); +INSERT INTO t1 VALUES("right", ST_GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))')); +INSERT INTO t1 VALUES("right2", ST_GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))')); +INSERT INTO t1 VALUES("right3", ST_GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))')); +INSERT INTO t1 VALUES("left", ST_GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))')); +INSERT INTO t1 VALUES("left2", ST_GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))')); +INSERT INTO t1 VALUES("left3", ST_GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))')); +SET @p = ST_GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'); +SELECT name, ST_AsText(square) from t1 where MBRContains(@p, square); +name ST_AsText(square) +small POLYGON((0 0,0 1,1 1,1 0,0 0)) +SELECT name, ST_AsText(square) from t1 where MBRDisjoint(@p, square); +name ST_AsText(square) +up3 POLYGON((0 3,0 5,2 5,2 3,0 3)) +down3 POLYGON((0 -3,0 -1,2 -1,2 -3,0 -3)) +right3 POLYGON((3 0,3 2,5 2,5 0,3 0)) +left3 POLYGON((-3 0,-3 2,-1 2,-1 0,-3 0)) +SELECT name, ST_AsText(square) from t1 where MBREquals(@p, square); +name ST_AsText(square) +SELECT name, ST_AsText(square) from t1 where MBRIntersects(@p, square); +name ST_AsText(square) +right2 POLYGON((2 0,2 2,4 2,4 0,2 0)) +right POLYGON((1 0,1 2,3 2,3 0,1 0)) +up2 POLYGON((0 2,0 4,2 4,2 2,0 2)) +up POLYGON((0 1,0 3,2 3,2 1,0 1)) +big POLYGON((0 0,0 3,3 3,3 0,0 0)) +small POLYGON((0 0,0 1,1 1,1 0,0 0)) +down POLYGON((0 -1,0 1,2 1,2 -1,0 -1)) +down2 POLYGON((0 -2,0 0,2 0,2 -2,0 -2)) +left POLYGON((-1 0,-1 2,1 2,1 0,-1 0)) +left2 POLYGON((-2 0,-2 2,0 2,0 0,-2 0)) +SELECT name, ST_AsText(square) from t1 where MBROverlaps(@p, square); +name ST_AsText(square) +right POLYGON((1 0,1 2,3 2,3 0,1 0)) +up POLYGON((0 1,0 3,2 3,2 1,0 1)) +down POLYGON((0 -1,0 1,2 1,2 -1,0 -1)) +left POLYGON((-1 0,-1 2,1 2,1 0,-1 0)) +SELECT name, ST_AsText(square) from t1 where MBRTouches(@p, square); +name ST_AsText(square) +right2 POLYGON((2 0,2 2,4 2,4 0,2 0)) +up2 POLYGON((0 2,0 4,2 4,2 2,0 2)) +down2 POLYGON((0 -2,0 0,2 0,2 -2,0 -2)) +left2 POLYGON((-2 0,-2 2,0 2,0 0,-2 0)) +SELECT name, ST_AsText(square) from t1 where MBRWithin(@p, square); +name ST_AsText(square) +big POLYGON((0 0,0 3,3 3,3 0,0 0)) +SET @vert1 = ST_GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))'); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +SET @horiz1 = ST_GeomFromText('POLYGON ((-2 0, 2 0, -2 0))'); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +SET @horiz2 = ST_GeomFromText('POLYGON ((-1 0, 3 0, -1 0))'); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +SET @horiz3 = ST_GeomFromText('POLYGON ((2 0, 3 0, 2 0))'); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +SET @point1 = ST_GeomFromText('POLYGON ((0 0))'); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +SET @point2 = ST_GeomFromText('POLYGON ((-2 0))'); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @vert1) GROUP BY a1.name; +MBRoverlaps +SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @horiz1) GROUP BY a1.name; +MBRoverlaps +SELECT MBROverlaps(@horiz1, @vert1) FROM DUAL; +MBROverlaps(@horiz1, @vert1) +NULL +SELECT MBROverlaps(@horiz1, @horiz2) FROM DUAL; +MBROverlaps(@horiz1, @horiz2) +NULL +SELECT MBROverlaps(@horiz1, @horiz3) FROM DUAL; +MBROverlaps(@horiz1, @horiz3) +NULL +SELECT MBROverlaps(@horiz1, @point1) FROM DUAL; +MBROverlaps(@horiz1, @point1) +NULL +SELECT MBROverlaps(@horiz1, @point2) FROM DUAL; +MBROverlaps(@horiz1, @point2) +NULL +DROP TABLE t1; +create table t1 (i int not null, g geometry not null)engine=innodb; +insert into t1 values (1, POINT(1,1)); +insert into t1 values (2, POINT(1.5,1.5)); +insert into t1 values (3, POINT(3,3)); +insert into t1 values (4, POINT(3.1,3.1)); +insert into t1 values (5, POINT(5,5)); +alter table t1 add primary key(i), algorithm=inplace; +alter table t1 drop primary key; +create spatial index idx on t1(g) algorithm=inplace; +create spatial index idx2 on t1(g); +Warnings: +Warning 1831 Duplicate index 'idx2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. +alter table t1 add primary key(i), algorithm=inplace; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `i` int(11) NOT NULL, + `g` geometry NOT NULL, + PRIMARY KEY (`i`), + SPATIAL KEY `idx` (`g`), + SPATIAL KEY `idx2` (`g`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +drop index idx on t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_old.result b/mysql-test/suite/innodb_gis/r/rtree_old.result new file mode 100644 index 00000000000..30a1bdcc375 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_old.result @@ -0,0 +1,1821 @@ +DROP TABLE IF EXISTS t1, t2; +CREATE TABLE t1 ( +fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, +g GEOMETRY NOT NULL, +SPATIAL KEY(g) +) ENGINE=InnoDB; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `fid` int(11) NOT NULL AUTO_INCREMENT, + `g` geometry NOT NULL, + PRIMARY KEY (`fid`), + SPATIAL KEY `g` (`g`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(150 150, 150 150)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(149 149, 151 151)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(148 148, 152 152)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(147 147, 153 153)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(146 146, 154 154)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(145 145, 155 155)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(144 144, 156 156)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(143 143, 157 157)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(142 142, 158 158)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(141 141, 159 159)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(140 140, 160 160)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(139 139, 161 161)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(138 138, 162 162)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(137 137, 163 163)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(136 136, 164 164)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(135 135, 165 165)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(134 134, 166 166)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(133 133, 167 167)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(132 132, 168 168)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(131 131, 169 169)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(130 130, 170 170)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(129 129, 171 171)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(128 128, 172 172)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(127 127, 173 173)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(126 126, 174 174)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(125 125, 175 175)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(124 124, 176 176)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(123 123, 177 177)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(122 122, 178 178)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(121 121, 179 179)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(120 120, 180 180)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(119 119, 181 181)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(118 118, 182 182)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(117 117, 183 183)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(116 116, 184 184)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(115 115, 185 185)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(114 114, 186 186)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(113 113, 187 187)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(112 112, 188 188)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(111 111, 189 189)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(110 110, 190 190)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(109 109, 191 191)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(108 108, 192 192)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(107 107, 193 193)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(106 106, 194 194)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(105 105, 195 195)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(104 104, 196 196)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(103 103, 197 197)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(102 102, 198 198)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(101 101, 199 199)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(100 100, 200 200)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(99 99, 201 201)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(98 98, 202 202)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(97 97, 203 203)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(96 96, 204 204)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(95 95, 205 205)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(94 94, 206 206)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(93 93, 207 207)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(92 92, 208 208)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(91 91, 209 209)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(90 90, 210 210)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(89 89, 211 211)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(88 88, 212 212)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(87 87, 213 213)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(86 86, 214 214)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(85 85, 215 215)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(84 84, 216 216)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(83 83, 217 217)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(82 82, 218 218)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(81 81, 219 219)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(80 80, 220 220)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(79 79, 221 221)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(78 78, 222 222)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(77 77, 223 223)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(76 76, 224 224)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(75 75, 225 225)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(74 74, 226 226)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(73 73, 227 227)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(72 72, 228 228)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(71 71, 229 229)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(70 70, 230 230)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(69 69, 231 231)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(68 68, 232 232)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(67 67, 233 233)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(66 66, 234 234)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(65 65, 235 235)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(64 64, 236 236)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(63 63, 237 237)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(62 62, 238 238)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(61 61, 239 239)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(60 60, 240 240)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(59 59, 241 241)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(58 58, 242 242)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(57 57, 243 243)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(56 56, 244 244)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(55 55, 245 245)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(54 54, 246 246)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(53 53, 247 247)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(52 52, 248 248)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(51 51, 249 249)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(50 50, 250 250)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(49 49, 251 251)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(48 48, 252 252)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(47 47, 253 253)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(46 46, 254 254)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(45 45, 255 255)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(44 44, 256 256)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(43 43, 257 257)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(42 42, 258 258)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(41 41, 259 259)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(40 40, 260 260)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(39 39, 261 261)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(38 38, 262 262)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(37 37, 263 263)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(36 36, 264 264)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(35 35, 265 265)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(34 34, 266 266)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(33 33, 267 267)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(32 32, 268 268)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(31 31, 269 269)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(30 30, 270 270)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(29 29, 271 271)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(28 28, 272 272)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(27 27, 273 273)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(26 26, 274 274)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(25 25, 275 275)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(24 24, 276 276)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(23 23, 277 277)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(22 22, 278 278)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(21 21, 279 279)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(20 20, 280 280)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(19 19, 281 281)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(18 18, 282 282)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(17 17, 283 283)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(16 16, 284 284)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(15 15, 285 285)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(14 14, 286 286)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(13 13, 287 287)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(12 12, 288 288)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(11 11, 289 289)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(10 10, 290 290)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(9 9, 291 291)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(8 8, 292 292)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(7 7, 293 293)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(6 6, 294 294)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(5 5, 295 295)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(4 4, 296 296)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(3 3, 297 297)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(2 2, 298 298)')); +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(1 1, 299 299)')); +SELECT count(*) FROM t1; +count(*) +150 +SELECT fid, ST_AsText(g) FROM t1 WHERE MBRWithin(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))')) ORDER BY fid; +fid ST_AsText(g) +1 LINESTRING(150 150,150 150) +2 LINESTRING(149 149,151 151) +3 LINESTRING(148 148,152 152) +4 LINESTRING(147 147,153 153) +5 LINESTRING(146 146,154 154) +6 LINESTRING(145 145,155 155) +7 LINESTRING(144 144,156 156) +8 LINESTRING(143 143,157 157) +9 LINESTRING(142 142,158 158) +10 LINESTRING(141 141,159 159) +11 LINESTRING(140 140,160 160) +DROP TABLE t1; +CREATE TABLE t2 ( +fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, +g GEOMETRY NOT NULL +) ENGINE=InnoDB; +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 7 * 10 - 9), Point(10 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 6 * 10 - 9), Point(10 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 5 * 10 - 9), Point(10 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 4 * 10 - 9), Point(10 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 3 * 10 - 9), Point(10 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 2 * 10 - 9), Point(10 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 1 * 10 - 9), Point(10 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 10 * 10 - 9), Point(9 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 9 * 10 - 9), Point(9 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 8 * 10 - 9), Point(9 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 7 * 10 - 9), Point(9 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 6 * 10 - 9), Point(9 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 5 * 10 - 9), Point(9 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 4 * 10 - 9), Point(9 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 3 * 10 - 9), Point(9 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 2 * 10 - 9), Point(9 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 1 * 10 - 9), Point(9 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 10 * 10 - 9), Point(8 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 9 * 10 - 9), Point(8 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 8 * 10 - 9), Point(8 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 7 * 10 - 9), Point(8 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 6 * 10 - 9), Point(8 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 5 * 10 - 9), Point(8 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 4 * 10 - 9), Point(8 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 3 * 10 - 9), Point(8 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 2 * 10 - 9), Point(8 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 1 * 10 - 9), Point(8 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 10 * 10 - 9), Point(7 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 9 * 10 - 9), Point(7 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 8 * 10 - 9), Point(7 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 7 * 10 - 9), Point(7 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 6 * 10 - 9), Point(7 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 5 * 10 - 9), Point(7 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 4 * 10 - 9), Point(7 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 3 * 10 - 9), Point(7 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 2 * 10 - 9), Point(7 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 1 * 10 - 9), Point(7 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 10 * 10 - 9), Point(6 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 9 * 10 - 9), Point(6 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 8 * 10 - 9), Point(6 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 7 * 10 - 9), Point(6 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 6 * 10 - 9), Point(6 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 5 * 10 - 9), Point(6 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 4 * 10 - 9), Point(6 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 3 * 10 - 9), Point(6 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 2 * 10 - 9), Point(6 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 1 * 10 - 9), Point(6 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 10 * 10 - 9), Point(5 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 9 * 10 - 9), Point(5 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 8 * 10 - 9), Point(5 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 7 * 10 - 9), Point(5 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 6 * 10 - 9), Point(5 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 5 * 10 - 9), Point(5 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 4 * 10 - 9), Point(5 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 3 * 10 - 9), Point(5 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 2 * 10 - 9), Point(5 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 1 * 10 - 9), Point(5 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 10 * 10 - 9), Point(4 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 9 * 10 - 9), Point(4 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 8 * 10 - 9), Point(4 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 7 * 10 - 9), Point(4 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 6 * 10 - 9), Point(4 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 5 * 10 - 9), Point(4 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 4 * 10 - 9), Point(4 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 3 * 10 - 9), Point(4 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 2 * 10 - 9), Point(4 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 1 * 10 - 9), Point(4 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 10 * 10 - 9), Point(3 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 9 * 10 - 9), Point(3 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 8 * 10 - 9), Point(3 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 7 * 10 - 9), Point(3 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 6 * 10 - 9), Point(3 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 5 * 10 - 9), Point(3 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 4 * 10 - 9), Point(3 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 3 * 10 - 9), Point(3 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 2 * 10 - 9), Point(3 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 1 * 10 - 9), Point(3 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 10 * 10 - 9), Point(2 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 9 * 10 - 9), Point(2 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 8 * 10 - 9), Point(2 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 7 * 10 - 9), Point(2 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 6 * 10 - 9), Point(2 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 5 * 10 - 9), Point(2 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 4 * 10 - 9), Point(2 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 3 * 10 - 9), Point(2 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 2 * 10 - 9), Point(2 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 1 * 10 - 9), Point(2 * 10, 1 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 10 * 10 - 9), Point(1 * 10, 10 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 9 * 10 - 9), Point(1 * 10, 9 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 8 * 10 - 9), Point(1 * 10, 8 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 7 * 10 - 9), Point(1 * 10, 7 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 6 * 10 - 9), Point(1 * 10, 6 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 5 * 10 - 9), Point(1 * 10, 5 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 4 * 10 - 9), Point(1 * 10, 4 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 3 * 10 - 9), Point(1 * 10, 3 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 2 * 10 - 9), Point(1 * 10, 2 * 10))); +INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 1 * 10 - 9), Point(1 * 10, 1 * 10))); +ALTER TABLE t2 ADD SPATIAL KEY(g); +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `fid` int(11) NOT NULL AUTO_INCREMENT, + `g` geometry NOT NULL, + PRIMARY KEY (`fid`), + SPATIAL KEY `g` (`g`) +) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=latin1 +SELECT count(*) FROM t2; +count(*) +100 +SELECT fid, ST_AsText(g) FROM t2 WHERE MBRWithin(g, +ST_GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')) ORDER BY fid; +fid ST_AsText(g) +45 LINESTRING(51 51,60 60) +46 LINESTRING(51 41,60 50) +55 LINESTRING(41 51,50 60) +56 LINESTRING(41 41,50 50) +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 7 * 10 - 9), Point(10 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 6 * 10 - 9), Point(10 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 5 * 10 - 9), Point(10 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 4 * 10 - 9), Point(10 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 3 * 10 - 9), Point(10 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 2 * 10 - 9), Point(10 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(10 * 10 - 9, 1 * 10 - 9), Point(10 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 10 * 10 - 9), Point(9 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 9 * 10 - 9), Point(9 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 8 * 10 - 9), Point(9 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 7 * 10 - 9), Point(9 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 6 * 10 - 9), Point(9 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 5 * 10 - 9), Point(9 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 4 * 10 - 9), Point(9 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 3 * 10 - 9), Point(9 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 2 * 10 - 9), Point(9 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(9 * 10 - 9, 1 * 10 - 9), Point(9 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 10 * 10 - 9), Point(8 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 9 * 10 - 9), Point(8 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 8 * 10 - 9), Point(8 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 7 * 10 - 9), Point(8 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 6 * 10 - 9), Point(8 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 5 * 10 - 9), Point(8 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 4 * 10 - 9), Point(8 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 3 * 10 - 9), Point(8 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 2 * 10 - 9), Point(8 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(8 * 10 - 9, 1 * 10 - 9), Point(8 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 10 * 10 - 9), Point(7 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 9 * 10 - 9), Point(7 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 8 * 10 - 9), Point(7 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 7 * 10 - 9), Point(7 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 6 * 10 - 9), Point(7 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 5 * 10 - 9), Point(7 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 4 * 10 - 9), Point(7 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 3 * 10 - 9), Point(7 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 2 * 10 - 9), Point(7 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(7 * 10 - 9, 1 * 10 - 9), Point(7 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 10 * 10 - 9), Point(6 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 9 * 10 - 9), Point(6 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 8 * 10 - 9), Point(6 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 7 * 10 - 9), Point(6 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 6 * 10 - 9), Point(6 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 5 * 10 - 9), Point(6 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 4 * 10 - 9), Point(6 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 3 * 10 - 9), Point(6 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 2 * 10 - 9), Point(6 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(6 * 10 - 9, 1 * 10 - 9), Point(6 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 10 * 10 - 9), Point(5 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 9 * 10 - 9), Point(5 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 8 * 10 - 9), Point(5 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 7 * 10 - 9), Point(5 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 6 * 10 - 9), Point(5 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 5 * 10 - 9), Point(5 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 4 * 10 - 9), Point(5 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 3 * 10 - 9), Point(5 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 2 * 10 - 9), Point(5 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(5 * 10 - 9, 1 * 10 - 9), Point(5 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 10 * 10 - 9), Point(4 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 9 * 10 - 9), Point(4 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 8 * 10 - 9), Point(4 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 7 * 10 - 9), Point(4 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 6 * 10 - 9), Point(4 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 5 * 10 - 9), Point(4 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 4 * 10 - 9), Point(4 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 3 * 10 - 9), Point(4 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 2 * 10 - 9), Point(4 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(4 * 10 - 9, 1 * 10 - 9), Point(4 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 10 * 10 - 9), Point(3 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 9 * 10 - 9), Point(3 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 8 * 10 - 9), Point(3 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 7 * 10 - 9), Point(3 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 6 * 10 - 9), Point(3 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 5 * 10 - 9), Point(3 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 4 * 10 - 9), Point(3 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 3 * 10 - 9), Point(3 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 2 * 10 - 9), Point(3 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(3 * 10 - 9, 1 * 10 - 9), Point(3 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 10 * 10 - 9), Point(2 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 9 * 10 - 9), Point(2 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 8 * 10 - 9), Point(2 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 7 * 10 - 9), Point(2 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 6 * 10 - 9), Point(2 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 5 * 10 - 9), Point(2 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 4 * 10 - 9), Point(2 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 3 * 10 - 9), Point(2 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 2 * 10 - 9), Point(2 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(2 * 10 - 9, 1 * 10 - 9), Point(2 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 10 * 10 - 9), Point(1 * 10, 10 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 9 * 10 - 9), Point(1 * 10, 9 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 8 * 10 - 9), Point(1 * 10, 8 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 7 * 10 - 9), Point(1 * 10, 7 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 6 * 10 - 9), Point(1 * 10, 6 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 5 * 10 - 9), Point(1 * 10, 5 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 4 * 10 - 9), Point(1 * 10, 4 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 3 * 10 - 9), Point(1 * 10, 3 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 2 * 10 - 9), Point(1 * 10, 2 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point(1 * 10 - 9, 1 * 10 - 9), Point(1 * 10, 1 * 10)))); +Warnings: +Warning 3196 st_geometryfromwkb(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), srid) instead. +SELECT count(*) FROM t2; +count(*) +100 +DROP TABLE t2; +drop table if exists t1; +Warnings: +Note 1051 Unknown table 'test.t1' +CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a)); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +drop table t1; +CREATE TABLE t1 ( +fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, +g GEOMETRY NOT NULL, +SPATIAL KEY(g) +) ENGINE=InnoDB; +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(1 2, 2 3)')),(ST_GeomFromText('LineString(1 2, 2 4)')); +drop table t1; +CREATE TABLE t1 ( +line LINESTRING NOT NULL, +kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po', +name VARCHAR(32), +SPATIAL KEY (line) +) engine=InnoDB; +ALTER TABLE t1 DISABLE KEYS; +Warnings: +Note 1031 Table storage engine for 't1' doesn't have this option +INSERT INTO t1 (name, kind, line) VALUES +("Aadaouane", "pp", ST_GeomFromText("POINT(32.816667 35.983333)")), +("Aadassiye", "pp", ST_GeomFromText("POINT(35.816667 36.216667)")), +("Aadbel", "pp", ST_GeomFromText("POINT(34.533333 36.100000)")), +("Aadchit", "pp", ST_GeomFromText("POINT(33.347222 35.423611)")), +("Aadchite", "pp", ST_GeomFromText("POINT(33.347222 35.423611)")), +("Aadchit el Qoussair", "pp", ST_GeomFromText("POINT(33.283333 35.483333)")), +("Aaddaye", "pp", ST_GeomFromText("POINT(36.716667 40.833333)")), +("'Aadeissa", "pp", ST_GeomFromText("POINT(32.823889 35.698889)")), +("Aaderup", "pp", ST_GeomFromText("POINT(55.216667 11.766667)")), +("Qalaat Aades", "pp", ST_GeomFromText("POINT(33.503333 35.377500)")), +("A ad'ino", "pp", ST_GeomFromText("POINT(54.812222 38.209167)")), +("Aadi Noia", "pp", ST_GeomFromText("POINT(13.800000 39.833333)")), +("Aad La Macta", "pp", ST_GeomFromText("POINT(35.779444 -0.129167)")), +("Aadland", "pp", ST_GeomFromText("POINT(60.366667 5.483333)")), +("Aadliye", "pp", ST_GeomFromText("POINT(33.366667 36.333333)")), +("Aadloun", "pp", ST_GeomFromText("POINT(33.403889 35.273889)")), +("Aadma", "pp", ST_GeomFromText("POINT(58.798333 22.663889)")), +("Aadma Asundus", "pp", ST_GeomFromText("POINT(58.798333 22.663889)")), +("Aadmoun", "pp", ST_GeomFromText("POINT(34.150000 35.650000)")), +("Aadneram", "pp", ST_GeomFromText("POINT(59.016667 6.933333)")), +("Aadneskaar", "pp", ST_GeomFromText("POINT(58.083333 6.983333)")), +("Aadorf", "pp", ST_GeomFromText("POINT(47.483333 8.900000)")), +("Aadorp", "pp", ST_GeomFromText("POINT(52.366667 6.633333)")), +("Aadouane", "pp", ST_GeomFromText("POINT(32.816667 35.983333)")), +("Aadoui", "pp", ST_GeomFromText("POINT(34.450000 35.983333)")), +("Aadouiye", "pp", ST_GeomFromText("POINT(34.583333 36.183333)")), +("Aadouss", "pp", ST_GeomFromText("POINT(33.512500 35.601389)")), +("Aadra", "pp", ST_GeomFromText("POINT(33.616667 36.500000)")), +("Aadzi", "pp", ST_GeomFromText("POINT(38.100000 64.850000)")); +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +ALTER TABLE t1 ENABLE KEYS; +Warnings: +Note 1031 Table storage engine for 't1' doesn't have this option +INSERT INTO t1 (name, kind, line) VALUES ("austria", "pp", ST_GeomFromText('LINESTRING(14.9906 48.9887,14.9946 48.9904,14.9947 48.9916)')); +drop table t1; +CREATE TABLE t1 (st varchar(100)); +INSERT INTO t1 VALUES ("Fake string"); +CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)); +INSERT INTO t2 SELECT ST_GeomFromText(st) FROM t1; +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +drop table t1, t2; +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; +Warnings: +Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. +CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; +Warnings: +Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'geometry' can't have a default value +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000 +-66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999, +-18.6086111000 -66.9327777000))')); +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((-65.7402776999 -96.6686111000, -65.7372222000 +-96.5516666000, -65.8502777000 -96.5461111000, -65.8527777000 -96.6627777000, +-65.7402776999 -96.6686111000))')); +check table t1 extended; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; +CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; +Warnings: +Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'geometry' can't have a default value +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((2 2, 2 8, 10 8, 10 2, 2 2))')); +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((2 12, 15 12, 15 18, 2 18, 2 12))')); +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((3 5, 3 18, 10 18, 10 5, 3 5))')); +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((4 6, 4 8, 10 8, 10 4, 4 6))')); +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.geometry, @g1); +count(*) +4 +start transaction; +INSERT INTO t1 (geometry) VALUES +(ST_PolygonFromText('POLYGON((4 6, 4 8, 10 8, 10 4, 4 6))')); +select count(*) from t1 where MBRWithin(t1.geometry, @g1); +count(*) +5 +rollback; +select count(*) from t1 where MBRWithin(t1.geometry, @g1); +count(*) +4 +set @g2 = ST_GeomFromText('POINT(2 2)'); +select count(*) from t1 where MBRcontains(t1.geometry, @g2); +count(*) +0 +select count(*) from t1 where MBRintersects(t1.geometry, @g2); +count(*) +1 +set @g3 = ST_GeomFromText('LINESTRING(2 2, 2 12)'); +select count(*) from t1 where MBRintersects(t1.geometry, @g3); +count(*) +2 +DROP TABLE t1; +CREATE TABLE t1 ( +c1 geometry NOT NULL default '', +SPATIAL KEY i1 (c1) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +Warnings: +Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'c1' can't have a default value +INSERT INTO t1 (c1) VALUES ( +ST_PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, + -18.6055555000 -66.8158332999, + -18.7186111000 -66.8102777000, + -18.7211111000 -66.9269443999, + -18.6086111000 -66.9327777000))')); +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; +CREATE TABLE t1 ( +c1 geometry NOT NULL default '', +SPATIAL KEY i1 (c1) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +Warnings: +Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'c1' can't have a default value +INSERT INTO t1 (c1) VALUES ( +ST_PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, + -18.6055555000 -66.8158332999, + -18.7186111000 -66.8102777000, + -18.7211111000 -66.9269443999, + -18.6086111000 -66.9327777000))')); +INSERT INTO t1 (c1) VALUES ( +ST_PolygonFromText('POLYGON((-65.7402776999 -96.6686111000, + -65.7372222000 -96.5516666000, + -65.8502777000 -96.5461111000, + -65.8527777000 -96.6627777000, + -65.7402776999 -96.6686111000))')); +INSERT INTO t1 (c1) VALUES ( +ST_PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, + -18.6055555000 -66.8158332999, + -18.7186111000 -66.8102777000, + -18.7211111000 -66.9269443999, + -18.6086111000 -66.9327777000))')); +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; +SET sql_mode = default; +CREATE TABLE t1 (foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ); +INSERT INTO t1 (foo) VALUES (POINT(1,1)); +INSERT INTO t1 (foo) VALUES (POINT(1,0)); +INSERT INTO t1 (foo) VALUES (POINT(0,1)); +INSERT INTO t1 (foo) VALUES (POINT(0,0)); +SELECT 1 FROM t1 WHERE foo != POINT(0,0); +1 +1 +1 +1 +DROP TABLE t1; +CREATE TABLE t1 (id bigint(12) unsigned NOT NULL auto_increment, +c2 varchar(15) collate utf8_bin default NULL, +c1 varchar(15) collate utf8_bin default NULL, +c3 varchar(10) collate utf8_bin default NULL, +spatial_point point NOT NULL, +PRIMARY KEY(id), +SPATIAL KEY (spatial_point) +)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), +('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), +('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), +('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), +('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), +('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), +('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), +('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), +('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), +('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), +('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), +('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), +('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), +('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), +('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), +('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), +('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), +('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), +('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), +('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), +('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), +('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), +('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), +('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), +('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), +('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), +('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), +('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), +('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), +('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), +('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), +('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), +('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), +('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), +('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), +('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), +('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), +('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), +('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), +('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), +('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), +('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), +('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), +('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), +('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), +('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), +('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), +('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), +('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), +('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), +('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), +('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), +('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), +('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), +('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), +('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), +('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), +('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), +('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), +('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), +('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), +('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), +('b', 's', 's', ST_GeomFromText('POINT(223 211)')), +('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), +('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), +('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), +('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), +('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), +('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), +('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), +('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), +('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), +('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), +('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), +('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), +('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), +('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), +('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), +('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), +('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), +('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), +('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), +('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), +('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), +('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), +('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), +('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), +('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), +('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), +('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), +('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), +('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), +('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), +('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), +('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), +('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), +('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), +('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), +('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), +('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +SET @@RAND_SEED1=692635050, @@RAND_SEED2=297339954; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=159925977, @@RAND_SEED2=942570618; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=328169745, @@RAND_SEED2=410451954; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=178507359, @@RAND_SEED2=332493072; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=1034033013, @@RAND_SEED2=558966507; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(230 9)') where c1 like 'y%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(95 35)') where c1 like 'j%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(93 99)') where c1 like 'a%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(19 81)') where c1 like 'r%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(20 177)') where c1 like 'h%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(221 193)') where c1 like 'u%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(195 205)') where c1 like 'd%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(15 213)') where c1 like 'u%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(214 63)') where c1 like 'n%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(243 171)') where c1 like 'c%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(198 82)') where c1 like 'y%'; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), +('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), +('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), +('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), +('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), +('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), +('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), +('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), +('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), +('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), +('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), +('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), +('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), +('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), +('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), +('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), +('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), +('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), +('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), +('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), +('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), +('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), +('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), +('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), +('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), +('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), +('z', 't', 't', ST_GeomFromText('POINT(99 134)')), +('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), +('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), +('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), +('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), +('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), +('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), +('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), +('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), +('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), +('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), +('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), +('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), +('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), +('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), +('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), +('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), +('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), +('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), +('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), +('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), +('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), +('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), +('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), +('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), +('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), +('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), +('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), +('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), +('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), +('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), +('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), +('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), +('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), +('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), +('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), +('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), +('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), +('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), +('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), +('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), +('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), +('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), +('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), +('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), +('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), +('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), +('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), +('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), +('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), +('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), +('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), +('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), +('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), +('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), +('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), +('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), +('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), +('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), +('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), +('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), +('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), +('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), +('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), +('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), +('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), +('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), +('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), +('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), +('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), +('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), +('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), +('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), +('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), +('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), +('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), +('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), +('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), +('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), +('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), +('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), +('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), +('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), +('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), +('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), +('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), +('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), +('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), +('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), +('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), +('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), +('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), +('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), +('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), +('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), +('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), +('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), +('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), +('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), +('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), +('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), +('m', 's', 's', ST_GeomFromText('POINT(172 149)')), +('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), +('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), +('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), +('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), +('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), +('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), +('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), +('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), +('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), +('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), +('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), +('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), +('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), +('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), +('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), +('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), +('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), +('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), +('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), +('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), +('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(163 157)') where c1 like 'w%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(53 151)') where c1 like 'd%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(96 183)') where c1 like 'r%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(57 91)') where c1 like 'q%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(202 110)') where c1 like 'c%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(120 137)') where c1 like 'w%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(207 147)') where c1 like 'c%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(31 125)') where c1 like 'e%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(27 36)') where c1 like 'r%'; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), +('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), +('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), +('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), +('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), +('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), +('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), +('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), +('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), +('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), +('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), +('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), +('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), +('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), +('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), +('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), +('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), +('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), +('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), +('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), +('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), +('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), +('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), +('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), +('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), +('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), +('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), +('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), +('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), +('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), +('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), +('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), +('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), +('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), +('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), +('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), +('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), +('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), +('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), +('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), +('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), +('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), +('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), +('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), +('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), +('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), +('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), +('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), +('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), +('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), +('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), +('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), +('l', 's', 't', ST_GeomFromText('POINT(83 18)')), +('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), +('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), +('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), +('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), +('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), +('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), +('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), +('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), +('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), +('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), +('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), +('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), +('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), +('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), +('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), +('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), +('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), +('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), +('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), +('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), +('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), +('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), +('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), +('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), +('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), +('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), +('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), +('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), +('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), +('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), +('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), +('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), +('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), +('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), +('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), +('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), +('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), +('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), +('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), +('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), +('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), +('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), +('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), +('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), +('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), +('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), +('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); +SET @@RAND_SEED1=481064922, @@RAND_SEED2=438133497; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=280535103, @@RAND_SEED2=444518646; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=1072017234, @@RAND_SEED2=484203885; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=358851897, @@RAND_SEED2=358495224; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +SET @@RAND_SEED1=509031459, @@RAND_SEED2=675962925; +DELETE FROM t1 ORDER BY RAND() LIMIT 10; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(202 194)') where c1 like 'f%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(228 18)') where c1 like 'h%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(88 18)') where c1 like 'l%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(176 94)') where c1 like 'e%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(44 47)') where c1 like 'g%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(95 191)') where c1 like 'b%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(179 218)') where c1 like 'y%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(239 40)') where c1 like 'g%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(248 41)') where c1 like 'q%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(167 82)') where c1 like 't%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(13 104)') where c1 like 'u%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(139 84)') where c1 like 'a%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(145 108)') where c1 like 'p%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(147 57)') where c1 like 't%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(217 144)') where c1 like 'n%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(160 224)') where c1 like 'w%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(38 28)') where c1 like 'j%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(104 114)') where c1 like 'q%'; +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(88 19)') where c1 like 'c%'; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')), +('s', 'i', 'c', ST_GeomFromText('POINT(49 60)')), +('c', 'c', 'i', ST_GeomFromText('POINT(7 57)')), +('n', 'g', 'k', ST_GeomFromText('POINT(252 105)')), +('g', 'b', 'm', ST_GeomFromText('POINT(180 11)')), +('u', 'l', 'r', ST_GeomFromText('POINT(32 90)')), +('c', 'x', 'e', ST_GeomFromText('POINT(143 24)')), +('x', 'u', 'a', ST_GeomFromText('POINT(123 92)')), +('s', 'b', 'h', ST_GeomFromText('POINT(190 108)')), +('c', 'x', 'b', ST_GeomFromText('POINT(104 100)')), +('i', 'd', 't', ST_GeomFromText('POINT(214 104)')), +('r', 'w', 'g', ST_GeomFromText('POINT(29 67)')), +('b', 'f', 'g', ST_GeomFromText('POINT(149 46)')), +('r', 'r', 'd', ST_GeomFromText('POINT(242 196)')), +('j', 'l', 'a', ST_GeomFromText('POINT(90 196)')), +('e', 't', 'b', ST_GeomFromText('POINT(190 64)')), +('l', 'x', 'w', ST_GeomFromText('POINT(250 73)')), +('q', 'y', 'r', ST_GeomFromText('POINT(120 182)')), +('s', 'j', 'a', ST_GeomFromText('POINT(180 175)')), +('n', 'i', 'y', ST_GeomFromText('POINT(124 136)')), +('s', 'x', 's', ST_GeomFromText('POINT(176 209)')), +('u', 'f', 's', ST_GeomFromText('POINT(215 173)')), +('m', 'j', 'x', ST_GeomFromText('POINT(44 140)')), +('v', 'g', 'x', ST_GeomFromText('POINT(177 233)')), +('u', 't', 'b', ST_GeomFromText('POINT(136 197)')), +('f', 'g', 'b', ST_GeomFromText('POINT(10 8)')), +('v', 'c', 'j', ST_GeomFromText('POINT(13 81)')), +('d', 's', 'q', ST_GeomFromText('POINT(200 100)')), +('a', 'p', 'j', ST_GeomFromText('POINT(33 40)')), +('i', 'c', 'g', ST_GeomFromText('POINT(168 204)')), +('k', 'h', 'i', ST_GeomFromText('POINT(93 243)')), +('s', 'b', 's', ST_GeomFromText('POINT(157 13)')), +('v', 'l', 'l', ST_GeomFromText('POINT(103 6)')), +('r', 'b', 'k', ST_GeomFromText('POINT(244 137)')), +('l', 'd', 'r', ST_GeomFromText('POINT(162 254)')), +('q', 'b', 'z', ST_GeomFromText('POINT(136 246)')), +('x', 'x', 'p', ST_GeomFromText('POINT(120 37)')), +('m', 'e', 'z', ST_GeomFromText('POINT(203 167)')), +('q', 'n', 'p', ST_GeomFromText('POINT(94 119)')), +('b', 'g', 'u', ST_GeomFromText('POINT(93 248)')), +('r', 'v', 'v', ST_GeomFromText('POINT(53 88)')), +('y', 'a', 'i', ST_GeomFromText('POINT(98 219)')), +('a', 's', 'g', ST_GeomFromText('POINT(173 138)')), +('c', 'a', 't', ST_GeomFromText('POINT(235 135)')), +('q', 'm', 'd', ST_GeomFromText('POINT(224 208)')), +('e', 'p', 'k', ST_GeomFromText('POINT(161 238)')), +('n', 'g', 'q', ST_GeomFromText('POINT(35 204)')), +('t', 't', 'x', ST_GeomFromText('POINT(230 178)')), +('w', 'f', 'a', ST_GeomFromText('POINT(150 221)')), +('z', 'm', 'z', ST_GeomFromText('POINT(119 42)')), +('l', 'j', 's', ST_GeomFromText('POINT(97 96)')), +('f', 'z', 'x', ST_GeomFromText('POINT(208 65)')), +('i', 'v', 'c', ST_GeomFromText('POINT(145 79)')), +('l', 'f', 'k', ST_GeomFromText('POINT(83 234)')), +('u', 'a', 's', ST_GeomFromText('POINT(250 49)')), +('o', 'k', 'p', ST_GeomFromText('POINT(46 50)')), +('d', 'e', 'z', ST_GeomFromText('POINT(30 198)')), +('r', 'r', 'l', ST_GeomFromText('POINT(78 189)')), +('y', 'l', 'f', ST_GeomFromText('POINT(188 132)')), +('d', 'q', 'm', ST_GeomFromText('POINT(247 107)')), +('p', 'j', 'n', ST_GeomFromText('POINT(148 227)')), +('b', 'o', 'i', ST_GeomFromText('POINT(172 25)')), +('e', 'v', 'd', ST_GeomFromText('POINT(94 248)')), +('q', 'd', 'f', ST_GeomFromText('POINT(15 29)')), +('w', 'b', 'b', ST_GeomFromText('POINT(74 111)')), +('g', 'q', 'f', ST_GeomFromText('POINT(107 215)')), +('o', 'h', 'r', ST_GeomFromText('POINT(25 168)')), +('u', 't', 'w', ST_GeomFromText('POINT(251 188)')), +('h', 's', 'w', ST_GeomFromText('POINT(254 247)')), +('f', 'f', 'b', ST_GeomFromText('POINT(166 103)')); +SET @@RAND_SEED1=866613816, @@RAND_SEED2=92289615; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES +('l', 'c', 'l', ST_GeomFromText('POINT(202 98)')), +('k', 'c', 'b', ST_GeomFromText('POINT(46 206)')), +('r', 'y', 'm', ST_GeomFromText('POINT(74 140)')), +('y', 'z', 'd', ST_GeomFromText('POINT(200 160)')), +('s', 'y', 's', ST_GeomFromText('POINT(156 205)')), +('u', 'v', 'p', ST_GeomFromText('POINT(86 82)')), +('j', 's', 's', ST_GeomFromText('POINT(91 233)')), +('x', 'j', 'f', ST_GeomFromText('POINT(3 14)')), +('l', 'z', 'v', ST_GeomFromText('POINT(123 156)')), +('h', 'i', 'o', ST_GeomFromText('POINT(145 229)')), +('o', 'r', 'd', ST_GeomFromText('POINT(15 22)')), +('f', 'x', 't', ST_GeomFromText('POINT(21 60)')), +('t', 'g', 'h', ST_GeomFromText('POINT(50 153)')), +('g', 'u', 'b', ST_GeomFromText('POINT(82 85)')), +('v', 'a', 'p', ST_GeomFromText('POINT(231 178)')), +('n', 'v', 'o', ST_GeomFromText('POINT(183 25)')), +('j', 'n', 'm', ST_GeomFromText('POINT(50 144)')), +('e', 'f', 'i', ST_GeomFromText('POINT(46 16)')), +('d', 'w', 'a', ST_GeomFromText('POINT(66 6)')), +('f', 'x', 'a', ST_GeomFromText('POINT(107 197)')), +('m', 'o', 'a', ST_GeomFromText('POINT(142 80)')), +('q', 'l', 'g', ST_GeomFromText('POINT(251 23)')), +('c', 's', 's', ST_GeomFromText('POINT(158 43)')), +('y', 'd', 'o', ST_GeomFromText('POINT(196 228)')), +('d', 'p', 'l', ST_GeomFromText('POINT(107 5)')), +('h', 'a', 'b', ST_GeomFromText('POINT(183 166)')), +('m', 'w', 'p', ST_GeomFromText('POINT(19 59)')), +('b', 'y', 'o', ST_GeomFromText('POINT(178 30)')), +('x', 'w', 'i', ST_GeomFromText('POINT(168 94)')), +('t', 'k', 'z', ST_GeomFromText('POINT(171 5)')), +('r', 'm', 'a', ST_GeomFromText('POINT(222 19)')), +('u', 'v', 'e', ST_GeomFromText('POINT(224 80)')), +('q', 'r', 'k', ST_GeomFromText('POINT(212 218)')), +('d', 'p', 'j', ST_GeomFromText('POINT(169 7)')), +('d', 'r', 'v', ST_GeomFromText('POINT(193 23)')), +('n', 'y', 'y', ST_GeomFromText('POINT(130 178)')), +('m', 'z', 'r', ST_GeomFromText('POINT(81 200)')), +('j', 'e', 'w', ST_GeomFromText('POINT(145 239)')), +('v', 'h', 'x', ST_GeomFromText('POINT(24 105)')), +('z', 'm', 'a', ST_GeomFromText('POINT(175 129)')), +('b', 'c', 'v', ST_GeomFromText('POINT(213 10)')), +('t', 't', 'u', ST_GeomFromText('POINT(2 129)')), +('r', 's', 'v', ST_GeomFromText('POINT(209 192)')), +('x', 'p', 'g', ST_GeomFromText('POINT(43 63)')), +('t', 'e', 'u', ST_GeomFromText('POINT(139 210)')), +('l', 'e', 't', ST_GeomFromText('POINT(245 148)')), +('a', 'i', 'k', ST_GeomFromText('POINT(167 195)')), +('m', 'o', 'h', ST_GeomFromText('POINT(206 120)')), +('g', 'z', 's', ST_GeomFromText('POINT(169 240)')), +('z', 'u', 's', ST_GeomFromText('POINT(202 120)')), +('i', 'b', 'a', ST_GeomFromText('POINT(216 18)')), +('w', 'y', 'g', ST_GeomFromText('POINT(119 236)')), +('h', 'y', 'p', ST_GeomFromText('POINT(161 24)')); +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(33 100)') where c1 like 't%'; +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +UPDATE t1 set spatial_point=ST_GeomFromText('POINT(41 46)') where c1 like 'f%'; +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; +create table t1 (a geometry not null, spatial index(a)); +insert into t1 values (POINT(1.1517219314031e+164, 131072)); +insert into t1 values (POINT(9.1248812352444e+192, 2.9740338169556e+284)); +insert into t1 values (POINT(4.7783097267365e-299, -0)); +insert into t1 values (POINT(1.49166814624e-154, 2.0880974297595e-53)); +insert into t1 values (POINT(4.0917382598702e+149, 1.2024538023802e+111)); +insert into t1 values (POINT(2.0349165139404e+236, 2.9993936277913e-241)); +insert into t1 values (POINT(2.5243548967072e-29, 1.2024538023802e+111)); +insert into t1 values (POINT(0, 6.9835074892995e-251)); +insert into t1 values (POINT(2.0880974297595e-53, 3.1050361846014e+231)); +insert into t1 values (POINT(2.8728483499323e-188, 2.4600631144627e+260)); +insert into t1 values (POINT(3.0517578125e-05, 2.0349165139404e+236)); +insert into t1 values (POINT(1.1517219314031e+164, 1.1818212630766e-125)); +insert into t1 values (POINT(2.481040258324e-265, 5.7766220027675e-275)); +insert into t1 values (POINT(2.0880974297595e-53, 2.5243548967072e-29)); +insert into t1 values (POINT(5.7766220027675e-275, 9.9464647281957e+86)); +insert into t1 values (POINT(2.2181357552967e+130, 3.7857669957337e-270)); +insert into t1 values (POINT(4.5767114681874e-246, 3.6893488147419e+19)); +insert into t1 values (POINT(4.5767114681874e-246, 3.7537584144024e+255)); +insert into t1 values (POINT(3.7857669957337e-270, 1.8033161362863e-130)); +insert into t1 values (POINT(0, 5.8774717541114e-39)); +insert into t1 values (POINT(1.1517219314031e+164, 2.2761049594727e-159)); +insert into t1 values (POINT(6.243497100632e+144, 3.7857669957337e-270)); +insert into t1 values (POINT(3.7857669957337e-270, 2.6355494858076e-82)); +insert into t1 values (POINT(2.0349165139404e+236, 3.8518598887745e-34)); +insert into t1 values (POINT(4.6566128730774e-10, 2.0880974297595e-53)); +insert into t1 values (POINT(2.0880974297595e-53, 1.8827498946116e-183)); +insert into t1 values (POINT(1.8033161362863e-130, 9.1248812352444e+192)); +insert into t1 values (POINT(4.7783097267365e-299, 2.2761049594727e-159)); +insert into t1 values (POINT(1.94906280228e+289, 1.2338789709327e-178)); +drop table t1; +CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ); +INSERT INTO t1(foo) VALUES (NULL); +ERROR 23000: Column 'foo' cannot be null +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; +Warnings: +Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. +INSERT INTO t1() VALUES (); +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +SET sql_mode = default; +INSERT INTO t1(foo) VALUES (''); +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +DROP TABLE t1; +CREATE TABLE t1 (a INT AUTO_INCREMENT, b POINT NOT NULL, KEY (a), SPATIAL KEY (b)); +INSERT INTO t1 (b) VALUES (ST_GeomFromText('POINT(1 2)')); +INSERT INTO t1 (b) SELECT b FROM t1; +INSERT INTO t1 (b) SELECT b FROM t1; +INSERT INTO t1 (b) SELECT b FROM t1; +INSERT INTO t1 (b) SELECT b FROM t1; +INSERT INTO t1 (b) SELECT b FROM t1; +OPTIMIZE TABLE t1; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize, doing recreate + analyze instead +test.t1 optimize status OK +DROP TABLE t1; +CREATE TABLE t1 (a INT, b GEOMETRY NOT NULL, SPATIAL KEY b(b)); +INSERT INTO t1 VALUES (1, ST_GEOMFROMTEXT('LINESTRING(1102218.456 1,2000000 2)')); +INSERT INTO t1 VALUES (2, ST_GEOMFROMTEXT('LINESTRING(1102218.456 1,2000000 2)')); +SELECT COUNT(*) FROM t1 WHERE +MBRINTERSECTS(b, ST_GEOMFROMTEXT('LINESTRING(1 1,1102219 2)') ); +COUNT(*) +2 +SELECT COUNT(*) FROM t1 IGNORE INDEX (b) WHERE +MBRINTERSECTS(b, ST_GEOMFROMTEXT('LINESTRING(1 1,1102219 2)') ); +COUNT(*) +2 +DROP TABLE t1; +# +# Bug #48258: Assertion failed when using a spatial index +# +CREATE TABLE t1(a LINESTRING NOT NULL, SPATIAL KEY(a)); +INSERT INTO t1 VALUES +(ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)')), +(ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)')); +EXPLAIN SELECT 1 FROM t1 WHERE a = ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 NULL ALL a NULL NULL NULL 2 50.00 Using where +Warnings: +Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` where (`test`.`t1`.`a` = (st_geometryfromtext('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'))) +SELECT 1 FROM t1 WHERE a = ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +1 +1 +1 +EXPLAIN SELECT 1 FROM t1 WHERE a < ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to < +SELECT 1 FROM t1 WHERE a < ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to < +EXPLAIN SELECT 1 FROM t1 WHERE a <= ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to <= +SELECT 1 FROM t1 WHERE a <= ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to <= +EXPLAIN SELECT 1 FROM t1 WHERE a > ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to > +SELECT 1 FROM t1 WHERE a > ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to > +EXPLAIN SELECT 1 FROM t1 WHERE a >= ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to >= +SELECT 1 FROM t1 WHERE a >= ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +ERROR HY000: Incorrect arguments to >= +DROP TABLE t1; +# +# Bug #51357: crash when using handler commands on spatial indexes +# +CREATE TABLE t1(a GEOMETRY NOT NULL,SPATIAL INDEX a(a)); +HANDLER t1 OPEN; +HANDLER t1 READ a FIRST; +a +HANDLER t1 READ a NEXT; +a +HANDLER t1 READ a PREV; +a +HANDLER t1 READ a LAST; +a +HANDLER t1 CLOSE; +HANDLER t1 OPEN; +HANDLER t1 READ a FIRST; +a +INSERT INTO t1 VALUES (ST_GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); +# should not crash +HANDLER t1 READ a NEXT; +HANDLER t1 CLOSE; +DROP TABLE t1; +End of 5.0 tests. +# +# Bug #57323/11764487: myisam corruption with insert ignore +# and invalid spatial data +# +CREATE TABLE t1(a LINESTRING NOT NULL, b GEOMETRY NOT NULL, +SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=InnoDB; +INSERT INTO t1 VALUES(ST_GEOMFROMTEXT("point (0 0)"), ST_GEOMFROMTEXT("point (1 1)")); +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +INSERT IGNORE INTO t1 SET a=ST_GEOMFROMTEXT("point (-6 0)"), b=ST_GEOMFROMTEXT("error"); +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +INSERT IGNORE INTO t1 SET a=ST_GEOMFROMTEXT("point (-6 0)"), b=NULL; +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +SELECT ST_ASTEXT(a), ST_ASTEXT(b) FROM t1; +ST_ASTEXT(a) ST_ASTEXT(b) +DROP TABLE t1; +CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL, +KEY(a), SPATIAL KEY(b)) ENGINE=InnoDB; +INSERT INTO t1 VALUES(0, ST_GEOMFROMTEXT("point (1 1)")); +INSERT IGNORE INTO t1 SET a=0, b=ST_GEOMFROMTEXT("error"); +ERROR 22023: Invalid GIS data provided to function st_geometryfromtext. +INSERT IGNORE INTO t1 SET a=1, b=NULL; +ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field +SELECT a, ST_ASTEXT(b) FROM t1; +a ST_ASTEXT(b) +0 POINT(1 1) +DROP TABLE t1; +End of 5.1 tests diff --git a/mysql-test/suite/innodb_gis/r/rtree_purge.result b/mysql-test/suite/innodb_gis/r/rtree_purge.result new file mode 100644 index 00000000000..3d8b226af71 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_purge.result @@ -0,0 +1,23 @@ +create table t ( +a point not null,b point not null,c point, +d point not null,e point,f point, +spatial key (d),spatial key (b) +) engine=innodb; +create procedure p(i int) +begin +declare n int default 0; +declare continue handler for sqlexception begin end; +delete from t; +repeat +set @p=point(1,1); +insert into t values(@p,@p,@p,@p,@p,@p); +insert into t values(@p,@p,@p,@p,@p,@p); +insert into t select @p,@p,@p,@p,@p,@p +from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j; +delete from t; +set n:=n+1; +until n >= i end repeat; +end| +call p(200); +drop procedure p; +drop table t; diff --git a/mysql-test/suite/innodb_gis/r/rtree_recovery.result b/mysql-test/suite/innodb_gis/r/rtree_recovery.result new file mode 100644 index 00000000000..d2f4409f38c --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_recovery.result @@ -0,0 +1,61 @@ +# restart +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +create procedure update_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +update t1 set c2 = Point(i + 10000, i + 10000) where c2 = Point(i, i); +set i = i + 1; +end while; +end| +CALL insert_t1(367); +COMMIT; +# Kill and restart +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; +create table t1 (c1 int, c2 point not null, spatial index (c2))engine=innodb; +CALL insert_t1(367); +CALL update_t1(367); +SET @poly1 = ST_GeomFromText('POLYGON((10000 10000, 10000 10350, 10350 10350, 10350 10000, 10000 10000))'); +delete from t1 where ST_Contains(@poly1, c2); +COMMIT; +# Kill and restart +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +select count(*) from t1; +count(*) +18 +select c1, ST_astext(c2) from t1; +c1 ST_astext(c2) +350 POINT(10350 10350) +351 POINT(10351 10351) +352 POINT(10352 10352) +353 POINT(10353 10353) +354 POINT(10354 10354) +355 POINT(10355 10355) +356 POINT(10356 10356) +357 POINT(10357 10357) +358 POINT(10358 10358) +359 POINT(10359 10359) +360 POINT(10360 10360) +361 POINT(10361 10361) +362 POINT(10362 10362) +363 POINT(10363 10363) +364 POINT(10364 10364) +365 POINT(10365 10365) +366 POINT(10366 10366) +367 POINT(10367 10367) +drop procedure insert_t1; +drop procedure update_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_rollback1.result b/mysql-test/suite/innodb_gis/r/rtree_rollback1.result new file mode 100644 index 00000000000..451d277cbf4 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_rollback1.result @@ -0,0 +1,43 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +start transaction; +insert into t1 select * from t1; +select count(*) from t1; +count(*) +73728 +rollback; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +select count(*) from t1; +count(*) +36864 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +36864 +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +0 +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_rollback2.result b/mysql-test/suite/innodb_gis/r/rtree_rollback2.result new file mode 100644 index 00000000000..b6108239b64 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_rollback2.result @@ -0,0 +1,17 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +start transaction; +CALL insert_t1(70000); +rollback; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_search.result b/mysql-test/suite/innodb_gis/r/rtree_search.result new file mode 100644 index 00000000000..d8a8d209cd3 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_search.result @@ -0,0 +1,252 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(1000); +select count(*) from t1; +count(*) +1000 +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +999 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +99 +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +789 +set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +699 +set @g1 = ST_GeomFromText('Point(1 1)'); +select count(*) from t1 where MBRequals(t1.c2, @g1); +count(*) +1 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRdisjoint(t1.c2, @g1); +count(*) +900 +DROP PROCEDURE insert_t1; +truncate t1; +INSERT INTO t1 VALUES (150, ST_GeomFromText('LineString(150 150, 150 150)')); +INSERT INTO t1 VALUES (149, ST_GeomFromText('LineString(149 149, 151 151)')); +INSERT INTO t1 VALUES (148, ST_GeomFromText('LineString(148 148, 152 152)')); +INSERT INTO t1 VALUES (147, ST_GeomFromText('LineString(147 147, 153 153)')); +INSERT INTO t1 VALUES (146, ST_GeomFromText('LineString(146 146, 154 154)')); +INSERT INTO t1 VALUES (145, ST_GeomFromText('LineString(145 145, 155 155)')); +INSERT INTO t1 VALUES (144, ST_GeomFromText('LineString(144 144, 156 156)')); +INSERT INTO t1 VALUES (143, ST_GeomFromText('LineString(143 143, 157 157)')); +INSERT INTO t1 VALUES (142, ST_GeomFromText('LineString(142 142, 158 158)')); +INSERT INTO t1 VALUES (141, ST_GeomFromText('LineString(141 141, 159 159)')); +INSERT INTO t1 VALUES (140, ST_GeomFromText('LineString(140 140, 160 160)')); +INSERT INTO t1 VALUES (139, ST_GeomFromText('LineString(139 139, 161 161)')); +INSERT INTO t1 VALUES (138, ST_GeomFromText('LineString(138 138, 162 162)')); +INSERT INTO t1 VALUES (137, ST_GeomFromText('LineString(137 137, 163 163)')); +INSERT INTO t1 VALUES (136, ST_GeomFromText('LineString(136 136, 164 164)')); +INSERT INTO t1 VALUES (135, ST_GeomFromText('LineString(135 135, 165 165)')); +INSERT INTO t1 VALUES (134, ST_GeomFromText('LineString(134 134, 166 166)')); +INSERT INTO t1 VALUES (133, ST_GeomFromText('LineString(133 133, 167 167)')); +INSERT INTO t1 VALUES (132, ST_GeomFromText('LineString(132 132, 168 168)')); +INSERT INTO t1 VALUES (131, ST_GeomFromText('LineString(131 131, 169 169)')); +INSERT INTO t1 VALUES (130, ST_GeomFromText('LineString(130 130, 170 170)')); +INSERT INTO t1 VALUES (129, ST_GeomFromText('LineString(129 129, 171 171)')); +INSERT INTO t1 VALUES (128, ST_GeomFromText('LineString(128 128, 172 172)')); +INSERT INTO t1 VALUES (127, ST_GeomFromText('LineString(127 127, 173 173)')); +INSERT INTO t1 VALUES (126, ST_GeomFromText('LineString(126 126, 174 174)')); +INSERT INTO t1 VALUES (125, ST_GeomFromText('LineString(125 125, 175 175)')); +INSERT INTO t1 VALUES (124, ST_GeomFromText('LineString(124 124, 176 176)')); +INSERT INTO t1 VALUES (123, ST_GeomFromText('LineString(123 123, 177 177)')); +INSERT INTO t1 VALUES (122, ST_GeomFromText('LineString(122 122, 178 178)')); +INSERT INTO t1 VALUES (121, ST_GeomFromText('LineString(121 121, 179 179)')); +INSERT INTO t1 VALUES (120, ST_GeomFromText('LineString(120 120, 180 180)')); +INSERT INTO t1 VALUES (119, ST_GeomFromText('LineString(119 119, 181 181)')); +INSERT INTO t1 VALUES (118, ST_GeomFromText('LineString(118 118, 182 182)')); +INSERT INTO t1 VALUES (117, ST_GeomFromText('LineString(117 117, 183 183)')); +INSERT INTO t1 VALUES (116, ST_GeomFromText('LineString(116 116, 184 184)')); +INSERT INTO t1 VALUES (115, ST_GeomFromText('LineString(115 115, 185 185)')); +INSERT INTO t1 VALUES (114, ST_GeomFromText('LineString(114 114, 186 186)')); +INSERT INTO t1 VALUES (113, ST_GeomFromText('LineString(113 113, 187 187)')); +INSERT INTO t1 VALUES (112, ST_GeomFromText('LineString(112 112, 188 188)')); +INSERT INTO t1 VALUES (111, ST_GeomFromText('LineString(111 111, 189 189)')); +INSERT INTO t1 VALUES (110, ST_GeomFromText('LineString(110 110, 190 190)')); +INSERT INTO t1 VALUES (109, ST_GeomFromText('LineString(109 109, 191 191)')); +INSERT INTO t1 VALUES (108, ST_GeomFromText('LineString(108 108, 192 192)')); +INSERT INTO t1 VALUES (107, ST_GeomFromText('LineString(107 107, 193 193)')); +INSERT INTO t1 VALUES (106, ST_GeomFromText('LineString(106 106, 194 194)')); +INSERT INTO t1 VALUES (105, ST_GeomFromText('LineString(105 105, 195 195)')); +INSERT INTO t1 VALUES (104, ST_GeomFromText('LineString(104 104, 196 196)')); +INSERT INTO t1 VALUES (103, ST_GeomFromText('LineString(103 103, 197 197)')); +INSERT INTO t1 VALUES (102, ST_GeomFromText('LineString(102 102, 198 198)')); +INSERT INTO t1 VALUES (101, ST_GeomFromText('LineString(101 101, 199 199)')); +INSERT INTO t1 VALUES (100, ST_GeomFromText('LineString(100 100, 200 200)')); +INSERT INTO t1 VALUES (99, ST_GeomFromText('LineString(99 99, 201 201)')); +INSERT INTO t1 VALUES (98, ST_GeomFromText('LineString(98 98, 202 202)')); +INSERT INTO t1 VALUES (97, ST_GeomFromText('LineString(97 97, 203 203)')); +INSERT INTO t1 VALUES (96, ST_GeomFromText('LineString(96 96, 204 204)')); +INSERT INTO t1 VALUES (95, ST_GeomFromText('LineString(95 95, 205 205)')); +INSERT INTO t1 VALUES (94, ST_GeomFromText('LineString(94 94, 206 206)')); +INSERT INTO t1 VALUES (93, ST_GeomFromText('LineString(93 93, 207 207)')); +INSERT INTO t1 VALUES (92, ST_GeomFromText('LineString(92 92, 208 208)')); +INSERT INTO t1 VALUES (91, ST_GeomFromText('LineString(91 91, 209 209)')); +INSERT INTO t1 VALUES (90, ST_GeomFromText('LineString(90 90, 210 210)')); +INSERT INTO t1 VALUES (89, ST_GeomFromText('LineString(89 89, 211 211)')); +INSERT INTO t1 VALUES (88, ST_GeomFromText('LineString(88 88, 212 212)')); +INSERT INTO t1 VALUES (87, ST_GeomFromText('LineString(87 87, 213 213)')); +INSERT INTO t1 VALUES (86, ST_GeomFromText('LineString(86 86, 214 214)')); +INSERT INTO t1 VALUES (85, ST_GeomFromText('LineString(85 85, 215 215)')); +INSERT INTO t1 VALUES (84, ST_GeomFromText('LineString(84 84, 216 216)')); +INSERT INTO t1 VALUES (83, ST_GeomFromText('LineString(83 83, 217 217)')); +INSERT INTO t1 VALUES (82, ST_GeomFromText('LineString(82 82, 218 218)')); +INSERT INTO t1 VALUES (81, ST_GeomFromText('LineString(81 81, 219 219)')); +INSERT INTO t1 VALUES (80, ST_GeomFromText('LineString(80 80, 220 220)')); +INSERT INTO t1 VALUES (79, ST_GeomFromText('LineString(79 79, 221 221)')); +INSERT INTO t1 VALUES (78, ST_GeomFromText('LineString(78 78, 222 222)')); +INSERT INTO t1 VALUES (77, ST_GeomFromText('LineString(77 77, 223 223)')); +INSERT INTO t1 VALUES (76, ST_GeomFromText('LineString(76 76, 224 224)')); +INSERT INTO t1 VALUES (75, ST_GeomFromText('LineString(75 75, 225 225)')); +INSERT INTO t1 VALUES (74, ST_GeomFromText('LineString(74 74, 226 226)')); +INSERT INTO t1 VALUES (73, ST_GeomFromText('LineString(73 73, 227 227)')); +INSERT INTO t1 VALUES (72, ST_GeomFromText('LineString(72 72, 228 228)')); +INSERT INTO t1 VALUES (71, ST_GeomFromText('LineString(71 71, 229 229)')); +INSERT INTO t1 VALUES (70, ST_GeomFromText('LineString(70 70, 230 230)')); +INSERT INTO t1 VALUES (69, ST_GeomFromText('LineString(69 69, 231 231)')); +INSERT INTO t1 VALUES (68, ST_GeomFromText('LineString(68 68, 232 232)')); +INSERT INTO t1 VALUES (67, ST_GeomFromText('LineString(67 67, 233 233)')); +INSERT INTO t1 VALUES (66, ST_GeomFromText('LineString(66 66, 234 234)')); +INSERT INTO t1 VALUES (65, ST_GeomFromText('LineString(65 65, 235 235)')); +INSERT INTO t1 VALUES (64, ST_GeomFromText('LineString(64 64, 236 236)')); +INSERT INTO t1 VALUES (63, ST_GeomFromText('LineString(63 63, 237 237)')); +INSERT INTO t1 VALUES (62, ST_GeomFromText('LineString(62 62, 238 238)')); +INSERT INTO t1 VALUES (61, ST_GeomFromText('LineString(61 61, 239 239)')); +INSERT INTO t1 VALUES (60, ST_GeomFromText('LineString(60 60, 240 240)')); +INSERT INTO t1 VALUES (59, ST_GeomFromText('LineString(59 59, 241 241)')); +INSERT INTO t1 VALUES (58, ST_GeomFromText('LineString(58 58, 242 242)')); +INSERT INTO t1 VALUES (57, ST_GeomFromText('LineString(57 57, 243 243)')); +INSERT INTO t1 VALUES (56, ST_GeomFromText('LineString(56 56, 244 244)')); +INSERT INTO t1 VALUES (55, ST_GeomFromText('LineString(55 55, 245 245)')); +INSERT INTO t1 VALUES (54, ST_GeomFromText('LineString(54 54, 246 246)')); +INSERT INTO t1 VALUES (53, ST_GeomFromText('LineString(53 53, 247 247)')); +INSERT INTO t1 VALUES (52, ST_GeomFromText('LineString(52 52, 248 248)')); +INSERT INTO t1 VALUES (51, ST_GeomFromText('LineString(51 51, 249 249)')); +INSERT INTO t1 VALUES (50, ST_GeomFromText('LineString(50 50, 250 250)')); +INSERT INTO t1 VALUES (49, ST_GeomFromText('LineString(49 49, 251 251)')); +INSERT INTO t1 VALUES (48, ST_GeomFromText('LineString(48 48, 252 252)')); +INSERT INTO t1 VALUES (47, ST_GeomFromText('LineString(47 47, 253 253)')); +INSERT INTO t1 VALUES (46, ST_GeomFromText('LineString(46 46, 254 254)')); +INSERT INTO t1 VALUES (45, ST_GeomFromText('LineString(45 45, 255 255)')); +INSERT INTO t1 VALUES (44, ST_GeomFromText('LineString(44 44, 256 256)')); +INSERT INTO t1 VALUES (43, ST_GeomFromText('LineString(43 43, 257 257)')); +INSERT INTO t1 VALUES (42, ST_GeomFromText('LineString(42 42, 258 258)')); +INSERT INTO t1 VALUES (41, ST_GeomFromText('LineString(41 41, 259 259)')); +INSERT INTO t1 VALUES (40, ST_GeomFromText('LineString(40 40, 260 260)')); +INSERT INTO t1 VALUES (39, ST_GeomFromText('LineString(39 39, 261 261)')); +INSERT INTO t1 VALUES (38, ST_GeomFromText('LineString(38 38, 262 262)')); +INSERT INTO t1 VALUES (37, ST_GeomFromText('LineString(37 37, 263 263)')); +INSERT INTO t1 VALUES (36, ST_GeomFromText('LineString(36 36, 264 264)')); +INSERT INTO t1 VALUES (35, ST_GeomFromText('LineString(35 35, 265 265)')); +INSERT INTO t1 VALUES (34, ST_GeomFromText('LineString(34 34, 266 266)')); +INSERT INTO t1 VALUES (33, ST_GeomFromText('LineString(33 33, 267 267)')); +INSERT INTO t1 VALUES (32, ST_GeomFromText('LineString(32 32, 268 268)')); +INSERT INTO t1 VALUES (31, ST_GeomFromText('LineString(31 31, 269 269)')); +INSERT INTO t1 VALUES (30, ST_GeomFromText('LineString(30 30, 270 270)')); +INSERT INTO t1 VALUES (29, ST_GeomFromText('LineString(29 29, 271 271)')); +INSERT INTO t1 VALUES (28, ST_GeomFromText('LineString(28 28, 272 272)')); +INSERT INTO t1 VALUES (27, ST_GeomFromText('LineString(27 27, 273 273)')); +INSERT INTO t1 VALUES (26, ST_GeomFromText('LineString(26 26, 274 274)')); +INSERT INTO t1 VALUES (25, ST_GeomFromText('LineString(25 25, 275 275)')); +INSERT INTO t1 VALUES (24, ST_GeomFromText('LineString(24 24, 276 276)')); +INSERT INTO t1 VALUES (23, ST_GeomFromText('LineString(23 23, 277 277)')); +INSERT INTO t1 VALUES (22, ST_GeomFromText('LineString(22 22, 278 278)')); +INSERT INTO t1 VALUES (21, ST_GeomFromText('LineString(21 21, 279 279)')); +INSERT INTO t1 VALUES (20, ST_GeomFromText('LineString(20 20, 280 280)')); +INSERT INTO t1 VALUES (19, ST_GeomFromText('LineString(19 19, 281 281)')); +INSERT INTO t1 VALUES (18, ST_GeomFromText('LineString(18 18, 282 282)')); +INSERT INTO t1 VALUES (17, ST_GeomFromText('LineString(17 17, 283 283)')); +INSERT INTO t1 VALUES (16, ST_GeomFromText('LineString(16 16, 284 284)')); +INSERT INTO t1 VALUES (15, ST_GeomFromText('LineString(15 15, 285 285)')); +INSERT INTO t1 VALUES (14, ST_GeomFromText('LineString(14 14, 286 286)')); +INSERT INTO t1 VALUES (13, ST_GeomFromText('LineString(13 13, 287 287)')); +INSERT INTO t1 VALUES (12, ST_GeomFromText('LineString(12 12, 288 288)')); +INSERT INTO t1 VALUES (11, ST_GeomFromText('LineString(11 11, 289 289)')); +INSERT INTO t1 VALUES (10, ST_GeomFromText('LineString(10 10, 290 290)')); +INSERT INTO t1 VALUES (9, ST_GeomFromText('LineString(9 9, 291 291)')); +INSERT INTO t1 VALUES (8, ST_GeomFromText('LineString(8 8, 292 292)')); +INSERT INTO t1 VALUES (7, ST_GeomFromText('LineString(7 7, 293 293)')); +INSERT INTO t1 VALUES (6, ST_GeomFromText('LineString(6 6, 294 294)')); +INSERT INTO t1 VALUES (5, ST_GeomFromText('LineString(5 5, 295 295)')); +INSERT INTO t1 VALUES (4, ST_GeomFromText('LineString(4 4, 296 296)')); +INSERT INTO t1 VALUES (3, ST_GeomFromText('LineString(3 3, 297 297)')); +INSERT INTO t1 VALUES (2, ST_GeomFromText('LineString(2 2, 298 298)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(1 1, 299 299)')); +select count(*) from t1; +count(*) +150 +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +count(*) +150 +truncate t1; +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +set @g1 = ST_GeomFromText('Polygon((0 0,0 2, 2 2, 2 0, 0 0))'); +select count(*) from t1 where MBRtouches(t1.c2, @g1); +count(*) +2048 +set @g1 = ST_GeomFromText('Polygon((0 0,0 200,200 200,200 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +12288 +set @g1 = ST_GeomFromText('LineString(2 2, 150 150)'); +select count(*) from t1 where MBRequals(t1.c2, @g1); +count(*) +2048 +set @g1 = ST_GeomFromText('Polygon((0 0,0 200,200 200,200 0,0 0))'); +create table t3 (a int) engine = innodb; +CREATE PROCEDURE curdemo() +BEGIN +DECLARE done INT DEFAULT FALSE; +DECLARE a INT; +DECLARE cur1 CURSOR FOR SELECT c1 from t1 where MBRWithin(t1.c2, @g1); +DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; +OPEN cur1; +read_loop: LOOP +FETCH cur1 INTO a; +IF done THEN +LEAVE read_loop; +END IF; +INSERT INTO test.t3 VALUES (a); +END LOOP; +CLOSE cur1; +END| +call curdemo(); +select count(*) from t3; +count(*) +12288 +drop procedure curdemo; +drop table t3; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_split.result b/mysql-test/suite/innodb_gis/r/rtree_split.result new file mode 100644 index 00000000000..37ce67a9f2c --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_split.result @@ -0,0 +1,86 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +SET SESSION debug="+d, rtr_page_need_second_split"; +insert into t1 select * from t1; +SET SESSION debug="-d, rtr_page_need_second_split"; +delete from t1; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +start transaction; +insert into t1 select * from t1; +rollback; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +select count(*) from t1; +count(*) +73728 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +73728 +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +0 +drop index c2 on t1; +create spatial index idx2 on t1(c2); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` int(11) DEFAULT NULL, + `c2` geometry NOT NULL, + SPATIAL KEY `idx2` (`c2`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +73728 +# restart: --innodb-read-only +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +73728 +set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); +count(*) +57344 +# restart +drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_undo.result b/mysql-test/suite/innodb_gis/r/rtree_undo.result new file mode 100644 index 00000000000..94c1d3f0982 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/rtree_undo.result @@ -0,0 +1,272 @@ +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ROLLBACK; +# disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; +SELECT * FROM t0; +a +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +# enable purge +COMMIT; +DELETE FROM t1 WHERE p = 2; +# wait for purge to process the update_undo records. +CREATE TABLE t2 ( +p INT PRIMARY KEY, +g1 POINT NOT NULL, +g2 POINT NOT NULL, +g3 LINESTRING NOT NULL, +g4 LINESTRING NOT NULL, +g5 GEOMETRY NOT NULL, +g6 GEOMETRY NOT NULL, +SPATIAL KEY (g1), +SPATIAL KEY (g2), +SPATIAL KEY (g3), +SPATIAL KEY (g4), +SPATIAL KEY (g5), +SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ROLLBACK; +# disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; +SELECT * FROM t0; +a +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +# enable purge +COMMIT; +DELETE FROM t1 WHERE p = 2; +# wait for purge to process the update_undo records. +CREATE TABLE t2 ( +p INT PRIMARY KEY, +g1 POINT NOT NULL, +g2 POINT NOT NULL, +g3 LINESTRING NOT NULL, +g4 LINESTRING NOT NULL, +g5 GEOMETRY NOT NULL, +g6 GEOMETRY NOT NULL, +SPATIAL KEY (g1), +SPATIAL KEY (g2), +SPATIAL KEY (g3), +SPATIAL KEY (g4), +SPATIAL KEY (g5), +SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ROLLBACK; +# disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; +SELECT * FROM t0; +a +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ALTER TABLE t1 DROP INDEX spatial_idx, DROP INDEX prefix_idx; +# enable purge +COMMIT; +DELETE FROM t1 WHERE p = 2; +# wait for purge to process the update_undo records. +CREATE TABLE t2 ( +p INT PRIMARY KEY, +g1 POINT NOT NULL, +g2 POINT NOT NULL, +g3 LINESTRING NOT NULL, +g4 LINESTRING NOT NULL, +g5 GEOMETRY NOT NULL, +g6 GEOMETRY NOT NULL, +SPATIAL KEY (g1), +SPATIAL KEY (g2), +SPATIAL KEY (g3), +SPATIAL KEY (g4), +SPATIAL KEY (g5), +SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=COMPACT; +ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ROLLBACK; +# disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; +SELECT * FROM t0; +a +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +# enable purge +COMMIT; +DELETE FROM t1 WHERE p = 2; +# wait for purge to process the update_undo records. +CREATE TABLE t2 ( +p INT PRIMARY KEY, +g1 POINT NOT NULL, +g2 POINT NOT NULL, +g3 LINESTRING NOT NULL, +g4 LINESTRING NOT NULL, +g5 GEOMETRY NOT NULL, +g6 GEOMETRY NOT NULL, +SPATIAL KEY (g1), +SPATIAL KEY (g2), +SPATIAL KEY (g3), +SPATIAL KEY (g4), +SPATIAL KEY (g5), +SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=COMPACT; +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=COMPACT; +ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ROLLBACK; +# disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; +SELECT * FROM t0; +a +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +# enable purge +COMMIT; +DELETE FROM t1 WHERE p = 2; +# wait for purge to process the update_undo records. +CREATE TABLE t2 ( +p INT PRIMARY KEY, +g1 POINT NOT NULL, +g2 POINT NOT NULL, +g3 LINESTRING NOT NULL, +g4 LINESTRING NOT NULL, +g5 GEOMETRY NOT NULL, +g6 GEOMETRY NOT NULL, +SPATIAL KEY (g1), +SPATIAL KEY (g2), +SPATIAL KEY (g3), +SPATIAL KEY (g4), +SPATIAL KEY (g5), +SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=COMPACT; +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; +CREATE TABLE t1 ( +p INT NOT NULL AUTO_INCREMENT, +g LINESTRING NOT NULL, +PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=COMPACT; +ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +INSERT INTO t1(g) VALUES(ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)')); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +BEGIN; +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ROLLBACK; +# disable purge +CREATE TABLE t0 (a INT) ENGINE=InnoDB; +BEGIN; +SELECT * FROM t0; +a +DELETE FROM t1 WHERE p = 3; +UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; +ALTER TABLE t1 DROP INDEX spatial_idx, DROP INDEX prefix_idx; +# enable purge +COMMIT; +DELETE FROM t1 WHERE p = 2; +# wait for purge to process the update_undo records. +CREATE TABLE t2 ( +p INT PRIMARY KEY, +g1 POINT NOT NULL, +g2 POINT NOT NULL, +g3 LINESTRING NOT NULL, +g4 LINESTRING NOT NULL, +g5 GEOMETRY NOT NULL, +g6 GEOMETRY NOT NULL, +SPATIAL KEY (g1), +SPATIAL KEY (g2), +SPATIAL KEY (g3), +SPATIAL KEY (g4), +SPATIAL KEY (g5), +SPATIAL KEY (g6) +) ENGINE=InnoDB ROW_FORMAT=COMPACT; +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; diff --git a/mysql-test/suite/innodb_gis/r/types.result b/mysql-test/suite/innodb_gis/r/types.result new file mode 100644 index 00000000000..1bd160a3752 --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/types.result @@ -0,0 +1,80 @@ +SET SESSION debug="+d,row_print_geometry_data"; +CREATE TABLE t_wl6455 ( i INT, g GEOMETRY NOT NULL) ENGINE=InnoDB; +SHOW CREATE TABLE t_wl6455; +Table Create Table +t_wl6455 CREATE TABLE `t_wl6455` ( + `i` int(11) DEFAULT NULL, + `g` geometry NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +INSERT INTO t_wl6455 VALUES(1, POINT(1,1)); +INSERT INTO t_wl6455 VALUES(2, POINT(2,2)); +SET @mp = 'MULTIPOINT(0 0, 20 20, 60 60)'; +INSERT INTO t_wl6455 VALUES(3, ST_GeomFromText(@mp)); +INSERT INTO t_wl6455 VALUES(4, LINESTRING(POINT(1,1), POINT(4, 4))); +INSERT INTO t_wl6455 VALUES(5, LINESTRING(POINT(2,2), POINT(5, 5))); +SET @mls = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))'; +INSERT INTO t_wl6455 VALUES(6, ST_GeomFromText(@mls)); +SET @poly = 'Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'; +INSERT INTO t_wl6455 VALUES(7, ST_GeomFromText(@poly)); +SET @mpoly = 'MultiPolygon(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1)))'; +INSERT INTO t_wl6455 VALUES(8, ST_GeomFromText(@mpoly)); +SET @gc = 'GeometryCollection(Point(1 1),LineString(2 2, 3 3))'; +INSERT INTO t_wl6455 VALUES(9, ST_GeomFromText(@gc)); +SELECT ST_AsText(g) FROM t_wl6455; +ST_AsText(g) +POINT(1 1) +POINT(2 2) +MULTIPOINT((0 0),(20 20),(60 60)) +LINESTRING(1 1,4 4) +LINESTRING(2 2,5 5) +MULTILINESTRING((1 1,2 2,3 3),(4 4,5 5)) +POLYGON((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1)) +MULTIPOLYGON(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +CREATE INDEX i_p ON t_wl6455 (g(10)); +EXPLAIN SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(2,2); +id select_type table partitions type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t_wl6455 NULL ref i_p i_p 12 const # 100.00 Using where +Warnings: +Note 1003 /* select#1 */ select st_astext(`test`.`t_wl6455`.`g`) AS `ST_AsText(g)` from `test`.`t_wl6455` where (`test`.`t_wl6455`.`g` = (point(2,2))) +SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(2,2); +ST_AsText(g) +POINT(2 2) +SET AUTOCOMMIT = 0; +INSERT INTO t_wl6455 VALUES(10, POINT(10,10)); +SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(10,10); +ST_AsText(g) +POINT(10 10) +ROLLBACK; +SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(10,10); +ST_AsText(g) +INSERT INTO t_wl6455 VALUES(10, POINT(10,10)); +COMMIT; +INSERT INTO t_wl6455 VALUES(11, POINT(11,11)); +BEGIN; +INSERT INTO t_wl6455 VALUES(1, POINT(1,1)); +# Kill and restart +CHECK TABLE t_wl6455; +Table Op Msg_type Msg_text +test.t_wl6455 check status OK +SELECT ST_AsText(g) FROM t_wl6455; +ST_AsText(g) +POINT(1 1) +POINT(2 2) +MULTIPOINT((0 0),(20 20),(60 60)) +LINESTRING(1 1,4 4) +LINESTRING(2 2,5 5) +MULTILINESTRING((1 1,2 2,3 3),(4 4,5 5)) +POLYGON((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1)) +MULTIPOLYGON(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))) +GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) +POINT(10 10) +POINT(11 11) +SELECT sc.name, sc.pos, sc.mtype +FROM information_schema.innodb_sys_columns sc +INNER JOIN information_schema.innodb_sys_tables st +ON sc.TABLE_ID=st.TABLE_ID +WHERE st.NAME='test/t_wl6455' AND sc.NAME='g'; +name pos mtype +g 1 14 +DROP TABLE t_wl6455; diff --git a/mysql-test/suite/innodb_gis/r/update_root.result b/mysql-test/suite/innodb_gis/r/update_root.result new file mode 100644 index 00000000000..a39910818da --- /dev/null +++ b/mysql-test/suite/innodb_gis/r/update_root.result @@ -0,0 +1,19 @@ +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; +create procedure insert_t1(IN total int) +begin +declare i int default 1; +while (i <= total) DO +insert into t1 values (i, Point(i, i)); +set i = i + 1; +end while; +end| +CALL insert_t1(70000); +CALL insert_t1(90); +CALL insert_t1(90); +CALL insert_t1(83); +insert into t1 values (0, Point(0.9, 0.9)); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/bug16236208.test b/mysql-test/suite/innodb_gis/t/bug16236208.test new file mode 100644 index 00000000000..5f51c414fed --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/bug16236208.test @@ -0,0 +1,64 @@ +#******************************************************** +# Bug 16236208 - GEOMETRY : SERVER CRASHES IN +# SEL_TREES_CAN_BE_ORED WHEN THE QUERY USES GIS COLS. +#******************************************************** + +--source include/have_geometry.inc +--source include/not_embedded.inc + +--disable_warnings +DROP TABLE IF EXISTS linestring; +--enable_warnings + +CREATE TABLE linestring (pk INTEGER NOT NULL PRIMARY KEY, linestring_key +GEOMETRY NOT NULL, linestring_nokey GEOMETRY NOT NULL) ENGINE=InnoDB ; + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (1, +ST_GeomFromText('POINT(10 10) '), ST_GeomFromText('POINT(10 10) ')); + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (2, +ST_GeomFromText('LINESTRING(10 10,20 20,30 30)'), ST_GeomFromText('LINESTRING(10 +10,20 20,30 30)')); + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (3, +ST_GeomFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 +10))'), ST_GeomFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 +40,10 10))')); + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (4, +ST_GeomFromText('MULTIPOINT(0 0,5 5,10 10,20 20) '), ST_GeomFromText('MULTIPOINT(0 +0,5 5,10 10,20 20) ')); + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (5, +ST_GeomFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'), +ST_GeomFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))')); + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (6, +ST_GeomFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 +9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'), +ST_GeomFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 +9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')); + +INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (7, +ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'), +ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')); + +CREATE INDEX linestring_index ON linestring(linestring_nokey(5)); +ALTER TABLE linestring ADD KEY (linestring_key(5)); + +--error ER_GIS_INVALID_DATA +SELECT ST_AsText(linestring_nokey) FROM linestring FORCE KEY ( +linestring_key ) WHERE ST_CONTAINS( ST_GeomFromText('POLYGON( ( 3923 2815 , 4246 +2122 , 4028 2971 , 4017 3019 , 3923 2815 ) )') , linestring_key ) AND +ST_WITHIN( ST_GeomFromText('POLYGON( ( 4135 3009 , 4914 3087 , 4236 3194 , 4091 +3036 , 4022 3004 , 4087 3004 , 3853 2825 , 3490 3118 , 3784 3141 , 4052 3072 +, 4205 2787 , 4024 2951 , 4076 3036 , 4041 3053 , 3789 3401 , 4080 3100 , +4169 2867 , 4056 3029 , 4715 3943 , 4052 3098 , 4035 3080 , 4013 3077 , 4218 +2915 , 3789 2980 , 4058 3046 , 4042 3043 , 4135 3009 ) )') , linestring_nokey +) AND ST_CONTAINS( ST_GeomFromText('POLYGON( ( 4082 2842 , 3678 3647 , 3420 3068 +, 4018 3030 , 4082 2842 ) )') , linestring_key ) OR ST_INTERSECTS( +ST_GeomFromText('MULTILINESTRING( ( 4147 2871 , 4072 3042 , 4081 3099 , 3796 +3021 , 4007 3463 ) , ( 4042 2808 , 4109 2816 , 3730 3673 ) )') , +linestring_key ) AND ST_Length( linestring_nokey ) > 1; + +DROP TABLE linestring; diff --git a/mysql-test/suite/innodb_gis/t/bug16266012.test b/mysql-test/suite/innodb_gis/t/bug16266012.test new file mode 100644 index 00000000000..17986998fc9 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/bug16266012.test @@ -0,0 +1,18 @@ +#******************************************************** +# Bug 16266012 - GEOMETRY : SERVER CRASHES IN +# COLLECTION_INIT_FROM_OPRESULT +#******************************************************** + +--source include/have_geometry.inc +--source include/not_embedded.inc +--source include/have_debug.inc +--error ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION +SELECT ST_WITHIN( LINESTRINGFROMTEXT(' LINESTRING( 5 9 , 3 4 , 4 1 , 4 +4 , 4 9 ) ') , ST_SYMDIFFERENCE( ST_UNION( ST_ENVELOPE( POLYGONFROMTEXT(' +POLYGON( ( 3 2 , 0 6 , 2 3 , 8 0 , 4 6 , 7 2 , 3 2 ) ) ') ) , +MULTIPOLYGONFROMTEXT(' +MULTIPOLYGON( ( ( 0 0 , 7 1 , 6 8 , 0 0 ) ) , ( ( 9 9 , 4 0 , 4 7 , 9 9) ) ) +') ) , ST_SYMDIFFERENCE( POLYGONFROMTEXT(' POLYGON( ( 9 9 , 6 5 , 2 3 , 9 9 +) ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( ( 2 2 , 5 2 , 5 2 , 2 6 , 2 +2 ) ) , ( ( 7 7 , 3 7 , 2 9 , 7 1 , 7 7 ) ) ) ') ) ) ); + diff --git a/mysql-test/suite/innodb_gis/t/bug17057168.test b/mysql-test/suite/innodb_gis/t/bug17057168.test new file mode 100644 index 00000000000..70191d313fc --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/bug17057168.test @@ -0,0 +1,32 @@ +#******************************************************** +# Bug 17057168 - LARGE PERFORMANCE REGRESSION FOR INNODB +# GEOMETRY/SPATIAL INDEX LOOKUP +#******************************************************** +--source include/have_geometry.inc +--source include/not_embedded.inc +--source include/no_valgrind_without_big.inc + +CREATE DATABASE geotest; +use geotest; +CREATE TABLE tmp (id int unsigned NOT NULL PRIMARY KEY); +INSERT INTO tmp VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); +INSERT INTO tmp SELECT 10+id FROM tmp; +INSERT INTO tmp SELECT 20+id FROM tmp; +INSERT INTO tmp SELECT 40+id FROM tmp; +INSERT INTO tmp SELECT 80+id FROM tmp; + +CREATE TABLE t1 (id int unsigned NOT NULL auto_increment PRIMARY KEY, +location point, INDEX (location)) ENGINE=InnoDB; +INSERT INTO t1 (location) SELECT POINT(tmp1.id, tmp2.id) FROM tmp tmp1, +tmp tmp2 ORDER BY tmp1.id, tmp2.id; + +#Befor fix, the row number will be the total number of index recs, +#After fix, the row number will be 1. +EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, +2); +SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2); + +DROP TABLE t1; +DROP TABLE tmp; + +DROP DATABASE geotest; diff --git a/mysql-test/suite/innodb_gis/t/geometry.test b/mysql-test/suite/innodb_gis/t/geometry.test new file mode 100644 index 00000000000..e59e0147f79 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/geometry.test @@ -0,0 +1,704 @@ +#******************************************************** +# wl6455: GIS Datatypes covers the following tests. +# DDL: ALTER PRIMARY, DROP KEY,INDEX,COLUMN TYPE etc +# INSERT/SELECT operations with WKT & WKB functions +# SELECT/DELETE/UPDATE with =,>,< predicate conditions +# Datatypes with Procedure (IN/INOUT/OUT,Cursors,Trigger) +# Datatypes with Aggregate functions +# File Formts Compressed & Dynamic +# All Geometric functions. +#******************************************************** +--source include/have_geometry.inc +--source include/not_embedded.inc +--source include/have_debug.inc +--source include/have_innodb_zip.inc + +SET default_storage_engine=InnoDB; +SET innodb_strict_mode=OFF; + +# Turn on the geometry data print. +SET SESSION debug="+d,row_print_geometry_data"; + +SHOW VARIABLES LIKE '%engine%'; + +# +# Spatial objects +# + +USE test; + +--disable_warnings +DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon; +DROP TABLE IF EXISTS gis_multi_point, gis_multi_line, gis_multi_polygon; +DROP TABLE IF EXISTS gis_geometrycollection, gis_geometry; +DROP TABLE IF EXISTS tab,tab2,tab3,parent,emp2; +DROP PROCEDURE IF EXISTS geominout; +DROP PROCEDURE IF EXISTS geom_insert; +DROP TRIGGER IF EXISTS geom_trigger; +DROP PROCEDURE IF EXISTS geom_cursor; + + +--enable_warnings + +CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT) ENGINE=InnoDB; +CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING) ENGINE=InnoDB; +CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON) ENGINE=InnoDB; +CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT) ENGINE=InnoDB; +CREATE TABLE gis_multi_line (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING) ENGINE=InnoDB; +CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON) ENGINE=InnoDB; +CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION) ENGINE=InnoDB; +CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY) ENGINE=InnoDB; + +SHOW FIELDS FROM gis_point; +SHOW FIELDS FROM gis_line; +SHOW FIELDS FROM gis_polygon; +SHOW FIELDS FROM gis_multi_point; +SHOW FIELDS FROM gis_multi_line; +SHOW FIELDS FROM gis_multi_polygon; +SHOW FIELDS FROM gis_geometrycollection; +SHOW FIELDS FROM gis_geometry; + +--echo #INSERT using all WKT & WKB functions +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); + + +INSERT INTO gis_line VALUES +(105, ST_LineFromText('LINESTRING(0 0,0 10,10 0)')), +(106, ST_LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')), +(107, ST_LineStringFromWKB(ST_AsWKB(LineString(Point(10, 10), Point(40, 10))))); + + +INSERT INTO gis_polygon VALUES +(108, ST_PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')), +(109, ST_PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')), +(110, ST_PolyFromWKB(ST_AsWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))))); + + +INSERT INTO gis_multi_point VALUES +(111, ST_MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')), +(112, ST_MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')), +(113, ST_MPointFromWKB(ST_AsWKB(MultiPoint(Point(3, 6), Point(4, 10))))); + + +INSERT INTO gis_multi_line VALUES +(114, ST_MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')), +(115, ST_MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')), +(116, ST_MLineFromWKB(ST_AsWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))))); + + +INSERT INTO gis_multi_polygon VALUES +(117, ST_MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)), +((59 18,67 18,67 13,59 13,59 18)))')), +(118, ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26), +(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')), +(119, ST_MPolyFromWKB(ST_AsWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))))); + + +INSERT INTO gis_geometrycollection VALUES +(120, ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), +(121, ST_GeometryCollectionFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))')), +(122, ST_GeometryFromWKB(ST_AsWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))))); + +--echo #check INSERT using SELECT query +INSERT into gis_geometry SELECT * FROM gis_point; +INSERT into gis_geometry SELECT * FROM gis_line; +INSERT into gis_geometry SELECT * FROM gis_polygon; +INSERT into gis_geometry SELECT * FROM gis_multi_point; +INSERT into gis_geometry SELECT * FROM gis_multi_line; +INSERT into gis_geometry SELECT * FROM gis_multi_polygon; +INSERT into gis_geometry SELECT * FROM gis_geometrycollection; + +--echo #check format coversion functions & spatial values +SELECT fid, ST_AsText(g) FROM gis_point; +SELECT fid, ST_AsText(g) FROM gis_line; +SELECT fid, ST_AsText(g) FROM gis_polygon; +SELECT fid, ST_AsText(g) FROM gis_multi_point; +SELECT fid, ST_AsText(g) FROM gis_multi_line; +SELECT fid, ST_AsText(g) FROM gis_multi_polygon; +SELECT fid, ST_AsText(g) FROM gis_geometrycollection; +SELECT fid, ST_AsText(g) FROM gis_geometry; + +--echo #2.1 check DDL functionality on GIS datatypes +CREATE TABLE tab(c1 POINT,c2 LINESTRING,c3 POLYGON,C4 MULTIPOINT,c5 MULTILINESTRING , +c6 MULTIPOLYGON,c7 GEOMETRYCOLLECTION ,c8 GEOMETRY) ENGINE=InnoDB; + +--echo #check information schema for all the columns refer to 14, except POINT which is 15 +SELECT sc.name, sc.pos, sc.mtype +FROM information_schema.innodb_sys_columns sc +INNER JOIN information_schema.innodb_sys_tables st +ON sc.TABLE_ID=st.TABLE_ID +WHERE st.NAME='test/tab' +ORDER BY sc.name; + +--echo #check Perform convesrion before INSERT using WKT functions +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #Insert the spatial values +INSERT INTO tab VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); + +--echo #check index on GIS datatypes +CREATE INDEX idx1 on tab(c2(5) DESC) USING BTREE; +CREATE INDEX idx3 on tab(c3(5) ASC) USING BTREE; +CREATE UNIQUE INDEX idx2 on tab(c8(5) ASC) ; + +--echo #check equality predicate on the index columns +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); + +--echo #check index with WKT function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab +WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))); + +--echo #check index with WKT function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); + +--echo #check range predicate on the index columns +--replace_column 10 # +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); + +--replace_column 10 # +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); + +--replace_column 10 # +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab +WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #check index with DELETE operation +--replace_column 10 # +EXPLAIN DELETE FROM tab +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); + + +--echo #check the spatial values +SELECT ST_AsText(c1) FROM tab; +SELECT ST_AsText(c2) FROM tab; +SELECT ST_AsText(c3) FROM tab; +SELECT ST_AsText(c4) FROM tab; +SELECT ST_AsText(c5) FROM tab; +SELECT ST_AsText(c6) FROM tab; +SELECT ST_AsText(c7) FROM tab; +SELECT ST_AsText(c8) From tab; + +--echo #check by modify the column type +ALTER TABLE tab MODIFY COLUMN c1 Geometry; +ALTER TABLE tab MODIFY COLUMN c2 Geometry; +ALTER TABLE tab MODIFY COLUMN c3 Geometry; +ALTER TABLE tab MODIFY COLUMN c4 Geometry; +ALTER TABLE tab MODIFY COLUMN c5 Geometry; +ALTER TABLE tab MODIFY COLUMN c6 Geometry; +ALTER TABLE tab MODIFY COLUMN c7 Geometry; + +--echo #check column datatypes +SHOW FIELDS FROM tab; + +--echo #check the data after modify +SELECT ST_AsText(c1) FROM tab; +SELECT ST_AsText(c2) FROM tab; +SELECT ST_AsText(c3) FROM tab; +SELECT ST_AsText(c4) FROM tab; +SELECT ST_AsText(c5) FROM tab; +SELECT ST_AsText(c6) FROM tab; +SELECT ST_AsText(c7) FROM tab; +SELECT ST_AsText(c8) From tab; + +--echo #check by modify the column type +ALTER TABLE tab MODIFY COLUMN c1 POINT; +ALTER TABLE tab MODIFY COLUMN c2 LINESTRING; +ALTER TABLE tab MODIFY COLUMN c3 POLYGON; +ALTER TABLE tab MODIFY COLUMN c4 MULTIPOINT; +ALTER TABLE tab MODIFY COLUMN c5 MULTILINESTRING; +ALTER TABLE tab MODIFY COLUMN c6 MULTIPOLYGON; +ALTER TABLE tab MODIFY COLUMN c7 GEOMETRYCOLLECTION; + +--echo #check column datatypes +SHOW FIELDS FROM tab; + +--echo #check the data after modify +SELECT ST_AsText(c1) FROM tab; +SELECT ST_AsText(c2) FROM tab; +SELECT ST_AsText(c3) FROM tab; +SELECT ST_AsText(c4) FROM tab; +SELECT ST_AsText(c5) FROM tab; +SELECT ST_AsText(c6) FROM tab; +SELECT ST_AsText(c7) FROM tab; +SELECT ST_AsText(c8) From tab; + +--echo #check change the column type +ALTER TABLE tab MODIFY COLUMN c1 BLOB; + +--echo #check column datatypes +SHOW CREATE TABLE tab; + +--echo #check the data after modify +SELECT ST_AsText(c1) FROM tab; + +--echo #change the column name +ALTER TABLE tab CHANGE COLUMN c1 c0 GEOMETRY ; + + +--echo #check column datatypes +SHOW FIELDS FROM tab; + +--echo #add primary key +ALTER TABLE tab ADD PRIMARY KEY pk2(c8(5)); + +--echo #check columns +SHOW FIELDS FROM tab; + +--echo #drop key +ALTER TABLE tab DROP PRIMARY KEY; + +--echo #check columns +SHOW FIELDS FROM tab; + +--echo #cleanup the table +TRUNCATE TABLE tab; + +--echo #check with procedures + +delimiter |; + +--echo #crate proc with INOUT params +CREATE PROCEDURE geom_insert(IN c1 POINT,IN c2 LINESTRING,IN c3 POLYGON, +IN c4 MULTIPOINT,IN c5 MULTILINESTRING, IN c6 MULTIPOLYGON,IN c7 GEOMETRYCOLLECTION, +IN c8 GEOMETRY) +BEGIN +INSERT INTO tab VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +END | + +delimiter ;| + +--echo #set the spatial values +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #call the proc +CALL geom_insert(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); + +--echo #check the values ofter proc call +SELECT ST_AsText(c0) FROM tab; +SELECT ST_AsText(c2) FROM tab; +SELECT ST_AsText(c3) FROM tab; +SELECT ST_AsText(c4) FROM tab; +SELECT ST_AsText(c5) FROM tab; +SELECT ST_AsText(c6) FROM tab; +SELECT ST_AsText(c7) FROM tab; +SELECT ST_AsText(c8) From tab; + + +--echo #set the input spatial value +SET @c9=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +delimiter |; + +--echo #crate a proc with INOUT params and pass a value. +CREATE PROCEDURE geominout(INOUT c9 GEOMETRY) +BEGIN + +SELECT ST_AsText(@c9); +SET c9=ST_GeomCollFromText('GeometryCollection(Point(10 10),LineString(20 20, 30 30))'); + +END| + +delimiter ;| + +--echo #call the proc and then change the spatial value of c8 +CALL geominout(@c9); + +--echo #now check the out spatial values should be changed to new values +SELECT ST_AsText(@c9); + +#check GIS datatype with Triggers + +--echo #delete the records +TRUNCATE TABLE tab; + +--echo #create another table same as tab +CREATE TABLE tab2 AS SELECT * FROM tab; + +--echo #check the table definition +SHOW CREATE TABLE tab2; + + +delimiter |; + +--echo #create a tigger and populate the values into tab2 +CREATE TRIGGER geom_trigger AFTER INSERT ON tab +FOR EACH ROW +BEGIN + INSERT INTO tab2 VALUES (@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); +END| + +delimiter ;| + +--echo #set the spatial values +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #Insert the spatial values +INSERT INTO tab VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); + +--echo #check the values whether populated +SELECT ST_AsText(c0) FROM tab2; +SELECT ST_AsText(c2) FROM tab2; +SELECT ST_AsText(c3) FROM tab2; +SELECT ST_AsText(c4) FROM tab2; +SELECT ST_AsText(c5) FROM tab2; +SELECT ST_AsText(c6) FROM tab2; +SELECT ST_AsText(c7) FROM tab2; +SELECT ST_AsText(c8) From tab2; + +--echo #check Cursor with Geometry + +delimiter |; + +CREATE PROCEDURE geom_cursor() +BEGIN + DECLARE v GEOMETRY; + DECLARE c CURSOR FOR SELECT c8 FROM tab2; + + OPEN c; + FETCH c INTO v; + CLOSE c; + + SELECT ST_AsText(v); +END| + +delimiter ;| + +--echo # the following line was commented due the Bug#16282246 +--echo # Once it is fixed, the comment will be removed. +--echo # right now bug fixing date is unknown. +#CALL geom_cursor(); + +--echo check self join +SELECT ST_AsText(a.c0),ST_AsText(a.c2),ST_AsText(a.c3) +FROM tab a,tab2 b WHERE a.c0=b.c0 AND a.c2=b.c2 +AND a.c3=b.c3 AND a.c4=b.c4 AND a.c5=b.c5 AND a.c6=b.c6 +AND a.c7=b.c7 AND a.c8=b.c8; + +--echo #check equi join +SELECT ST_AsText(a.c2),ST_AsText(b.c2) FROM tab a,tab2 b WHERE a.c2=b.c2; + +--echo #check DELETE stmt with Where clause and a constant predicate +DELETE FROM tab +Where c8=c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); + +--echo #check the data, should 0 +SELECT COUNT(*) FROM tab; + +--echo #check UPDATE stmt with Where clause and a constant predicate +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(10 10),LineString(20 20, 30 30))'); +UPDATE tab2 SET c8=@c8 +WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); + +--echo #check the column should be modified to LINESTRING(10 10,20 20,30 30) +SELECT ST_AsText(c8) From tab2; + +--echo #check GIS datatypes with aggregate functions +SELECT COUNT(ST_AsText(g)) FROM gis_point; +SELECT COUNT(ST_AsText(g)) FROM gis_line; +SELECT COUNT(ST_AsText(g)) FROM gis_polygon; +SELECT COUNT(ST_AsText(g)) FROM gis_multi_point; +SELECT COUNT(ST_AsText(g)) FROM gis_multi_line; +SELECT COUNT(ST_AsText(g)) FROM gis_multi_polygon; +SELECT COUNT(ST_AsText(g)) FROM gis_geometrycollection; +SELECT COUNT(ST_AsText(g)) FROM gis_geometry; + +SELECT SUM(ST_AsText(g)) FROM gis_point; +SELECT SUM(ST_AsText(g)) FROM gis_line; +SELECT AVG(ST_AsText(g)) FROM gis_polygon; +--echo #here it show some string value no meaning +SELECT MAX(ST_AsText(g)) FROM gis_multi_point; +--echo #here it show some string value no meaning +SELECT MIN(ST_AsText(g)) FROM gis_multi_line; +SELECT STD(ST_AsText(g)) FROM gis_multi_polygon; +SELECT COUNT(ST_AsText(g)) FROM gis_geometrycollection; +SELECT AVG(ST_AsText(g)) FROM gis_geometry; + +--disable_warnings +--echo #check Datatypes with compression tables + +CREATE TABLE tab3(c1 POINT,c2 LINESTRING,c3 POLYGON,C4 MULTIPOINT,c5 MULTILINESTRING , +c6 MULTIPOLYGON,c7 GEOMETRYCOLLECTION ,c8 GEOMETRY) ENGINE=InnoDB +KEY_BLOCK_SIZE=8 ROW_FORMAT=COMPRESSED; + +--echo #check file format +SHOW CREATE TABLE tab3; + +ALTER TABLE tab3 KEY_BLOCK_SIZE=16 ROW_FORMAT=Dynamic; + +--echo #check file format +SHOW CREATE TABLE tab3; + +--echo #check information schema for all the columns refer to 14, except POINT which is 15 +SELECT sc.name, sc.pos, sc.mtype +FROM information_schema.innodb_sys_columns sc +INNER JOIN information_schema.innodb_sys_tables st +ON sc.TABLE_ID=st.TABLE_ID +WHERE st.NAME='test/tab3' +ORDER BY sc.name; + +--echo #check Perform convesrion before INSERT using WKT functions +SET @c1=ST_PointFromText('POINT(10 10)'); +SET @c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); +SET @c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); +SET @c4=ST_MPointFromText('MULTIPOINT(0 0,5 5,10 10,20 20)'); +SET @c5=ST_MLineFromText('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))'); +SET @c6=ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'); +SET @c7=ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'); +SET @c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #Insert the spatial values +INSERT INTO tab3 VALUES(@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8); + +--echo #check index on GIS datatypes +CREATE INDEX idx1 on tab3(c2(5) DESC) USING BTREE; +CREATE INDEX idx3 on tab3(c3(5) ASC) USING BTREE; +CREATE UNIQUE INDEX idx2 on tab3(c8(5) ASC) ; + +--enable_warnings + +--echo #check equality predicate on the index columns +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); + +--echo #check index with WKT function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 +WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'))); + +--echo #check index with WKT function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); + +--echo #check range predicate on the index columns +--replace_column 10 # +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)'); + +--replace_column 10 # +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); + +--replace_column 10 # +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'); + +--echo #check index with DELETE operation +--replace_column 10 # +EXPLAIN DELETE FROM tab3 +WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))'))); + + +--echo #check the spatial values +SELECT ST_AsText(c1) FROM tab3; +SELECT ST_AsText(c2) FROM tab3; +SELECT ST_AsText(c3) FROM tab3; +SELECT ST_AsText(c4) FROM tab3; +SELECT ST_AsText(c5) FROM tab3; +SELECT ST_AsText(c6) FROM tab3; +SELECT ST_AsText(c7) FROM tab3; +SELECT ST_AsText(c8) From tab3; + +--echo #check with Row_format = Dynamic +--disable_warnings +ALTER TABLE tab3 ROW_FORMAT=Dynamic; +--enable_warnings + +--echo #check file format +SHOW CREATE TABLE tab3; + +--echo #check index with WKB function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) +FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)'))); + +--echo #check index with WKT function +--replace_column 10 # +EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3 +WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'); + + + +--echo #check the Geometry property functions +SELECT fid, ST_Dimension(g) FROM gis_geometry; +SELECT fid, ST_GeometryType(g) FROM gis_geometry; +SELECT fid, ST_IsEmpty(g) FROM gis_geometry; +SELECT fid, ST_AsText(ST_Envelope(g)) FROM gis_geometry; +--replace_column 10 # +explain extended select ST_Dimension(g), ST_GeometryType(g), ST_IsEmpty(g), ST_AsText(ST_Envelope(g)) from gis_geometry; + +--echo #check Geometry point functions +SELECT fid, ST_X(g) FROM gis_point; +SELECT fid, ST_Y(g) FROM gis_point; +--replace_column 10 # +explain extended select ST_X(g),ST_Y(g) FROM gis_point; + +SELECT fid, ST_AsText(ST_StartPoint(g)) FROM gis_line; +SELECT fid, ST_AsText(ST_EndPoint(g)) FROM gis_line; +SELECT fid, ST_Length(g) FROM gis_line; +SELECT fid, ST_NumPoints(g) FROM gis_line; +SELECT fid, ST_AsText(ST_PointN(g, 2)) FROM gis_line; +SELECT fid, ST_IsClosed(g) FROM gis_line; +--replace_column 10 # +explain extended select ST_AsText(ST_StartPoint(g)),ST_AsText(ST_EndPoint(g)), +ST_Length(g),ST_NumPoints(g),ST_AsText(ST_PointN(g, 2)),ST_IsClosed(g) FROM gis_line; + +SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_polygon; +SELECT fid, ST_Area(g) FROM gis_polygon; +SELECT fid, ST_AsText(ST_ExteriorRing(g)) FROM gis_polygon; +SELECT fid, ST_NumInteriorRings(g) FROM gis_polygon; +SELECT fid, ST_AsText(ST_InteriorRingN(g, 1)) FROM gis_polygon; +--replace_column 10 # +explain extended select ST_AsText(ST_Centroid(g)),ST_Area(g),ST_AsText(ST_ExteriorRing(g)), +ST_NumInteriorRings(g),ST_AsText(ST_InteriorRingN(g, 1)) FROM gis_polygon; + +SELECT fid, ST_IsClosed(g) FROM gis_multi_line; + +SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_multi_polygon; +SELECT fid, ST_Area(g) FROM gis_multi_polygon; + +SELECT fid, ST_NumGeometries(g) from gis_multi_point; +SELECT fid, ST_NumGeometries(g) from gis_multi_line; +SELECT fid, ST_NumGeometries(g) from gis_multi_polygon; +SELECT fid, ST_NumGeometries(g) from gis_geometrycollection; +--replace_column 10 # +explain extended SELECT fid, ST_NumGeometries(g) from gis_multi_point; + +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point; +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_line; +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_polygon; +SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_geometrycollection; +SELECT fid, ST_AsText(ST_GeometryN(g, 1)) from gis_geometrycollection; +--replace_column 10 # +explain extended SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point; + +SELECT g1.fid as first, g2.fid as second, +MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g) as o, +MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t, +MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r +FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; +--replace_column 10 # +explain extended SELECT g1.fid as first, g2.fid as second, +MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g) as o, +MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t, +MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r +FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; + +--echo # check support of Foreign Key constraint +CREATE TABLE parent (id GEOMETRY NOT NULL,PRIMARY KEY (id(10))) ENGINE=INNODB; + +--error 1215 +CREATE TABLE child (id GEOMETRY, parent_id GEOMETRY, + INDEX par_ind (parent_id(10)), + FOREIGN KEY (parent_id(10)) REFERENCES parent(id) + ON DELETE CASCADE +) ENGINE=INNODB; + +--echo #check partition table support +--error 1178 +CREATE TABLE emp2( + id GEOMETRY NOT NULL, + store_name VARCHAR(30), + parts VARCHAR(30), + store_id GEOMETRY +) +PARTITION BY LIST(store_id) ( + PARTITION pNorth VALUES IN (10,20,30) , + PARTITION pEast VALUES IN (40,50,60) , + PARTITION pWest VALUES IN (70,80,100) +); + +--echo #check start transaction commit & Rollback +START TRANSACTION; +DELETE FROM tab3; +ROLLBACK; + +SELECT COUNT(*) FROM tab3; + +START TRANSACTION; +DELETE FROM tab3; +COMMIT; + +SELECT COUNT(*) FROM tab3; + +DROP TABLE IF EXISTS gis_point, gis_line, gis_polygon, gis_multi_point; +DROP TABLE IF EXISTS gis_multi_line, gis_multi_polygon; +DROP TABLE IF EXISTS gis_geometrycollection, gis_geometry; +DROP TABLE IF EXISTS tab,tab2,tab3,parent,emp2; +DROP PROCEDURE IF EXISTS geominout; +DROP PROCEDURE IF EXISTS geom_insert; +DROP TRIGGER IF EXISTS geom_trigger; +DROP PROCEDURE IF EXISTS geom_cursor; diff --git a/mysql-test/suite/innodb_gis/t/gis_split_inf.test b/mysql-test/suite/innodb_gis/t/gis_split_inf.test new file mode 100644 index 00000000000..f3f9a6ae982 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/gis_split_inf.test @@ -0,0 +1,31 @@ + +--source include/have_innodb.inc +--source include/have_debug.inc + +create table t1(a geometrycollection not null,spatial key(a))engine=innodb; + +--error ER_GIS_INVALID_DATA +insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-14,98), point(-14,98)), linestring(point(-97,64), point(-70,99), point(-97,64)), linestring(point(143851215403059150000000000000000000000.000000,13040009882500140000000000000000000000.000000), point(-73,85), point(-88,-29)))), multipolygon(polygon(linestring(point(41,95), point(4294967298,2050)), linestring(point(-61,85), point(-75,93), point(14,-2), point(1,84), point(-61,85)), linestring(point(-62,52), point(39,5), point(-18,12), point(-62,52))), polygon(linestring(point(-77,1), point(66,61), point(-77,1)), linestring(point(18446744073709551615,1125899906842622), point(-72,49), point(24,-66), point(82,73), point(68,22))), polygon(linestring(point(1048576,17179869181), point(-18,95), point(-90,-3), point(-33,82), point(20,-85)), linestring(point(-43,-97), point(-7,-3), point(39,-82), point(-65,-58), point(-43,-97)), linestring(point(44,-34), point(-69,58), point(44,-34)), linestring(point(57,-13), point(-17,74), point(57,-13)), linestring(point(3,71), point(-58,81), point(3,71)), linestring(point(9,25), point(77,-71), point(8388607,67108864), point(46,46), point(9,25)), linestring(point(98,-82), point(98,-82))))) ) ; + +insert into t1(a) values( geometrycollection(multilinestring(linestring(point(39,-60), point(-62,-11), point(-24,35), point(54,1)), linestring(point(-4,69), point(-22,-64), point(1.694824e+308,5.688896e+307), point(-33,-58), point(-64,-80), point(-15,-44), point(40,54)), linestring(point(-86,-54), point(11,41), point(-46,-38), point(-21,-8), point(10,70), point(-81,22), point(-46,-100)), linestring(point(-30,-48), point(50,58), point(-53,92), point(10,41), point(-46,-8)), linestring(point(-65,34), point(-92,93), point(-33,-74), point(75,-28)), linestring(point(25,-55), point(22,-10), point(-42,0), point(-86,-59), point(2,-37), point(63,-44), point(-55,-22)), linestring(point(28,0), point(-94,99), point(-32,-86)), linestring(point(9,-12), point(16,9), point(80,-73)), linestring(point(6,-55), point(83,-4)), linestring(point(-15,21), point(144115188075855876,16777212), point(-85,-31), point(-90,-50)), linestring(point(-33,33), point(21,90), point(-89,32)), linestring(point(16,24), point(73,-13), point(25,-48), point(71,52), point(-54,-78), point(-84,59), point(53,29)), linestring(point(-15,-81), point(83,43), point(-71,33), point(-8,0), point(84,-54), point(-35,38), point(-10,-50)), linestring(point(38,-50), point(20,-2), point(-57,-92)), linestring(point(5,-93), point(231601833467477080000000000000000000000.000000,51914987457169239000000000000000000000.000000), point(-94,62))), point(2,0)) ) ; +insert into t1(a) values( geometrycollection(multilinestring(linestring(point(80,-15), point(65,-57), point(-59,16), point(22,-67)), linestring(point(20,-55), point(-38,-64), point(19,-53), point(-63,-36), point(56,-37)), linestring(point(27,-8), point(-85,-75), point(4398046511106,2251799813685245)), linestring(point(45,32), point(-79,46))), multilinestring(linestring(point(8,-4), point(40,-38), point(100,95), point(5,-80), point(82,88)), linestring(point(-14,30), point(-94,51), point(-16,-29), point(37,-97), point(-26,92)), linestring(point(32,34), point(83,-23), point(-55,57), point(-15,90), point(32,-50), point(-20,-73), point(77,28)), linestring(point(4,88), point(87,74), point(-67,-58)), linestring(point(5.660747e+307,6.385657e+307), point(-58,-15), point(1.172095e+308,1.448533e+308)), linestring(point(-21,-37), point(-52,79), point(-16,-76), point(-65,-94), point(36,7), point(37,74), point(100,-57)), linestring(point(-23,-82), point(-73,23), point(18,-34)), linestring(point(20,-51), point(93,62), point(-65,84)), linestring(point(-48,31), point(-69,-96)), linestring(point(-5,78), point(10,-99), point(36,-33)), linestring(point(-84,55), point(96,1), point(-98,-29), point(-15,81), point(-27,-6), point(58,-32), point(54,-16)), linestring(point(2,5), point(2199023255553,8192)), linestring(point(12,-78), point(-97,-83)), linestring(point(-74,79), point(35,-56), point(50,95)), linestring(point(28,16), point(-39,-40), point(48,-3)), linestring(point(2199023255550,-65539), point(62,-25), point(94,-62)), linestring(point(-74,83), point(-18,75), point(91,17), point(-11,-48), point(30,100)), linestring(point(57,-13), point(88,-45)), linestring(point(20,-64), point(-37,13), point(20,35))), point(-3,-4)) ) ; +--error ER_GIS_INVALID_DATA +insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-34,19), point(-25,92), point(61921390294166805000000000000000000000.000000,319674749161701840000000000000000000000.000000), point(56,50), point(-34,19)), linestring(point(-26,-58), point(99,-50), point(34,-20), point(-26,-58)), linestring(point(-42,45), point(-63,-7), point(5,-89), point(-97,36), point(-42,45)), linestring(point(94,11), point(-71,4), point(94,11)), linestring(point(16,25), point(4,-33), point(-45,-33), point(-64,-77), point(16,25)), linestring(point(19,45), point(36,45), point(-83,-96), point(19,45)), linestring(point(85,-31), point(-87,52), point(85,-31))), polygon(linestring(point(55,-88), point(63,-12), point(55,-88)), linestring(point(-49,10), point(-49,10)), linestring(point(-51,-32), point(-51,-32)))), multipolygon(polygon(linestring(point(-21,-8), point(66,-58), point(100,-27), point(-21,-8)), linestring(point(-29,-13), point(-29,-13))), polygon(linestring(point(91307574660224730000000000000000000000.000000,101214152547755520000000000000000000000.000000), point(89,64), point(77,87), point(66,29), point(-71,-53)), linestring(point(38,-78), point(-43,-90), point(37,20), point(81,65), point(38,-78))), polygon(linestring(point(51,0), point(-62,8), point(-11,22), point(51,0)), linestring(point(-4,-44), point(6,82), point(-19,-90), point(131,32)))), point(-4,-7)) ) ; +insert into t1(a) values( geometrycollection(point(10,9), linestring(point(2305843009213693955,-1125899906842621), point(78,15)), multipoint(point(-1,3), point(4,-6))) ) ; +--error ER_GIS_INVALID_DATA +insert into t1(a) values( geometrycollection(polygon(linestring(point(0,13), point(-12,5), point(0,13)), linestring(point(11,-2), point(6,6), point(20,-14), point(-3,-10), point(1.330588e+308,2.666476e+307)), linestring(point(16382,67), point(7,4)), linestring(point(2,7), point(-14,15), point(2,7)), linestring(point(-14,12), point(-8,-8), point(-17,-2), point(-14,12)), linestring(point(-20,-10), point(-8,-13), point(-19,-17), point(13,-3), point(-20,-10)), linestring(point(-5,13), point(7,-9), point(6,8), point(-5,13))), linestring(point(-87,19), point(-64,51), point(-16,12)), multipoint(point(-1,-10), point(2,-10), point(3.670354e+307,2.501459e+307))) ) ; +--error ER_GIS_INVALID_DATA +insert into t1(a) values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) ) ; +insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(15,84), point(39,-92), point(-99,19)), multilinestring(linestring(point(63,10), point(-47,95), point(10,-49), point(16,-65), point(-98,40), point(25,44), point(-55,-92)), linestring(point(5.266810e+307,6.648813e+307), point(47,33), point(-15,-13), point(-92,-58), point(36,73)), linestring(point(77,-56), point(-53,-10), point(-28,76), point(-51,6), point(51,-31), point(-95,81), point(92,26)), linestring(point(-91,7), point(58,53)), linestring(point(18,5), point(18,40), point(71,89), point(7.898707e+307,1.202585e+308), point(53,100)), linestring(point(-60,-18), point(-10,-31), point(-6,-25), point(-57,-95), point(16,77)))) ) ; +--error ER_GIS_INVALID_DATA +insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ; +insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ; + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/gis_split_nan.test b/mysql-test/suite/innodb_gis/t/gis_split_nan.test new file mode 100644 index 00000000000..0c55a210475 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/gis_split_nan.test @@ -0,0 +1,297 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_geometry.inc +--source include/have_innodb_4k.inc + +############################################################################################ +# Creating the spatial objects # +############################################################################################ + +--echo # Creating the spatial objects +USE test; + +CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT); +CREATE TABLE gis_linestring (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING); +CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON); +CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT); +CREATE TABLE gis_multi_linestring (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING); +CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON); +CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION); + +############################################################################################ +# Inserting the values specific to the spatial objects # +############################################################################################ + +--echo # Inserting POINT Geometry Values +INSERT INTO gis_point VALUES + (101, ST_POINTFROMTEXT('POINT(0 0)')), + (102, ST_POINTFROMTEXT('POINT(1 0)')), + (103, ST_POINTFROMTEXT('POINT(0 1)')), + (104, ST_POINTFROMTEXT('POINT(1 1)')), + (105, ST_POINTFROMTEXT('POINT(-1 1)')); + +INSERT INTO gis_point VALUES + (106, ST_POINTFROMWKB(POINT(0,0))), + (107, ST_POINTFROMWKB(POINT(10,0))), + (108, ST_POINTFROMWKB(POINT(0,10))), + (109, ST_POINTFROMWKB(POINT(-10,0))), + (110, ST_POINTFROMWKB(POINT(0,-10))); + +INSERT INTO gis_point VALUES + (111, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1 1)')))), + (112, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1e308 1e308)')))), + (113, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1e308 -1e308)')))), + (114, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(-1e308 1e308)')))), + (115, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(-1e308 -1e308)')))); + +--echo # Inserting LINESTRING Geometry Values +INSERT INTO gis_linestring VALUES + (201, ST_LINEFROMTEXT('LINESTRING(0 0,5 5)')), + (202, ST_LINEFROMTEXT('LINESTRING(0 0,2 2,4 4)')), + (203, ST_LINEFROMTEXT('LINESTRING(0 0,5 5,10 10)')); + +INSERT INTO gis_linestring VALUES + (204, ST_LINESTRINGFROMTEXT('LINESTRING(10 10,5 5)')), + (205, ST_LINESTRINGFROMTEXT('LINESTRING(0 0,12 12,24 24)')), + (206, ST_LINESTRINGFROMTEXT('LINESTRING(0 0,50 50,100 100)')); + +INSERT INTO gis_linestring VALUES + (207, ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(5,5)))), + (208, ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,10)))), + (209, ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)))); + +INSERT INTO gis_linestring VALUES + (210, ST_LINESTRINGFROMWKB(LINESTRING(POINT(0,0), POINT(5,5)))), + (211, ST_LINESTRINGFROMWKB(LINESTRING(POINT(0,0), POINT(-50,-50), POINT(10,-10)))), + (212, ST_LINESTRINGFROMWKB(LINESTRING(POINT(0,0), POINT(1e308,1e308), POINT(1e308,-1e308)))); + +INSERT INTO gis_linestring VALUES + (213, ST_LINEFROMWKB(ST_ASWKB(ST_LINEFROMTEXT('LINESTRING(1e308 1e308,1e308 -1e308)')))), + (214, ST_LINEFROMWKB(ST_ASWKB(ST_LINEFROMTEXT('LINESTRING(1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9)')))), + (215, ST_LINESTRINGFROMWKB(ST_ASWKB(ST_LINESTRINGFROMTEXT('LINESTRING(10 10,10 -10,-10 -10,-10 10,10 10)')))); + +--echo # Inserting POLYGON Geometry Values +INSERT INTO gis_polygon VALUES + (301, ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,0 0))')), + (302, ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,5 0,0 0))')), + (303, ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))')); + +INSERT INTO gis_polygon VALUES + (304, ST_POLYGONFROMTEXT('POLYGON((0 0,0 50,50 50,50 0,0 0))')), + (305, ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4))')), + (306, ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))')); + +INSERT INTO gis_polygon VALUES + (307, ST_POLYFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0))))), + (308, ST_POLYFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0))))), + (309, ST_POLYFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))); + +INSERT INTO gis_polygon VALUES + (310, ST_POLYGONFROMWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0))))), + (311, ST_POLYGONFROMWKB(POLYGON(LINESTRING(POINT(10,10), POINT(10,15), POINT(15,15), POINT(15,10), POINT(10,10))))), + (312, ST_POLYGONFROMWKB(POLYGON(LINESTRING(POINT(10,10), POINT(10,20), POINT(20,20), POINT(20,10), POINT(10,10)), + LINESTRING(POINT(14,14), POINT(14,16), POINT(16,16), POINT(16,14), POINT(14,14))))); + +INSERT INTO gis_polygon VALUES + (313, ST_POLYFROMWKB(ST_ASWKB(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,5 5,0 0))')))), + (314, ST_POLYFROMWKB(ST_ASWKB(ST_POLYGONFROMTEXT('POLYGON((10 0,10 10,0 10,-10 10,-10 0,-10 -10,0 10,10 -10,10 0))')))), + (315, ST_POLYGONFROMWKB(ST_ASWKB(ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))')))); + +--echo # Inserting MULTIPOINT Geometry Values +INSERT INTO gis_multi_point VALUES + (401, ST_GEOMFROMTEXT('MULTIPOINT(0 0)')), + (402, ST_GEOMFROMTEXT('MULTIPOINT(0 0,2 2,4 4)')), + (403, ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 5,10 10)')); + +INSERT INTO gis_multi_point VALUES + (404, ST_GEOMFROMTEXT('MULTIPOINT(0 0,100 100)')), + (405, ST_GEOMFROMTEXT('MULTIPOINT(0 0,1e308 1e308)')), + (406, ST_GEOMFROMTEXT('MULTIPOINT(1e308 1e308,1e308 -1e308,-1e308 1e308,-1e308 -1e308)')); + +INSERT INTO gis_multi_point VALUES + (407, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0)))), + (408, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0), POINT(10,10)))), + (409, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)))); + +INSERT INTO gis_multi_point VALUES + (410, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0)))), + (411, ST_GEOMFROMWKB(MULTIPOINT(POINT(0,0), POINT(1e308,1e308)))), + (412, ST_GEOMFROMWKB(MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308), POINT(-1e308,-1e308)))); + +INSERT INTO gis_multi_point VALUES + (413, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOINT(0 0)')))), + (414, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOINT(0 0,1e308 1e308,-1e308 -1e308)')))), + (415, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOINT(1e308 1e308,1e308 -1e308,-1e308 1e308,-1e308 -1e308,1e308 1e308)')))); + +--echo # Inserting MULTILINESTRING Geometry Values +INSERT INTO gis_multi_linestring VALUES + (501, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 2))')), + (502, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 2,4 4))')), + (503, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 2,4 4),(6 6,8 8,10 10))')); + +INSERT INTO gis_multi_linestring VALUES + (504, ST_GEOMFROMTEXT('MULTILINESTRING((0 0,100 100,-100 -100))')), + (505, ST_GEOMFROMTEXT('MULTILINESTRING((1e308 1e308,-1e308 -1e308))')), + (506, ST_GEOMFROMTEXT('MULTILINESTRING((1e308 1e308,-1e308 -1e308),(1e308 -1e308,-1e308 1e308))')); + +INSERT INTO gis_multi_linestring VALUES + (507, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2))))), + (508, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(12,12), POINT(24,24))))), + (509, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4)), + LINESTRING(POINT(6,6), POINT(8,8), POINT(10,10))))); + +INSERT INTO gis_multi_linestring VALUES + (510, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4))))), + (511, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(1,1), POINT(2,2))))), + (512, ST_GEOMFROMWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(12,12), POINT(24,24)), + LINESTRING(POINT(36,36), POINT(48,48), POINT(50,50))))); + +INSERT INTO gis_multi_linestring VALUES + (513, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10),(0 10,10 0))')))), + (514, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10,-10 10,0 0),(0 0,-10 -10,10 -10,0 0))')))), + (515, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,0 100),(0 0,100 0),(0 0,0 -100),(0 0,-100 0))')))); + +--echo # Inserting MULTIPOLGYON Geometry Values +INSERT INTO gis_multi_polygon VALUES + (601, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))')), + (602, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)),((5 5,5 10,10 10,5 5)))')), + (603, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)))')); + +INSERT INTO gis_multi_polygon VALUES + (604, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))')), + (605, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)),((0 0,0 -2,-2 -2,0 0)))')), + (606, ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,-5 5,0 0)),((0 0,-5 -5,5 -5,0 0)))')); + +INSERT INTO gis_multi_polygon VALUES + (607, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(5,0), POINT(5,5), POINT(0,5), POINT(0,0)))))), + (608, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), + (609, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(5,0), POINT(5,5), POINT(0,5), POINT(0,0))), + POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))); + +INSERT INTO gis_multi_polygon VALUES + (610, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))), + (611, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(10,10), POINT(20,10), POINT(20,20), POINT(10,20), POINT(10,10)), + LINESTRING(POINT(14,14), POINT(14,16), POINT(16,16), POINT(16,14), POINT(14,14)))))), + (612, ST_GEOMFROMWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))), + POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))); + +INSERT INTO gis_multi_polygon VALUES + (613, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,5 -5,0 0)),((0 0,-5 5,-5 -5,0 0)))')))), + (614, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 10,-10 10,0 0)),((0 0,-10 -10,10 -10,0 0)))')))), + (615, ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 0,5 -5,0 0)))')))); + +--echo # Inserting GEOMETRYCOLLECTION Geometry Values +INSERT INTO gis_geometrycollection VALUES + (701, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))')), + (702, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), + (703, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(5 5), POLYGON((0 0,0 10,10 10,10 0,0 0)))')); + +INSERT INTO gis_geometrycollection VALUES + (704, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')), + (705, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),' + 'LINESTRING(0 0,10 10),' + 'POLYGON((0 0,0 10,10 10,10 0,0 0,0 0, 0 0)))')), + (706, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(0 0,5 5,10 10),' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0)),' + 'MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),' + '((0 0,-10 0,-10 -10,0 -10,0 0))))')); + +INSERT INTO gis_geometrycollection VALUES + (707, ST_GEOMCOLLFROMWKB(GEOMETRYCOLLECTION(POINT(0,0)))), + (708, ST_GEOMCOLLFROMWKB(GEOMETRYCOLLECTION(POINT(0,0), + LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)), + POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), + (709, ST_GEOMCOLLFROMWKB(GEOMETRYCOLLECTION(MULTIPOINT(POINT(0,0), POINT(5,5), POINT(10,10)), + MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)), + LINESTRING(POINT(10,10), POINT(5,5), POINT(0,10))), + MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))), + POLYGON(LINESTRING(POINT(0,0), POINT(-10,0), POINT(-10,-10), POINT(0,0))))))); + +INSERT INTO gis_geometrycollection VALUES + (710, ST_GEOMETRYCOLLECTIONFROMWKB(GEOMETRYCOLLECTION(POINT(0,0), + LINESTRING(POINT(0,0), POINT(100,100))))), + (711, ST_GEOMETRYCOLLECTIONFROMWKB(GEOMETRYCOLLECTION(POINT(10,10), + LINESTRING(POINT(10,10), POINT(12,12), POINT(14,14), POINT(16,16), POINT(18,18)), + POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), + (712, ST_GEOMETRYCOLLECTIONFROMWKB(GEOMETRYCOLLECTION(MULTIPOINT(POINT(10,10), POINT(15,15), POINT(20,20)), + MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)), + LINESTRING(POINT(10,10), POINT(5,5), POINT(0,10))), + MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)), + LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))), + POLYGON(LINESTRING(POINT(0,0), POINT(-10,0), POINT(-10,-10), POINT(0,0))))))); + +INSERT INTO gis_geometrycollection VALUES + (713, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(' + 'POINT(0 0),' + 'LINESTRING(0 0,10 10),' + 'POLYGON((0 0,0 10,10 10,10 0,0 0)),' + 'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0)),' + 'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))')))), + (714, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION(' + 'POINT(0 0)),' + 'GEOMETRYCOLLECTION(' + 'LINESTRING(0 0,10 10)),' + 'GEOMETRYCOLLECTION(' + 'POLYGON((0 0,0 10,10 10,10 0,0 0))),' + 'GEOMETRYCOLLECTION(' + 'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10)),' + 'GEOMETRYCOLLECTION(' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0))),' + 'GEOMETRYCOLLECTION(' + 'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))))')))), + (715, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION(),' + 'POINT(0 0),' + 'GEOMETRYCOLLECTION(' + 'LINESTRING(0 0,10 10),' + 'GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION())),' + 'GEOMETRYCOLLECTION(),' + 'GEOMETRYCOLLECTION(' + 'GEOMETRYCOLLECTION()),' + 'POLYGON((0 0,0 10,10 10,10 0,0 0)),' + 'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),' + 'MULTILINESTRING((0 0,10 10),(0 10,10 0)),' + 'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))')))); + +############################################################################################ +# Checking spatial index with geometry data # +############################################################################################ + +--echo # Creating a table with spatial index column +CREATE TABLE geom_index (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY NOT NULL, SPATIAL INDEX(g)); + +--echo # Inserting geometry values +INSERT INTO geom_index SELECT * FROM gis_point; + +INSERT INTO geom_index SELECT * FROM gis_linestring; + +INSERT INTO geom_index SELECT * FROM gis_polygon; + +INSERT INTO geom_index SELECT * FROM gis_multi_point; + +INSERT INTO geom_index SELECT * FROM gis_multi_linestring; + +INSERT INTO geom_index SELECT * FROM gis_multi_polygon; + +INSERT INTO geom_index SELECT * FROM gis_geometrycollection; + +check table geom_index; + +--echo # Final cleanup +DROP TABLE gis_point; +DROP TABLE gis_linestring; +DROP TABLE gis_polygon; +DROP TABLE gis_multi_point; +DROP TABLE gis_multi_linestring; +DROP TABLE gis_multi_polygon; +DROP TABLE gis_geometrycollection; +DROP TABLE geom_index; diff --git a/mysql-test/suite/innodb_gis/t/kill_server.test b/mysql-test/suite/innodb_gis/t/kill_server.test new file mode 100644 index 00000000000..7a7c3e310b8 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/kill_server.test @@ -0,0 +1,64 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree multi level split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/big_test.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +# Test level 1 rtree. +CALL insert_t1(5000); +select count(*) from t1; + +# Check table. +check table t1; + +# Test level 2 rtree. +truncate table t1; +CALL insert_t1(10000); +select count(*) from t1; + +drop index c2 on t1; + +create spatial index idx on t1(c2); + +show create table t1; + +# Check table. +check table t1; + +# Test level 3 rtree. +truncate table t1; + +# Test crash recovery. +# +# +call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); + +# Test rtree enlarge recovery. +START TRANSACTION; +CALL insert_t1(5000); + +COMMIT; + +--source include/kill_and_restart_mysqld.inc + +# Clean up. +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/multi_pk.test b/mysql-test/suite/innodb_gis/t/multi_pk.test new file mode 100644 index 00000000000..c90f794fe15 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/multi_pk.test @@ -0,0 +1,80 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/big_test.inc +--source include/not_valgrind.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 varchar(255), c3 geometry not null, primary key(c1, c2), spatial index (c3))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; + +create function rand_string(str_length tinyint unsigned, str_type tinyint unsigned) returns varchar(255) +begin + declare counter int unsigned default 0; + declare const_chars varchar(64) default '0123456789'; + declare result varchar(255) default ''; + + if str_type = 1 then + set const_chars = '0123456789'; + elseif str_type = 2 then + set const_chars = 'abcdefghijklmnopqrstuvwxyz'; + elseif str_type = 3 then + set const_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + elseif str_type = 4 then + set const_chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + elseif str_type = 5 then + set const_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + else + set const_chars = '0123456789'; + end if; + + while counter < str_length do + set result = concat(result,substr(const_chars,ceil(rand()*(length(const_chars)-1)),1)); + set counter = counter + 1; + end while; + + return result; +end| + +create procedure insert_t1(IN total int) +begin + declare i int default 1; + declare i2 int default 1; + declare str varchar(100) default ''; + declare dup_key int default 1; + while i <= total DO + set i2 = floor(0+(rand()*100)); + set str = rand_string(i2, 5); + select count(*) into dup_key from t1 where c2 = str and c1 = i; + while dup_key <> 0 do + set i2 = floor(0+(rand()*100)); + set str = rand_string(i2, 5); + select count(*) into dup_key from t1 where c2 = str and c1 = i; + end while; + insert into t1 values (i, str, Point(i, i)); + set i = i + 1; + end while; +end| + +delimiter ;| + +CALL insert_t1(10000); +check table t1; + +start transaction; +CALL insert_t1(30000); +rollback; +check table t1; + +# Clean up. +drop procedure insert_t1; +drop function rand_string; +drop table t1; + diff --git a/mysql-test/suite/innodb_gis/t/point_basic.test b/mysql-test/suite/innodb_gis/t/point_basic.test new file mode 100644 index 00000000000..c6a2a673c19 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/point_basic.test @@ -0,0 +1,801 @@ +#******************************************************** +# wl6942: Store certain GIS data type in the row rather +# than as BLOB. +# +#******************************************************** + +--source include/have_geometry.inc +--source include/have_innodb.inc + + +--echo # +--echo # Test for basic POINT operation +--echo # +CREATE TABLE gis_point(p1 POINT, p2 POINT) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(0 0)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(10 -20)'), ST_PointFromText('POINT(10 -20)')), +(ST_PointFromText('POINT(3.1415926 3.535897)'), ST_PointFromText('POINT(-3.932626 -3.488272)')), +(ST_PointFromText('POINT(-111.9876 234.1357)'), ST_PointFromText('POINT(-957.1914 958.1919)')); +SELECT ST_X(p1), ST_Y(p2) FROM gis_point; +DROP TABLE gis_point; + + +--echo # +--echo # Test when POINT is not on any indexes +--echo # +CREATE TABLE gis_point(p1 POINT, p2 POINT) ENGINE=InnoDB; +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(100.32374832 101.23741821)')), +(ST_PointFromText('POINT(105.34523342 103.18492302)'), ST_PointFromText('POINT(100.32374832 101.23741821)')), +(ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(200.32247328 101.86728201)')), +(ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(100.32374832 101.98527111)')); + +--replace_column 10 # +EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; + +SELECT ST_AsText(p1) FROM gis_point WHERE p1 = p2; +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE p1 = ST_PointFromText('POINT(100.32374832 101.23741821)'); +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE p2 = ST_PointFromText('POINT(200.32247328 101.86728201)'); + +DROP TABLE gis_point; + + +--echo # +--echo # Test some ALTER TABLE operations on POINT tables +--echo # + +CREATE TABLE t1 ( + p POINT NOT NULL, + g GEOMETRY NOT NULL +) ENGINE=InnoDB; + +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0 1)'), ST_PointFromText('POINT(10 11)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(1 1)'), ST_PointFromText('POINT(10 12)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(1 0)'), ST_PointFromText('POINT(10 13)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0 0)'), ST_PointFromText('POINT(10 14)')); + +SELECT ST_AsText(p), ST_AsText(g) FROM t1; + +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g'; + +ALTER TABLE t1 ADD COLUMN p1 POINT, ADD COLUMN p2 POINT, ADD KEY(p); +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1' OR name = 'p2'; + +--echo # NOT NULL POINT will use '' +SELECT count(*) AS `Expect 4` FROM t1 WHERE p1 = ''; +SELECT count(*) AS `Expect 4` FROM t1 WHERE p2 = ''; + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p = p1; +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p = p2; + +ALTER TABLE t1 DROP COLUMN p2; + +--echo # NULLABLE POINT will use NULL +ALTER TABLE t1 ADD COLUMN p2 POINT, ADD KEY(p2); +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1' OR name = 'p2'; + +SELECT count(*) AS `Expect 4` FROM t1 WHERE p2 IS NULL; +UPDATE t1 SET p2 = ST_PointFromText('POINT(10 20)'); +UPDATE t1 SET p1 = ST_PointFromText('POINT(10 20)'); + +ALTER TABLE t1 DROP COLUMN p2; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p = p1; + +INSERT INTO t1 VALUES (ST_PointFromText('POINT(0.5 0.5)'), ST_PointFromText('POINT(0 1)'), ST_PointFromText('POINT(10 19)')); +SELECT ST_AsText(p1) FROM t1; +DELETE FROM t1 WHERE p1 = ST_PointFromText('POINT(10 19)'); +SELECT ST_AsText(p1) FROM t1; + +--echo # Add spatial keys on the table +--error ER_SPATIAL_CANT_HAVE_NULL +ALTER TABLE t1 ADD SPATIAL(p), ADD SPATIAL(p1); +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); + +--echo # Drop spatial keys on the table +--error ER_CANT_DROP_FIELD_OR_KEY +ALTER TABLE t1 DROP KEY p, DROP KEY p1; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); + +TRUNCATE t1; + +ALTER TABLE t1 DROP COLUMN p, DROP COLUMN p1; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; + +ALTER TABLE t1 ADD COLUMN p POINT, ADD COLUMN p1 POINT; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; + +SHOW CREATE TABLE t1; + +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.5 0.5)'), ST_PointFromText('POINT(0 1)'), ST_PointFromText('POINT(10 19)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.6 0.6)'), ST_PointFromText('POINT(1 1)'), ST_PointFromText('POINT(10 20)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.7 0.7)'), ST_PointFromText('POINT(1 0)'), ST_PointFromText('POINT(10 21)')); +INSERT INTO t1 VALUES(ST_PointFromText('POINT(0.8 0.8)'), ST_PointFromText('POINT(0 0)'), ST_PointFromText('POINT(10 22)')); + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); + +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')); +SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); + +ALTER TABLE t1 DROP COLUMN p1, ADD COLUMN p1 POINT, CHANGE COLUMN p pp POINT AFTER p1; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'pp' OR name = 'g' OR name = 'p1'; + +UPDATE t1 SET p1 = ST_PointFromText('POINT(5 5)'); + +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1; + +--error ER_SPATIAL_CANT_HAVE_NULL +ALTER TABLE t1 ADD SPATIAL(p1), ADD SPATIAL(pp), ALGORITHM = COPY; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'pp' OR name = 'g' OR name = 'p1'; + +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 30)'); +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(10 20)'); + +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')) ORDER BY pp; +SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(pp, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')) ORDER BY pp; + +DROP TABLE t1; + + +--echo # +--echo # Test when the POINT is on B-TREE +--echo # +CREATE TABLE gis_point(fid INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, p POINT, KEY(p)) ENGINE=InnoDB; + +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); + +SELECT ST_AsText(p) FROM gis_point; +SELECT ST_AsText(p) FROM gis_point WHERE p = ST_PointFromText('POINT(20 20)'); + +INSERT INTO gis_point VALUES +(201, ST_PointFromText('POINT(100.32374832 101.23741821)')), +(202, ST_PointFromText('POINT(102.43287328 100.23489233)')), +(203, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(204, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))), +(205, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(206, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))); + +-- echo 'The ORDER BY will use filesort' +--replace_column 10 # +EXPLAIN SELECT ST_AsText(p) FROM gis_point ORDER BY p; +SELECT ST_AsText(p) FROM gis_point ORDER BY p; + +SELECT ST_AsText(p), COUNT(*) FROM gis_point GROUP BY p; + +TRUNCATE gis_point; + +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); + +--echo # Check if we can create prefix index on POINT +ALTER TABLE gis_point ADD COLUMN g POINT, ADD KEY(g(8)); + +INSERT INTO gis_point VALUES +(105, ST_PointFromText('POINT(25 15)'), ST_PointFromText('POINT(100 100)')), +(106, ST_PointFromText('POINT(25 25)'), ST_PointFromText('POINT(110 110)')); + +SELECT ST_AsText(p) FROM gis_point; +SELECT ST_AsText(p), ST_AsText(g) FROM gis_point WHERE g IS NULL; + +UPDATE gis_point SET g = ST_PointFromText('POINT(200 200)') WHERE g IS NULL OR g = ST_PointFromText('POINT(110 110)'); +SELECT ST_AsText(g) FROM gis_point WHERE g IS NULL OR g = ST_PointFromText('POINT(200 200)'); + +--echo # Check the information schema tables +SELECT table_name, column_name, data_type, column_type FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='gis_point' AND (column_name = 'p' OR column_name = 'g'); + +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g'; + +SELECT length(p) FROM gis_point; + +ALTER TABLE gis_point DROP COLUMN g, ALGORITHM = COPY; + +TRUNCATE gis_point; + +INSERT INTO gis_point VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); + +--echo # Check if we can create prefix index on POINT +ALTER TABLE gis_point ADD COLUMN g POINT, ADD KEY(g(8)); + +INSERT INTO gis_point VALUES +(105, ST_PointFromText('POINT(25 15)'), ST_PointFromText('POINT(100 100)')), +(106, ST_PointFromText('POINT(25 25)'), ST_PointFromText('POINT(110 110)')); + +SELECT ST_AsText(p) FROM gis_point; +SELECT ST_AsText(p), ST_AsText(g) FROM gis_point WHERE g IS NULL; + +UPDATE gis_point SET g = ST_PointFromText('POINT(200 200)') WHERE g IS NULL OR g = ST_PointFromText('POINT(110 110)'); +SELECT ST_AsText(g) FROM gis_point WHERE g IS NULL OR g = ST_PointFromText('POINT(200 200)'); + +CHECK TABLE gis_point; + +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g'; + +DROP TABLE gis_point; + + +--echo # +--echo # Check the mtype of other geometry data types should be 15 +--echo # +CREATE TABLE g ( + geom GEOMETRY NOT NULL, + l LINESTRING NOT NULL, + poly POLYGON NOT NULL, + mp MULTIPOINT NOT NULL, + ml MULTILINESTRING NOT NULL, + mpoly MULTIPOLYGON NOT NULL, + gc GEOMETRYCOLLECTION NOT NULL +) ENGINE=InnoDB; +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'geom' OR name = 'l' OR name = 'poly' OR name = 'mp' OR name = 'ml' OR name = 'mpoly' OR name = 'gc'; + +DROP TABLE g; + +--echo # +--echo # check the mtype and len with CREATE TABLE AS +--echo # + +CREATE TABLE t1 ( + p POINT NOT NULL, + g GEOMETRY NOT NULL +) ENGINE=InnoDB; + + +INSERT INTO t1 VALUES(ST_PointFromText('POINT(10 10)'),ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))')); + +# Check the mtype and len of the table +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' AND name='t1'; + +CREATE TABLE t2 AS SELECT * FROM t1; + +# Cleanup +DROP TABLE t1; + +# Check the mtype and len of the table, should be 14,25 +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' AND name='t2'; + +# Cleanup +DROP table t2; + + +--echo # +--echo # Test when POINT is used in spatial index +--echo # +SET @ls1 = ST_GeomFromText('LINESTRING(0 20, 10 0)'); +SET @ls2 = ST_GeomFromText('LINESTRING(0 0, 10 20)'); +SET @ls3 = ST_GeomFromText('LINESTRING(20 -40, 21 -42)'); +SET @ls4 = ST_GeomFromText('LINESTRING(20 -42, 21 -40)'); +SET @poly1 = ST_GeomFromText('POLYGON((2 2, 2 10, 10 10, 10 2, 2 2))'); +SET @poly2 = ST_GeomFromText('POLYGON((0 0, -5 0, -4 -1, -6 -15, -3 -15, 0 0))'); +SET @poly3 = ST_GeomFromText('POLYGON((10.0 10.0, 20.5 20, 20.5 50, 32.0 64.0, 32.3 64.6, 5 60, 10 10))'); +SET @poly4 = ST_GeomFromText('POLYGON((0 10, -10 10, -10 -10, 0 -10, 0 10))'); +SET @p1 = ST_PointFromText('POINT(0 0)'); +SET @mpoly = ST_GeomFromText('MULTIPOLYGON(((3 3, 3 16, 16 16, 16 3, 3 3)), ((10 10, 10 50, 50 50, 50 10, 10 10)))'); + +CREATE TABLE gis_point (p1 POINT NOT NULL, p2 POINT NOT NULL, SPATIAL KEY k1 (p1), SPATIAL KEY k2 (p2)) ENGINE=InnoDB; + +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(1 2)'), ST_PointFromText('POINT(-1 -3)')), +(ST_PointFromText('POINT(2 4)'), ST_PointFromText('POINT(-2 -6)')), +(ST_PointFromText('POINT(3 6)'), ST_PointFromText('POINT(-3 -9)')), +(ST_PointFromText('POINT(4 8)'), ST_PointFromText('POINT(-4 -12)')), +(ST_PointFromText('POINT(5 10)'), ST_PointFromText('POINT(-5 -15)')), +(ST_PointFromText('POINT(6 12)'), ST_PointFromText('POINT(-6 -18)')), +(ST_PointFromText('POINT(7 14)'), ST_PointFromText('POINT(-7 -21)')), +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(9 18)'), ST_PointFromText('POINT(-4 2)')), +(ST_PointFromText('POINT(10 21)'), ST_PointFromText('POINT(-6 3)')), +(ST_PointFromText('POINT(20.5 41)'), ST_PointFromText('POINT(-8 4)')), +(ST_PointFromText('POINT(26.25 57)'), ST_PointFromText('POINT(1 2)')), +(ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)')); + +CREATE TABLE gis_point1 SELECT * FROM gis_point; + +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p1' OR name = 'p2'; + +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point1; +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Intersection(@ls1, @ls2) = p1; +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Contains(@poly2, p2); +SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Equals(p2, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly); + +--echo # Check functions that use MBR, with line type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @ls1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBREquals(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @ls3); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Crosses(p1, @ls1); + +--echo # Check functions that use MBR, with polygon type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Crosses(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @poly1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBREquals(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @poly1); + +--echo # Check functions that use MBR, with point type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBREquals(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Crosses(p1, @p1); + +--echo # Check with MBR functions point type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @p1); + +--echo # Check with MBR functions point polygon data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @p1); + +--echo # Check with MBR functions polygon type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @poly1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @poly1); + +--echo # Check with MBR functions line type data +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRDisjoint(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRequals(p1, @ls1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBROverlaps(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRContains(p1, @ls1); + +DROP TABLE gis_point1; + +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point; +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Intersection(@ls1, @ls2) = p1; +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2); +SELECT ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly); + +--echo # Check functions that use MBR, with line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls3); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @ls1); + +--echo # Check functions that use MBR, with polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); + +--echo # Check functions that use MBR, with point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @p1); + +--echo # Check with MBR functions point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); + +--echo # Check with MBR functions point polygon data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); + +--echo # Check with MBR functions polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @poly1); + +--echo # Check with MBR functions line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @ls1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); + +--echo # Modify the storage engine to Myisam, Check the spatial functions +ALTER TABLE gis_point ENGINE Myisam; + +--echo # Check functions that use MBR, with line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls3); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @ls1); + +--echo # Check functions that use MBR, with polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); + +--echo # Check functions that use MBR, with point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBREquals(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Crosses(p1, @p1); + +--echo # Check with MBR functions point type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); + +--echo # Check with MBR functions point polygon data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @p1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @p1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @p1); + +--echo # Check with MBR functions polygon type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @poly1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @poly1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @poly1); + +--echo # Check with MBR functions line type data +SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRDisjoint(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRequals(p1, @ls1); + +--echo # No matching records +SELECT ST_AsText(p1) FROM gis_point WHERE MBROverlaps(p1, @ls1); +SELECT ST_AsText(p1) FROM gis_point WHERE MBRContains(p1, @ls1); + +--echo # Modify the storage engine to InnoDB again, do following testing +ALTER TABLE gis_point ENGINE InnoDB; + +CHECK TABLE gis_point; + +-- echo The ORDER BY for spatial index will use filesort +--replace_column 10 # +EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; + +-- echo Try to do IDU on the table and verify the result +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); + +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); + +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 41)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); + +CHECK TABLE gis_point; + +-- echo Use a trx to test the IDU on the table and verify the result +START TRANSACTION; + +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); + +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); + +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 49)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 49)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); + +ROLLBACK; + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_Touches(@poly3, p1) AND MBRWithin(p2, @poly4); + +CHECK TABLE gis_point; + +DROP TABLE gis_point; + + + +--echo # +--echo # Test inserting/updating different type data into POINT field +--echo # + +CREATE TABLE gis_point (i INT, p POINT) ENGINE=InnoDB; +CREATE TABLE geom (i INT, g GEOMETRY NOT NULL, SPATIAL KEY(g)) ENGINE=InnoDB; + +INSERT INTO gis_point VALUES(0, ST_PointFromText('POINT(1 1)')); +INSERT INTO gis_point VALUES(1, ST_PointFromText('POINT(2 2)')); +INSERT INTO gis_point VALUES(2, NULL); + +ALTER TABLE gis_point ADD COLUMN j INT, ALGORITHM = COPY; + +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p'; + +SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p'; + +SELECT i, ST_AsText(p) FROM gis_point; + +UPDATE gis_point SET p = NULL WHERE p = ST_PointFromText('POINT(1 1)'); +UPDATE gis_point SET p = ST_PointFromText('POINT(1 2)') WHERE p = ST_PointFromText('POINT(2 2)'); +UPDATE gis_point SET p = ST_PointFromText('POINT(1 1)') WHERE p IS NULL; + +SELECT i, ST_AsText(p) FROM gis_point; + +INSERT INTO geom VALUES(0, ST_PointFromText('POINT(0 0)')); +INSERT INTO geom VALUES(1, ST_PointFromText('POINT(10 10)')); +INSERT INTO geom VALUES(2, ST_GeomFromText('POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))')); + +SELECT ST_AsText(g) FROM geom; + +SELECT ST_AsText(p) FROM gis_point; + +DELETE FROM geom WHERE g = ST_GeomFromText('POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))'); +--echo From GEOMETRY to POINT, now ALL the data are POINT +ALTER TABLE geom MODIFY g POINT NOT NULL; +SHOW CREATE TABLE geom; +SELECT ST_AsText(g) FROM geom; + +--echo From POINT to GEOMETRY, all data are POINT +ALTER TABLE geom MODIFY g GEOMETRY NOT NULL; +SHOW CREATE TABLE geom; + +TRUNCATE TABLE geom; + +--echo From GEOMETRY to POINT, the table is empty +ALTER TABLE geom MODIFY g POINT NOT NULL; +SHOW CREATE TABLE geom; +SELECT ST_AsText(g) FROM geom; + +CHECK TABLE gis_point; +CHECK TABLE geom; + +DROP TABLE gis_point, geom; + + + +--echo # +--echo # Test when a geom field, such as POINT, is also a primary key +--echo # + +CREATE TABLE t1 ( + a INT NOT NULL, + p POINT NOT NULL, + l LINESTRING NOT NULL, + g GEOMETRY NOT NULL, + PRIMARY KEY(p), + SPATIAL KEY `idx2` (p), + SPATIAL KEY `idx3` (l), + SPATIAL KEY `idx4` (g) +) ENGINE=InnoDB; + +INSERT INTO t1 VALUES( +1, ST_GeomFromText('POINT(10 10)'), +ST_GeomFromText('LINESTRING(1 1, 5 5, 10 10)'), +ST_GeomFromText('POLYGON((30 30, 40 40, 50 50, 30 50, 30 40, 30 30))')); + +INSERT INTO t1 VALUES( +2, ST_GeomFromText('POINT(20 20)'), +ST_GeomFromText('LINESTRING(2 3, 7 8, 9 10, 15 16)'), +ST_GeomFromText('POLYGON((10 30, 30 40, 40 50, 40 30, 30 20, 10 30))')); + +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; + +--replace_column 10 # +EXPLAIN UPDATE t1 SET p = ST_GeomFromText('POINT(30 30)') WHERE p = ST_GeomFromText('POINT(20 20)'); +UPDATE t1 SET p = ST_GeomFromText('POINT(30 30)') WHERE p = ST_GeomFromText('POINT(20 20)'); + +# Once Bug 18265942 - GIS: INNODB WOULD GET POSSIBLE WRONG FIND_FLAG FOR SELECT FROM SERVER is fixed, we can test all the following statements commented out. +#SELECT ST_AsText(p) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((25 25, 25 35, 35 35, 35 25, 25 25))')); +#UPDATE t1 SET p = ST_GeomFromText('POINT(15 15)') WHERE MBRWithin(p, ST_GeomFromText('POLYGON((25 25, 25 35, 35 35, 35 25, 25 25))')); +#DELETE FROM t1 WHERE MBRWithin(p, ST_GeomFromText('LINESTRING(15 15, 15 25, 25 25, 35 15, 15 15)')); +#SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; +#INSERT INTO t1 VALUES( +#3, ST_GeomFromText('POINT(25 25)'), +#ST_GeomFromText('LINESTRING(2 3, 7 8, 9 10, 15 16)'), +#ST_GeomFromText('POLYGON((10 30, 30 40, 40 50, 40 30, 30 20, 10 30))')); +#UPDATE t1 SET p = ST_GeomFromText('POINT(50 50)'), l = ST_GeomFromText('LINESTRING(20 20, 21 21, 22 22, 23 23)') WHERE MBRWithin(g, ST_GeomFromText('LINESTRING(25 25, 25 50, 50 50, 50 25, 25 25)')); + +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; + +ALTER TABLE t1 DROP PRIMARY KEY; +ALTER TABLE t1 ADD PRIMARY KEY(a); + +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; + +ALTER TABLE t1 DROP PRIMARY KEY; +ALTER TABLE t1 ADD PRIMARY KEY(p); + +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; + +SHOW CREATE TABLE t1; + +# Also waiting for Bug 18265942 +#UPDATE t1 SET p = ST_PointFromText('POINT(20 20)') WHERE ST_Equals(p, ST_PointFromText('POINT(30 30)')); +#INSERT INTO t1 VALUES( +#3, ST_GeomFromText('POINT(25 25)'), +#ST_GeomFromText('LINESTRING(2 3, 7 8, 9 10, 15 16)'), +#ST_GeomFromText('POLYGON((10 30, 30 40, 40 50, 40 30, 30 20, 10 30))')); + +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; + +ALTER TABLE t1 DROP PRIMARY KEY; +ALTER TABLE t1 ADD PRIMARY KEY(p); + +--replace_column 10 # +EXPLAIN SELECT a, ST_AsText(p) FROM t1 WHERE a = 2 AND p = ST_GeomFromText('POINT(30 30)'); +SELECT a, ST_AsText(p) FROM t1 WHERE a = 2 AND p = ST_GeomFromText('POINT(30 30)'); + +SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; + +CHECK TABLE t1; + +DROP TABLE t1; + +--echo # +--echo # Test for foreign keys. +--echo # +CREATE TABLE parent(p POINT, PRIMARY KEY(p)) ENGINE=InnoDB; +CREATE TABLE child(p POINT NOT NULL) ENGINE=InnoDB; +ALTER TABLE parent ADD SPATIAL INDEX idx1(p ASC); +ALTER TABLE child ADD SPATIAL INDEX idx2(p ASC); +SHOW CREATE TABLE parent; +SHOW CREATE TABLE child; + +--error ER_CANNOT_ADD_FOREIGN +ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); + +ALTER TABLE parent DROP INDEX idx1; +--error ER_CANNOT_ADD_FOREIGN +ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); + +ALTER TABLE child DROP INDEX idx2; +--error ER_CANNOT_ADD_FOREIGN +ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); + +DROP TABLE child, parent; + +--echo # +--echo # Bug#28763: Selecting geometry fields in UNION caused server crash. +--echo # +CREATE TABLE t1(f1 GEOMETRY, f2 POINT, f3 GEOMETRY) ENGINE=InnoDB; +SELECT f1 FROM t1 UNION SELECT f1 FROM t1; +INSERT INTO t1 (f2,f3) VALUES (ST_GeomFromText('POINT(1 1)'), + ST_GeomFromText('POINT(2 2)')); +SELECT ST_AsText(f2),ST_AsText(f3) FROM t1; +SELECT ST_AsText(a) FROM (SELECT f2 AS a FROM t1 UNION SELECT f3 FROM t1) t; +CREATE TABLE t2 AS SELECT f2 AS a FROM t1 UNION SELECT f3 FROM t1; +DESC t2; +SELECT ST_AsText(a) FROM t2; +DROP TABLE t1, t2; + diff --git a/mysql-test/suite/innodb_gis/t/point_big.test b/mysql-test/suite/innodb_gis/t/point_big.test new file mode 100644 index 00000000000..d9a00474d89 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/point_big.test @@ -0,0 +1,322 @@ +#******************************************************** +# wl6942: Store certain GIS data type in the row rather +# than as BLOB. +# +#******************************************************** + +--source include/have_geometry.inc +--source include/have_innodb.inc + +--source include/not_embedded.inc +--source include/big_test.inc +--source include/not_valgrind.inc + +--echo # +--echo # Test when the POINT is on B-TREE +--echo # +CREATE TABLE t1(fid INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, p POINT, KEY(p)) ENGINE=InnoDB; + +INSERT INTO t1 VALUES +(101, ST_PointFromText('POINT(10 10)')), +(102, ST_PointFromText('POINT(20 10)')), +(103, ST_PointFromText('POINT(20 20)')), +(104, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(10 20)')))); + +SELECT ST_AsText(p) FROM t1; +SELECT ST_AsText(p) FROM t1 WHERE p = ST_PointFromText('POINT(20 20)'); + +INSERT INTO t1 VALUES +(201, ST_PointFromText('POINT(100.32374832 101.23741821)')), +(202, ST_PointFromText('POINT(102.43287328 100.23489233)')), +(203, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(204, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))), +(205, ST_PointFromText('POINT(101.43284962 100.45892392)')), +(206, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))); + +SELECT ST_AsText(p), COUNT(*) FROM t1 GROUP BY p; + +TRUNCATE t1; + +SELECT * FROM t1; + +INSERT INTO t1(p) VALUES(ST_PointFromText('POINT(10 10)')), +(ST_PointFromText('POINT(10 20)')), +(ST_PointFromText('POINT(10 40)')), +(ST_PointFromText('POINT(10 60)')), +(ST_PointFromText('POINT(20 15)')), +(ST_PointFromText('POINT(30 10)')), +(ST_PointFromText('POINT(40 10)')), +(ST_PointFromText('POINT(50 10)')), +(ST_PointFromText('POINT(60 5)')), +(ST_PointFromText('POINT(60 10)')), +(ST_PointFromText('POINT(60 20)')), +(ST_PointFromText('POINT(60 100)')), +(ST_PointFromText('POINT(100 100)')), +(ST_PointFromText('POINT(80 60)')), +(ST_PointFromText('POINT(81 50)')), +(ST_PointFromText('POINT(82 70)')), +(ST_PointFromText('POINT(83 30)')), +(ST_PointFromText('POINT(20 100)')), +(ST_PointFromText('POINT(150 2000)')), +(ST_PointFromText('POINT(109 230)')), +(ST_PointFromText('POINT(280 250)')), +(ST_PointFromText('POINT(176 175)')), +(ST_PointFromText('POINT(200 10)')), +(NULL), +(NULL); + +SELECT ST_AsText(p) FROM t1; +SELECT COUNT(*) FROM t1; + +SELECT ST_AsText(p) FROM t1; +SELECT COUNT(*) FROM t1; + +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; +INSERT INTO t1(p) SELECT p FROM t1; + +CHECK TABLE t1; + +SELECT COUNT(*) FROM t1; +SELECT ST_AsText(p), COUNT(*) FROM t1 GROUP BY p; +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(280 250)'); +DELETE FROM t1 WHERE p = ST_PointFromText('POINT(280 250)'); +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(280 250)'); +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 5)'); +DELETE FROM t1 WHERE P = ST_PointFromText('POINT(60 5)'); +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 5)'); + +SELECT ST_AsText(p), COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 10)') OR p = ST_PointFromText('POINT(60 20)') OR p = ST_PointFromText('POINT(60 30)') GROUP BY p; +UPDATE t1 SET p = ST_PointFromText('POINT(101 102)') WHERE p = ST_PointFromText('POINT(60 10)') OR p = ST_PointFromText('POINT(60 20)') OR p = ST_PointFromText('POINT(60 30)'); +SELECT ST_AsText(p), COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(60 10)') OR p = ST_PointFromText('POINT(60 20)') OR p = ST_PointFromText('POINT(60 30)') GROUP BY p; +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(101 102)'); + +SELECT COUNT(*) FROM t1 WHERE p IS NULL; +UPDATE t1 SET p = ST_PointFromText('POINT(160 160)') WHERE p IS NULL; +SELECT COUNT(*) FROM t1 WHERE p IS NULL; +SELECT COUNT(*) FROM t1 WHERE p = ST_PointFromText('POINT(160 160)'); + +SELECT ST_AsText(p), COUNT(*) FROM t1 GROUP BY p; +SELECT COUNT(*) FROM t1; + +CHECK TABLE t1; + +DROP TABLE t1; + + +--echo # +--echo # Test when POINT is used in spatial index +--echo # +SET @ls1 = ST_GeomFromText('LINESTRING(0 20, 10 0)'); +SET @ls2 = ST_GeomFromText('LINESTRING(0 0, 10 20)'); +SET @ls3 = ST_GeomFromText('LINESTRING(20 -40, 21 -42)'); +SET @ls4 = ST_GeomFromText('LINESTRING(20 -42, 21 -40)'); +SET @poly1 = ST_GeomFromText('POLYGON((2 2, 2 10, 10 10, 10 2, 2 2))'); +SET @poly2 = ST_GeomFromText('POLYGON((0 0, -5 0, -4 -1, -6 -15, -3 -15, 0 0))'); +SET @poly3 = ST_GeomFromText('POLYGON((10.0 10.0, 20.5 20, 20.5 50, 32.0 64.0, 32.3 64.6, 5 60, 10 10))'); +SET @poly4 = ST_GeomFromText('POLYGON((0 10, -10 10, -10 -10, 0 -10, 0 10))'); +SET @p1 = ST_PointFromText('POINT(0 0)'); +SET @mpoly = ST_GeomFromText('MULTIPOLYGON(((3 3, 3 16, 16 16, 16 3, 3 3)), ((10 10, 10 50, 50 50, 50 10, 10 10)))'); + +CREATE TABLE gis_point (p1 POINT NOT NULL, p2 POINT NOT NULL, SPATIAL KEY k1 (p1), SPATIAL KEY k2 (p2)) ENGINE=InnoDB; + +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(1 2)'), ST_PointFromText('POINT(-1 -3)')), +(ST_PointFromText('POINT(2 4)'), ST_PointFromText('POINT(-2 -6)')), +(ST_PointFromText('POINT(3 6)'), ST_PointFromText('POINT(-3 -9)')), +(ST_PointFromText('POINT(4 8)'), ST_PointFromText('POINT(-4 -12)')), +(ST_PointFromText('POINT(5 10)'), ST_PointFromText('POINT(-5 -15)')), +(ST_PointFromText('POINT(6 12)'), ST_PointFromText('POINT(-6 -18)')), +(ST_PointFromText('POINT(7 14)'), ST_PointFromText('POINT(-7 -21)')), +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(9 18)'), ST_PointFromText('POINT(-4 2)')), +(ST_PointFromText('POINT(10 21)'), ST_PointFromText('POINT(-6 3)')), +(ST_PointFromText('POINT(20.5 41)'), ST_PointFromText('POINT(-8 4)')), +(ST_PointFromText('POINT(26.25 57)'), ST_PointFromText('POINT(1 2)')), +(ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)')); + +-- echo 'The ORDER BY for spatial index will use filesort' +--replace_column 10 # +EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; + +-- echo 'Try to do IDU on the table and verify the result' +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); + +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); + +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 41)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); + +CHECK TABLE gis_point; + +-- echo ============================================================ +-- echo Use a trx to test the IDU on the table and verify the result +-- echo ============================================================ + +START TRANSACTION; + +DELETE FROM gis_point WHERE ST_Equals(p2, ST_PointFromText('POINT(-8 4)')); + +INSERT INTO gis_point VALUES(ST_PointFromText('POINT(20.5 -41)'), ST_PointFromText('POINT(8 -4)')); + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); + +UPDATE gis_point SET p1 = ST_PointFromText('POINT(20.5 49)'), p2 = ST_PointFromText('POINT(-8 4)') WHERE ST_Intersection(@ls3, @ls4) = p1; + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 49)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); + +ROLLBACK; + +SELECT ST_AsText(p1) AS 'Expect (32.1234 64.2468) AND (20.5 41)' FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4); + +CHECK TABLE gis_point; + +-- echo ======================================================= +-- echo Enlarge the table by inserting the same data and verify +-- echo ======================================================= + +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; +INSERT INTO gis_point SELECT * FROM gis_point; + +CHECK TABLE gis_point; + +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; + +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_Intersection(@ls1, @ls2) = p1 GROUP BY p1; +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1; +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2; +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2; +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1; +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2; +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2; + +-- echo ====================================================================== +-- echo Build another new table with the same schema, will insert data from this table to the orignal one +-- echo ====================================================================== + +CREATE TABLE p(p1 POINT NOT NULL, p2 POINT NOT NULL, SPATIAL INDEX k1(p2)) ENGINE=InnoDB; + +INSERT INTO p VALUES(ST_PointFromText('POINT(1000 -1000)'), ST_PointFromText('POINT(-201 203.56)')); +INSERT INTO p VALUES(ST_PointFromText('POINT(20.5 43.9832)'), ST_PointFromText('POINT(-0 0)')); +INSERT INTO p VALUES(ST_PointFromText('POINT(-4.2 -6.98)'), ST_PointFromText('POINT(-120.5 343.9832)')); + +INSERT INTO p SELECT * FROM p WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((0 0, 0 2000, 2000 2000, 2000 -2000, 0 -2000, 0 0))')); +INSERT INTO p SELECT * FROM p WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((0 0, -10 0, -100 -100, 0 -50, 0 0))')); + +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM p GROUP BY p1, p2; + +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; +INSERT INTO gis_point SELECT * FROM p; + +CHECK TABLE gis_point; + +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; + +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1; + +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE MBRWithin(p2, @poly2) GROUP BY p2; + +DROP TABLE p; + +-- echo ================================ +-- echo Use a trx to test IUD and verify +-- echo ================================ + +# Temporarily disabled the following test case, since the ROLLBACK and +# some other DML would cost too much of time. We could test them until +# we have optimized the UNDO, etc. + +#START TRANSACTION; + +#-- echo 'To remove (-2 -6), (-1 -3)' +#DELETE FROM gis_point WHERE ST_Contains(ST_GeomFromText('POLYGON((-8 -8, 4 -7, 1 1, 0 -1, -2 -2, -8 -8))') , p2); + +#SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2; + +#-- echo 'To set (-1 -1) to (-5.12 -10.84)' +#UPDATE gis_point SET p2 = ST_PointFromText('POINT(-5.12 -10.84)') WHERE ST_Intersection(ST_GeomFromText('LINESTRING(-3 4, -2 0, 0.5 -2.5, 5 0)'), ST_GeomFromText('LINESTRING(0.6 0.6, -10 -10)')) = p2; + +#SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE MBRWithin(p2, @poly2) GROUP BY p2; + +#-- echo 'To insert several (-3.6 -4.05) (-1 -1) +#INSERT INTO gis_point VALUES +#(ST_PointFromText('POINT(10.1 2.6)'), ST_PointFromText('POINT(-1 -1)')), +#(ST_PointFromText('POINT(100.99 -2.53)'), ST_PointFromText('POINT(-3.6 -4.05)')), +#(ST_PointFromText('POINT(13.62 3.87)'), ST_PointFromText('POINT(-1 -1)')), +#(ST_PointFromText('POINT(-36.3 0.34)'), ST_PointFromText('POINT(-1 -1)')), +#(ST_PointFromText('POINT(1.04 25.6)'), ST_PointFromText('POINT(-3.6 -4.05)')); + +#SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE MBRWithin(p2, @poly2) GROUP BY p2; + +#SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(ST_GeomFromText('POLYGON((-0.999 -0.999, -6 -1, -6 -7, -0.99999 -0.99999, -0.999 -0.999))'), p2) GROUP BY p2; + +#ROLLBACK; + +#CHECK TABLE gis_point; + +-- echo ============================================= +-- echo Delete those rows selected from another table +-- echo ============================================= + +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; + +UPDATE gis_point SET p2 = ST_PointFromText('POINT(2000 2000)') WHERE ST_Contains(ST_GeomFromText('POLYGON((-100 100, -400 100, -400 400, -100 400, -100 100))'), p2) OR ST_Contains(ST_GeomFromText('POLYGON((-0.0001 -0.0002, -0.0001 0.00002, 0.00000005 0.000001, 0.0000025 -0.001, -0.0001 -0.0002))'), p2); + +CHECK TABLE gis_point; + +-- echo 'To remove all the just updated rows' +DELETE FROM gis_point WHERE ST_Intersection(ST_GeomFromText('LINESTRING(1800 1900, 2200 2100)'), ST_GeomFromText('LINESTRING(0 0, 2001 2001)')) = p2; + +INSERT INTO gis_point VALUES +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')), +(ST_PointFromText('POINT(8 16)'), ST_PointFromText('POINT(0 0)')); + +-- echo ====================================================================== +-- echo Following results should be almost the same with those at the beginning +-- echo ====================================================================== + +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) +FROM gis_point +WHERE ST_Contains(ST_GeomFromText('POLYGON((-1000 -1000, -1000 1000, 1000 1000, 1001 -1001, -1000 -1000))'), p1) +GROUP BY p1, p2; + +SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_Intersection(@ls1, @ls2) = p1 GROUP BY p1; +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1; +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2; +SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2; +SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1; +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2; +SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2; + +CHECK TABLE gis_point; + +DROP TABLE gis_point; + diff --git a/mysql-test/suite/innodb_gis/t/repeatable_spatial.test b/mysql-test/suite/innodb_gis/t/repeatable_spatial.test new file mode 100644 index 00000000000..3152911b257 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/repeatable_spatial.test @@ -0,0 +1,241 @@ +# ***************************************************************** +# Test spatial index with isolation level Repeatable Read on DML +# This will also test the no phantom rows happens +# Check the COUNT(*) and SELECT results before & after COMMIT in +# the last con1 statment +# Test at con1: Global Repeatable Read con2 : Sess Read Committed +# Test at con1: Sess Repeatable Read con2 : Sess Read Committed +# ***************************************************************** +--source include/have_innodb.inc +--source include/have_geometry.inc +--source include/not_embedded.inc + +# Test Repeatable Read & Read committed at Global, Session levels +CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL, +c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL) +ENGINE=InnoDB; + +ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC); + +ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC); + +ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon'; + +ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry'; + +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))')); + +# 1 record is expected +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +--echo "In connection 1" +connect (con1,localhost,root,,); +connection con1; + +SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; + +SELECT @@tx_isolation; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +# 1 record is expected +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; + +--echo "In connection 2" +connect (con2,localhost,root,,); +connection con2; + +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; + +SELECT @@tx_isolation; + +START TRANSACTION; + +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))')); + +SET @g1 = ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'); +SET @g2 = ST_GeomFromText('POINT(10 10)'); + +# Record should be updated +UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))') +WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2); + +--echo "In connection 1" +connection con1; + +SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'); + +# No record is expected (No phantom row) +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3); + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +START TRANSACTION; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +--echo "In connection 2" +connection con2; + +# Record count should be 2 +SELECT COUNT(*) FROM tab; + +COMMIT; + +disconnect con2; +--source include/wait_until_disconnected.inc + +--echo "In connection 1" +connection con1; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +SET @g4 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))'); + +# No records are expected (No phantom row) +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); + +COMMIT; + +# The updated record is expected +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); + +# Record count should be 2 +SELECT COUNT(*) FROM tab; + +# 2 records are expected +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab; + +disconnect con1; +--source include/wait_until_disconnected.inc + +--connection default +DROP TABLE tab; + +# Test Repeatable Read & Read committed at Session levels +CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL, +c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL) +ENGINE=InnoDB; + +ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC); + +ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC); + +ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon'; + +ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry'; + +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'), +ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))')); + +# 1 record is expected +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +--echo "In connection 1" +connect (con1,localhost,root,,); +connection con1; + +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; + +SELECT @@tx_isolation; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +# 1 record is expected +SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; + +--echo "In connection 2" +connect (con2,localhost,root,,); +connection con2; + +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; + +SELECT @@tx_isolation; + +START TRANSACTION; + +INSERT INTO tab(c1,c2,c3,c4,c5) +VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'), +ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))')); + +SET @g1 = ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'); +SET @g2 = ST_GeomFromText('POINT(10 10)'); + +# Record should be updated +UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))') +WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2); + +--echo "In connection 1" +connection con1; + +SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'); + +# No record is expected (No phantom row) +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3); + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +START TRANSACTION; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +--echo "In connection 2" +connection con2; + +# Record count should be 2 +SELECT COUNT(*) FROM tab; + +COMMIT; + +disconnect con2; +--source include/wait_until_disconnected.inc + +--echo "In connection 1" +connection con1; + +# Record count should be 1 +SELECT COUNT(*) FROM tab; + +SET @g4 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))'); + +# No records are expected (No phantom row) +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); + +COMMIT; + +# The updated record is expected +SELECT ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g4); + +# Record count should be 2 +SELECT COUNT(*) FROM tab; + +# 2 records are expected +SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab; + +disconnect con1; +--source include/wait_until_disconnected.inc + +--connection default +DROP TABLE tab; diff --git a/mysql-test/suite/innodb_gis/t/rollback.test b/mysql-test/suite/innodb_gis/t/rollback.test new file mode 100644 index 00000000000..52268cfc962 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rollback.test @@ -0,0 +1,480 @@ +# WL 6609. Testing insertion rollback +--source include/have_innodb.inc +--source include/not_embedded.inc +--source include/have_debug.inc +--source include/have_innodb_16k.inc +# Valgrind can hang or return spurious messages on DBUG_SUICIDE +--source include/not_valgrind.inc +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc +--source include/have_innodb_16k.inc + +CREATE TABLE t4 (id bigint(12) unsigned NOT NULL auto_increment, + c2 varchar(15) collate utf8_bin default NULL, + c1 varchar(15) collate utf8_bin default NULL, + c3 varchar(10) collate utf8_bin default NULL, + spatial_point point NOT NULL, + PRIMARY KEY(id), + SPATIAL KEY (spatial_point) + )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES + ('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), + ('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), + ('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), + ('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), + ('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), + ('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), + ('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), + ('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), + ('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), + ('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), + ('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), + ('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), + ('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), + ('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), + ('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), + ('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), + ('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), + ('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), + ('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), + ('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), + ('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), + ('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), + ('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), + ('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), + ('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), + ('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), + ('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), + ('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), + ('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), + ('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), + ('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), + ('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), + ('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), + ('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), + ('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), + ('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), + ('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), + ('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), + ('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), + ('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), + ('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), + ('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), + ('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), + ('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), + ('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), + ('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), + ('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), + ('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), + ('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), + ('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), + ('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), + ('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), + ('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), + ('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), + ('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), + ('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), + ('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), + ('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), + ('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), + ('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), + ('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), + ('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), + ('b', 's', 's', ST_GeomFromText('POINT(223 211)')), + ('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), + ('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), + ('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), + ('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), + ('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), + ('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), + ('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), + ('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), + ('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), + ('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), + ('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), + ('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), + ('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), + ('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), + ('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), + ('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), + ('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), + ('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), + ('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), + ('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), + ('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), + ('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), + ('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), + ('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), + ('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), + ('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), + ('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), + ('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), + ('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), + ('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), + ('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), + ('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), + ('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), + ('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), + ('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), + ('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), + ('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES + ('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), + ('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), + ('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), + ('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), + ('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), + ('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), + ('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), + ('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), + ('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), + ('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), + ('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), + ('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), + ('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), + ('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), + ('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), + ('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), + ('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), + ('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), + ('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), + ('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), + ('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), + ('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), + ('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), + ('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), + ('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), + ('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), + ('z', 't', 't', ST_GeomFromText('POINT(99 134)')), + ('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), + ('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), + ('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), + ('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), + ('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), + ('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), + ('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), + ('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), + ('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), + ('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), + ('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), + ('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), + ('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), + ('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), + ('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), + ('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), + ('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), + ('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), + ('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), + ('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), + ('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), + ('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), + ('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), + ('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), + ('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), + ('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), + ('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), + ('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), + ('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), + ('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), + ('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), + ('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), + ('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), + ('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), + ('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), + ('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), + ('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), + ('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), + ('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), + ('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), + ('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), + ('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), + ('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), + ('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), + ('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), + ('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), + ('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), + ('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), + ('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), + ('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), + ('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), + ('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), + ('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), + ('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), + ('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), + ('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), + ('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), + ('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), + ('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), + ('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), + ('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), + ('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), + ('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), + ('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), + ('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), + ('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), + ('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), + ('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), + ('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), + ('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), + ('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), + ('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), + ('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), + ('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), + ('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), + ('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), + ('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), + ('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), + ('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), + ('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), + ('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), + ('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), + ('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), + ('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), + ('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), + ('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), + ('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), + ('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), + ('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), + ('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), + ('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), + ('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), + ('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), + ('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), + ('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), + ('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), + ('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), + ('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), + ('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), + ('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), + ('m', 's', 's', ST_GeomFromText('POINT(172 149)')), + ('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), + ('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), + ('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), + ('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), + ('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), + ('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), + ('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), + ('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), + ('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), + ('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), + ('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), + ('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), + ('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), + ('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), + ('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), + ('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), + ('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), + ('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), + ('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), + ('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), + ('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES + ('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), + ('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), + ('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), + ('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), + ('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), + ('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), + ('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), + ('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), + ('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), + ('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), + ('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), + ('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), + ('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), + ('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), + ('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), + ('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), + ('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), + ('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), + ('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), + ('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), + ('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), + ('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), + ('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), + ('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), + ('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), + ('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), + ('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), + ('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), + ('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), + ('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), + ('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), + ('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), + ('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), + ('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), + ('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), + ('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), + ('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), + ('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), + ('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), + ('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), + ('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), + ('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), + ('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), + ('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), + ('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), + ('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), + ('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), + ('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), + ('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), + ('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), + ('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), + ('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), + ('l', 's', 't', ST_GeomFromText('POINT(83 18)')), + ('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), + ('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), + ('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), + ('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), + ('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), + ('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), + ('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), + ('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), + ('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), + ('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), + ('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), + ('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), + ('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), + ('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), + ('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), + ('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), + ('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), + ('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), + ('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), + ('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), + ('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), + ('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), + ('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), + ('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), + ('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), + ('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), + ('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), + ('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), + ('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), + ('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), + ('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), + ('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), + ('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), + ('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), + ('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), + ('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), + ('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), + ('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), + ('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), + ('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), + ('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), + ('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), + ('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), + ('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), + ('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), + ('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), + ('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); + + +start transaction; + +# following insertion will result in a node split +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES + ('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); + +# Test rollback, this will result above split being rolled back, btr_compress +# gets called +rollback; + +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES + ('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); + +# create overlap on the bounding box in parent +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); + + +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); + +# Add a row in the cross section of the 2 bounding box +INSERT INTO t4 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); + +# Delete this new point +DELETE FROM t4 WHERE id = 1280; + +INSERT INTO t4 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); + +start transaction; +DELETE FROM t4 WHERE id = 1280; +rollback; + +# Test MBR increase +start transaction; +INSERT INTO t4 (c2, c1, c3, spatial_point) VALUES + ('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +rollback; + +DROP TABLE t4; + +# Test externally stored update rollback. +LET $file_per_table='on'; +LET $file_format='Barracuda'; + +--disable_warnings +eval SET GLOBAL innodb_file_per_table=$file_per_table; +eval SET GLOBAL innodb_file_format=$file_format; +--enable_warnings + +create table t1(i int primary key, +a geometry not null, spatial index(a)) row_format=dynamic engine=innodb; + +insert into t1 values(1, st_geomfromtext(concat('multilinestring(','(-4286 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-4286 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-768 -136,-771 2864,-772 2860,-777 2862,-775 2858,-775 2863,-770 2866,-765 2871,-761 2874,-759 2878,-759 2883,-759 2886,-758 2886,-758 2886,-755 2890,-752 2890,-751 2890,1249 2890,1250 2892,1251 2892,1251 2892,1256 2897,1259 2894,1256 2899,1253 2904,1256 2904,1257 2906,1252 2910,1253 2910,1256 2912,1255 2913,1260 2911,1256 2913,1255 2918,1257 2921,1259 2925,1262 2922,1263 2923,1266 2926,1268 2929,1269 2932,1273 2937,1277 2942,1282 2942,1284 2939,1287 2935,1290 2935,1293 2938,1296 2940,1299 2942,1302 2947,1307 2952,1311 2956,1312 2958,1307 2956,1311 2955,1307 2956,1307 2960,1307 2962,1311 2965,1315 2967,1314 2968,1319 2969,1322 2973,1324 2978,1323 2977,1327 2982,1330 7982,1332 7985,1332 7986,1332 7988,1328 7991,1328 7991,1328 7991,1253 2910,1249 2908,1251 2908,1253 2913,1253 2909,1256 2914,1255 2916,1259 2919,1261 2923,1262 2923,1266 2925,1270 2930,1270 2932,1267 2929,1269 2929,1269 2931,1269 2926,1265 1926,1270 1926,1274 1926,1274 1929,1269 1929,1270 1931,1272 1935,1269 1935,1273 1938,1278 1938,1278 1938,1280 1943,1275 1948,1276 1951,1279 1948,1280 1952,1281 1952,1286 1954,1290 1958,1290 1963,1294 1964,1298 1962,1298 1958,1302 1963,1302 1967,1307 -2033,1311 -2030,1307 -2030,1310 -2025,1314 -2020,1317 -1020,1321 -1016,1321 -1018,1321 -1015,1326 -1016,1324 -1016,1327 -1011,1326 -1007,1326 -1002,1326 -1004,1321 -1004,1321 -1003,1324 -1008,1328 -1007,1328 -1003,1333 -999,1336 -998,1339 -997,1337 -996,1340 -2996,1335 -3000,1339 -2996,1343 -2995,1346 -2990,1341 -2990,1345 -2991,1345 -2995,1269 2931,1269 2936,1271 2941,1275 2941,6275 2943,6274 2943,6279 2939,6274 2942,6274 2946,6275 2947,6276 2948,6280 2947,6282 2951,6287 2952,6287 2956,6289 2959,6294 4959,6298 4964,6302 4965,6300 6965,6305 6965,11305 6967,11305 6967,11310 6966,11310 6966,11314 6964,11318 6969,11318 6972,11323 6974,11328 6977,11329 6979,11333 6982,11337 6982,11334 6982,11337 6983,11341 6988,11345 6991,11349 6992,11353 6993,11353 6996,11353 7000,11356 7000,11353 6000,11350 6002,11353 6004,11354 6007,11356 6009,11358 6009,11359 6011,11363 6016,11365 6013,11369 6015,11372 6017,11377 6022,11381 6025,11382 9025,11385 9029,11390 9024,11389 9020,11391 9020,11389 9016,11394 12016,11397 12021,11400 12021,11405 12024,11405 8024,11403 8029,11403 8032,11401 8033,11406 8032,11402 8027,11406 8027,11410 8029,11408 8030,11408 8035,11413 8035,11418 8038,11423 8038,11428 8036,11428 8037,11433 8033,11435 8032,6435 8035,6439 8036,6440 8034,6441 8039,6442 8043,6446 8045,6451 12045,6454 12050,6454 12049,6455 12054,6457 12057,6458 12060,6461 13060,6466 13060,6467 13065,6467 13070,6465 13073,6465 13073,6466 13077,6463 16077,6465 16081,6468 16077,6471 16077,6475 16078,6475 16080,6470 16082,6465 16084,6465 16088,6470 16091,6471 16091,6469 16089,6473 16091,6477 16091,6477 16093,6480 16098,6476 16099,6478 16099,6481 16100,6486 16105,6486 16110,6488 16105,6485 16107,6487 16108,6484 16104,6485 16101,6488 16101,6489 16103,6493 16105,6493 16108,6490 16110,6487 16113,6492 16116,6495 16118,6499 16123,6497 16124,6496 16127,6498 16132,6497 16134,6499 16138,6503 16143,6502 16138,6500 16140,6502 16144,6502 16146,6503 16150,6498 16151,6500 16154,6495 16154,6494 16154,6499 16156,7499 16158,7504 16161,7507 16166,7503 16163,7505 16163,7508 16163,7511 16165,7514 16162,7517 16165,7519 16166,7524 16165,7527 16168,7529 16172,7534 16172,7534 16177,7539 16179,7537 16179,7538 16184,7538 16185,7538 16189,7540 16191,7540 16193,7541 16193,7545 16197,7550 16199,7554 16204,7558 16208,7559 16211,7560 16214,7564 16216,7563 16215,7558 16219,7558 16216,7555 16221,7559 16223,7559 16224,7559 16226,7561 16231,7558 16235,7553 16240,7552 16236,7557 16234,7552 16236,7554 16238,7557 16239,7552 16243,7553 16243,7555 16243,7555 14243,7558 14248,7559 14243,7559 14239,7561 14241,7561 14243,7561 14248,7562 14250,7566 14254,7570 14254,7575 14256,7575 14259,7576 14259,7579 14259,7583 14257,7583 14257,7583 14253,7584 14249,7579 14247,7576 14245,7579 14250,7577 14253,7582 14256,7582 14257,7578 14253,7575 14252,7577 14255,7578 14255,7578 14256,7581 14257,7584 14252,7588 14252,7592 14249,7592 18249,7588 18253,7590 18255,7592 18259,7596 18254,7601 18255,7601 17255,7605 17256,7610 17258,7613 17261,7617 17262,7619 17266,7617 17267,7621 17268,7623 17272,7626 17272,7626 17277,7625 17282,7620 17281,7617 17284,7618 17287,7617 17283,7616 17281,7621 17279,7624 17281,7624 17282,7624 17279,7628 17279,7628 17280,7633 17284,7637 17280,7638 17280,7638 17281,7641 17282,7641 17282,7638 17283,7638 17284,7643 17280,7647 17281,7652 17285,7656 17285,7658 17288,7660 17290,7661 17292,7664 17297,7666 17302,7663 17304,7664 17300,7659 17303,7661 17303,7657 17307,7659 17307,8659 17310,8661 17313,8664 17314,8665 17313,8665 17309,8669 17313,8671 17316,8670 17320,8668 17320,3668 17323,3665 17324,3661 17329,3661 17331,1661 17332,1661 17333,1663 17338,1668 17333,1663 17333,1667 17331,1668 17331,1664 17334,1666 17337,1665 17337,6499 16138,6503 18138,10503 18142,10503 18142,10505 21142,10502 21144,10502 21142,10504 21141,10504 21139,10508 21140,10512 21141,10512 21143,10515 21144,10517 21147,10517 21143,10519 21143,10519 21146,10519 21142,10519 21142,10522 21141,10523 21141,10523 21145,10523 21149,10527 21153,10531 21154,10534 21158,10531 21158,10527 21160,10532 21165,10534 21165,10531 21165,10533 21162,10529 21163,10532 21160,10534 21163,10535 21161,10540 25161,10538 25164,10538 25166,10540 25171,10543 25171,10547 25175,10547 25175,10550 25178,10552 25182,10556 25177,10558 25181,10558 25183,10563 25187,10564 25183,10560 25188,10565 25188,10569 25191,10573 25195,10575 25199,7581 14257,7585 14257,7586 14257,7588 14254,7590 14255,7593 14256,7590 14260,7595 14263,7595 14259,7597 14256,7598 14261,7598 14258,7599 14261,7600 14261,7602 14258,7602 14258,7598 14259,7598 14264,7600 14267,7601 17267,7597 17268,7602 17273,7605 17276,7605 17276,7603 17279,7604 17279,7608 17278,7613 17282,7615 17285,7617 17288,2617 17288,2617 17289,2620 17289,2620 17285,-1380 17288,-1382 17287,-1384 17292,-1384 17294,-1380 17295,-1380 17297,-1380 17299,-1375 17303,-1372 17303,-1373 17298,-1368 13298,-1365 13301,-1366 13297,-1371 13295,-1371 13298,-1371 13298,-1375 13301,-1378 13302,-1378 13302,-1377 13302,-1374 13301,-1373 13306,-1370 13311,-1371 13307,-1366 13307,-1365 13309,11349 6992,11352 6992,11354 6997,11356 7002,11356 7007,11359 7010,11354 7005,9354 7009,9356 7011,9359 7016,9360 7014,9360 7015,9363 8015,9367 11015,9370 11012,9367 11012,9368 11016,9363 11017,9360 11018,9364 11021,9359 11016,11402 8027,11399 8029,11400 8033,11401 8034,11405 8029,11407 8027,11410 8029,12410 8033,12414 8035,12412 8040,12415 8040,12416 8045,12421 8042,12426 8037,12424 8042,12427 8042,12430 8044,12434 8046,12430 8048,12434 8045,9434 8045,9439 8043,9442 8043,9442 8045,9442 8040,9442 8035,9438 8038,9440 8039,9445 8036,9446 8039,9441 8043,12441 8047,12440 8048,12444 8052,12445 8057,12450 8053,12452 8053,12448 8054,12443 8058,12441 8063,12444 8067,12449 8067,12448 8071,12451 8076,12454 8073,17454 8073,17457 8074,17459 8079,17463 8079,17461 8080,17464 4080,17467 4085,17463 4085,17463 4088,17462 4090,17464 4095,17468 4094,17464 4097,17464 4093,17466 4088,17469 4092,17470 4094,17472 4089,17470 4090,17473 4089,17478 4094,17474 4091,17477 4095,17482 4100,17487 4103,17492 4101,17492 4104,17493 4101,17495 4106,17497 4106,17502 4111,17505 4111,17504 4113,17505 4115,17509 4119,17504 4123,17505 4127,17503 4131,17503 4126,17504 4126,17506 4129,17501 4132,17502 4133,17499 4133,17503 5133,17503 5135,17498 5134,21498 5134,21498 5131,21498 5133,21497 5138,21501 5140,21502 5138,21502 5141,21505 5136,21501 5139,21501 5141,21505 5146,21510 5151,21510 5155,21512 5156,21508 5159,21508 5163,21512 5167,21517 5169,21521 5173,21519 5172,21517 5172,21515 5172,21515 5173,21516 5172,21515 5169,21516 5170,21516 5170,21516 5168,21520 5172,21523 5172,21525 5174,21522 5176,21523 5180,21527 5176,21527 5177,21527 5178,21531 5183,21533 5181,21538 5176,21539 5179,21544 9179,21544 9184,21547 9186,21548 9184,21553 9188,21553 9193,21554 9195,21556 9200,21556 9201,21555 9201,21556 9205,21561 9205,21556 9202,21561 9203,22561 9204,22566 9204,22561 9208,22559 9210,22564 9207,22560 9205,22560 9208,22564 9210,22567 9214,22569 9218,22572 9222,22576 9218,23576 9222,24576 9220,24574 9224,24569 9228,24569 9228,6481 16100,6483 16101,6486 16104,6485 16108,8485 16110,8486 16115,8482 16110,8483 16115,8485 16110,8486 16106,8487 16103,8490 16106,8486 16107,8487 16104,8487 16104,8492 16108,8493 17108,8488 17108,8490 17110,8494 17114,8495 17113,8495 17117,8498 17117,8503 17122,8498 17124,8498 17128,8494 17129,8496 17134,8496 17134,8497 17135,8498 17135,8501 17135,8502 17132,8506 17132,8501 17130,8505 17131,21515 5169,21518 5164,21523 5160,21528 5162,21530 8162,21532 8164,21536 8165,21536 8168,21540 8169,21543 8165,25543 8169,25545 8173,25549 8169,29549 8174,29546 8177,29547 8172,29552 8177,29552 8180,29557 8180,29558 8175,34558 8180,34558 8176,34555 8179,34556 8181,7584 14249,7586 14250,7588 14252,7591 14256,7587 14257,7590 14257,7592 17257,7597 17261,7601 17265,7605 17268,7606 17273,7610 17268,7612 17270,7612 17271,7615 17266,7617 17266,7622 17270,7627 17272,7627 19272,7631 19277,7636 19279,7636 19280,7636 19285,7637 19287,7639 19290,7644 19295,7647 19291,7649 19296,7653 19296,7653 19291,7656 19292,7657 19292,7653 19292,7653 19297,7652 19297,7648 19299,7647 19303,7647 19304,7649 19307,7654 19309,7651 21309,7653 21309,7657 21313,7659 21309,7662 21310,7666 21314,7663 21314,7663 21317,7658 21317,7661 21321,7666 21323,7667 21328,7662 21333,7663 21328,7667 21332,7669 21334,7671 21330,7674 21326,7675 21331,7679 21336,7681 21338,7681 21342,7681 21342,7677 21345,7682 21346,3682 21348,3680 21350,3681 21351,3680 21349,3681 21349,3686 21350,8686 21355,8682 21354,8685 21350,8681 21345,8684 21350,8683 21353,8681 21356,8681 21358,8684 21361,8684 21364,8684 21367,8685 21363,8685 21365,8685 21362,8688 21358,8690 21359,8687 21364,8687 21364,8689 21361,8691 21356,8696 21353,8696 21352,8699 21352,8699 21357,8703 21358,8706 21353,8708 21358,17503 4126,17505 4129,20505 4133,20510 4133,20515 4128,21515 4129,21516 9129,21519 9131,21524 9134,21522 9135,21522 9138,21518 9137,21516 9138,21516 9138,21515 12138,21516 12142,21518 12146,21513 12144,21517 12149,21521 12144,21521 12148,21523 12151,21527 12148,21527 12143,21528 12148,21528 12145,21533 12149,21534 12152,21537 12155,21532 7155,21536 7153,21540 7157,21536 7154,21540 7154,21539 7157,21539 7160,21542 7160,21547 7164,21551 7168,21554 9168,21556 9168,21556 9169,21559 9166,21561 9169,21565 9171,21568 9176,21565 9181,21567 9180,23567 9178,23570 9181,23575 9181,23571 9181,20571 9176,20574 9179,20569 9182,20569 9184,20570 9189,20565 9191,20562 9195,20559 9196,20559 9201,20563 9197,20564 9193,20565 9197,20565 9200,20565 9200,20563 9201,20559 9205,20564 13205,20560 13207,20560 13212,20555 13213,20558 13217,20554 13217,20558 13219,20559 13222,20561 13223,20561 13226,20561 13231,20562 13232,20567 13235,20564 13239,20560 13239,20560 13236,20560 13236,20560 13237,20564 13241,24564 13241,28564 13242,28564 13240,28561 13237,28561 13240,28562 13243,28563 13243,28560 13248,28559 13248,28559 9248,28562 9245,28564 9241,28567 9245,28568 9240,28568 9245,28571 9247,28571 9248,28574 9253,28572 9256,28576 9257,28577 9257,28574 9257,10564 25183,10566 25188,10567 25190,10568 25186,10569 25187,10570 25188,10573 25185,10568 25185,10570 25187,10573 25191,10573 25193,10578 25193,10578 25198,10581 25202,10582 25206,10578 25206,10579 25211,10580 25206,10582 25208,12426 8037,12427 8042,12432 8047,12437 8047,12435 8051,12435 9051,12432 9054,12433 9056,12435 9061,12438 9062,12435 9062,12438 9067,12434 9071,12431 9075,12436 11075,12436 11075,12441 11080,12445 11085,12449 11089,12445 11091,12442 11091,12442 11093,12442 11093,12443 11098,12439 11098,12440 11099,7440 11104,7442 11107,7446 11110,7446 11114,7451 6114,7452 6110,11452 6105,11452 6104,11454 6103,11459 6106,11462 6107,13462 6107,13458 6104,12458 9104,17458 9109,17458 9110,17460 9113,17465 12113,17468 12112,17468 12114,17466 12111,17470 12116,17469 12119,17472 12123,17470 12118,17474 12118,17476 12120,13476 12121,13480 17121,13480 17125,13484 17123,13489 17122,13489 17125,13487 17127,13487 17132,13486 17131,13491 17136,13491 17139,13495 17144,13496 17147,13496 21147,13498 21149,13498 21154,16498 21159,16503 21162,16504 26162,16509 26160,16509 26163,16509 26162,16514 26159,16518 26163,16522 26158,16518 30158,16516 30161,16516 30164,16517 30169,16520 30167,16525 30168,16528 30170,17528 30170,17532 30175,17533 30177,17533 30182,17536 30186,17537 30189,17540 30193,20540 30193,20541 30196,20541 30197,20542 30196,20544 30195,20548 30200,20553 30199,20557 30201,20561 30206,20565 30210,20566 30209,20568 30214,20568 30217,20563 30217,20563 30218,20565 30222,20567 30222,20572 30225,20567 29225,20570 29225,20570 29230,20573 29231,20571 29230,20569 29232,20570 29236,17504 4123,17505 4127,17508 5127,17505 5131,17505 5135,17509 5140,17508 5142,17510 5139,17515 5141,17517 5144,17522 5144,17524 5146,17529 5147,17529 5152,17533 8152,17533 8150,17537 8153,17532 8158,17533 11158,17536 11163,17540 16163,17540 16165,17542 16168,17542 16171,17542 16171,17547 16167,17548 16170,17550 16170,17545 16175,17549 16178,17549 16179,17549 16179,20549 16181,20551 16186,20549 15186,20550 15186,20547 15188,20550 15184,20546 15186,20545 15191,20548 15190,20552 15193,20557 15195,20552 15196,20557 15193,20562 15196,20562 15199,20567 15202,20563 15207,20564 15207,20564 15209,20568 15209,20571 13209,20573 13209,20576 13211,20577 13216,20574 14216,20570 14215,20568 17215,20568 17216,20570 17218,20575 17218,20580 16218,20583 16215,20586 16217,20581 16220,20582 16224,20585 16224,20588 16229,20590 16231,20592 16235,20595 16232,20595 16234,20598 16238,20603 16240,20607 16236,20608 16236,20608 16239,20611 21239,20613 21244,20614 21246,20612 21244,20612 21242,20615 21239,20616 21241,20621 21242,17621 21244,17626 21245,17629 21244,15629 21239,15632 21240,15636 21245,15637 21247,15639 21244,15637 21245,15642 21245,15647 21244,15646 21248,15650 21252,15653 21247,15651 21250,15649 21250,15645 21250,19645 21253,19648 21256,19647 21253,19643 21249,19646 21249,19648 21245,19650 21242,19647 21240,19652 21240,14652 21240,14657 21243,14659 21244,14664 21241,14659 21239,14654 21240,14651 21244,14647 21246,14647 21249,14650 21247,14651 21252,14651 21255,14649 21258,14652 21262,14655 21262,14652 21260,14653 21255,14653 21255,14653 21257,14656 21258,14651 21258,14653 21261,14654 21263,14654 21264,14659 21267,14660 21263,14664 21264,14666 26264,14661 26266,14661 26263,14661 26264,14666 26265,14667 26265,14665 26263,14669 26263,14667 26263,14669 26261,14667 26263,14671 26261,14671 26263,12671 26264,12672 26266,12677 26269,17677 26269,17673 26271,17676 26271,17676 26273,17681 26278,17685 26278,21536 8168,21539 8171,21543 8169,21538 8170,21541 8170,21544 8171,21548 8166,21548 8168,21552 8171,21555 8173,21558 8168,21557 8168,21562 8163,21559 8168,21559 8172,21564 8177,21569 8175,21568 8175,21573 8178,21575 8180,21570 8183,21570 8186,21566 8184,21569 8185,21569 8187,25569 8190,25571 8193,25575 8193,25576 8194,25576 13194,25580 13194,25584 13196,25589 13197,25592 13200,25595 13205,25592 17205,25593 17209,25594 17213,27594 17209,27592 17213,27590 17212,27592 17217,27592 17220,27596 17224,27599 17227,27603 17232,27603 17227,27605 17229,28605 17230,28607 17234,28609 17230,28610 17231,28610 17236,28611 17238,28613 17241,28614 17241,28615 17243,28616 18243,28618 18246,28618 18246,28622 18246,28627 18246,28632 18245,27632 18245,27634 18245,27633 18244,27638 18245,-1366 13297,-1365 13299,-1362 13303,-1362 13300,-1361 13304,-1366 13308,-1368 13304,-1368 13306,-1367 13309,-1363 13313,-1358 13313,-1353 13318,-1351 13319,-1347 13323,-1343 13318,-1343 13322,-1340 13317,-1337 13318,-1337 13322,-1337 13324,-1335 13327,-1339 13328,-339 13328,-334 13333,-331 13336,-327 13338,-326 13340,-326 13342,-321 13340,-318 13343,-317 11343,-312 11345,-307 11349,-311 11353,-314 11350,-311 11353,-313 11349,-308 11352,-313 11347,-308 11351,-306 9351,-306 9351,-306 9351,-301 9355,-301 9356,-299 9359,-297 9355,-297 9354,-296 9359,-294 9364,-290 9360,-294 9355,-289 9357,-291 9353,-286 9355,-4286 9351,-4283 9347,-4281 9344,-4281 9344,-4280 9342,-4280 9342,-4280 9339,-4277 9335,-4274 9333,-4274 9335,-4269 9336,-4265 9339,-4260 9340,-4256 9339,-4251 9336,-4251 9339,-4249 9344,-4254 9344,-4255 9348,-4253 7348,-4251 7352,-4247 7354,-4243 7357,-4242 7357,-4240 7362,-4240 7367,-4235 7371,-3235 7371,-3230 7376,-3225 7375,-3221 7372,-3223 7369,-3223 7371,-3223 7369,-3225 7364,-3220 7364,-3218 11364,-3218 11368,-3215 11369,-3210 11372,-3210 11369,-3208 11373,-3207 11377,-3207 11381,-3209 11384,-3209 11383,-1209 11379,-1211 11383,-1209 11383,-1205 11379,-1200 11384,-1197 11379,-1195 11375,-1197 11376,-1192 11377,-1192 11379,-1192 11384,-1188 11382,-1186 11382,-1181 11384,-1180 11388,-1176 11389,-1171 11388,-1171 11393,-1169 11393,-1164 11398,-1162 11393,-1158 11392,-1155 11395,-1155 11397,-155 16397,-156 16401,-156 16406,-158 16409,-158 16412,-158 16414,-160 16415,-158 20415,2842 20411,2847 20413,2848 20417,2848 20417,2848 20412,2850 20407,2850 20403,2846 20408,2847 20406,2849 20406,2854 20402,2858 20403,2863 23403,2858 23402,2855 23405,2858 23400,2857 23400,2852 26400,2849 26404,2850 26406,2855 26410,2859 26415,2863 26411,2866 26411,2866 26411,2866 26412,2868 26415,2868 26419,2868 26423,2873 26424,2876 26425,14656 21258,14661 21260,14664 21262,14664 22262,14662 22267,14662 22268,14662 22268,14658 22273,14660 22278,14658 22277,14659 22278,14660 22283,14661 22281,14661 22285,14661 22288,14664 22290,14659 22295,14662 22298,14663 22301,14667 22301,14668 22301,14673 22303,14678 22306,14681 22302,14686 22299,14686 22301,14683 22304,14686 22305,14687 22301,14689 25301,14684 25301,14684 25299,14685 25300,14685 25301,14685 24301,14688 24301,14693 24303,14693 24298,14693 24298,14688 24299,14689 24297,14690 24299,14690 24302,14690 24302,14686 24303,14686 24306,14688 24302,8492 16108,8494 16113,8498 16116,8495 16116,8496 16116,8499 16116,8504 20116,8508 20119,8508 20119,8507 20119,8509 20123,8509 20127,8512 20128,8514 20130,8519 20135,8522 20136,8522 20136,8524 20138,8524 20141,8528 20142,8526 20145,8530 20141,8530 20145,8532 20149,8531 20151,8536 20155,8535 20154,8539 20154,8539 20149,8539 20149,8543 20146,8540 25146,8538 23146,8540 23149,8540 23149,8545 23151,8546 23152,8551 23152,8555 23152,8559 23153,8561 23153,10561 18153,10561 18153,12561 18158,12564 18159,12566 18163,12567 18165,12564 18165,12568 20165,12570 20170,12575 20173,12579 20177,12576 20177,12579 20176,12584 20176,12583 20181,12585 20182,12583 20186,12582 20187,12585 20192,12582 20194,12584 20198,12586 20198,12581 20201,12582 20204,12581 20206,13581 20209,13586 20211,13586 20216,13589 20217,13589 20213,13586 20215,13588 20213,13592 20215,13596 20216,13596 20221,13600 20221,13598 20224,13595 20221,13598 20226,13602 20229,15602 20232,15606 20232,15611 20232,15610 20232,15613 20235,15617 20239,15612 20234,15612 20233,15615 20237,15617 20233,15619 20234,15619 20229,15623 25229,15624 25229,20624 25228,20628 25229,20631 25234,20630 25239,20634 25241,20632 25244,20636 25240,20634 25237,20639 25236,20634 25241,7590 14257,7592 14260,7592 14262,7592 14265,7595 14266,7600 14263,7600 14268,7604 14270,7609 14274,7611 14275,7615 14275,7620 14277,7620 14276,7625 14277,7625 14277,7628 14281,7628 14286,7630 14284,7630 14284,8543 20146,8542 20148,8546 20150,8550 20152,8550 20153,8550 20158,8545 20156,8545 20157,8550 20157,8550 20155,8550 20157,8553 20161,8557 20161,8557 20165,8560 20161,8563 20159,8568 20154,8570 20158,8573 20161,8573 20166,8577 20168,8580 20171,8584 20173,8585 20175,8580 20180,8582 20183,8582 20188,8582 20188,8585 20193,8588 20198,8589 20199,8591 20197,8594 20198,8596 20196,8592 23196,8597 25196,8601 25199,8601 25203,8604 25202,8604 25202,8599 25205,8601 25210,8601 25206,8603 25206,8606 25206,8605 25211,8609 25211,8613 25208,8614 25205,8619 25208,8619 25210,8621 25214,8619 29214,8615 29218,8616 29219,8617 29217,8622 29222,11622 29225,11624 29229,11623 29230,9623 29225,9621 29224,9625 29227,9628 29227,9624 29232,9626 29237,9631 29241,9634 29245,9635 29248,9638 29253,9643 29258,9646 29258,9647 29255,9648 29253,9650 29258,9648 29262,9647 29262,9642 29267,9646 29267,14646 29269,14650 29274,14655 29279,14654 29277,14655 29275,14653 29276,14655 29273,14656 29269,14653 29272,14656 29272,14656 29274,14660 29276,14663 29276,14660 29278,14659 29281,14659 29276,14661 29272,14656 29273,14657 29274,14652 29270,14654 29274,14657 29270,14659 29272,14655 29275,14657 29270,14659 32270,14660 32270,14662 32273,14665 32277,12665 32279,12670 32279,12670 32277,12670 32274,12672 32277,12677 32282,12682 32285,12678 32289,12674 32291,12677 32287,12679 32287,12683 32292,12685 32292,12680 32289,12682 32294,12683 32299,12687 32298,12692 32300,12695 32305,12699 32310,12703 32311,12704 32312,21515 5172,21516 5175,21518 5175,21513 5177,21516 5182,21520 5186,21525 5185,21529 5185,21528 5186,21530 5181,21533 5178,21537 5183,21537 5183,26537 5183,26534 5183,26539 5183,26542 5178,26542 5176,26544 5176,26546 5177,26548 5175,26549 5178,26548 5181,26548 5184,26553 10184,26557 10179,26559 10175,26563 10171,26563 10173,26564 10170,26568 10169,26572 10171,26577 10171,26581 10169,26577 10173,26573 10169,26575 10171,26578 12171,26576 12175,26576 12180,26581 12183,26577 12183,26580 12184,26582 12181,26582 12182,26583 12182,26588 12186,26590 12191,26593 12193,26593 12198,26598 12198,26602 12193,26602 12193,26604 12195,26607 12195,26611 12196,26615 12196,26615 12200,21534 12152,21534 12152,21537 12147,21540 12147,21545 12150,21545 12145,21548 12150,21549 12152,21544 12152,21544 12150,21547 12153,21552 12152,21553 12157,20553 12161,20553 12156,20556 12152,15556 12157,15559 12160,15557 12163,15561 12163,15564 12166,15565 12165,15561 12161,15559 12163,15559 12168,-4274 9335,-4274 9339,-4276 9341,-4276 9344,-4273 9341,-4271 9341,-4266 9342,-4266 9339,-4269 9335,-4265 9339,-4263 9342,-4259 9345,-4254 9345,-4250 9340,-4250 9335,-4245 9338,-4242 9341,-4240 9341,-3240 9346,-3242 9349,-3241 9351,-3239 9352,-3238 9355,-3237 9358,-3233 9356,-3232 9358,-3233 9358,-3228 9363,-3228 9364,-3223 9369,-3226 9369,-3224 9373,-3222 9378,-3217 9379,-3215 9384,-3215 9384,-3215 9389,-3215 9394,-3215 9390,-3210 9385,-210 9386,-207 9389,-208 9389,1328 -1007,1328 -1010,1329 -1013,1334 -1018,1339 -1013,1344 -1013,1346 -1013,1350 -1015,1351 -2015,1353 -2016,1353 -2011,1350 -2016,1350 -2013,1354 -2010,1356 -2005,1359 -2007,1364 -2005,1363 -2005,1365 -2000,1362 -1999,1365 -1998,1366 -1998,1362 -1994,1364 -1989,1365 -1988,3668 17323,3665 17327,3663 17332,3666 17337,3667 17341,11433 8033,11434 8035,11434 8031,11437 8031,11437 8032,11441 8033,11439 8033,11442 8036,11445 8037,11448 8038,11452 8043,11454 8047,11456 8047,11459 8044,11454 8049,11457 8051,11460 8052,11463 8055,11458 8057,1346 -2990,1346 -2986,1350 -2982,1347 -2986,1352 -2983,1352 -5983,1355 -5979,1358 -5974,1354 -5970,1356 -5965,1360 -5964,1362 -5960,1364 -5960,1364 -5960,1369 -5960,1364 -5963,1369 -5960,1374 -5957,1378 -5952,1380 -5951,1384 -5951,1380 -5948,1380 -5944,1384 -5942,1387 -5945,5387 -5949,5391 -5950,5395 -5950,5395 -5951,5395 -5949,5400 -5954,5404 -5953,5402 -5958,7402 -5958,7403 -5963,7404 -5960,7404 -5959,11363 6016,11359 6018,11364 6023,11365 6024,11365 6023,11369 6025,11373 6020,11378 6020,11377 6024,11379 6029,11383 6033,11384 6034,11388 6037,11389 6041,11394 6043,11396 6048,11401 6048,11402 6050,11406 6052,11404 6054,11409 6058,11413 6059,11415 6060,11411 6065,11416 6068,11420 6073,11415 6076,11416 6078,11419 6083,11423 6085,11428 6086,11430 6086,11432 11086,11437 11091,11432 11088,11429 11086,11432 11086,11427 11090,11427 11095,11429 11092,11427 11092,11431 11087,11433 11088,11436 11090,11436 11091,11436 11096,11439 11099,11440 11099,11440 11095,11445 11097,15445 11102,15445 11102,15441 11099,15445 11100,15445 11102,15443 11106,15445 11110,15450 11107,15453 11110,15457 11110,15457 11115,15459 11119,15460 11117,15465 11117,15465 11120,15464 11123,15463 11124,15460 11124,15460 16124,15458 16127,15462 16122,15466 16126,15462 16131,15465 16133,15463 16135,15462 16136,15462 16140,15466 16142,15468 16147,15468 16147,15471 16149,15471 16147,15475 12147,15477 12150,15480 12147,15484 12144,15487 12145,15490 12147,15492 12149,15494 12150,15496 12153,15497 12155,15499 12150,15499 12147,15500 12143,15504 12146,15499 12150,15500 12150,15500 12152,15505 12153,15506 12157,15506 12157,15508 12158,15512 12159,19512 12162,19513 12159,19511 12163,19512 12162,19517 12167,19520 12167,19522 12168,19525 12171,19525 12172,19525 12175,19526 12172,19526 12172,19526 17172,19527 17175,19528 17176,19529 17179,19529 17178,19533 17181,19532 17183,19532 17179,19537 17174,19539 19174,19538 19171,19542 19172,19547 15172,7641 17282,7646 17284,7649 17284,7652 17284,7654 17285,7650 17289,7647 17291,7645 17296,7649 17297,7650 17294,7653 17294,7653 17298,7656 17303,7658 17308,7662 17313,7666 17308,7664 17313,7669 17313,7669 17313,7669 17316,7667 17313,7667 18313,7663 18314,7661 18316,7662 18317,7657 18318,7662 18315,7658 18316,7661 18318,7661 18322,7664 18317,7667 18315,7671 18315,7675 18315,7674 18315,7670 18316,11670 18316,16670 18321,16673 18321,16678 18322,16682 18327,16683 18332,16686 18334,16690 18334,16688 18336,16685 23336,16688 23337,14688 23338,14692 23337,14694 23338,14697 23339,14697 23342,14698 23342,14698 23343,14698 23348,14693 23350,14694 23347,14695 23347,14696 26347,14692 23347,14692 23347,14693 23350,14693 23351,14698 23355,18698 23352,18698 23356,18702 23360,18701 23362,18699 23363,18701 23363,18702 23366,18699 23366,18694 23370,18699 23370,18702 23374,18707 23378,18706 23380,18706 23381,22706 23384,22706 23385,22705 23389,22706 23384,22706 23384,22706 23384,22710 23380,22713 23381,22718 23386,22716 23390,22712 23390,22708 23390,22705 23392,22704 23397,25704 23402,25704 23402,25706 23404,25710 23404,22710 18404,22707 18402,22704 18403,22704 18406,22704 18411,22704 18411,22704 18410,22709 18410,22709 18407,22704 18405,22703 18405,22707 18405,20707 18409,20709 18412,20710 18411,20712 18414,20712 18414,20712 18412,20712 18416,20714 18412,20717 18417,20720 18419,20715 18421,20718 18422,20723 18425,20723 18430,20723 18434,20725 18435,20724 18437,20724 18433,20726 18433,20731 18437,20732 18437,20730 18438,20735 18440,20739 18438,20734 18438,20739 18437,20739 18437,20744 18439,20749 18438,20750 18434,20753 18436,20754 18431,20754 18432,20758 18433,20762 18438,20764 18443,20766 18447,20766 18450,20767 18451,20768 18451,20769 18448,20770 18452,20774 18456,20777 18458,20781 18462,20782 18463,20785 18468,17785 21468,17784 21473,17782 21477,17787 21481,17783 21482,17785 26482,17788 26482,17788 26482,17791 26479,17794 26483,17790 26483,22790 26483,22790 26479,20583 16215,20585 16220,20589 16225,20590 20225,20592 20222,23592 20227,22592 20229,22597 20233,22600 20233,22603 20237,22604 20240,22599 20241,22595 18241,22595 18242,22598 18243,22602 18247,22605 18252,22601 18256,22598 18255,22600 18257,22604 18258,22609 18261,22608 18261,22606 18264,22608 18261,22605 18265,24605 18262,24608 18263,24611 18267,24608 18267,24613 18271,24615 18272,24610 18273,24614 18272,24619 18276,24621 18281,24625 18276,24622 18280,24622 18282,24621 18279,24622 18277,24627 18279,24631 18284,24634 18289,24634 18292,24634 18294,24636 18299,24639 18294,24644 18295,24647 18298,24647 18301,24643 18303,24643 18306,24639 18311,24636 18315,24641 18317,24645 18317,24648 18319,24649 18323,24649 18328,24652 18330,24652 18329,24652 18327,24655 18322,24656 18319,24658 18319,24661 18320,24664 18316,24660 18320,24657 18318,24657 18320,24659 18325,24660 18327,24661 18323,24656 18327,24652 18323,24654 23323,24658 28323,24660 28318,24665 28319,24666 28323,24668 28325,24668 28328,24672 28325,24667 28328,24668 28325,24670 28326,24665 28330,24668 28334,24672 28336,24672 28336,24668 28339,24672 28340,24672 28338,24674 28341,24675 28346,24675 28351,24677 28356,24679 28357,24681 28356,24677 28360,24680 28355,24684 28354,24688 28356,24688 28351,24690 28356,24686 28361,24691 28364,24692 28364,24692 28365,24692 31365,24693 31370,21693 31370,21692 35370,21688 35372,21692 35377,21695 35377,21697 35377,21698 35379,21698 35374,21701 35375,21701 35379,21703 35380,21708 35383,21706 36383,21709 36383,16709 36383,16710 36386,16715 36382,16711 36386,16706 36388,16706 39388,16706 39383,16706 39379,16711 39379,16711 39376,16714 39381,16716 39386,16717 39389,16717 39391,16720 39391,16723 39387,17723 39392,17726 43392,17722 43396,19722 43399,19724 43394,19727 43391,19725 43395,19723 43398,19726 46398,19730 46400,19730 46403,19730 46405,19734 46407,19734 46410,19733 46407,19728 46412,19726 46416,19726 50416,19723 50417,19723 50416,19718 50420,19719 50424,19718 50429,19713 50433,19715 50437,19718 50442,19719 50442,19718 50444,19719 50439,19721 50443,18721 50444,18721 50446,18721 50450,18726 50451,18727 50453,18722 50451,18727 50456,18729 50455,18731 50458,18726 50458,18728 50458,18730 50463,18730 50460,18729 50456,18727 50460,18730 50462,18734 50457,18739 50455,18744 50457,18744 50461,18748 50461,18748 50466,18745 50468,18749 50463,18750 50468,18754 50472,18754 50472,18759 50472,18760 50468,18763 50473,18760 50477,18762 50477,18766 50481,18769 50483,18769 50481,18772 50482,18776 50482,18779 50486,18779 50489,18781 50489,18783 50494,18786 50496,18786 50495,18786 50498,18784 50499,18784 50499,21784 50504,21788 50502,21785 49502,21790 49501,21790 49498,21795 49494,21800 49494,21801 49495,21801 49500,21797 49505,21799 46505,21802 46508,21798 46513,21799 46516,21802 46516,21805 46519,21800 46524,21805 46527,21804 46528,21801 47528,21801 47531,21804 47533,21804 47529,21804 47534,21809 47538,21808 47538,21812 47540,21812 47535,21813 47532,21810 52532,21812 52535,21817 52536,21820 52536,21824 52541,21828 52545,19828 52545,19829 52547,19829 52551,19833 52555,19831 52552,19826 52557,17826 52562,17827 52567,17830 52568,17830 52572,17830 52575,17830 52575,17830 52574,17831 52578,17827 52582,17827 55582,17829 55583,17834 55583,17839 56583,17843 56579,17846 56580,17850 56584,17848 56588,17853 56592,17851 56596,17856 56596,17856 56600,17851 56601,17856 56601,17856 56604,20856 56604,20861 56601,20865 56596,20865 56597,20866 56597,20869 56602,20871 56603,20874 56607,20871 56605,20872 56610,20874 56613,20874 56612,20876 56617,20876 56622,20876 56626,20876 56621,20879 56623,20880 56627,20883 56624,20880 56629,20880 56629,20881 56630,20884 56630,20884 56635,20881 56636,20879 56637,20876 56632,20879 56629,20881 56633,20878 56634,20879 56634,20879 56637,20879 56642,20884 56638,20879 56639,20884 56634,20885 56631,20886 56633,20889 56632,20894 56627,20894 56631,20894 56631,20898 56632,20903 56632,20908 56630,20907 56633,20907 56636,20903 56641,20904 56641,20904 56637,20900 56639,20905 56642,20910 56643,20905 56648,20910 56653,20915 56654,20910 56659,20910 56663,20910 56664,20912 56664,20912 56666,20917 56670,20922 56670,20918 56673,20920 56675,20920 56677,20920 56677,20921 56681,20926 56677,20931 56677,20934 56680,20934 56684,20936 56689,20938 56689,20938 56690,20940 56695,20935 56696,20939 56697,20939 56699,20940 56696,20941 56694,20940 56698,20945 56700,20947 56702,20947 56707,20950 56712,20954 56713,20950 56710,20952 56706,20955 56704,20957 56708,20953 56709,20951 56714,20953 56716,20957 56720,20957 56722,20959 56725,20958 56727,20959 56728,20962 56731,20963 56736,20965 56741,20965 56740,20967 56742,20969 56737,20969 56742,20974 56744,20979 56744,20978 56745,20974 56748,20970 57748,20972 57749,20974 57751,20971 57754,20972 57752,20977 57755,20981 57758,20981 57763,20981 57765,20984 57765,20982 57767,20982 57763,20987 55763,20989 55767,20991 55770,20987 55771,20988 55774,20988 55777,20991 55775,21991 55778,21996 55778,22000 55783,22001 55783,22005 55783,22010 55785,17010 55781,17011 55783,20011 55778,20015 55783,20018 55786,20015 55791,20015 55795,20019 55792,20019 55792,20021 55792,20022 55788,20023 55783,20028 55786,25028 55790,26028 55795,26029 55790,26030 57790,26033 57794,26032 57798,26036 57802,26039 57805,26042 57805,26046 57810,26050 57811,26054 57815,26054 57819,26050 57819,26055 57820,26060 57822,26063 57823,26066 57826,26068 57824,26073 57826,26077 57831,26082 57831,26078 57836,26082 57839,26084 57839,26086 57834,26082 57834,26083 57835,26082 57840,26083 57844,26086 57843,26083 57846,22083 57849,22084 57847,22089 57847,22094 57848,22094 57853,22094 57850,22095 59850,22095 59855,22098 59858,22099 63858,22099 63861,21099 63861,21104 63862,19104 63862,19108 63864,19109 63864,19112 63868,19113 63873,19117 63876,19121 63875,19116 63877,19115 63882,19117 63878,19122 63883,19125 63884,19129 63879,19133 63879,19135 63874,19139 63871,19136 63871,19136 63873,19140 63868,19140 63873,19144 63877,20144 63879,20144 63876,20146 63880,20148 63878,20149 63877,20149 63879,20150 63882,20155 63886,20155 64886,20159 64884,20160 64884,20161 64887,20160 64887,20164 64887,12677 32287,12677 32292,12679 32297,12678 32298,12682 32294,12687 32294,12682 32296,12682 32296,12683 32298,12683 32301,12682 32305,12685 32309,12686 32311,12686 32316,12691 32311,12692 32316,12692 32312,12697 32314,12700 32319,12705 32322,12706 32327,12704 32329,12705 32332,12702 32334,12707 32338,12703 28338,12704 28340,12700 28345,12702 28345,12702 28345,12701 28348,12704 28349,12704 28345,12709 28342,12709 28343,12714 28347,12718 28351,12723 28352,12727 28353,12730 28355,12728 28353,12733 25353,15733 25353,15736 25355,15740 25356,15745 25356,15747 25351,15752 25353,15752 25354,15754 25354,15754 25353,15759 25352,15763 25352,15764 25357,15759 25352,15761 27352,15760 27354,15760 27354,15760 27355,15762 27357,15762 27354,15759 27354,15759 27354,15763 27358,15767 32358,15764 32360,15769 32360,15767 32360,15765 37360,15770 37362,15772 37363,15774 37367,15779 37363,15780 37359,15779 37363,15782 37366,15780 37370,15775 37370,15778 37365,15781 37360,15785 37356,15785 39356,15789 39358,15789 39360,15794 39365,15794 39370,15797 39375,15797 39380,15799 39379,15804 39376,15805 39377,15807 39380,15808 39385,15809 39386,15807 39386,15809 39386,15810 39389,15815 39392,15820 39392,15819 39396,15820 39398,15820 39395,15825 39400,15823 39405,15824 39403,15829 39403,15834 39406,15836 39411,15831 39415,15832 39415,15833 39415,15838 39417,15839 39419,15839 39414,15842 39413,15846 39418,15843 39420,15842 39423,15839 39420,15840 39422,15839 39420,15842 39415,15846 39410,17846 39415,17845 39411,17847 39416,17849 39420,18849 39424,18847 41424,18852 41424,18849 41429,18849 41432,18848 43432,18852 43433,18855 43433,18859 43435,18855 47435,18858 47440,18861 47435,18866 47435,18866 47439,18869 47442,18871 47445,18873 47445,21873 47445,21876 47444,21873 47449,21878 47451,21883 47456,21880 47454,21880 47454,21880 47457,21883 47459,21887 47464,21890 47465,21893 47467,21894 47464,16894 47462,16899 47457,16898 47455,16893 47456,16897 47458,16896 47455,16898 47459,16900 47464,16903 47469,16908 47471,16903 47474,16901 47473,16906 47473,16901 47478,16904 47479,16906 47475,16906 47474,16907 47475,16906 47479,16901 47482,16901 47482,16905 47486,16908 47487,16911 47490,16915 47490,16917 47492,16921 47497,16926 47498,19525 12175,19525 12176,19521 12177,19522 12181,19525 14181,19521 14181,19519 14185,19519 14189,19524 14192,19527 14192,19529 14196,19534 14200,19535 14205,19538 14208,19540 14204,19545 14207,19545 14207,19547 14210,19550 15210,19554 15210,19555 15210,19555 15213,19560 15213,19562 15212,19564 15213,19569 15210,19570 15214,19573 15214,23573 15217,28573 17217,28574 17220,28574 17219,28574 17224,28576 17229,28577 17233,28577 17236,28579 17236,28580 17238,28584 17243,28588 17248,28587 17252,28587 17252,28582 17255,29582 17259,29577 17260,29578 17262,29583 17257,29585 17257,29586 17260,29586 17265,29590 17267,29593 17267,29594 17267,29599 21267,29603 21271,29603 21272,29605 21274,29607 21276,29612 26276,29613 26279,29616 26280,29621 26277,29621 26277,29623 26282,29626 26285,29631 26289,29628 26289,29632 26290,29637 26294,29642 26290,29646 26292,29648 26291,29649 26288,29653 26293,29655 26292,29655 26293,12702 28345,12703 28348,12698 27348,12699 27349,12698 27354,12700 27354,12700 27355,12703 27360,12703 27361,12700 27362,12704 27367,12701 27371,12706 27376,12710 27372,12710 27373,12710 27368,12715 27370,12713 27374,12716 27378,12716 27380,12714 27379,12719 27374,12718 27373,12722 27376,12724 27376,12729 27371,12733 27372,12733 27377,12735 27373,12735 27374,12737 27378,12739 27379,12742 27381,12739 27381,12739 27376,12743 27378,12743 27379,9743 27375,9744 32375,9745 32377,9746 32374,9746 32372,9750 37372,9752 37375,9754 37375,9751 37377,9755 37379,9759 37379,9763 37383,9766 37385,9767 37382,9768 37383,9765 40383,9770 40378,9770 40382,9775 40384,9777 40386,9782 40391,9778 40395,9773 40395,9778 40397,9779 40399,9781 40402,9781 40398,9781 40393,9780 40396,9782 40399,9785 40398,9786 40395,9789 40390,9793 40387,9798 40390,9803 40394,9805 40397,9800 40400,9795 40402,9800 40403,9802 40407,9807 40410,9806 40407,9807 40403,9812 40400,9814 40403,9819 40403,9819 40400,9822 40405,9824 40405,9822 40408,9827 40410,9831 40413,9831 40413,9826 40412,9827 40417,9832 40418,9832 40416,9833 41416,9833 41421,9834 41416,9838 41416,9838 41421,9840 41422,9844 41424,9839 41424,9843 41427,9845 41430,9849 41430,9849 41425,9852 41423,9855 41426,9858 41429,9860 41434,9862 41436,9866 41441,9868 41436,9869 41434,9871 41434,9875 41437,9877 41437,9881 41438,9883 41438,9879 41438,20903 56641,20898 56644,20903 56647,20901 56649,20903 56645,20905 56650,20909 53650,20905 53650,20910 53652,20907 53655,20912 53652,20916 53656,20917 53656,20912 53661,20912 53660,23912 53663,23912 53663,23909 53663,23912 53665,23913 53669,23911 53669,23915 53669,23912 53671,23916 53670,23917 53675,23922 53680,23927 53683,23930 53688,23935 53689,23935 53691,23935 53691,23931 53692,23931 53694,27931 53693,27933 53695,27937 53695,27942 53699,27947 53701,27949 53703,27949 53704,27949 53708,27952 55708,27953 55710,27949 55710,27953 55710,27958 55713,27959 55718,27960 55722,27962 55725,27965 55730,27965 55732,27968 55730,27969 55733,27972 55733,27975 55734,27975 55734,27979 55737,27981 55733,27982 55732,32982 55732,32979 55734,32978 55737,32978 55738,32974 55742,32977 55746,32981 55750,32985 55746,32983 55747,32987 55750,32992 55751,32995 55751,32998 55751,32998 55753,32998 55753,32993 55753,32995 55757,32999 55758,33002 55760,33002 55761,33005 55766,33005 55767,33000 55764,32997 55767,32997 55771,33001 55773,32998 55777,33001 55777,33005 55776,33004 55776,33009 55781,33014 55786,33014 55790,33015 55790,33016 55790,33015 55786,34015 55787,34019 55790,34019 55791,34021 55793,34017 55793,34019 55796,34016 55797,34020 55793,34020 55796,34023 55792,34023 54792,34025 54797,34028 54800,34029 54799,34029 54795,34034 54796,34036 54797,34041 54792,36041 54797,36045 54801,36048 54803,36051 54804,36053 54806,11439 8033,11441 8038,11441 8039,11441 8040,11445 8035,11441 8035,11442 8039,11438 8035,11438 8035,11443 8039,16443 8038,16444 8038,14444 8040,14448 12040,14451 12036,14455 12038,14455 12041,14456 12046,14459 12049,14457 12051,14458 12046,14458 12047,14459 12042,14464 12042,14465 12047,14470 12050,14471 12055,14471 12058,14468 12060,14473 10060,14477 7060,14477 7062,14474 7062,14474 7067,16474 7063,16471 7065,16474 7067,16471 7072,16471 7068,16476 7066,16481 7069,16482 7072,16487 7072,16487 7077,16488 7077,16493 7076,16493 7079,16497 7079,16500 7079,16502 7079,16502 7079,16505 7075,16504 7080,16501 7077,16497 7079,16501 7081,16497 7080,16496 7084,16500 7086,16495 7087,16498 7084,16501 7087,16496 7087,16496 7083,17496 7083,17500 7083,17505 7088,9860 41434,9864 41435,9864 41435,9865 42435,9860 42435,9862 42436,9863 42434,9863 42430,9862 40430,9863 40427,9863 40428,20608 16239,20605 16242,20610 16237,20614 16237,20615 16242,20611 16242,20612 16245,20609 16244,20604 16242,22604 16237,22608 16239,22607 16240,22610 16244,22610 16241,22615 16246,22616 16246,22614 16251,22616 16251,22617 16249,22619 16254,22623 16252,22618 16255,22618 16259,22620 16262,22615 16262,22618 16263,22622 16263,22626 16265,22629 16266,22628 16269,22633 16267,22636 16268,22636 16267,22641 16269,22646 16269,22645 16271,22646 16273,22650 16271,22655 16274,22655 16277,22658 16279,22660 16280,22658 16280,22661 20280,22663 20282,19663 20285,19658 20288,19658 20292,19661 20295,19666 20298,19670 20301,19671 20301,19675 20301,19677 20306,19675 20311,19674 20315,19678 20318,19677 20314,19680 20315,19682 20310,19684 20314,19683 20316,19687 20315,19688 20316,19688 20319,19693 20319,19698 20322,19702 20323,19698 20323,19702 21323,19707 22323,8508 20119,8509 20119,8510 20116,8515 20113,8518 20115,8519 20116,8516 20120,8520 20119,8520 20118,8525 20123,8527 20125,8527 20125,8528 20123,8530 20126,8533 20123,8535 20127,8532 20132,8534 20136,8538 20138,8542 20141,8537 20143,8537 20145,8542 20145,8547 21145,8548 24145,8552 24145,8557 24150,8560 24147,8562 24151,8566 24156,8569 24160,8574 24156,8579 24159,8584 24164,8587 24164,8585 24167,8588 24170,8591 24171,8589 24172,8590 24176,8595 24177,8593 24174,8596 24178,8600 24179,8603 24175,8602 24178,9602 24182,9605 24177,9609 24178,9610 24182,9608 24178,9603 24183,9606 24188,9608 24193,9609 24195,9614 24196,9616 24197,9618 24201,9618 24205,9613 24209,9612 24214,9608 24211,9603 24216,9607 24221,9611 24221,9615 24217,9617 24217,9618 24221,9623 24225,9623 24225,9626 24225,9630 24225,9630 24222,9626 24223,9626 22223,9627 22223,9626 22226,9629 22228,9632 22228,9636 22225,9638 22226,9639 22227,9634 22230,9634 22231,9639 22235,9639 22240,9641 22242,9642 22246,9647 22249,9652 22250,9655 22255,9651 22256,9652 22253,9652 22256,9652 22261,9655 22262,9657 22257,9659 22261,9659 22261,9657 22264,9657 22261,9656 22264,9661 22267,9662 22270,12662 22270,12665 22265,12669 22270,12669 22270,12673 22269,11356 7007,11361 7010,11361 7010,11357 7014,11356 7015,12356 7020,12357 7015,12361 7017,11361 7018,11364 7017,11359 7018,11355 7017,11354 7020,11357 7020,11361 7023,11364 12023,11368 12028,11368 12029,11371 12030,11372 12034,14372 12034,14372 12039,14372 12042,14376 12045,14381 12047,14379 12047,14381 12049,14384 12054,14385 12051,14388 12056,14384 12056,14384 12061,14381 12058,14386 12062,14386 12059,14391 12059,14396 12060,14397 12060,14398 12056,14403 12051,14408 12052,14410 12057,14409 12057,14414 12053,14414 12051,14415 12051,14420 12049,14423 12048,14427 12044,14427 12044,14425 10044,14421 10049,14424 11049,14426 11054,14427 11059,14429 11064,14433 11064,14434 11064,14437 11065,14441 11068,14444 11072,14445 11076,13445 12076,13445 12077,13445 12081,13444 14081,13446 14081,13446 14078,13449 14083,13447 14084,13450 14085,13452 14090,13453 14087,13456 14084,13457 14083,13461 14081,13463 14082,12463 14082,12463 14087,12463 14087,12464 14087,8464 14087,8465 14083,8465 14080,8467 14085,8472 14085,8473 14085,8476 14090,8474 14094,8475 14094,8480 14094,8481 14099,8476 14103,8476 14107,8480 14111,8483 14116,8488 14120,8488 14118,8488 14120,8483 14115,8481 14118,8485 17118,8485 17114,8488 17110,8488 17115,8484 21115,8484 21118,8486 21120,8487 21120,8482 21115,8487 21118,8490 21122,8494 21127,8497 21132,8497 21133,8500 23133,8503 23135,8507 23135,8508 23132,8511 23129,8512 23125,8517 23126,8522 23125,8527 23129,8522 23131,8527 23132,8530 23132,8531 23128,8533 23132,8533 23134,8533 23139,8533 23144,8536 23143,8537 23146,8533 23146,8533 23149,8537 23152,8533 23157,8530 23158,8532 23162,8536 23162,8536 23165,8536 23165,8540 23170,8544 23171,8548 23169,8547 23173,8551 23176,8552 23173,8548 23169,8553 23173,8553 23170,8548 23173,8549 23173,8546 22173,8547 22174,8551 22177,8550 22179,8552 22183,8553 22183,8553 22184,8557 22185,6557 22185,13598 20226,13601 20227,13604 20229,13608 20233,13610 20234,13605 20237,17605 20237,17610 20242,17605 20242,17602 20241,14602 20241,18602 20236,18606 20239,18606 20244,18608 20241,16608 20245,16611 20240,16615 20239,16610 20234,16611 20232,16613 20235,16608 20235,16608 20239,16613 20242,19734 46410,19734 46410,19738 46414,19737 46414,19735 46415,19737 46418,19741 46421,19744 46423,23912 53671,23908 53673,27908 53675,27913 54675,27917 58675,27921 58677,27925 58678,27930 58678,27926 58683,27930 58686,27931 58691,27931 58695,27934 58700,27936 58699,27936 58699,27941 58695,27942 58695,27947 58699,27952 58699,27954 58703,27957 58704,27962 58708,27958 58706,27959 58703,27962 58703,27967 58706,27967 58701,27965 58701,27962 58702,27966 58703,27971 58704,27976 58706,27980 58709,27980 58712,27975 58711,27971 58716,27971 58713,27968 58712,27968 58712,27971 58711,27968 58713,27968 58710,27969 58708,27972 58706,27976 58711,27978 58716,27979 58716,27983 58718,27978 58718,27981 58719,27981 58723,27986 58725,27986 58728,27986 58731,27991 58734,27996 58738,27993 58736,27995 58732,31995 58736,31990 58735,31993 58738,31990 58734,31995 58729,31996 58729,31999 58731,31994 58726,31996 58731,12463 14087,12465 14090,12465 14093,12463 14090,12463 14095,12461 14092,12464 14093,12459 14091,12459 14091,12459 14091,12459 14096,12461 14100,12458 14103,12457 14101,12452 14101,12452 14106,12453 14103,12453 17103,12455 17104,15455 17104,15460 17108,15463 17104,15458 17108,18458 17108,21458 17105,21461 17105,21464 17110,21467 17115,21464 17120,21464 17120,21468 17123,21470 17126,21465 21126,21461 21126,21464 21128,21464 21132,21468 21137,21471 21142,21475 21146,21471 21146,21476 21147,21473 21151,21475 25151,21475 25152,21477 25153,21481 29153,21479 29158,21484 29162,21488 29162,21490 29165,21487 29170,21488 29167,21489 29162,21493 29164,21493 29169,21498 29169,21499 29164,21495 29167,21498 29167,23498 29170,23498 29169,23503 29172,23505 29171,23510 29167,23514 29164,28514 29168,28514 29172,28514 29174,28512 29172,28513 29176,28518 29179,28518 29182,28521 29177,28521 29179,28519 29179,28517 29179,28515 29177,28519 29177,28519 29179,28524 29184,28527 29183,28527 29185,28523 29187,28523 29184,28525 29189,28522 29189,28518 29186,28523 29189,28519 29189,28521 29189,28526 29193,28529 29193,28529 29196,28534 29200,28538 32200,28537 30200,28539 30202,33539 30207,33539 30209,33534 30205,33535 30208,33536 30208,33538 30213,33538 30214,33542 30218,33545 30221,33548 30222,33551 30225,33552 30227,33554 30231,33555 30233,33560 30228,33563 30225,33564 30229,33565 34229,33565 34234,33570 34231,33572 34235,33572 34239,33573 34243,33578 34239,33579 34243,33574 34247,33573 34247,33576 34243,33573 37243,33573 37246,33568 37241,33568 37244,33573 37239,33578 33239,33574 33241,33574 33239,33578 38239,33583 38242,33587 38242,33590 38242,33594 38243,33596 38247,33599 38248,33599 38252,33595 38252,33598 38257,33603 38258,33604 37258,33609 37255,33604 37257,33607 37262,33607 37265,33609 37266,33614 37271,33614 37276,33616 37278,33616 38278,33616 38282,33621 38284,33621 38288,33621 38285,33618 38289,33616 38291,33616 38294,33611 38296,33608 38301,33610 38305,33610 38300,33612 38303,33617 38308,33621 38309,33625 38305,33630 38307,33634 42307,33636 42310,33638 42314,33634 42312,33631 42315,33631 42315,27931 58691,27936 58693,27937 58695,27940 58700,27943 58703,27943 58708,27946 58709,27950 58711,27950 58714,29950 58718,29951 58723,29947 58728,29947 58732,29950 58727,29950 58727,29955 58730,29960 58734,29964 58732,29961 58734,29963 58735,29968 58739,29968 58741,34968 58739,34971 58739,34972 58739,34973 58740,34968 58741,34970 58743,34974 58745,34977 58749,34979 58744,39979 58745,39979 58742,39978 58744,39982 58748,39983 58744,39983 58744,39979 58747,39979 58752,39983 58757,39982 58759,39985 58759,39986 58759,39983 60759,39986 60762,39990 60767,39994 60770,39994 60770,39997 60770,39997 60770,40000 60775,40002 60775,40003 60779,40007 60784,40008 60787,40011 60788,40015 60788,40016 60790,40016 60792,40021 60788,40025 60788,40030 60788,40026 60786,40027 60786,40030 60787,40032 60792,40037 60795,40032 60800,40032 60799,40035 64799,40035 64801,40036 64806,40041 64803,40037 64805,40038 64801,40040 64804,40036 64804,40040 64805,40045 64810,40048 64811,40051 64813,40051 64817,13491 17139,13486 18139,13489 18139,13494 20139,13492 20138,13494 20141,13499 20145,13499 20145,13499 20148,13503 20149,13500 20149,13505 20151,9367 11012,12367 11015,12369 11011,12364 11012,12364 11015,12359 11011,12354 11011,12354 11014,12359 11017,12356 11015,12361 11015,12361 12015,12365 12016,12369 8016,12374 8021,12373 8025,11373 8021,11368 8021,11373 8024,12700 27362,13700 27363,13705 27364,13710 27368,13705 27369,13707 27367,13707 27371,13709 27375,13712 27377,13714 27373,13712 27376,13714 27379,13713 27382,13718 27384,13713 27380,13713 27385,13711 27386,13715 27386,13719 27386,13719 27389,15719 27394,15724 27398,15729 27400,15734 27401,15734 27401,15729 27396,15732 27396,15735 27397,15734 27399,15733 27400,15729 27400,15734 27400,15729 27405,15734 27405,15739 27408,15739 27408,15741 27412,15743 27416,15743 27416,15740 27416,16740 31416,16743 31421,16738 31425,16742 31430,16742 31435,16743 31439,16743 31444,16741 31449,16746 31450,16747 31455,16742 31459,16738 31463,16742 31466,16742 31471,16742 31471,16742 31471,16744 31475,16749 36475,16749 36473,16753 36478,16757 36474,16761 36477,16759 36478,16761 36481,16760 36484,16761 36485,16760 36486,16765 36491,16766 36494,16771 36498,16769 36501,16771 37501,16774 37504,16769 37507,16769 37507,16772 37503,16772 37508,16774 37511,16774 37510,18774 37515,18777 37515,18772 37512,18775 37514,18777 37517,18778 37519,18779 37517,18776 37517,18778 37520,18780 37520,18785 37522,18785 37526,18787 37523,18786 37520,18790 38520,18789 38520,18792 38522,18797 38527,18802 38529,20802 38534,20804 38535,20803 38540,20802 38539,20806 38543,20811 38546,20814 38543,20812 38541,20808 38546,20811 38544,20815 38539,20816 38535,20818 38531,20815 38531,20814 38528,20814 38533,20817 38536,20816 38539,20821 38540,20818 38542,20820 38540,20816 38540,20821 38540,20823 38541,20828 38541,20831 38546,20836 38547,20836 38548,20835 38553,20835 37553,20835 37558,20837 37558,20842 37560,20846 37561,20846 37564,20849 37569,20854 37564,20854 37565,20850 37566,20852 38566,20856 39566,20861 39566,20863 39562,20867 39566,20872 39567,20868 39566,20873 39568,20876 39573,20876 39573,20880 39575,20884 39579,20885 39580,20889 39580,20891 39584,20888 38584,20889 38587,20890 38592,20891 37592,20892 37597,20894 35597,20895 35600,20897 35603,20899 35605,16678 18322,16681 18323,16682 18323,16686 18328,16690 18326,16693 18331,11693 18335,11692 18332,11695 18332,11698 18335,11703 18335,11703 18336,11702 18339,11698 18344,11702 18349,11705 18353,11704 18357,11707 18360,11707 18359,11711 18358,11716 18358,11713 18358,11712 18360,11710 18360,11710 18362,11710 18362,11710 18367,11710 18366,11707 18366,11706 18365,11710 18369,11715 18371,11714 18374,11712 18376,11711 18377,11711 18379,11712 18384,11715 18385,11711 18385,11714 18387,11717 18389,11718 18386,11721 19386,11723 19391,11722 19395,11722 19396,11723 19398,11726 19398,11729 19403,11733 19408,11736 19407,11733 19411,6733 19407,6735 19402,6738 19402,6743 19406,6746 19406,6742 19411,6742 19414,6742 19414,6746 19419,6746 19423,6746 19418,6749 19418,6747 19418,6748 19420,6748 19424,6748 19424,6751 19427,6751 19429,6752 19429,9752 19426,9754 19428,9759 19430,9756 19431,9751 19435,9753 19440,9757 19445,9755 19443,9757 19448,9757 19448,9759 19451,9763 19451,9766 19454,9766 19456,9770 19459,9770 19462,9770 19466,9766 19467,9771 19468,9772 19468,9769 19469,9768 19470,9770 19470,9774 19473,9778 19470,9781 19470,9786 19471,9789 19471,9789 19473,9792 19478,9795 19475,9800 19478,1256 2899,1260 -1101,1256 -1097,1255 -1093,1255 -1094,1259 -1089,1260 -89,2260 -84,2258 -84,2263 -88,2267 -89,2268 -91,2269 -86,2272 -86,2272 -82,2273 -77,2276 -79,2281 -81,2283 -79,2287 -75,2292 1925,2297 1930,2299 1930,2303 1932,2308 1937,2308 1936,2313 1937,2315 1934,2316 1935,2311 1936,2316 1937,2319 1938,2322 1940,2327 1940,2331 1940,2327 1943,2329 1945,2331 1950,2336 1950,2339 1954,2338 1954,7338 1954,7337 1958,7341 1960,7341 1964,8550 20152,8554 20152,8553 15152,8550 15152,8554 15154,8552 15149,8552 15153,8556 15151,8556 15148,8552 15152,8547 15149,8552 15154,8552 15155,8553 15156,8550 15156,8553 15160,8556 15164,8558 15163,8561 15163,8563 15167,8559 15169,8559 15166,8564 15167,8568 15171,8572 16171,8572 16173,8574 16170,8571 16174,8575 16174,8576 16174,8576 16174,8580 16178,8579 16183,8574 16184,8576 16184,7576 16186,7572 16181,7577 16181,7577 16185,7578 16190,7583 16185,7583 16185,7587 16185,12587 19185,12582 19188,12587 19193,12587 19195,10534 21158,10538 21162,10540 19162,10543 19158,10547 19158,10551 19160,10551 19158,10554 19158,10553 19157,10555 19157,10555 19154,10552 19156,10553 19161,10555 19166,10558 19165,10560 19165,10561 19165,10561 19165,10564 19166,10567 19164,10570 19162,10575 19165,10577 19164,10577 19168,10578 19168,10574 19171,10574 19172,10571 19175,10573 19178,6503 16143,6507 16146,6509 16142,6510 16142,6510 16143,6512 16143,6514 16146,6517 16148,6522 16143,6525 16143,6530 16143,6534 16146,6531 16144,8490 16106,8490 16106,8492 16109,8489 16110,8491 16106,8487 16109,8488 16104,8490 17104,8495 17108,8490 17109,8493 17108,8498 17111,8500 17111,8500 17109,8501 17113,8506 17118,8506 17118,8506 17123,4506 17125,4511 17123,4516 17126,4514 17125,4519 17124,4520 17126,4525 17129,4530 17124,4526 17124,4528 17124,4533 17127,4535 17127,4531 16127,4531 16124,4534 16124,4538 16125,2538 16130,2539 16131,2544 16133,2544 16129,2540 16129,2545 16129,2550 16126,7550 16126,7555 16128,7559 16124,7559 16129,7560 16132,7561 16128,7566 16132,9566 16136,9568 16136,9573 16141,9570 16144,9571 16146,9573 16150,9577 16153,9581 16148,9579 16153,9584 16157,9586 16160,9581 16162,9578 16165,10578 16162,10579 16163,10574 18163,10570 18164,10568 18164,10570 18169,10572 18170,10575 18170,10575 18175,10579 18176,10580 18176,10585 18176,10581 20176,10586 20178,10587 20178,10585 20179,10585 20177,10581 20178,10584 20183,10586 20187,10590 20187,10591 20190,10587 20188,10591 20187,10591 20192,10592 20191,10597 20195,10602 20194,10602 20195,10607 20197,10607 20198,13607 20201,13607 20200,13607 20204,13604 20204,13605 20209,13607 20209,13612 20214,13615 20218,13615 20218,13619 20220,13624 20224,13628 20219,18628 20216,18630 20213,18635 20213,18632 20211,18629 20211,18632 20215,18632 20216,18632 20217,18632 20217,18627 20214,18630 20209,18633 20212,18636 20212,18638 20217,18643 20222,22643 20219,22643 20219,22644 20219,22644 20214,22645 20216,22645 21216,22646 21220,22642 21224,22642 21221,22641 21224,22638 21229,22641 21232,22642 21235,22643 21238,22644 21236,22649 21237,22704 18411,22704 18412,22699 18412,22696 18416,22701 18412,22703 18416,22698 18416,22693 18418,22695 18422,22698 18422,22700 18426,22705 18427,22706 18427,22708 18432,22708 18432,22704 18431,22709 18427,22709 18432,22709 18436,22713 21436,22718 21438,22719 21437,22721 21440,22725 21443,22727 21445,22724 21450,22724 21451,22727 21453,22730 21453,22730 21458,22734 21460,22738 21464,20738 21464,20742 21465,22742 21465,22741 21464,22736 21464,22738 21464,22742 21460,22742 21460,22744 21458,22743 21458,22741 21455,22741 21460,22739 21456,22739 21458,22734 23458,22732 23458,22733 23463,22731 23467,22731 23469,22736 23472,22739 23472,22742 23471,22744 23471,24744 23466,24744 23468,24739 23471,24742 23474,24747 23478,24747 23481,24747 23483,24747 23486,24751 25486,24753 25489,24758 25493,24762 25497,24764 25499,24769 25496,24773 25498,24777 25499,24779 25503,24782 25500,24782 25498,24777 25498,24779 25495,24775 25495,24776 25495,24777 25495,24781 25500,24778 25503,24778 25499,24780 25500,24777 22500,24775 22505,24777 22505,24777 22501,24778 22502,24778 22505,24774 22509,24776 22509,24776 22509,24781 22509,24784 22511,24780 22513,24780 22514,24783 22515,24786 22520,24786 22520,24791 22518,24788 22517,24791 22522,24794 22525,24791 22524,24791 22528,24789 22530,24794 22530,24799 22525,24795 22524,24798 22520,24796 22516,24801 22511,24803 22516,24804 22521,24804 22526,24806 22524,24805 22524,24809 22529,24810 22531,24813 22536,24817 22536,24815 22535,24810 22530,24815 22530,24816 22530,24818 22531,24818 22531,24818 22533,24822 22533,24820 22530,24816 22529,24820 22532,24822 22533,24822 27533,24823 27536,24826 27540,24829 27541,24832 27546,24833 27549,24832 27553,24833 27552,24833 27551,24836 27551,24839 27554,24841 27554,24841 27556,24842 27559,24847 27557,24847 27562,24842 27566,24840 27564,24842 27568,24844 27563,25844 27565,25847 27569,25848 27564,25851 27561,25855 27559,25856 27556,25852 27556,25857 27561,25857 27564,25858 27564,25863 27567,25868 27567,25871 27564,25872 27565,25875 27570,25877 27573,25878 27575,25879 27574,25884 27579,25887 27577,25886 27579,25882 27582,25882 27578,25882 27582,25884 27578,25887 27583,25891 27584,25895 27582,25895 27582,25898 27583,25900 27580,11433 8033,11435 8037,11439 8040,11444 8044,11439 8048,11441 8045,11446 8044,11446 8039,11451 8038,11451 8043,11450 8046,11451 8046,11447 8049,11443 8052,11445 8057,11441 8058,11439 8060,11444 8056,11445 8053,11448 8053,11450 8049,11455 8044,11453 8042,11454 8044,11451 8049,11453 8049,11458 8052,11459 8055,11457 8053,11460 8053,11461 8055,11465 9055,11466 9056,12466 9058,12467 9054,12472 4054,12467 4056,12467 4059,12470 4058,12468 4060,14468 4064,14467 4063,14471 4060,14473 4062,14471 4067,14468 4072,14471 4076,14466 4077,14467 4074,14472 4075,14472 4080,14476 4085,14476 4090,14481 4090,14485 4091,14490 4095,14493 4095,14495 4100,14492 4100,14497 4102,14499 4100,14501 4101,14500 4106,14500 4107,14496 4108,14495 4110,14494 7110,33625 38305,38625 38310,38625 38315,38623 38318,38625 38317,38629 38318,38632 38313,38634 38313,38639 38314,38640 38317,38644 38320,38649 38321,38647 38317,38647 38322,38643 38324,38640 38319,38645 38319,38646 38319,38645 38316,38644 38318,38646 38319,38644 38324,38647 38328,38652 38325,38649 38328,38651 38332,40651 43332,40651 43335,40655 43335,40652 43339,40652 43339,40654 43336,40654 43337,40657 43333,40656 43335,40656 43338,40656 43343,40656 43341,40659 43346,45659 43348,45664 43350,45666 43346,45665 43351,45669 43355,45673 43355,45674 43359,50674 43360,50678 43363,50678 43364,50679 43367,50682 43371,50687 43374,50690 43374,50690 43377,50693 43377,50698 43382,50693 43386,50689 43386,50692 43390,50695 43392,50699 43392,50704 43397,50707 43395,50711 43391,50706 43393,50709 43393,50711 43395,50710 43397,50714 43394,50718 43394,50715 43394,50717 43399,50722 43403,50724 43407,50728 43407,50730 43408,47730 43403,47730 43404,47733 43408,47737 43409,47735 43414,47738 43416,47741 43416,47744 43421,47743 43422,47748 43424,47753 43419,47754 43420,47749 43419,52749 43423,52751 43421,52753 43421,52750 43426,52752 43428,52748 43430,52748 43426,52747 43431,52744 43431,52748 43435,52748 43435,52750 45435,52753 45440,52753 45440,52757 45442,52761 45447,52758 45447,52761 45447,52761 45452,52758 45454,52758 45455,52758 45456,52761 45460,52759 45458,52755 45463,52759 45464,52756 45461,52756 45462,52758 45467,52760 45470,52759 45469,52762 45473,52762 45474,15617 20233,15612 20238,15611 20242,15613 20237,15617 20238,15618 20239,15621 20236,15623 20240,15622 20240,15622 20245,15623 20244,15628 20242,15628 20247,15625 20246,15628 20250,15630 24250,15632 24251,15634 24253,15629 24252,15633 24250,15629 24250,15633 24248,15629 24248,15634 24248,15636 24253,15640 24253,15643 24257,15639 24254,15642 24257,15643 26257,15648 26255,15643 26256,15641 26258,15646 26262,15646 26263,15651 26263,15648 26267,15653 27267,15656 27270,15660 27272,15662 29272,15658 29276,15658 29277,15658 29272,15663 29274,15663 29274,17663 29274,17663 29279,17668 29283,17671 29285,17670 29287,17675 29289,17676 29293,17679 29296,17682 29297,17685 29299,17686 29300,17687 29305,17685 33305,17686 33310,17687 33310,17689 33306,17687 34306,17691 34304,17694 34306,17696 34306,17695 34309,17691 34314,17691 34311,17692 34306,17696 34310,17700 34310,17697 34312,17699 34316,17704 34318,17701 34318,17705 34322,17704 34321,17706 34319,17706 34319,17702 34316,17707 37316,17710 37318,19710 37313,19705 37313,19708 37308,19712 37310,19710 37312,19711 37307,19711 37307,19714 37310,19718 37312,19719 37309,19723 37312,19727 37315,19729 37317,19731 37322,19734 37323,19735 37324,19737 37322,19742 37326,19740 37331,19745 37335,19742 37335,19742 37340,19745 37341,19749 37341,19749 37342,19752 37347,19757 37347,19762 37345,19764 37341,19768 37345,19769 37350,19771 37355,19773 33355,19770 33360,19765 33364,19769 33364,19773 33365,22773 33364,22771 33360,22775 38360,22779 38364,22780 38369,22782 38371,22784 38371,22789 40371,22792 40375,22789 40375,22789 40377,22793 40376,23793 40378,23795 41378,23791 41378,23792 41378,23796 41382,23798 41383,22798 41386,22799 41390,22804 41390,22804 41391,22808 41391,22812 41393,22814 39393,22819 39393,22821 39395,22823 39397,22828 36397,22832 36392,22832 36393,22836 36396,22836 36401,22838 36402,19838 36403,19837 36408,19841 36408,19843 36409,19845 36404,19847 36405,19847 36408,19847 36411,19848 36413,19850 36415,19845 36419,19841 36417,19843 36419,19843 36419,19846 36424,19848 36425,19850 36425,19845 36425,19846 36425,19848 36430,19852 36430,19849 36435,19846 36440,19851 36440,19846 36438,19848 36439,19844 36442,19845 36446,19841 36448,19841 36449,19841 38449,19841 38452,19846 38455,19848 38458,19852 42458,19856 42462,19859 42463,19859 42465,19861 42462,19862 42463,19864 42463,19867 42467,19870 42470,19871 42468,21871 42467,26871 42464,26867 42466,26872 42463,26872 42464,26874 42463,26879 42466,26882 42466,26883 42471,26879 42476,26878 42477,27878 42479,27882 42479,27883 42480,27886 42483,27887 42487,27885 42484,27887 42483,27890 42484,27890 42485,22890 42486,22890 42489,22890 42491,22895 42494,22897 42498,22899 42502,22901 42502,22896 42503,22892 42498,22896 42498,22891 42502,22892 42505,22897 42507,22898 42511,22903 42515,22906 42510,22911 42513,17911 42508,17915 42512,17918 42509,17913 44509,17915 44514,17919 44510,17923 44514,17927 44510,17927 44513,17927 44517,17928 44521,21928 44517,21930 44516,21931 44513,21929 44513,21933 44517,21934 44519,21933 44520,21934 44520,21937 44520,21938 44520,21943 44520,21938 44523,21940 44527,21936 44532,21941 44536,21942 44541,21937 44545,21938 44545,21938 44545,21940 44543,21937 44538,21941 44543,21938 44547,21938 44547,21938 44547,21937 44551,21937 44551,21933 44556,21935 44554,21937 44558,21940 44562,21944 44564,21949 44561,21952 44566,21955 44568,21960 44569,21963 44571,21963 44571,21965 44574,25965 44579,25967 44584,25967 44584,25970 44588,22970 41588,22970 41586,22975 41585,22974 41589,22970 41593,22966 41598,22965 41598,22970 41598,22965 41601,22965 41604,22965 46604,22968 46604,27968 46602,27968 46602,25968 46601,25967 45601,25968 45602,25971 45607,25975 45610,25979 45614,25977 45612,25975 45609,26975 45609,26980 46609,26979 46613,26982 46610,26982 46611,26980 46615,26982 46616,26985 46616,26986 46617,26987 46615,30987 46617,30987 46622,30986 46626,30988 46629,30989 46627,17671 29285,17673 26285,17677 26286,17678 26285,17681 26289,15681 26292,15685 26297,10685 26297,10689 26301,10689 26297,10693 26300,10695 26301,10691 26297,10696 26299,10696 26304,10692 26306,10688 26301,10690 26302,10690 26307,10686 26305,10684 26309,10686 26312,10691 26313,10688 26318,10683 26320,10684 26325,10683 26328,14683 26328,14680 21328,14681 21331,14683 21335,14680 21333,14677 21333,14682 25333,14684 25334,14689 25338,14693 25338,14698 25341,14696 25342,18696 25343,20696 25345,20699 25349,20702 25346,20703 25351,20703 25351,20704 25351,20704 25354,20700 26354,20705 26352,20706 26351,20706 26351,20703 26354,20708 26354,20712 26355,20712 26352,20717 26349,20717 26346,20722 26351,20727 26353,20729 26348,20734 26353,24734 26349,24729 26349,24729 26352,24725 26349,24725 26353,24726 26353,24729 26355,24729 26357,24732 26359,24735 26362,24735 26364,24730 26364,24730 26363,24734 26365,24739 26368,24739 26364,24739 26366,24739 26367,24734 26370,24735 26365,24732 26367,24732 26369,24729 26372,24728 26370,24726 26365,24728 26368,24731 26370,24734 26375,24738 26378,24733 26378,24733 26381,24729 26381,13496 17147,13491 17152,13495 17148,13496 17146,13498 17141,13498 17145,13501 17147,13502 17149,13502 17153,13505 17149,13505 17152,13500 17149,13496 20149,13492 20150,13497 20155,8497 20151,8501 20153,8502 20156,8506 20159,8503 20159,12503 19159,12503 19159,12505 19164,12500 19159,12500 19164,12500 15164,12503 15169,12508 15168,12511 15170,12514 15170,12510 15169,12512 15172,12512 15172,12515 15172,12519 15175,12522 15176,12525 15180,12528 15184,23912 53663,23915 53661,28915 53666,28914 53667,28918 53664,28921 53667,28922 53667,28924 53670,28925 53674,28926 53674,28927 53672,28922 53676,28924 53677,28927 53678,28932 56678,28934 56682,28935 56683,28936 56688,28938 56688,28934 56691,28938 56693,28942 56690,28939 56694,28939 56698,28942 56695,28946 56698,28950 56701,28953 56706,28954 56706,28949 56708,28950 56708,28953 56709,28958 56706,28960 56709,28965 56707,28965 56707,28965 56705,28963 56709,28966 59709,28969 59710,28973 59711,28977 59715,28977 59717,28982 59719,28981 59715,28985 59718,28986 59718,33986 59721,35986 59723,35990 59723,35990 61723,35993 61726,35995 61728,35998 61724,36000 61721,36004 61723,36002 61718,36007 61718,36010 61719,36010 61721,36010 61721,36010 61721,36015 61721,36018 61716,36022 61717,36024 61718,36025 61723,36029 61722,36031 61726,36035 61722,36040 62722,36042 62722,36044 62722,36049 62724,36051 62720,36053 62723,36052 62719,36055 62717,36056 62712,36059 62714,36058 67714,36059 67716,40059 67716,40063 67719,40067 67722,40069 67726,40065 67724,40067 67721,40067 67722,40071 67721,40075 67726,37075 67730,37076 67733,37076 67736,37072 67741,37072 67741,37072 67744,37076 67744,37079 67745,37081 67750,37082 67750,37082 67753,37082 67753,37083 67752,37081 67753,37084 67753,37087 67757,37087 67758,37083 67753,37084 67758,37084 67761,37088 67759,37091 67762,37088 67762,37090 67767,37090 72767,37090 72771,37085 72771,37089 72774,38089 71774,38090 71771,38086 71771,38086 71774,38086 71777,38089 71782,38089 71782,38087 71780,38092 71782,38087 71785,38083 71783,38081 71781,38078 71781,38078 71783,38076 71786,38075 71787,38078 71783,38079 71781,38081 71781,41081 71783,41081 71778,41082 71778,41085 71783,41085 71783,41088 71785,41083 71789,41083 71794,41088 71796,41088 71796,41092 71798,41095 71794,41095 71789,41098 71790,41093 71790,41091 71795,41092 71796,41087 71798,41084 71796,41086 71797,41084 71799,41084 71795,41086 71798,41085 71799,41089 71803,41085 71804,41083 71802,41083 71803,41079 71803,41081 71808,41081 71809,41083 71810,41083 71809,41085 71810,41082 71814,41087 71817,41089 71818,41086 71813,41083 71813,39083 71816,39083 71814,39085 71814,39083 71814,39086 71818,39087 71820,39087 71824,39091 71826,39096 71829,39098 74829,39102 74830,39107 74833,39110 74836,39115 74835,39115 74836,39115 74838,39115 74835,39119 74838,39117 74840,39121 74840,39125 74843,39121 74848,39122 77848,39122 77844,39123 77848,39126 77851,39131 77855,39136 77857,39132 77857,39135 78857,39135 78859,39136 78864,39133 78865,39135 78866,39139 79866,39142 79870,39147 79872,39146 79872,39150 79876,39150 78876,39154 78879,39154 75879,39154 75881,39158 75881,39157 75884,39160 75884,39155 75884,39160 75889,39156 75891,39158 75888,39163 75891,39163 75894,39166 75891,39166 75895,39167 75900,39170 75901,39170 75906,35170 75907,35171 75911,35176 75906,35172 75908,35173 75908,35178 75908,35175 75909,35170 75908,35170 75903,35168 75904,35173 75906,35178 75903,35179 75904,35179 75908,35182 75905,35184 71905,35188 71902,35185 71904,35186 71907,35187 71908,35189 71903,35191 71905,35195 71900,35197 71904,35198 71909,35200 71907,35199 71903,35201 71900,40201 71896,25028 55790,25029 55785,28029 55789,28031 55790,28032 55790,28037 55794,28042 55793,28043 55798,28046 55803,30046 55803,30051 55806,30050 55810,30049 55810,30049 55812,30049 55816,30054 55820,2545 16129,2540 16133,2542 16137,2542 16139,2544 16138,2545 16139,7545 16136,7546 16139,7541 16142,7542 16142,7543 20142,7547 20143,11547 20143,11550 20139,11555 20139,11556 20137,11552 20142,11555 24142,11556 24145,11559 24140,11563 24143,11567 24139,16567 24136,16567 24139,16572 24142,16573 24147,14573 24143,14574 24147,14570 24145,14573 24150,14569 24150,14570 24145,14573 24149,14575 24150,14575 24154,14579 24149,14579 24153,14576 24157,14576 24152,14571 24149,14571 24152,14575 24150,14572 24151,15572 24153,15575 24149,15577 24154,15582 24151,15582 24153,15586 24156,15587 24152,15588 24157,15590 24162,15590 24166,15590 24166,20590 24166,17590 24169,17595 24171,17597 24172,17599 24172,17595 24174,17599 24178,17599 24181,18599 24184,18594 24187,18597 24187,18593 24189,18597 24192,18601 24192,18599 24197,18599 24197,18603 24200,18605 24204,18600 24205,18605 24201,18605 24197,18610 24202,18608 24205,18611 24204,18613 24208,18617 24203,22617 24205,22619 29205,22622 31205,22622 31209,22623 31214,22624 31212,22627 31214,22623 31214,22626 31215,22629 31214,22633 31218,22631 31221,22630 31223,22632 31227,21937 44551,21935 44555,21939 44551,21934 44553,21936 44554,21933 44556,21935 44552,21935 44553,21939 44548,21939 44551,21939 44551,21938 44555,21938 44558,21938 44559,21941 44559,21945 44558,19945 44562,19942 44560,19943 44561,19939 44565,19940 44561,19939 44556,19935 44557,9770 19466,9773 19471,9775 19471,9770 19471,9770 19468,9770 19467,9772 19466,9772 19468,9774 19469,9775 19472,12775 19470,12773 19466,12773 19467,12773 19464,12773 19466,12776 19461,12779 19461,12779 19465,12780 19465,12782 19460,12781 19458,12776 19461,12776 19461,12777 19463,12778 19466,12776 19466,12780 19463,12780 19466,12785 19468,12789 19473,12788 19477,12793 19475,12798 19480,12802 19482,12803 24482,12802 24484,16802 24486,16806 28486,16808 28486,16812 28490,16812 28494,16815 28498,16816 28498,16818 28502,16818 28504,16819 28509,19819 28513,19819 28510,19821 28515,19816 28510,19811 28510,19811 28511,19809 28511,19810 28510,19813 28515,22813 28510,22818 28514,22818 28515,22815 28516,22818 28514,22819 28514)',')'))); + +#1 Test update with diff mbr. +start transaction; +update t1 set a=st_geomfromtext(concat('multilinestring(','(-4287 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-768 -136,-771 2864,-772 2860,-777 2862,-775 2858,-775 2863,-770 2866,-765 2871,-761 2874,-759 2878,-759 2883,-759 2886,-758 2886,-758 2886,-755 2890,-752 2890,-751 2890,1249 2890,1250 2892,1251 2892,1251 2892,1256 2897,1259 2894,1256 2899,1253 2904,1256 2904,1257 2906,1252 2910,1253 2910,1256 2912,1255 2913,1260 2911,1256 2913,1255 2918,1257 2921,1259 2925,1262 2922,1263 2923,1266 2926,1268 2929,1269 2932,1273 2937,1277 2942,1282 2942,1284 2939,1287 2935,1290 2935,1293 2938,1296 2940,1299 2942,1302 2947,1307 2952,1311 2956,1312 2958,1307 2956,1311 2955,1307 2956,1307 2960,1307 2962,1311 2965,1315 2967,1314 2968,1319 2969,1322 2973,1324 2978,1323 2977,1327 2982,1330 7982,1332 7985,1332 7986,1332 7988,1328 7991,1328 7991,1328 7991,1253 2910,1249 2908,1251 2908,1253 2913,1253 2909,1256 2914,1255 2916,1259 2919,1261 2923,1262 2923,1266 2925,1270 2930,1270 2932,1267 2929,1269 2929,1269 2931,1269 2926,1265 1926,1270 1926,1274 1926,1274 1929,1269 1929,1270 1931,1272 1935,1269 1935,1273 1938,1278 1938,1278 1938,1280 1943,1275 1948,1276 1951,1279 1948,1280 1952,1281 1952,1286 1954,1290 1958,1290 1963,1294 1964,1298 1962,1298 1958,1302 1963,1302 1967,1307 -2033,1311 -2030,1307 -2030,1310 -2025,1314 -2020,1317 -1020,1321 -1016,1321 -1018,1321 -1015,1326 -1016,1324 -1016,1327 -1011,1326 -1007,1326 -1002,1326 -1004,1321 -1004,1321 -1003,1324 -1008,1328 -1007,1328 -1003,1333 -999,1336 -998,1339 -997,1337 -996,1340 -2996,1335 -3000,1339 -2996,1343 -2995,1346 -2990,1341 -2990,1345 -2991,1345 -2995,1269 2931,1269 2936,1271 2941,1275 2941,6275 2943,6274 2943,6279 2939,6274 2942,6274 2946,6275 2947,6276 2948,6280 2947,6282 2951,6287 2952,6287 2956,6289 2959,6294 4959,6298 4964,6302 4965,6300 6965,6305 6965,11305 6967,11305 6967,11310 6966,11310 6966,11314 6964,11318 6969,11318 6972,11323 6974,11328 6977,11329 6979,11333 6982,11337 6982,11334 6982,11337 6983,11341 6988,11345 6991,11349 6992,11353 6993,11353 6996,11353 7000,11356 7000,11353 6000,11350 6002,11353 6004,11354 6007,11356 6009,11358 6009,11359 6011,11363 6016,11365 6013,11369 6015,11372 6017,11377 6022,11381 6025,11382 9025,11385 9029,11390 9024,11389 9020,11391 9020,11389 9016,11394 12016,11397 12021,11400 12021,11405 12024,11405 8024,11403 8029,11403 8032,11401 8033,11406 8032,11402 8027,11406 8027,11410 8029,11408 8030,11408 8035,11413 8035,11418 8038,11423 8038,11428 8036,11428 8037,11433 8033,11435 8032,6435 8035,6439 8036,6440 8034,6441 8039,6442 8043,6446 8045,6451 12045,6454 12050,6454 12049,6455 12054,6457 12057,6458 12060,6461 13060,6466 13060,6467 13065,6467 13070,6465 13073,6465 13073,6466 13077,6463 16077,6465 16081,6468 16077,6471 16077,6475 16078,6475 16080,6470 16082,6465 16084,6465 16088,6470 16091,6471 16091,6469 16089,6473 16091,6477 16091,6477 16093,6480 16098,6476 16099,6478 16099,6481 16100,6486 16105,6486 16110,6488 16105,6485 16107,6487 16108,6484 16104,6485 16101,6488 16101,6489 16103,6493 16105,6493 16108,6490 16110,6487 16113,6492 16116,6495 16118,6499 16123,6497 16124,6496 16127,6498 16132,6497 16134,6499 16138,6503 16143,6502 16138,6500 16140,6502 16144,6502 16146,6503 16150,6498 16151,6500 16154,6495 16154,6494 16154,6499 16156,7499 16158,7504 16161,7507 16166,7503 16163,7505 16163,7508 16163,7511 16165,7514 16162,7517 16165,7519 16166,7524 16165,7527 16168,7529 16172,7534 16172,7534 16177,7539 16179,7537 16179,7538 16184,7538 16185,7538 16189,7540 16191,7540 16193,7541 16193,7545 16197,7550 16199,7554 16204,7558 16208,7559 16211,7560 16214,7564 16216,7563 16215,7558 16219,7558 16216,7555 16221,7559 16223,7559 16224,7559 16226,7561 16231,7558 16235,7553 16240,7552 16236,7557 16234,7552 16236,7554 16238,7557 16239,7552 16243,7553 16243,7555 16243,7555 14243,7558 14248,7559 14243,7559 14239,7561 14241,7561 14243,7561 14248,7562 14250,7566 14254,7570 14254,7575 14256,7575 14259,7576 14259,7579 14259,7583 14257,7583 14257,7583 14253,7584 14249,7579 14247,7576 14245,7579 14250,7577 14253,7582 14256,7582 14257,7578 14253,7575 14252,7577 14255,7578 14255,7578 14256,7581 14257,7584 14252,7588 14252,7592 14249,7592 18249,7588 18253,7590 18255,7592 18259,7596 18254,7601 18255,7601 17255,7605 17256,7610 17258,7613 17261,7617 17262,7619 17266,7617 17267,7621 17268,7623 17272,7626 17272,7626 17277,7625 17282,7620 17281,7617 17284,7618 17287,7617 17283,7616 17281,7621 17279,7624 17281,7624 17282,7624 17279,7628 17279,7628 17280,7633 17284,7637 17280,7638 17280,7638 17281,7641 17282,7641 17282,7638 17283,7638 17284,7643 17280,7647 17281,7652 17285,7656 17285,7658 17288,7660 17290,7661 17292,7664 17297,7666 17302,7663 17304,7664 17300,7659 17303,7661 17303,7657 17307,7659 17307,8659 17310,8661 17313,8664 17314,8665 17313,8665 17309,8669 17313,8671 17316,8670 17320,8668 17320,3668 17323,3665 17324,3661 17329,3661 17331,1661 17332,1661 17333,1663 17338,1668 17333,1663 17333,1667 17331,1668 17331,1664 17334,1666 17337,1665 17337,6499 16138,6503 18138,10503 18142,10503 18142,10505 21142,10502 21144,10502 21142,10504 21141,10504 21139,10508 21140,10512 21141,10512 21143,10515 21144,10517 21147,10517 21143,10519 21143,10519 21146,10519 21142,10519 21142,10522 21141,10523 21141,10523 21145,10523 21149,10527 21153,10531 21154,10534 21158,10531 21158,10527 21160,10532 21165,10534 21165,10531 21165,10533 21162,10529 21163,10532 21160,10534 21163,10535 21161,10540 25161,10538 25164,10538 25166,10540 25171,10543 25171,10547 25175,10547 25175,10550 25178,10552 25182,10556 25177,10558 25181,10558 25183,10563 25187,10564 25183,10560 25188,10565 25188,10569 25191,10573 25195,10575 25199,7581 14257,7585 14257,7586 14257,7588 14254,7590 14255,7593 14256,7590 14260,7595 14263,7595 14259,7597 14256,7598 14261,7598 14258,7599 14261,7600 14261,7602 14258,7602 14258,7598 14259,7598 14264,7600 14267,7601 17267,7597 17268,7602 17273,7605 17276,7605 17276,7603 17279,7604 17279,7608 17278,7613 17282,7615 17285,7617 17288,2617 17288,2617 17289,2620 17289,2620 17285,-1380 17288,-1382 17287,-1384 17292,-1384 17294,-1380 17295,-1380 17297,-1380 17299,-1375 17303,-1372 17303,-1373 17298,-1368 13298,-1365 13301,-1366 13297,-1371 13295,-1371 13298,-1371 13298,-1375 13301,-1378 13302,-1378 13302,-1377 13302,-1374 13301,-1373 13306,-1370 13311,-1371 13307,-1366 13307,-1365 13309,11349 6992,11352 6992,11354 6997,11356 7002,11356 7007,11359 7010,11354 7005,9354 7009,9356 7011,9359 7016,9360 7014,9360 7015,9363 8015,9367 11015,9370 11012,9367 11012,9368 11016,9363 11017,9360 11018,9364 11021,9359 11016,11402 8027,11399 8029,11400 8033,11401 8034,11405 8029,11407 8027,11410 8029,12410 8033,12414 8035,12412 8040,12415 8040,12416 8045,12421 8042,12426 8037,12424 8042,12427 8042,12430 8044,12434 8046,12430 8048,12434 8045,9434 8045,9439 8043,9442 8043,9442 8045,9442 8040,9442 8035,9438 8038,9440 8039,9445 8036,9446 8039,9441 8043,12441 8047,12440 8048,12444 8052,12445 8057,12450 8053,12452 8053,12448 8054,12443 8058,12441 8063,12444 8067,12449 8067,12448 8071,12451 8076,12454 8073,17454 8073,17457 8074,17459 8079,17463 8079,17461 8080,17464 4080,17467 4085,17463 4085,17463 4088,17462 4090,17464 4095,17468 4094,17464 4097,17464 4093,17466 4088,17469 4092,17470 4094,17472 4089,17470 4090,17473 4089,17478 4094,17474 4091,17477 4095,17482 4100,17487 4103,17492 4101,17492 4104,17493 4101,17495 4106,17497 4106,17502 4111,17505 4111,17504 4113,17505 4115,17509 4119,17504 4123,17505 4127,17503 4131,17503 4126,17504 4126,17506 4129,17501 4132,17502 4133,17499 4133,17503 5133,17503 5135,17498 5134,21498 5134,21498 5131,21498 5133,21497 5138,21501 5140,21502 5138,21502 5141,21505 5136,21501 5139,21501 5141,21505 5146,21510 5151,21510 5155,21512 5156,21508 5159,21508 5163,21512 5167,21517 5169,21521 5173,21519 5172,21517 5172,21515 5172,21515 5173,21516 5172,21515 5169,21516 5170,21516 5170,21516 5168,21520 5172,21523 5172,21525 5174,21522 5176,21523 5180,21527 5176,21527 5177,21527 5178,21531 5183,21533 5181,21538 5176,21539 5179,21544 9179,21544 9184,21547 9186,21548 9184,21553 9188,21553 9193,21554 9195,21556 9200,21556 9201,21555 9201,21556 9205,21561 9205,21556 9202,21561 9203,22561 9204,22566 9204,22561 9208,22559 9210,22564 9207,22560 9205,22560 9208,22564 9210,22567 9214,22569 9218,22572 9222,22576 9218,23576 9222,24576 9220,24574 9224,24569 9228,24569 9228,6481 16100,6483 16101,6486 16104,6485 16108,8485 16110,8486 16115,8482 16110,8483 16115,8485 16110,8486 16106,8487 16103,8490 16106,8486 16107,8487 16104,8487 16104,8492 16108,8493 17108,8488 17108,8490 17110,8494 17114,8495 17113,8495 17117,8498 17117,8503 17122,8498 17124,8498 17128,8494 17129,8496 17134,8496 17134,8497 17135,8498 17135,8501 17135,8502 17132,8506 17132,8501 17130,8505 17131,21515 5169,21518 5164,21523 5160,21528 5162,21530 8162,21532 8164,21536 8165,21536 8168,21540 8169,21543 8165,25543 8169,25545 8173,25549 8169,29549 8174,29546 8177,29547 8172,29552 8177,29552 8180,29557 8180,29558 8175,34558 8180,34558 8176,34555 8179,34556 8181,7584 14249,7586 14250,7588 14252,7591 14256,7587 14257,7590 14257,7592 17257,7597 17261,7601 17265,7605 17268,7606 17273,7610 17268,7612 17270,7612 17271,7615 17266,7617 17266,7622 17270,7627 17272,7627 19272,7631 19277,7636 19279,7636 19280,7636 19285,7637 19287,7639 19290,7644 19295,7647 19291,7649 19296,7653 19296,7653 19291,7656 19292,7657 19292,7653 19292,7653 19297,7652 19297,7648 19299,7647 19303,7647 19304,7649 19307,7654 19309,7651 21309,7653 21309,7657 21313,7659 21309,7662 21310,7666 21314,7663 21314,7663 21317,7658 21317,7661 21321,7666 21323,7667 21328,7662 21333,7663 21328,7667 21332,7669 21334,7671 21330,7674 21326,7675 21331,7679 21336,7681 21338,7681 21342,7681 21342,7677 21345,7682 21346,3682 21348,3680 21350,3681 21351,3680 21349,3681 21349,3686 21350,8686 21355,8682 21354,8685 21350,8681 21345,8684 21350,8683 21353,8681 21356,8681 21358,8684 21361,8684 21364,8684 21367,8685 21363,8685 21365,8685 21362,8688 21358,8690 21359,8687 21364,8687 21364,8689 21361,8691 21356,8696 21353,8696 21352,8699 21352,8699 21357,8703 21358,8706 21353,8708 21358,17503 4126,17505 4129,20505 4133,20510 4133,20515 4128,21515 4129,21516 9129,21519 9131,21524 9134,21522 9135,21522 9138,21518 9137,21516 9138,21516 9138,21515 12138,21516 12142,21518 12146,21513 12144,21517 12149,21521 12144,21521 12148,21523 12151,21527 12148,21527 12143,21528 12148,21528 12145,21533 12149,21534 12152,21537 12155,21532 7155,21536 7153,21540 7157,21536 7154,21540 7154,21539 7157,21539 7160,21542 7160,21547 7164,21551 7168,21554 9168,21556 9168,21556 9169,21559 9166,21561 9169,21565 9171,21568 9176,21565 9181,21567 9180,23567 9178,23570 9181,23575 9181,23571 9181,20571 9176,20574 9179,20569 9182,20569 9184,20570 9189,20565 9191,20562 9195,20559 9196,20559 9201,20563 9197,20564 9193,20565 9197,20565 9200,20565 9200,20563 9201,20559 9205,20564 13205,20560 13207,20560 13212,20555 13213,20558 13217,20554 13217,20558 13219,20559 13222,20561 13223,20561 13226,20561 13231,20562 13232,20567 13235,20564 13239,20560 13239,20560 13236,20560 13236,20560 13237,20564 13241,24564 13241,28564 13242,28564 13240,28561 13237,28561 13240,28562 13243,28563 13243,28560 13248,28559 13248,28559 9248,28562 9245,28564 9241,28567 9245,28568 9240,28568 9245,28571 9247,28571 9248,28574 9253,28572 9256,28576 9257,28577 9257,28574 9257,10564 25183,10566 25188,10567 25190,10568 25186,10569 25187,10570 25188,10573 25185,10568 25185,10570 25187,10573 25191,10573 25193,10578 25193,10578 25198,10581 25202,10582 25206,10578 25206,10579 25211,10580 25206,10582 25208,12426 8037,12427 8042,12432 8047,12437 8047,12435 8051,12435 9051,12432 9054,12433 9056,12435 9061,12438 9062,12435 9062,12438 9067,12434 9071,12431 9075,12436 11075,12436 11075,12441 11080,12445 11085,12449 11089,12445 11091,12442 11091,12442 11093,12442 11093,12443 11098,12439 11098,12440 11099,7440 11104,7442 11107,7446 11110,7446 11114,7451 6114,7452 6110,11452 6105,11452 6104,11454 6103,11459 6106,11462 6107,13462 6107,13458 6104,12458 9104,17458 9109,17458 9110,17460 9113,17465 12113,17468 12112,17468 12114,17466 12111,17470 12116,17469 12119,17472 12123,17470 12118,17474 12118,17476 12120,13476 12121,13480 17121,13480 17125,13484 17123,13489 17122,13489 17125,13487 17127,13487 17132,13486 17131,13491 17136,13491 17139,13495 17144,13496 17147,13496 21147,13498 21149,13498 21154,16498 21159,16503 21162,16504 26162,16509 26160,16509 26163,16509 26162,16514 26159,16518 26163,16522 26158,16518 30158,16516 30161,16516 30164,16517 30169,16520 30167,16525 30168,16528 30170,17528 30170,17532 30175,17533 30177,17533 30182,17536 30186,17537 30189,17540 30193,20540 30193,20541 30196,20541 30197,20542 30196,20544 30195,20548 30200,20553 30199,20557 30201,20561 30206,20565 30210,20566 30209,20568 30214,20568 30217,20563 30217,20563 30218,20565 30222,20567 30222,20572 30225,20567 29225,20570 29225,20570 29230,20573 29231,20571 29230,20569 29232,20570 29236,17504 4123,17505 4127,17508 5127,17505 5131,17505 5135,17509 5140,17508 5142,17510 5139,17515 5141,17517 5144,17522 5144,17524 5146,17529 5147,17529 5152,17533 8152,17533 8150,17537 8153,17532 8158,17533 11158,17536 11163,17540 16163,17540 16165,17542 16168,17542 16171,17542 16171,17547 16167,17548 16170,17550 16170,17545 16175,17549 16178,17549 16179,17549 16179,20549 16181,20551 16186,20549 15186,20550 15186,20547 15188,20550 15184,20546 15186,20545 15191,20548 15190,20552 15193,20557 15195,20552 15196,20557 15193,20562 15196,20562 15199,20567 15202,20563 15207,20564 15207,20564 15209,20568 15209,20571 13209,20573 13209,20576 13211,20577 13216,20574 14216,20570 14215,20568 17215,20568 17216,20570 17218,20575 17218,20580 16218,20583 16215,20586 16217,20581 16220,20582 16224,20585 16224,20588 16229,20590 16231,20592 16235,20595 16232,20595 16234,20598 16238,20603 16240,20607 16236,20608 16236,20608 16239,20611 21239,20613 21244,20614 21246,20612 21244,20612 21242,20615 21239,20616 21241,20621 21242,17621 21244,17626 21245,17629 21244,15629 21239,15632 21240,15636 21245,15637 21247,15639 21244,15637 21245,15642 21245,15647 21244,15646 21248,15650 21252,15653 21247,15651 21250,15649 21250,15645 21250,19645 21253,19648 21256,19647 21253,19643 21249,19646 21249,19648 21245,19650 21242,19647 21240,19652 21240,14652 21240,14657 21243,14659 21244,14664 21241,14659 21239,14654 21240,14651 21244,14647 21246,14647 21249,14650 21247,14651 21252,14651 21255,14649 21258,14652 21262,14655 21262,14652 21260,14653 21255,14653 21255,14653 21257,14656 21258,14651 21258,14653 21261,14654 21263,14654 21264,14659 21267,14660 21263,14664 21264,14666 26264,14661 26266,14661 26263,14661 26264,14666 26265,14667 26265,14665 26263,14669 26263,14667 26263,14669 26261,14667 26263,14671 26261,14671 26263,12671 26264,12672 26266,12677 26269,17677 26269,17673 26271,17676 26271,17676 26273,17681 26278,17685 26278,21536 8168,21539 8171,21543 8169,21538 8170,21541 8170,21544 8171,21548 8166,21548 8168,21552 8171,21555 8173,21558 8168,21557 8168,21562 8163,21559 8168,21559 8172,21564 8177,21569 8175,21568 8175,21573 8178,21575 8180,21570 8183,21570 8186,21566 8184,21569 8185,21569 8187,25569 8190,25571 8193,25575 8193,25576 8194,25576 13194,25580 13194,25584 13196,25589 13197,25592 13200,25595 13205,25592 17205,25593 17209,25594 17213,27594 17209,27592 17213,27590 17212,27592 17217,27592 17220,27596 17224,27599 17227,27603 17232,27603 17227,27605 17229,28605 17230,28607 17234,28609 17230,28610 17231,28610 17236,28611 17238,28613 17241,28614 17241,28615 17243,28616 18243,28618 18246,28618 18246,28622 18246,28627 18246,28632 18245,27632 18245,27634 18245,27633 18244,27638 18245,-1366 13297,-1365 13299,-1362 13303,-1362 13300,-1361 13304,-1366 13308,-1368 13304,-1368 13306,-1367 13309,-1363 13313,-1358 13313,-1353 13318,-1351 13319,-1347 13323,-1343 13318,-1343 13322,-1340 13317,-1337 13318,-1337 13322,-1337 13324,-1335 13327,-1339 13328,-339 13328,-334 13333,-331 13336,-327 13338,-326 13340,-326 13342,-321 13340,-318 13343,-317 11343,-312 11345,-307 11349,-311 11353,-314 11350,-311 11353,-313 11349,-308 11352,-313 11347,-308 11351,-306 9351,-306 9351,-306 9351,-301 9355,-301 9356,-299 9359,-297 9355,-297 9354,-296 9359,-294 9364,-290 9360,-294 9355,-289 9357,-291 9353,-286 9355,-4286 9351,-4283 9347,-4281 9344,-4281 9344,-4280 9342,-4280 9342,-4280 9339,-4277 9335,-4274 9333,-4274 9335,-4269 9336,-4265 9339,-4260 9340,-4256 9339,-4251 9336,-4251 9339,-4249 9344,-4254 9344,-4255 9348,-4253 7348,-4251 7352,-4247 7354,-4243 7357,-4242 7357,-4240 7362,-4240 7367,-4235 7371,-3235 7371,-3230 7376,-3225 7375,-3221 7372,-3223 7369,-3223 7371,-3223 7369,-3225 7364,-3220 7364,-3218 11364,-3218 11368,-3215 11369,-3210 11372,-3210 11369,-3208 11373,-3207 11377,-3207 11381,-3209 11384,-3209 11383,-1209 11379,-1211 11383,-1209 11383,-1205 11379,-1200 11384,-1197 11379,-1195 11375,-1197 11376,-1192 11377,-1192 11379,-1192 11384,-1188 11382,-1186 11382,-1181 11384,-1180 11388,-1176 11389,-1171 11388,-1171 11393,-1169 11393,-1164 11398,-1162 11393,-1158 11392,-1155 11395,-1155 11397,-155 16397,-156 16401,-156 16406,-158 16409,-158 16412,-158 16414,-160 16415,-158 20415,2842 20411,2847 20413,2848 20417,2848 20417,2848 20412,2850 20407,2850 20403,2846 20408,2847 20406,2849 20406,2854 20402,2858 20403,2863 23403,2858 23402,2855 23405,2858 23400,2857 23400,2852 26400,2849 26404,2850 26406,2855 26410,2859 26415,2863 26411,2866 26411,2866 26411,2866 26412,2868 26415,2868 26419,2868 26423,2873 26424,2876 26425,14656 21258,14661 21260,14664 21262,14664 22262,14662 22267,14662 22268,14662 22268,14658 22273,14660 22278,14658 22277,14659 22278,14660 22283,14661 22281,14661 22285,14661 22288,14664 22290,14659 22295,14662 22298,14663 22301,14667 22301,14668 22301,14673 22303,14678 22306,14681 22302,14686 22299,14686 22301,14683 22304,14686 22305,14687 22301,14689 25301,14684 25301,14684 25299,14685 25300,14685 25301,14685 24301,14688 24301,14693 24303,14693 24298,14693 24298,14688 24299,14689 24297,14690 24299,14690 24302,14690 24302,14686 24303,14686 24306,14688 24302,8492 16108,8494 16113,8498 16116,8495 16116,8496 16116,8499 16116,8504 20116,8508 20119,8508 20119,8507 20119,8509 20123,8509 20127,8512 20128,8514 20130,8519 20135,8522 20136,8522 20136,8524 20138,8524 20141,8528 20142,8526 20145,8530 20141,8530 20145,8532 20149,8531 20151,8536 20155,8535 20154,8539 20154,8539 20149,8539 20149,8543 20146,8540 25146,8538 23146,8540 23149,8540 23149,8545 23151,8546 23152,8551 23152,8555 23152,8559 23153,8561 23153,10561 18153,10561 18153,12561 18158,12564 18159,12566 18163,12567 18165,12564 18165,12568 20165,12570 20170,12575 20173,12579 20177,12576 20177,12579 20176,12584 20176,12583 20181,12585 20182,12583 20186,12582 20187,12585 20192,12582 20194,12584 20198,12586 20198,12581 20201,12582 20204,12581 20206,13581 20209,13586 20211,13586 20216,13589 20217,13589 20213,13586 20215,13588 20213,13592 20215,13596 20216,13596 20221,13600 20221,13598 20224,13595 20221,13598 20226,13602 20229,15602 20232,15606 20232,15611 20232,15610 20232,15613 20235,15617 20239,15612 20234,15612 20233,15615 20237,15617 20233,15619 20234,15619 20229,15623 25229,15624 25229,20624 25228,20628 25229,20631 25234,20630 25239,20634 25241,20632 25244,20636 25240,20634 25237,20639 25236,20634 25241,7590 14257,7592 14260,7592 14262,7592 14265,7595 14266,7600 14263,7600 14268,7604 14270,7609 14274,7611 14275,7615 14275,7620 14277,7620 14276,7625 14277,7625 14277,7628 14281,7628 14286,7630 14284,7630 14284,8543 20146,8542 20148,8546 20150,8550 20152,8550 20153,8550 20158,8545 20156,8545 20157,8550 20157,8550 20155,8550 20157,8553 20161,8557 20161,8557 20165,8560 20161,8563 20159,8568 20154,8570 20158,8573 20161,8573 20166,8577 20168,8580 20171,8584 20173,8585 20175,8580 20180,8582 20183,8582 20188,8582 20188,8585 20193,8588 20198,8589 20199,8591 20197,8594 20198,8596 20196,8592 23196,8597 25196,8601 25199,8601 25203,8604 25202,8604 25202,8599 25205,8601 25210,8601 25206,8603 25206,8606 25206,8605 25211,8609 25211,8613 25208,8614 25205,8619 25208,8619 25210,8621 25214,8619 29214,8615 29218,8616 29219,8617 29217,8622 29222,11622 29225,11624 29229,11623 29230,9623 29225,9621 29224,9625 29227,9628 29227,9624 29232,9626 29237,9631 29241,9634 29245,9635 29248,9638 29253,9643 29258,9646 29258,9647 29255,9648 29253,9650 29258,9648 29262,9647 29262,9642 29267,9646 29267,14646 29269,14650 29274,14655 29279,14654 29277,14655 29275,14653 29276,14655 29273,14656 29269,14653 29272,14656 29272,14656 29274,14660 29276,14663 29276,14660 29278,14659 29281,14659 29276,14661 29272,14656 29273,14657 29274,14652 29270,14654 29274,14657 29270,14659 29272,14655 29275,14657 29270,14659 32270,14660 32270,14662 32273,14665 32277,12665 32279,12670 32279,12670 32277,12670 32274,12672 32277,12677 32282,12682 32285,12678 32289,12674 32291,12677 32287,12679 32287,12683 32292,12685 32292,12680 32289,12682 32294,12683 32299,12687 32298,12692 32300,12695 32305,12699 32310,12703 32311,12704 32312,21515 5172,21516 5175,21518 5175,21513 5177,21516 5182,21520 5186,21525 5185,21529 5185,21528 5186,21530 5181,21533 5178,21537 5183,21537 5183,26537 5183,26534 5183,26539 5183,26542 5178,26542 5176,26544 5176,26546 5177,26548 5175,26549 5178,26548 5181,26548 5184,26553 10184,26557 10179,26559 10175,26563 10171,26563 10173,26564 10170,26568 10169,26572 10171,26577 10171,26581 10169,26577 10173,26573 10169,26575 10171,26578 12171,26576 12175,26576 12180,26581 12183,26577 12183,26580 12184,26582 12181,26582 12182,26583 12182,26588 12186,26590 12191,26593 12193,26593 12198,26598 12198,26602 12193,26602 12193,26604 12195,26607 12195,26611 12196,26615 12196,26615 12200,21534 12152,21534 12152,21537 12147,21540 12147,21545 12150,21545 12145,21548 12150,21549 12152,21544 12152,21544 12150,21547 12153,21552 12152,21553 12157,20553 12161,20553 12156,20556 12152,15556 12157,15559 12160,15557 12163,15561 12163,15564 12166,15565 12165,15561 12161,15559 12163,15559 12168,-4274 9335,-4274 9339,-4276 9341,-4276 9344,-4273 9341,-4271 9341,-4266 9342,-4266 9339,-4269 9335,-4265 9339,-4263 9342,-4259 9345,-4254 9345,-4250 9340,-4250 9335,-4245 9338,-4242 9341,-4240 9341,-3240 9346,-3242 9349,-3241 9351,-3239 9352,-3238 9355,-3237 9358,-3233 9356,-3232 9358,-3233 9358,-3228 9363,-3228 9364,-3223 9369,-3226 9369,-3224 9373,-3222 9378,-3217 9379,-3215 9384,-3215 9384,-3215 9389,-3215 9394,-3215 9390,-3210 9385,-210 9386,-207 9389,-208 9389,1328 -1007,1328 -1010,1329 -1013,1334 -1018,1339 -1013,1344 -1013,1346 -1013,1350 -1015,1351 -2015,1353 -2016,1353 -2011,1350 -2016,1350 -2013,1354 -2010,1356 -2005,1359 -2007,1364 -2005,1363 -2005,1365 -2000,1362 -1999,1365 -1998,1366 -1998,1362 -1994,1364 -1989,1365 -1988,3668 17323,3665 17327,3663 17332,3666 17337,3667 17341,11433 8033,11434 8035,11434 8031,11437 8031,11437 8032,11441 8033,11439 8033,11442 8036,11445 8037,11448 8038,11452 8043,11454 8047,11456 8047,11459 8044,11454 8049,11457 8051,11460 8052,11463 8055,11458 8057,1346 -2990,1346 -2986,1350 -2982,1347 -2986,1352 -2983,1352 -5983,1355 -5979,1358 -5974,1354 -5970,1356 -5965,1360 -5964,1362 -5960,1364 -5960,1364 -5960,1369 -5960,1364 -5963,1369 -5960,1374 -5957,1378 -5952,1380 -5951,1384 -5951,1380 -5948,1380 -5944,1384 -5942,1387 -5945,5387 -5949,5391 -5950,5395 -5950,5395 -5951,5395 -5949,5400 -5954,5404 -5953,5402 -5958,7402 -5958,7403 -5963,7404 -5960,7404 -5959,11363 6016,11359 6018,11364 6023,11365 6024,11365 6023,11369 6025,11373 6020,11378 6020,11377 6024,11379 6029,11383 6033,11384 6034,11388 6037,11389 6041,11394 6043,11396 6048,11401 6048,11402 6050,11406 6052,11404 6054,11409 6058,11413 6059,11415 6060,11411 6065,11416 6068,11420 6073,11415 6076,11416 6078,11419 6083,11423 6085,11428 6086,11430 6086,11432 11086,11437 11091,11432 11088,11429 11086,11432 11086,11427 11090,11427 11095,11429 11092,11427 11092,11431 11087,11433 11088,11436 11090,11436 11091,11436 11096,11439 11099,11440 11099,11440 11095,11445 11097,15445 11102,15445 11102,15441 11099,15445 11100,15445 11102,15443 11106,15445 11110,15450 11107,15453 11110,15457 11110,15457 11115,15459 11119,15460 11117,15465 11117,15465 11120,15464 11123,15463 11124,15460 11124,15460 16124,15458 16127,15462 16122,15466 16126,15462 16131,15465 16133,15463 16135,15462 16136,15462 16140,15466 16142,15468 16147,15468 16147,15471 16149,15471 16147,15475 12147,15477 12150,15480 12147,15484 12144,15487 12145,15490 12147,15492 12149,15494 12150,15496 12153,15497 12155,15499 12150,15499 12147,15500 12143,15504 12146,15499 12150,15500 12150,15500 12152,15505 12153,15506 12157,15506 12157,15508 12158,15512 12159,19512 12162,19513 12159,19511 12163,19512 12162,19517 12167,19520 12167,19522 12168,19525 12171,19525 12172,19525 12175,19526 12172,19526 12172,19526 17172,19527 17175,19528 17176,19529 17179,19529 17178,19533 17181,19532 17183,19532 17179,19537 17174,19539 19174,19538 19171,19542 19172,19547 15172,7641 17282,7646 17284,7649 17284,7652 17284,7654 17285,7650 17289,7647 17291,7645 17296,7649 17297,7650 17294,7653 17294,7653 17298,7656 17303,7658 17308,7662 17313,7666 17308,7664 17313,7669 17313,7669 17313,7669 17316,7667 17313,7667 18313,7663 18314,7661 18316,7662 18317,7657 18318,7662 18315,7658 18316,7661 18318,7661 18322,7664 18317,7667 18315,7671 18315,7675 18315,7674 18315,7670 18316,11670 18316,16670 18321,16673 18321,16678 18322,16682 18327,16683 18332,16686 18334,16690 18334,16688 18336,16685 23336,16688 23337,14688 23338,14692 23337,14694 23338,14697 23339,14697 23342,14698 23342,14698 23343,14698 23348,14693 23350,14694 23347,14695 23347,14696 26347,14692 23347,14692 23347,14693 23350,14693 23351,14698 23355,18698 23352,18698 23356,18702 23360,18701 23362,18699 23363,18701 23363,18702 23366,18699 23366,18694 23370,18699 23370,18702 23374,18707 23378,18706 23380,18706 23381,22706 23384,22706 23385,22705 23389,22706 23384,22706 23384,22706 23384,22710 23380,22713 23381,22718 23386,22716 23390,22712 23390,22708 23390,22705 23392,22704 23397,25704 23402,25704 23402,25706 23404,25710 23404,22710 18404,22707 18402,22704 18403,22704 18406,22704 18411,22704 18411,22704 18410,22709 18410,22709 18407,22704 18405,22703 18405,22707 18405,20707 18409,20709 18412,20710 18411,20712 18414,20712 18414,20712 18412,20712 18416,20714 18412,20717 18417,20720 18419,20715 18421,20718 18422,20723 18425,20723 18430,20723 18434,20725 18435,20724 18437,20724 18433,20726 18433,20731 18437,20732 18437,20730 18438,20735 18440,20739 18438,20734 18438,20739 18437,20739 18437,20744 18439,20749 18438,20750 18434,20753 18436,20754 18431,20754 18432,20758 18433,20762 18438,20764 18443,20766 18447,20766 18450,20767 18451,20768 18451,20769 18448,20770 18452,20774 18456,20777 18458,20781 18462,20782 18463,20785 18468,17785 21468,17784 21473,17782 21477,17787 21481,17783 21482,17785 26482,17788 26482,17788 26482,17791 26479,17794 26483,17790 26483,22790 26483,22790 26479,20583 16215,20585 16220,20589 16225,20590 20225,20592 20222,23592 20227,22592 20229,22597 20233,22600 20233,22603 20237,22604 20240,22599 20241,22595 18241,22595 18242,22598 18243,22602 18247,22605 18252,22601 18256,22598 18255,22600 18257,22604 18258,22609 18261,22608 18261,22606 18264,22608 18261,22605 18265,24605 18262,24608 18263,24611 18267,24608 18267,24613 18271,24615 18272,24610 18273,24614 18272,24619 18276,24621 18281,24625 18276,24622 18280,24622 18282,24621 18279,24622 18277,24627 18279,24631 18284,24634 18289,24634 18292,24634 18294,24636 18299,24639 18294,24644 18295,24647 18298,24647 18301,24643 18303,24643 18306,24639 18311,24636 18315,24641 18317,24645 18317,24648 18319,24649 18323,24649 18328,24652 18330,24652 18329,24652 18327,24655 18322,24656 18319,24658 18319,24661 18320,24664 18316,24660 18320,24657 18318,24657 18320,24659 18325,24660 18327,24661 18323,24656 18327,24652 18323,24654 23323,24658 28323,24660 28318,24665 28319,24666 28323,24668 28325,24668 28328,24672 28325,24667 28328,24668 28325,24670 28326,24665 28330,24668 28334,24672 28336,24672 28336,24668 28339,24672 28340,24672 28338,24674 28341,24675 28346,24675 28351,24677 28356,24679 28357,24681 28356,24677 28360,24680 28355,24684 28354,24688 28356,24688 28351,24690 28356,24686 28361,24691 28364,24692 28364,24692 28365,24692 31365,24693 31370,21693 31370,21692 35370,21688 35372,21692 35377,21695 35377,21697 35377,21698 35379,21698 35374,21701 35375,21701 35379,21703 35380,21708 35383,21706 36383,21709 36383,16709 36383,16710 36386,16715 36382,16711 36386,16706 36388,16706 39388,16706 39383,16706 39379,16711 39379,16711 39376,16714 39381,16716 39386,16717 39389,16717 39391,16720 39391,16723 39387,17723 39392,17726 43392,17722 43396,19722 43399,19724 43394,19727 43391,19725 43395,19723 43398,19726 46398,19730 46400,19730 46403,19730 46405,19734 46407,19734 46410,19733 46407,19728 46412,19726 46416,19726 50416,19723 50417,19723 50416,19718 50420,19719 50424,19718 50429,19713 50433,19715 50437,19718 50442,19719 50442,19718 50444,19719 50439,19721 50443,18721 50444,18721 50446,18721 50450,18726 50451,18727 50453,18722 50451,18727 50456,18729 50455,18731 50458,18726 50458,18728 50458,18730 50463,18730 50460,18729 50456,18727 50460,18730 50462,18734 50457,18739 50455,18744 50457,18744 50461,18748 50461,18748 50466,18745 50468,18749 50463,18750 50468,18754 50472,18754 50472,18759 50472,18760 50468,18763 50473,18760 50477,18762 50477,18766 50481,18769 50483,18769 50481,18772 50482,18776 50482,18779 50486,18779 50489,18781 50489,18783 50494,18786 50496,18786 50495,18786 50498,18784 50499,18784 50499,21784 50504,21788 50502,21785 49502,21790 49501,21790 49498,21795 49494,21800 49494,21801 49495,21801 49500,21797 49505,21799 46505,21802 46508,21798 46513,21799 46516,21802 46516,21805 46519,21800 46524,21805 46527,21804 46528,21801 47528,21801 47531,21804 47533,21804 47529,21804 47534,21809 47538,21808 47538,21812 47540,21812 47535,21813 47532,21810 52532,21812 52535,21817 52536,21820 52536,21824 52541,21828 52545,19828 52545,19829 52547,19829 52551,19833 52555,19831 52552,19826 52557,17826 52562,17827 52567,17830 52568,17830 52572,17830 52575,17830 52575,17830 52574,17831 52578,17827 52582,17827 55582,17829 55583,17834 55583,17839 56583,17843 56579,17846 56580,17850 56584,17848 56588,17853 56592,17851 56596,17856 56596,17856 56600,17851 56601,17856 56601,17856 56604,20856 56604,20861 56601,20865 56596,20865 56597,20866 56597,20869 56602,20871 56603,20874 56607,20871 56605,20872 56610,20874 56613,20874 56612,20876 56617,20876 56622,20876 56626,20876 56621,20879 56623,20880 56627,20883 56624,20880 56629,20880 56629,20881 56630,20884 56630,20884 56635,20881 56636,20879 56637,20876 56632,20879 56629,20881 56633,20878 56634,20879 56634,20879 56637,20879 56642,20884 56638,20879 56639,20884 56634,20885 56631,20886 56633,20889 56632,20894 56627,20894 56631,20894 56631,20898 56632,20903 56632,20908 56630,20907 56633,20907 56636,20903 56641,20904 56641,20904 56637,20900 56639,20905 56642,20910 56643,20905 56648,20910 56653,20915 56654,20910 56659,20910 56663,20910 56664,20912 56664,20912 56666,20917 56670,20922 56670,20918 56673,20920 56675,20920 56677,20920 56677,20921 56681,20926 56677,20931 56677,20934 56680,20934 56684,20936 56689,20938 56689,20938 56690,20940 56695,20935 56696,20939 56697,20939 56699,20940 56696,20941 56694,20940 56698,20945 56700,20947 56702,20947 56707,20950 56712,20954 56713,20950 56710,20952 56706,20955 56704,20957 56708,20953 56709,20951 56714,20953 56716,20957 56720,20957 56722,20959 56725,20958 56727,20959 56728,20962 56731,20963 56736,20965 56741,20965 56740,20967 56742,20969 56737,20969 56742,20974 56744,20979 56744,20978 56745,20974 56748,20970 57748,20972 57749,20974 57751,20971 57754,20972 57752,20977 57755,20981 57758,20981 57763,20981 57765,20984 57765,20982 57767,20982 57763,20987 55763,20989 55767,20991 55770,20987 55771,20988 55774,20988 55777,20991 55775,21991 55778,21996 55778,22000 55783,22001 55783,22005 55783,22010 55785,17010 55781,17011 55783,20011 55778,20015 55783,20018 55786,20015 55791,20015 55795,20019 55792,20019 55792,20021 55792,20022 55788,20023 55783,20028 55786,25028 55790,26028 55795,26029 55790,26030 57790,26033 57794,26032 57798,26036 57802,26039 57805,26042 57805,26046 57810,26050 57811,26054 57815,26054 57819,26050 57819,26055 57820,26060 57822,26063 57823,26066 57826,26068 57824,26073 57826,26077 57831,26082 57831,26078 57836,26082 57839,26084 57839,26086 57834,26082 57834,26083 57835,26082 57840,26083 57844,26086 57843,26083 57846,22083 57849,22084 57847,22089 57847,22094 57848,22094 57853,22094 57850,22095 59850,22095 59855,22098 59858,22099 63858,22099 63861,21099 63861,21104 63862,19104 63862,19108 63864,19109 63864,19112 63868,19113 63873,19117 63876,19121 63875,19116 63877,19115 63882,19117 63878,19122 63883,19125 63884,19129 63879,19133 63879,19135 63874,19139 63871,19136 63871,19136 63873,19140 63868,19140 63873,19144 63877,20144 63879,20144 63876,20146 63880,20148 63878,20149 63877,20149 63879,20150 63882,20155 63886,20155 64886,20159 64884,20160 64884,20161 64887,20160 64887,20164 64887,12677 32287,12677 32292,12679 32297,12678 32298,12682 32294,12687 32294,12682 32296,12682 32296,12683 32298,12683 32301,12682 32305,12685 32309,12686 32311,12686 32316,12691 32311,12692 32316,12692 32312,12697 32314,12700 32319,12705 32322,12706 32327,12704 32329,12705 32332,12702 32334,12707 32338,12703 28338,12704 28340,12700 28345,12702 28345,12702 28345,12701 28348,12704 28349,12704 28345,12709 28342,12709 28343,12714 28347,12718 28351,12723 28352,12727 28353,12730 28355,12728 28353,12733 25353,15733 25353,15736 25355,15740 25356,15745 25356,15747 25351,15752 25353,15752 25354,15754 25354,15754 25353,15759 25352,15763 25352,15764 25357,15759 25352,15761 27352,15760 27354,15760 27354,15760 27355,15762 27357,15762 27354,15759 27354,15759 27354,15763 27358,15767 32358,15764 32360,15769 32360,15767 32360,15765 37360,15770 37362,15772 37363,15774 37367,15779 37363,15780 37359,15779 37363,15782 37366,15780 37370,15775 37370,15778 37365,15781 37360,15785 37356,15785 39356,15789 39358,15789 39360,15794 39365,15794 39370,15797 39375,15797 39380,15799 39379,15804 39376,15805 39377,15807 39380,15808 39385,15809 39386,15807 39386,15809 39386,15810 39389,15815 39392,15820 39392,15819 39396,15820 39398,15820 39395,15825 39400,15823 39405,15824 39403,15829 39403,15834 39406,15836 39411,15831 39415,15832 39415,15833 39415,15838 39417,15839 39419,15839 39414,15842 39413,15846 39418,15843 39420,15842 39423,15839 39420,15840 39422,15839 39420,15842 39415,15846 39410,17846 39415,17845 39411,17847 39416,17849 39420,18849 39424,18847 41424,18852 41424,18849 41429,18849 41432,18848 43432,18852 43433,18855 43433,18859 43435,18855 47435,18858 47440,18861 47435,18866 47435,18866 47439,18869 47442,18871 47445,18873 47445,21873 47445,21876 47444,21873 47449,21878 47451,21883 47456,21880 47454,21880 47454,21880 47457,21883 47459,21887 47464,21890 47465,21893 47467,21894 47464,16894 47462,16899 47457,16898 47455,16893 47456,16897 47458,16896 47455,16898 47459,16900 47464,16903 47469,16908 47471,16903 47474,16901 47473,16906 47473,16901 47478,16904 47479,16906 47475,16906 47474,16907 47475,16906 47479,16901 47482,16901 47482,16905 47486,16908 47487,16911 47490,16915 47490,16917 47492,16921 47497,16926 47498,19525 12175,19525 12176,19521 12177,19522 12181,19525 14181,19521 14181,19519 14185,19519 14189,19524 14192,19527 14192,19529 14196,19534 14200,19535 14205,19538 14208,19540 14204,19545 14207,19545 14207,19547 14210,19550 15210,19554 15210,19555 15210,19555 15213,19560 15213,19562 15212,19564 15213,19569 15210,19570 15214,19573 15214,23573 15217,28573 17217,28574 17220,28574 17219,28574 17224,28576 17229,28577 17233,28577 17236,28579 17236,28580 17238,28584 17243,28588 17248,28587 17252,28587 17252,28582 17255,29582 17259,29577 17260,29578 17262,29583 17257,29585 17257,29586 17260,29586 17265,29590 17267,29593 17267,29594 17267,29599 21267,29603 21271,29603 21272,29605 21274,29607 21276,29612 26276,29613 26279,29616 26280,29621 26277,29621 26277,29623 26282,29626 26285,29631 26289,29628 26289,29632 26290,29637 26294,29642 26290,29646 26292,29648 26291,29649 26288,29653 26293,29655 26292,29655 26293,12702 28345,12703 28348,12698 27348,12699 27349,12698 27354,12700 27354,12700 27355,12703 27360,12703 27361,12700 27362,12704 27367,12701 27371,12706 27376,12710 27372,12710 27373,12710 27368,12715 27370,12713 27374,12716 27378,12716 27380,12714 27379,12719 27374,12718 27373,12722 27376,12724 27376,12729 27371,12733 27372,12733 27377,12735 27373,12735 27374,12737 27378,12739 27379,12742 27381,12739 27381,12739 27376,12743 27378,12743 27379,9743 27375,9744 32375,9745 32377,9746 32374,9746 32372,9750 37372,9752 37375,9754 37375,9751 37377,9755 37379,9759 37379,9763 37383,9766 37385,9767 37382,9768 37383,9765 40383,9770 40378,9770 40382,9775 40384,9777 40386,9782 40391,9778 40395,9773 40395,9778 40397,9779 40399,9781 40402,9781 40398,9781 40393,9780 40396,9782 40399,9785 40398,9786 40395,9789 40390,9793 40387,9798 40390,9803 40394,9805 40397,9800 40400,9795 40402,9800 40403,9802 40407,9807 40410,9806 40407,9807 40403,9812 40400,9814 40403,9819 40403,9819 40400,9822 40405,9824 40405,9822 40408,9827 40410,9831 40413,9831 40413,9826 40412,9827 40417,9832 40418,9832 40416,9833 41416,9833 41421,9834 41416,9838 41416,9838 41421,9840 41422,9844 41424,9839 41424,9843 41427,9845 41430,9849 41430,9849 41425,9852 41423,9855 41426,9858 41429,9860 41434,9862 41436,9866 41441,9868 41436,9869 41434,9871 41434,9875 41437,9877 41437,9881 41438,9883 41438,9879 41438,20903 56641,20898 56644,20903 56647,20901 56649,20903 56645,20905 56650,20909 53650,20905 53650,20910 53652,20907 53655,20912 53652,20916 53656,20917 53656,20912 53661,20912 53660,23912 53663,23912 53663,23909 53663,23912 53665,23913 53669,23911 53669,23915 53669,23912 53671,23916 53670,23917 53675,23922 53680,23927 53683,23930 53688,23935 53689,23935 53691,23935 53691,23931 53692,23931 53694,27931 53693,27933 53695,27937 53695,27942 53699,27947 53701,27949 53703,27949 53704,27949 53708,27952 55708,27953 55710,27949 55710,27953 55710,27958 55713,27959 55718,27960 55722,27962 55725,27965 55730,27965 55732,27968 55730,27969 55733,27972 55733,27975 55734,27975 55734,27979 55737,27981 55733,27982 55732,32982 55732,32979 55734,32978 55737,32978 55738,32974 55742,32977 55746,32981 55750,32985 55746,32983 55747,32987 55750,32992 55751,32995 55751,32998 55751,32998 55753,32998 55753,32993 55753,32995 55757,32999 55758,33002 55760,33002 55761,33005 55766,33005 55767,33000 55764,32997 55767,32997 55771,33001 55773,32998 55777,33001 55777,33005 55776,33004 55776,33009 55781,33014 55786,33014 55790,33015 55790,33016 55790,33015 55786,34015 55787,34019 55790,34019 55791,34021 55793,34017 55793,34019 55796,34016 55797,34020 55793,34020 55796,34023 55792,34023 54792,34025 54797,34028 54800,34029 54799,34029 54795,34034 54796,34036 54797,34041 54792,36041 54797,36045 54801,36048 54803,36051 54804,36053 54806,11439 8033,11441 8038,11441 8039,11441 8040,11445 8035,11441 8035,11442 8039,11438 8035,11438 8035,11443 8039,16443 8038,16444 8038,14444 8040,14448 12040,14451 12036,14455 12038,14455 12041,14456 12046,14459 12049,14457 12051,14458 12046,14458 12047,14459 12042,14464 12042,14465 12047,14470 12050,14471 12055,14471 12058,14468 12060,14473 10060,14477 7060,14477 7062,14474 7062,14474 7067,16474 7063,16471 7065,16474 7067,16471 7072,16471 7068,16476 7066,16481 7069,16482 7072,16487 7072,16487 7077,16488 7077,16493 7076,16493 7079,16497 7079,16500 7079,16502 7079,16502 7079,16505 7075,16504 7080,16501 7077,16497 7079,16501 7081,16497 7080,16496 7084,16500 7086,16495 7087,16498 7084,16501 7087,16496 7087,16496 7083,17496 7083,17500 7083,17505 7088,9860 41434,9864 41435,9864 41435,9865 42435,9860 42435,9862 42436,9863 42434,9863 42430,9862 40430,9863 40427,9863 40428,20608 16239,20605 16242,20610 16237,20614 16237,20615 16242,20611 16242,20612 16245,20609 16244,20604 16242,22604 16237,22608 16239,22607 16240,22610 16244,22610 16241,22615 16246,22616 16246,22614 16251,22616 16251,22617 16249,22619 16254,22623 16252,22618 16255,22618 16259,22620 16262,22615 16262,22618 16263,22622 16263,22626 16265,22629 16266,22628 16269,22633 16267,22636 16268,22636 16267,22641 16269,22646 16269,22645 16271,22646 16273,22650 16271,22655 16274,22655 16277,22658 16279,22660 16280,22658 16280,22661 20280,22663 20282,19663 20285,19658 20288,19658 20292,19661 20295,19666 20298,19670 20301,19671 20301,19675 20301,19677 20306,19675 20311,19674 20315,19678 20318,19677 20314,19680 20315,19682 20310,19684 20314,19683 20316,19687 20315,19688 20316,19688 20319,19693 20319,19698 20322,19702 20323,19698 20323,19702 21323,19707 22323,8508 20119,8509 20119,8510 20116,8515 20113,8518 20115,8519 20116,8516 20120,8520 20119,8520 20118,8525 20123,8527 20125,8527 20125,8528 20123,8530 20126,8533 20123,8535 20127,8532 20132,8534 20136,8538 20138,8542 20141,8537 20143,8537 20145,8542 20145,8547 21145,8548 24145,8552 24145,8557 24150,8560 24147,8562 24151,8566 24156,8569 24160,8574 24156,8579 24159,8584 24164,8587 24164,8585 24167,8588 24170,8591 24171,8589 24172,8590 24176,8595 24177,8593 24174,8596 24178,8600 24179,8603 24175,8602 24178,9602 24182,9605 24177,9609 24178,9610 24182,9608 24178,9603 24183,9606 24188,9608 24193,9609 24195,9614 24196,9616 24197,9618 24201,9618 24205,9613 24209,9612 24214,9608 24211,9603 24216,9607 24221,9611 24221,9615 24217,9617 24217,9618 24221,9623 24225,9623 24225,9626 24225,9630 24225,9630 24222,9626 24223,9626 22223,9627 22223,9626 22226,9629 22228,9632 22228,9636 22225,9638 22226,9639 22227,9634 22230,9634 22231,9639 22235,9639 22240,9641 22242,9642 22246,9647 22249,9652 22250,9655 22255,9651 22256,9652 22253,9652 22256,9652 22261,9655 22262,9657 22257,9659 22261,9659 22261,9657 22264,9657 22261,9656 22264,9661 22267,9662 22270,12662 22270,12665 22265,12669 22270,12669 22270,12673 22269,11356 7007,11361 7010,11361 7010,11357 7014,11356 7015,12356 7020,12357 7015,12361 7017,11361 7018,11364 7017,11359 7018,11355 7017,11354 7020,11357 7020,11361 7023,11364 12023,11368 12028,11368 12029,11371 12030,11372 12034,14372 12034,14372 12039,14372 12042,14376 12045,14381 12047,14379 12047,14381 12049,14384 12054,14385 12051,14388 12056,14384 12056,14384 12061,14381 12058,14386 12062,14386 12059,14391 12059,14396 12060,14397 12060,14398 12056,14403 12051,14408 12052,14410 12057,14409 12057,14414 12053,14414 12051,14415 12051,14420 12049,14423 12048,14427 12044,14427 12044,14425 10044,14421 10049,14424 11049,14426 11054,14427 11059,14429 11064,14433 11064,14434 11064,14437 11065,14441 11068,14444 11072,14445 11076,13445 12076,13445 12077,13445 12081,13444 14081,13446 14081,13446 14078,13449 14083,13447 14084,13450 14085,13452 14090,13453 14087,13456 14084,13457 14083,13461 14081,13463 14082,12463 14082,12463 14087,12463 14087,12464 14087,8464 14087,8465 14083,8465 14080,8467 14085,8472 14085,8473 14085,8476 14090,8474 14094,8475 14094,8480 14094,8481 14099,8476 14103,8476 14107,8480 14111,8483 14116,8488 14120,8488 14118,8488 14120,8483 14115,8481 14118,8485 17118,8485 17114,8488 17110,8488 17115,8484 21115,8484 21118,8486 21120,8487 21120,8482 21115,8487 21118,8490 21122,8494 21127,8497 21132,8497 21133,8500 23133,8503 23135,8507 23135,8508 23132,8511 23129,8512 23125,8517 23126,8522 23125,8527 23129,8522 23131,8527 23132,8530 23132,8531 23128,8533 23132,8533 23134,8533 23139,8533 23144,8536 23143,8537 23146,8533 23146,8533 23149,8537 23152,8533 23157,8530 23158,8532 23162,8536 23162,8536 23165,8536 23165,8540 23170,8544 23171,8548 23169,8547 23173,8551 23176,8552 23173,8548 23169,8553 23173,8553 23170,8548 23173,8549 23173,8546 22173,8547 22174,8551 22177,8550 22179,8552 22183,8553 22183,8553 22184,8557 22185,6557 22185,13598 20226,13601 20227,13604 20229,13608 20233,13610 20234,13605 20237,17605 20237,17610 20242,17605 20242,17602 20241,14602 20241,18602 20236,18606 20239,18606 20244,18608 20241,16608 20245,16611 20240,16615 20239,16610 20234,16611 20232,16613 20235,16608 20235,16608 20239,16613 20242,19734 46410,19734 46410,19738 46414,19737 46414,19735 46415,19737 46418,19741 46421,19744 46423,23912 53671,23908 53673,27908 53675,27913 54675,27917 58675,27921 58677,27925 58678,27930 58678,27926 58683,27930 58686,27931 58691,27931 58695,27934 58700,27936 58699,27936 58699,27941 58695,27942 58695,27947 58699,27952 58699,27954 58703,27957 58704,27962 58708,27958 58706,27959 58703,27962 58703,27967 58706,27967 58701,27965 58701,27962 58702,27966 58703,27971 58704,27976 58706,27980 58709,27980 58712,27975 58711,27971 58716,27971 58713,27968 58712,27968 58712,27971 58711,27968 58713,27968 58710,27969 58708,27972 58706,27976 58711,27978 58716,27979 58716,27983 58718,27978 58718,27981 58719,27981 58723,27986 58725,27986 58728,27986 58731,27991 58734,27996 58738,27993 58736,27995 58732,31995 58736,31990 58735,31993 58738,31990 58734,31995 58729,31996 58729,31999 58731,31994 58726,31996 58731,12463 14087,12465 14090,12465 14093,12463 14090,12463 14095,12461 14092,12464 14093,12459 14091,12459 14091,12459 14091,12459 14096,12461 14100,12458 14103,12457 14101,12452 14101,12452 14106,12453 14103,12453 17103,12455 17104,15455 17104,15460 17108,15463 17104,15458 17108,18458 17108,21458 17105,21461 17105,21464 17110,21467 17115,21464 17120,21464 17120,21468 17123,21470 17126,21465 21126,21461 21126,21464 21128,21464 21132,21468 21137,21471 21142,21475 21146,21471 21146,21476 21147,21473 21151,21475 25151,21475 25152,21477 25153,21481 29153,21479 29158,21484 29162,21488 29162,21490 29165,21487 29170,21488 29167,21489 29162,21493 29164,21493 29169,21498 29169,21499 29164,21495 29167,21498 29167,23498 29170,23498 29169,23503 29172,23505 29171,23510 29167,23514 29164,28514 29168,28514 29172,28514 29174,28512 29172,28513 29176,28518 29179,28518 29182,28521 29177,28521 29179,28519 29179,28517 29179,28515 29177,28519 29177,28519 29179,28524 29184,28527 29183,28527 29185,28523 29187,28523 29184,28525 29189,28522 29189,28518 29186,28523 29189,28519 29189,28521 29189,28526 29193,28529 29193,28529 29196,28534 29200,28538 32200,28537 30200,28539 30202,33539 30207,33539 30209,33534 30205,33535 30208,33536 30208,33538 30213,33538 30214,33542 30218,33545 30221,33548 30222,33551 30225,33552 30227,33554 30231,33555 30233,33560 30228,33563 30225,33564 30229,33565 34229,33565 34234,33570 34231,33572 34235,33572 34239,33573 34243,33578 34239,33579 34243,33574 34247,33573 34247,33576 34243,33573 37243,33573 37246,33568 37241,33568 37244,33573 37239,33578 33239,33574 33241,33574 33239,33578 38239,33583 38242,33587 38242,33590 38242,33594 38243,33596 38247,33599 38248,33599 38252,33595 38252,33598 38257,33603 38258,33604 37258,33609 37255,33604 37257,33607 37262,33607 37265,33609 37266,33614 37271,33614 37276,33616 37278,33616 38278,33616 38282,33621 38284,33621 38288,33621 38285,33618 38289,33616 38291,33616 38294,33611 38296,33608 38301,33610 38305,33610 38300,33612 38303,33617 38308,33621 38309,33625 38305,33630 38307,33634 42307,33636 42310,33638 42314,33634 42312,33631 42315,33631 42315,27931 58691,27936 58693,27937 58695,27940 58700,27943 58703,27943 58708,27946 58709,27950 58711,27950 58714,29950 58718,29951 58723,29947 58728,29947 58732,29950 58727,29950 58727,29955 58730,29960 58734,29964 58732,29961 58734,29963 58735,29968 58739,29968 58741,34968 58739,34971 58739,34972 58739,34973 58740,34968 58741,34970 58743,34974 58745,34977 58749,34979 58744,39979 58745,39979 58742,39978 58744,39982 58748,39983 58744,39983 58744,39979 58747,39979 58752,39983 58757,39982 58759,39985 58759,39986 58759,39983 60759,39986 60762,39990 60767,39994 60770,39994 60770,39997 60770,39997 60770,40000 60775,40002 60775,40003 60779,40007 60784,40008 60787,40011 60788,40015 60788,40016 60790,40016 60792,40021 60788,40025 60788,40030 60788,40026 60786,40027 60786,40030 60787,40032 60792,40037 60795,40032 60800,40032 60799,40035 64799,40035 64801,40036 64806,40041 64803,40037 64805,40038 64801,40040 64804,40036 64804,40040 64805,40045 64810,40048 64811,40051 64813,40051 64817,13491 17139,13486 18139,13489 18139,13494 20139,13492 20138,13494 20141,13499 20145,13499 20145,13499 20148,13503 20149,13500 20149,13505 20151,9367 11012,12367 11015,12369 11011,12364 11012,12364 11015,12359 11011,12354 11011,12354 11014,12359 11017,12356 11015,12361 11015,12361 12015,12365 12016,12369 8016,12374 8021,12373 8025,11373 8021,11368 8021,11373 8024,12700 27362,13700 27363,13705 27364,13710 27368,13705 27369,13707 27367,13707 27371,13709 27375,13712 27377,13714 27373,13712 27376,13714 27379,13713 27382,13718 27384,13713 27380,13713 27385,13711 27386,13715 27386,13719 27386,13719 27389,15719 27394,15724 27398,15729 27400,15734 27401,15734 27401,15729 27396,15732 27396,15735 27397,15734 27399,15733 27400,15729 27400,15734 27400,15729 27405,15734 27405,15739 27408,15739 27408,15741 27412,15743 27416,15743 27416,15740 27416,16740 31416,16743 31421,16738 31425,16742 31430,16742 31435,16743 31439,16743 31444,16741 31449,16746 31450,16747 31455,16742 31459,16738 31463,16742 31466,16742 31471,16742 31471,16742 31471,16744 31475,16749 36475,16749 36473,16753 36478,16757 36474,16761 36477,16759 36478,16761 36481,16760 36484,16761 36485,16760 36486,16765 36491,16766 36494,16771 36498,16769 36501,16771 37501,16774 37504,16769 37507,16769 37507,16772 37503,16772 37508,16774 37511,16774 37510,18774 37515,18777 37515,18772 37512,18775 37514,18777 37517,18778 37519,18779 37517,18776 37517,18778 37520,18780 37520,18785 37522,18785 37526,18787 37523,18786 37520,18790 38520,18789 38520,18792 38522,18797 38527,18802 38529,20802 38534,20804 38535,20803 38540,20802 38539,20806 38543,20811 38546,20814 38543,20812 38541,20808 38546,20811 38544,20815 38539,20816 38535,20818 38531,20815 38531,20814 38528,20814 38533,20817 38536,20816 38539,20821 38540,20818 38542,20820 38540,20816 38540,20821 38540,20823 38541,20828 38541,20831 38546,20836 38547,20836 38548,20835 38553,20835 37553,20835 37558,20837 37558,20842 37560,20846 37561,20846 37564,20849 37569,20854 37564,20854 37565,20850 37566,20852 38566,20856 39566,20861 39566,20863 39562,20867 39566,20872 39567,20868 39566,20873 39568,20876 39573,20876 39573,20880 39575,20884 39579,20885 39580,20889 39580,20891 39584,20888 38584,20889 38587,20890 38592,20891 37592,20892 37597,20894 35597,20895 35600,20897 35603,20899 35605,16678 18322,16681 18323,16682 18323,16686 18328,16690 18326,16693 18331,11693 18335,11692 18332,11695 18332,11698 18335,11703 18335,11703 18336,11702 18339,11698 18344,11702 18349,11705 18353,11704 18357,11707 18360,11707 18359,11711 18358,11716 18358,11713 18358,11712 18360,11710 18360,11710 18362,11710 18362,11710 18367,11710 18366,11707 18366,11706 18365,11710 18369,11715 18371,11714 18374,11712 18376,11711 18377,11711 18379,11712 18384,11715 18385,11711 18385,11714 18387,11717 18389,11718 18386,11721 19386,11723 19391,11722 19395,11722 19396,11723 19398,11726 19398,11729 19403,11733 19408,11736 19407,11733 19411,6733 19407,6735 19402,6738 19402,6743 19406,6746 19406,6742 19411,6742 19414,6742 19414,6746 19419,6746 19423,6746 19418,6749 19418,6747 19418,6748 19420,6748 19424,6748 19424,6751 19427,6751 19429,6752 19429,9752 19426,9754 19428,9759 19430,9756 19431,9751 19435,9753 19440,9757 19445,9755 19443,9757 19448,9757 19448,9759 19451,9763 19451,9766 19454,9766 19456,9770 19459,9770 19462,9770 19466,9766 19467,9771 19468,9772 19468,9769 19469,9768 19470,9770 19470,9774 19473,9778 19470,9781 19470,9786 19471,9789 19471,9789 19473,9792 19478,9795 19475,9800 19478,1256 2899,1260 -1101,1256 -1097,1255 -1093,1255 -1094,1259 -1089,1260 -89,2260 -84,2258 -84,2263 -88,2267 -89,2268 -91,2269 -86,2272 -86,2272 -82,2273 -77,2276 -79,2281 -81,2283 -79,2287 -75,2292 1925,2297 1930,2299 1930,2303 1932,2308 1937,2308 1936,2313 1937,2315 1934,2316 1935,2311 1936,2316 1937,2319 1938,2322 1940,2327 1940,2331 1940,2327 1943,2329 1945,2331 1950,2336 1950,2339 1954,2338 1954,7338 1954,7337 1958,7341 1960,7341 1964,8550 20152,8554 20152,8553 15152,8550 15152,8554 15154,8552 15149,8552 15153,8556 15151,8556 15148,8552 15152,8547 15149,8552 15154,8552 15155,8553 15156,8550 15156,8553 15160,8556 15164,8558 15163,8561 15163,8563 15167,8559 15169,8559 15166,8564 15167,8568 15171,8572 16171,8572 16173,8574 16170,8571 16174,8575 16174,8576 16174,8576 16174,8580 16178,8579 16183,8574 16184,8576 16184,7576 16186,7572 16181,7577 16181,7577 16185,7578 16190,7583 16185,7583 16185,7587 16185,12587 19185,12582 19188,12587 19193,12587 19195,10534 21158,10538 21162,10540 19162,10543 19158,10547 19158,10551 19160,10551 19158,10554 19158,10553 19157,10555 19157,10555 19154,10552 19156,10553 19161,10555 19166,10558 19165,10560 19165,10561 19165,10561 19165,10564 19166,10567 19164,10570 19162,10575 19165,10577 19164,10577 19168,10578 19168,10574 19171,10574 19172,10571 19175,10573 19178,6503 16143,6507 16146,6509 16142,6510 16142,6510 16143,6512 16143,6514 16146,6517 16148,6522 16143,6525 16143,6530 16143,6534 16146,6531 16144,8490 16106,8490 16106,8492 16109,8489 16110,8491 16106,8487 16109,8488 16104,8490 17104,8495 17108,8490 17109,8493 17108,8498 17111,8500 17111,8500 17109,8501 17113,8506 17118,8506 17118,8506 17123,4506 17125,4511 17123,4516 17126,4514 17125,4519 17124,4520 17126,4525 17129,4530 17124,4526 17124,4528 17124,4533 17127,4535 17127,4531 16127,4531 16124,4534 16124,4538 16125,2538 16130,2539 16131,2544 16133,2544 16129,2540 16129,2545 16129,2550 16126,7550 16126,7555 16128,7559 16124,7559 16129,7560 16132,7561 16128,7566 16132,9566 16136,9568 16136,9573 16141,9570 16144,9571 16146,9573 16150,9577 16153,9581 16148,9579 16153,9584 16157,9586 16160,9581 16162,9578 16165,10578 16162,10579 16163,10574 18163,10570 18164,10568 18164,10570 18169,10572 18170,10575 18170,10575 18175,10579 18176,10580 18176,10585 18176,10581 20176,10586 20178,10587 20178,10585 20179,10585 20177,10581 20178,10584 20183,10586 20187,10590 20187,10591 20190,10587 20188,10591 20187,10591 20192,10592 20191,10597 20195,10602 20194,10602 20195,10607 20197,10607 20198,13607 20201,13607 20200,13607 20204,13604 20204,13605 20209,13607 20209,13612 20214,13615 20218,13615 20218,13619 20220,13624 20224,13628 20219,18628 20216,18630 20213,18635 20213,18632 20211,18629 20211,18632 20215,18632 20216,18632 20217,18632 20217,18627 20214,18630 20209,18633 20212,18636 20212,18638 20217,18643 20222,22643 20219,22643 20219,22644 20219,22644 20214,22645 20216,22645 21216,22646 21220,22642 21224,22642 21221,22641 21224,22638 21229,22641 21232,22642 21235,22643 21238,22644 21236,22649 21237,22704 18411,22704 18412,22699 18412,22696 18416,22701 18412,22703 18416,22698 18416,22693 18418,22695 18422,22698 18422,22700 18426,22705 18427,22706 18427,22708 18432,22708 18432,22704 18431,22709 18427,22709 18432,22709 18436,22713 21436,22718 21438,22719 21437,22721 21440,22725 21443,22727 21445,22724 21450,22724 21451,22727 21453,22730 21453,22730 21458,22734 21460,22738 21464,20738 21464,20742 21465,22742 21465,22741 21464,22736 21464,22738 21464,22742 21460,22742 21460,22744 21458,22743 21458,22741 21455,22741 21460,22739 21456,22739 21458,22734 23458,22732 23458,22733 23463,22731 23467,22731 23469,22736 23472,22739 23472,22742 23471,22744 23471,24744 23466,24744 23468,24739 23471,24742 23474,24747 23478,24747 23481,24747 23483,24747 23486,24751 25486,24753 25489,24758 25493,24762 25497,24764 25499,24769 25496,24773 25498,24777 25499,24779 25503,24782 25500,24782 25498,24777 25498,24779 25495,24775 25495,24776 25495,24777 25495,24781 25500,24778 25503,24778 25499,24780 25500,24777 22500,24775 22505,24777 22505,24777 22501,24778 22502,24778 22505,24774 22509,24776 22509,24776 22509,24781 22509,24784 22511,24780 22513,24780 22514,24783 22515,24786 22520,24786 22520,24791 22518,24788 22517,24791 22522,24794 22525,24791 22524,24791 22528,24789 22530,24794 22530,24799 22525,24795 22524,24798 22520,24796 22516,24801 22511,24803 22516,24804 22521,24804 22526,24806 22524,24805 22524,24809 22529,24810 22531,24813 22536,24817 22536,24815 22535,24810 22530,24815 22530,24816 22530,24818 22531,24818 22531,24818 22533,24822 22533,24820 22530,24816 22529,24820 22532,24822 22533,24822 27533,24823 27536,24826 27540,24829 27541,24832 27546,24833 27549,24832 27553,24833 27552,24833 27551,24836 27551,24839 27554,24841 27554,24841 27556,24842 27559,24847 27557,24847 27562,24842 27566,24840 27564,24842 27568,24844 27563,25844 27565,25847 27569,25848 27564,25851 27561,25855 27559,25856 27556,25852 27556,25857 27561,25857 27564,25858 27564,25863 27567,25868 27567,25871 27564,25872 27565,25875 27570,25877 27573,25878 27575,25879 27574,25884 27579,25887 27577,25886 27579,25882 27582,25882 27578,25882 27582,25884 27578,25887 27583,25891 27584,25895 27582,25895 27582,25898 27583,25900 27580,11433 8033,11435 8037,11439 8040,11444 8044,11439 8048,11441 8045,11446 8044,11446 8039,11451 8038,11451 8043,11450 8046,11451 8046,11447 8049,11443 8052,11445 8057,11441 8058,11439 8060,11444 8056,11445 8053,11448 8053,11450 8049,11455 8044,11453 8042,11454 8044,11451 8049,11453 8049,11458 8052,11459 8055,11457 8053,11460 8053,11461 8055,11465 9055,11466 9056,12466 9058,12467 9054,12472 4054,12467 4056,12467 4059,12470 4058,12468 4060,14468 4064,14467 4063,14471 4060,14473 4062,14471 4067,14468 4072,14471 4076,14466 4077,14467 4074,14472 4075,14472 4080,14476 4085,14476 4090,14481 4090,14485 4091,14490 4095,14493 4095,14495 4100,14492 4100,14497 4102,14499 4100,14501 4101,14500 4106,14500 4107,14496 4108,14495 4110,14494 7110,33625 38305,38625 38310,38625 38315,38623 38318,38625 38317,38629 38318,38632 38313,38634 38313,38639 38314,38640 38317,38644 38320,38649 38321,38647 38317,38647 38322,38643 38324,38640 38319,38645 38319,38646 38319,38645 38316,38644 38318,38646 38319,38644 38324,38647 38328,38652 38325,38649 38328,38651 38332,40651 43332,40651 43335,40655 43335,40652 43339,40652 43339,40654 43336,40654 43337,40657 43333,40656 43335,40656 43338,40656 43343,40656 43341,40659 43346,45659 43348,45664 43350,45666 43346,45665 43351,45669 43355,45673 43355,45674 43359,50674 43360,50678 43363,50678 43364,50679 43367,50682 43371,50687 43374,50690 43374,50690 43377,50693 43377,50698 43382,50693 43386,50689 43386,50692 43390,50695 43392,50699 43392,50704 43397,50707 43395,50711 43391,50706 43393,50709 43393,50711 43395,50710 43397,50714 43394,50718 43394,50715 43394,50717 43399,50722 43403,50724 43407,50728 43407,50730 43408,47730 43403,47730 43404,47733 43408,47737 43409,47735 43414,47738 43416,47741 43416,47744 43421,47743 43422,47748 43424,47753 43419,47754 43420,47749 43419,52749 43423,52751 43421,52753 43421,52750 43426,52752 43428,52748 43430,52748 43426,52747 43431,52744 43431,52748 43435,52748 43435,52750 45435,52753 45440,52753 45440,52757 45442,52761 45447,52758 45447,52761 45447,52761 45452,52758 45454,52758 45455,52758 45456,52761 45460,52759 45458,52755 45463,52759 45464,52756 45461,52756 45462,52758 45467,52760 45470,52759 45469,52762 45473,52762 45474,15617 20233,15612 20238,15611 20242,15613 20237,15617 20238,15618 20239,15621 20236,15623 20240,15622 20240,15622 20245,15623 20244,15628 20242,15628 20247,15625 20246,15628 20250,15630 24250,15632 24251,15634 24253,15629 24252,15633 24250,15629 24250,15633 24248,15629 24248,15634 24248,15636 24253,15640 24253,15643 24257,15639 24254,15642 24257,15643 26257,15648 26255,15643 26256,15641 26258,15646 26262,15646 26263,15651 26263,15648 26267,15653 27267,15656 27270,15660 27272,15662 29272,15658 29276,15658 29277,15658 29272,15663 29274,15663 29274,17663 29274,17663 29279,17668 29283,17671 29285,17670 29287,17675 29289,17676 29293,17679 29296,17682 29297,17685 29299,17686 29300,17687 29305,17685 33305,17686 33310,17687 33310,17689 33306,17687 34306,17691 34304,17694 34306,17696 34306,17695 34309,17691 34314,17691 34311,17692 34306,17696 34310,17700 34310,17697 34312,17699 34316,17704 34318,17701 34318,17705 34322,17704 34321,17706 34319,17706 34319,17702 34316,17707 37316,17710 37318,19710 37313,19705 37313,19708 37308,19712 37310,19710 37312,19711 37307,19711 37307,19714 37310,19718 37312,19719 37309,19723 37312,19727 37315,19729 37317,19731 37322,19734 37323,19735 37324,19737 37322,19742 37326,19740 37331,19745 37335,19742 37335,19742 37340,19745 37341,19749 37341,19749 37342,19752 37347,19757 37347,19762 37345,19764 37341,19768 37345,19769 37350,19771 37355,19773 33355,19770 33360,19765 33364,19769 33364,19773 33365,22773 33364,22771 33360,22775 38360,22779 38364,22780 38369,22782 38371,22784 38371,22789 40371,22792 40375,22789 40375,22789 40377,22793 40376,23793 40378,23795 41378,23791 41378,23792 41378,23796 41382,23798 41383,22798 41386,22799 41390,22804 41390,22804 41391,22808 41391,22812 41393,22814 39393,22819 39393,22821 39395,22823 39397,22828 36397,22832 36392,22832 36393,22836 36396,22836 36401,22838 36402,19838 36403,19837 36408,19841 36408,19843 36409,19845 36404,19847 36405,19847 36408,19847 36411,19848 36413,19850 36415,19845 36419,19841 36417,19843 36419,19843 36419,19846 36424,19848 36425,19850 36425,19845 36425,19846 36425,19848 36430,19852 36430,19849 36435,19846 36440,19851 36440,19846 36438,19848 36439,19844 36442,19845 36446,19841 36448,19841 36449,19841 38449,19841 38452,19846 38455,19848 38458,19852 42458,19856 42462,19859 42463,19859 42465,19861 42462,19862 42463,19864 42463,19867 42467,19870 42470,19871 42468,21871 42467,26871 42464,26867 42466,26872 42463,26872 42464,26874 42463,26879 42466,26882 42466,26883 42471,26879 42476,26878 42477,27878 42479,27882 42479,27883 42480,27886 42483,27887 42487,27885 42484,27887 42483,27890 42484,27890 42485,22890 42486,22890 42489,22890 42491,22895 42494,22897 42498,22899 42502,22901 42502,22896 42503,22892 42498,22896 42498,22891 42502,22892 42505,22897 42507,22898 42511,22903 42515,22906 42510,22911 42513,17911 42508,17915 42512,17918 42509,17913 44509,17915 44514,17919 44510,17923 44514,17927 44510,17927 44513,17927 44517,17928 44521,21928 44517,21930 44516,21931 44513,21929 44513,21933 44517,21934 44519,21933 44520,21934 44520,21937 44520,21938 44520,21943 44520,21938 44523,21940 44527,21936 44532,21941 44536,21942 44541,21937 44545,21938 44545,21938 44545,21940 44543,21937 44538,21941 44543,21938 44547,21938 44547,21938 44547,21937 44551,21937 44551,21933 44556,21935 44554,21937 44558,21940 44562,21944 44564,21949 44561,21952 44566,21955 44568,21960 44569,21963 44571,21963 44571,21965 44574,25965 44579,25967 44584,25967 44584,25970 44588,22970 41588,22970 41586,22975 41585,22974 41589,22970 41593,22966 41598,22965 41598,22970 41598,22965 41601,22965 41604,22965 46604,22968 46604,27968 46602,27968 46602,25968 46601,25967 45601,25968 45602,25971 45607,25975 45610,25979 45614,25977 45612,25975 45609,26975 45609,26980 46609,26979 46613,26982 46610,26982 46611,26980 46615,26982 46616,26985 46616,26986 46617,26987 46615,30987 46617,30987 46622,30986 46626,30988 46629,30989 46627,17671 29285,17673 26285,17677 26286,17678 26285,17681 26289,15681 26292,15685 26297,10685 26297,10689 26301,10689 26297,10693 26300,10695 26301,10691 26297,10696 26299,10696 26304,10692 26306,10688 26301,10690 26302,10690 26307,10686 26305,10684 26309,10686 26312,10691 26313,10688 26318,10683 26320,10684 26325,10683 26328,14683 26328,14680 21328,14681 21331,14683 21335,14680 21333,14677 21333,14682 25333,14684 25334,14689 25338,14693 25338,14698 25341,14696 25342,18696 25343,20696 25345,20699 25349,20702 25346,20703 25351,20703 25351,20704 25351,20704 25354,20700 26354,20705 26352,20706 26351,20706 26351,20703 26354,20708 26354,20712 26355,20712 26352,20717 26349,20717 26346,20722 26351,20727 26353,20729 26348,20734 26353,24734 26349,24729 26349,24729 26352,24725 26349,24725 26353,24726 26353,24729 26355,24729 26357,24732 26359,24735 26362,24735 26364,24730 26364,24730 26363,24734 26365,24739 26368,24739 26364,24739 26366,24739 26367,24734 26370,24735 26365,24732 26367,24732 26369,24729 26372,24728 26370,24726 26365,24728 26368,24731 26370,24734 26375,24738 26378,24733 26378,24733 26381,24729 26381,13496 17147,13491 17152,13495 17148,13496 17146,13498 17141,13498 17145,13501 17147,13502 17149,13502 17153,13505 17149,13505 17152,13500 17149,13496 20149,13492 20150,13497 20155,8497 20151,8501 20153,8502 20156,8506 20159,8503 20159,12503 19159,12503 19159,12505 19164,12500 19159,12500 19164,12500 15164,12503 15169,12508 15168,12511 15170,12514 15170,12510 15169,12512 15172,12512 15172,12515 15172,12519 15175,12522 15176,12525 15180,12528 15184,23912 53663,23915 53661,28915 53666,28914 53667,28918 53664,28921 53667,28922 53667,28924 53670,28925 53674,28926 53674,28927 53672,28922 53676,28924 53677,28927 53678,28932 56678,28934 56682,28935 56683,28936 56688,28938 56688,28934 56691,28938 56693,28942 56690,28939 56694,28939 56698,28942 56695,28946 56698,28950 56701,28953 56706,28954 56706,28949 56708,28950 56708,28953 56709,28958 56706,28960 56709,28965 56707,28965 56707,28965 56705,28963 56709,28966 59709,28969 59710,28973 59711,28977 59715,28977 59717,28982 59719,28981 59715,28985 59718,28986 59718,33986 59721,35986 59723,35990 59723,35990 61723,35993 61726,35995 61728,35998 61724,36000 61721,36004 61723,36002 61718,36007 61718,36010 61719,36010 61721,36010 61721,36010 61721,36015 61721,36018 61716,36022 61717,36024 61718,36025 61723,36029 61722,36031 61726,36035 61722,36040 62722,36042 62722,36044 62722,36049 62724,36051 62720,36053 62723,36052 62719,36055 62717,36056 62712,36059 62714,36058 67714,36059 67716,40059 67716,40063 67719,40067 67722,40069 67726,40065 67724,40067 67721,40067 67722,40071 67721,40075 67726,37075 67730,37076 67733,37076 67736,37072 67741,37072 67741,37072 67744,37076 67744,37079 67745,37081 67750,37082 67750,37082 67753,37082 67753,37083 67752,37081 67753,37084 67753,37087 67757,37087 67758,37083 67753,37084 67758,37084 67761,37088 67759,37091 67762,37088 67762,37090 67767,37090 72767,37090 72771,37085 72771,37089 72774,38089 71774,38090 71771,38086 71771,38086 71774,38086 71777,38089 71782,38089 71782,38087 71780,38092 71782,38087 71785,38083 71783,38081 71781,38078 71781,38078 71783,38076 71786,38075 71787,38078 71783,38079 71781,38081 71781,41081 71783,41081 71778,41082 71778,41085 71783,41085 71783,41088 71785,41083 71789,41083 71794,41088 71796,41088 71796,41092 71798,41095 71794,41095 71789,41098 71790,41093 71790,41091 71795,41092 71796,41087 71798,41084 71796,41086 71797,41084 71799,41084 71795,41086 71798,41085 71799,41089 71803,41085 71804,41083 71802,41083 71803,41079 71803,41081 71808,41081 71809,41083 71810,41083 71809,41085 71810,41082 71814,41087 71817,41089 71818,41086 71813,41083 71813,39083 71816,39083 71814,39085 71814,39083 71814,39086 71818,39087 71820,39087 71824,39091 71826,39096 71829,39098 74829,39102 74830,39107 74833,39110 74836,39115 74835,39115 74836,39115 74838,39115 74835,39119 74838,39117 74840,39121 74840,39125 74843,39121 74848,39122 77848,39122 77844,39123 77848,39126 77851,39131 77855,39136 77857,39132 77857,39135 78857,39135 78859,39136 78864,39133 78865,39135 78866,39139 79866,39142 79870,39147 79872,39146 79872,39150 79876,39150 78876,39154 78879,39154 75879,39154 75881,39158 75881,39157 75884,39160 75884,39155 75884,39160 75889,39156 75891,39158 75888,39163 75891,39163 75894,39166 75891,39166 75895,39167 75900,39170 75901,39170 75906,35170 75907,35171 75911,35176 75906,35172 75908,35173 75908,35178 75908,35175 75909,35170 75908,35170 75903,35168 75904,35173 75906,35178 75903,35179 75904,35179 75908,35182 75905,35184 71905,35188 71902,35185 71904,35186 71907,35187 71908,35189 71903,35191 71905,35195 71900,35197 71904,35198 71909,35200 71907,35199 71903,35201 71900,40201 71896,25028 55790,25029 55785,28029 55789,28031 55790,28032 55790,28037 55794,28042 55793,28043 55798,28046 55803,30046 55803,30051 55806,30050 55810,30049 55810,30049 55812,30049 55816,30054 55820,2545 16129,2540 16133,2542 16137,2542 16139,2544 16138,2545 16139,7545 16136,7546 16139,7541 16142,7542 16142,7543 20142,7547 20143,11547 20143,11550 20139,11555 20139,11556 20137,11552 20142,11555 24142,11556 24145,11559 24140,11563 24143,11567 24139,16567 24136,16567 24139,16572 24142,16573 24147,14573 24143,14574 24147,14570 24145,14573 24150,14569 24150,14570 24145,14573 24149,14575 24150,14575 24154,14579 24149,14579 24153,14576 24157,14576 24152,14571 24149,14571 24152,14575 24150,14572 24151,15572 24153,15575 24149,15577 24154,15582 24151,15582 24153,15586 24156,15587 24152,15588 24157,15590 24162,15590 24166,15590 24166,20590 24166,17590 24169,17595 24171,17597 24172,17599 24172,17595 24174,17599 24178,17599 24181,18599 24184,18594 24187,18597 24187,18593 24189,18597 24192,18601 24192,18599 24197,18599 24197,18603 24200,18605 24204,18600 24205,18605 24201,18605 24197,18610 24202,18608 24205,18611 24204,18613 24208,18617 24203,22617 24205,22619 29205,22622 31205,22622 31209,22623 31214,22624 31212,22627 31214,22623 31214,22626 31215,22629 31214,22633 31218,22631 31221,22630 31223,22632 31227,21937 44551,21935 44555,21939 44551,21934 44553,21936 44554,21933 44556,21935 44552,21935 44553,21939 44548,21939 44551,21939 44551,21938 44555,21938 44558,21938 44559,21941 44559,21945 44558,19945 44562,19942 44560,19943 44561,19939 44565,19940 44561,19939 44556,19935 44557,9770 19466,9773 19471,9775 19471,9770 19471,9770 19468,9770 19467,9772 19466,9772 19468,9774 19469,9775 19472,12775 19470,12773 19466,12773 19467,12773 19464,12773 19466,12776 19461,12779 19461,12779 19465,12780 19465,12782 19460,12781 19458,12776 19461,12776 19461,12777 19463,12778 19466,12776 19466,12780 19463,12780 19466,12785 19468,12789 19473,12788 19477,12793 19475,12798 19480,12802 19482,12803 24482,12802 24484,16802 24486,16806 28486,16808 28486,16812 28490,16812 28494,16815 28498,16816 28498,16818 28502,16818 28504,16819 28509,19819 28513,19819 28510,19821 28515,19816 28510,19811 28510,19811 28511,19809 28511,19810 28510,19813 28515,22813 28510,22818 28514,22818 28515,22815 28516,22818 28514,22819 79878)',')')) where i = 1; +rollback; + +#1 Test update with same mbr, should do nothing. +start transaction; +update t1 set a=st_geomfromtext(concat('multilinestring(','(-4286 -5983,52762 -5983,52762 79876,-4286 79876,-4286 -5983)',',','(-768 -136,-771 2864,-772 2860,-777 2862,-775 2858,-775 2863,-770 2866,-765 2871,-761 2874,-759 2878,-759 2883,-759 2886,-758 2886,-758 2886,-755 2890,-752 2890,-751 2890,1249 2890,1250 2892,1251 2892,1251 2892,1256 2897,1259 2894,1256 2899,1253 2904,1256 2904,1257 2906,1252 2910,1253 2910,1256 2912,1255 2913,1260 2911,1256 2913,1255 2918,1257 2921,1259 2925,1262 2922,1263 2923,1266 2926,1268 2929,1269 2932,1273 2937,1277 2942,1282 2942,1284 2939,1287 2935,1290 2935,1293 2938,1296 2940,1299 2942,1302 2947,1307 2952,1311 2956,1312 2958,1307 2956,1311 2955,1307 2956,1307 2960,1307 2962,1311 2965,1315 2967,1314 2968,1319 2969,1322 2973,1324 2978,1323 2977,1327 2982,1330 7982,1332 7985,1332 7986,1332 7988,1328 7991,1328 7991,1328 7991,1253 2910,1249 2908,1251 2908,1253 2913,1253 2909,1256 2914,1255 2916,1259 2919,1261 2923,1262 2923,1266 2925,1270 2930,1270 2932,1267 2929,1269 2929,1269 2931,1269 2926,1265 1926,1270 1926,1274 1926,1274 1929,1269 1929,1270 1931,1272 1935,1269 1935,1273 1938,1278 1938,1278 1938,1280 1943,1275 1948,1276 1951,1279 1948,1280 1952,1281 1952,1286 1954,1290 1958,1290 1963,1294 1964,1298 1962,1298 1958,1302 1963,1302 1967,1307 -2033,1311 -2030,1307 -2030,1310 -2025,1314 -2020,1317 -1020,1321 -1016,1321 -1018,1321 -1015,1326 -1016,1324 -1016,1327 -1011,1326 -1007,1326 -1002,1326 -1004,1321 -1004,1321 -1003,1324 -1008,1328 -1007,1328 -1003,1333 -999,1336 -998,1339 -997,1337 -996,1340 -2996,1335 -3000,1339 -2996,1343 -2995,1346 -2990,1341 -2990,1345 -2991,1345 -2995,1269 2931,1269 2936,1271 2941,1275 2941,6275 2943,6274 2943,6279 2939,6274 2942,6274 2946,6275 2947,6276 2948,6280 2947,6282 2951,6287 2952,6287 2956,6289 2959,6294 4959,6298 4964,6302 4965,6300 6965,6305 6965,11305 6967,11305 6967,11310 6966,11310 6966,11314 6964,11318 6969,11318 6972,11323 6974,11328 6977,11329 6979,11333 6982,11337 6982,11334 6982,11337 6983,11341 6988,11345 6991,11349 6992,11353 6993,11353 6996,11353 7000,11356 7000,11353 6000,11350 6002,11353 6004,11354 6007,11356 6009,11358 6009,11359 6011,11363 6016,11365 6013,11369 6015,11372 6017,11377 6022,11381 6025,11382 9025,11385 9029,11390 9024,11389 9020,11391 9020,11389 9016,11394 12016,11397 12021,11400 12021,11405 12024,11405 8024,11403 8029,11403 8032,11401 8033,11406 8032,11402 8027,11406 8027,11410 8029,11408 8030,11408 8035,11413 8035,11418 8038,11423 8038,11428 8036,11428 8037,11433 8033,11435 8032,6435 8035,6439 8036,6440 8034,6441 8039,6442 8043,6446 8045,6451 12045,6454 12050,6454 12049,6455 12054,6457 12057,6458 12060,6461 13060,6466 13060,6467 13065,6467 13070,6465 13073,6465 13073,6466 13077,6463 16077,6465 16081,6468 16077,6471 16077,6475 16078,6475 16080,6470 16082,6465 16084,6465 16088,6470 16091,6471 16091,6469 16089,6473 16091,6477 16091,6477 16093,6480 16098,6476 16099,6478 16099,6481 16100,6486 16105,6486 16110,6488 16105,6485 16107,6487 16108,6484 16104,6485 16101,6488 16101,6489 16103,6493 16105,6493 16108,6490 16110,6487 16113,6492 16116,6495 16118,6499 16123,6497 16124,6496 16127,6498 16132,6497 16134,6499 16138,6503 16143,6502 16138,6500 16140,6502 16144,6502 16146,6503 16150,6498 16151,6500 16154,6495 16154,6494 16154,6499 16156,7499 16158,7504 16161,7507 16166,7503 16163,7505 16163,7508 16163,7511 16165,7514 16162,7517 16165,7519 16166,7524 16165,7527 16168,7529 16172,7534 16172,7534 16177,7539 16179,7537 16179,7538 16184,7538 16185,7538 16189,7540 16191,7540 16193,7541 16193,7545 16197,7550 16199,7554 16204,7558 16208,7559 16211,7560 16214,7564 16216,7563 16215,7558 16219,7558 16216,7555 16221,7559 16223,7559 16224,7559 16226,7561 16231,7558 16235,7553 16240,7552 16236,7557 16234,7552 16236,7554 16238,7557 16239,7552 16243,7553 16243,7555 16243,7555 14243,7558 14248,7559 14243,7559 14239,7561 14241,7561 14243,7561 14248,7562 14250,7566 14254,7570 14254,7575 14256,7575 14259,7576 14259,7579 14259,7583 14257,7583 14257,7583 14253,7584 14249,7579 14247,7576 14245,7579 14250,7577 14253,7582 14256,7582 14257,7578 14253,7575 14252,7577 14255,7578 14255,7578 14256,7581 14257,7584 14252,7588 14252,7592 14249,7592 18249,7588 18253,7590 18255,7592 18259,7596 18254,7601 18255,7601 17255,7605 17256,7610 17258,7613 17261,7617 17262,7619 17266,7617 17267,7621 17268,7623 17272,7626 17272,7626 17277,7625 17282,7620 17281,7617 17284,7618 17287,7617 17283,7616 17281,7621 17279,7624 17281,7624 17282,7624 17279,7628 17279,7628 17280,7633 17284,7637 17280,7638 17280,7638 17281,7641 17282,7641 17282,7638 17283,7638 17284,7643 17280,7647 17281,7652 17285,7656 17285,7658 17288,7660 17290,7661 17292,7664 17297,7666 17302,7663 17304,7664 17300,7659 17303,7661 17303,7657 17307,7659 17307,8659 17310,8661 17313,8664 17314,8665 17313,8665 17309,8669 17313,8671 17316,8670 17320,8668 17320,3668 17323,3665 17324,3661 17329,3661 17331,1661 17332,1661 17333,1663 17338,1668 17333,1663 17333,1667 17331,1668 17331,1664 17334,1666 17337,1665 17337,6499 16138,6503 18138,10503 18142,10503 18142,10505 21142,10502 21144,10502 21142,10504 21141,10504 21139,10508 21140,10512 21141,10512 21143,10515 21144,10517 21147,10517 21143,10519 21143,10519 21146,10519 21142,10519 21142,10522 21141,10523 21141,10523 21145,10523 21149,10527 21153,10531 21154,10534 21158,10531 21158,10527 21160,10532 21165,10534 21165,10531 21165,10533 21162,10529 21163,10532 21160,10534 21163,10535 21161,10540 25161,10538 25164,10538 25166,10540 25171,10543 25171,10547 25175,10547 25175,10550 25178,10552 25182,10556 25177,10558 25181,10558 25183,10563 25187,10564 25183,10560 25188,10565 25188,10569 25191,10573 25195,10575 25199,7581 14257,7585 14257,7586 14257,7588 14254,7590 14255,7593 14256,7590 14260,7595 14263,7595 14259,7597 14256,7598 14261,7598 14258,7599 14261,7600 14261,7602 14258,7602 14258,7598 14259,7598 14264,7600 14267,7601 17267,7597 17268,7602 17273,7605 17276,7605 17276,7603 17279,7604 17279,7608 17278,7613 17282,7615 17285,7617 17288,2617 17288,2617 17289,2620 17289,2620 17285,-1380 17288,-1382 17287,-1384 17292,-1384 17294,-1380 17295,-1380 17297,-1380 17299,-1375 17303,-1372 17303,-1373 17298,-1368 13298,-1365 13301,-1366 13297,-1371 13295,-1371 13298,-1371 13298,-1375 13301,-1378 13302,-1378 13302,-1377 13302,-1374 13301,-1373 13306,-1370 13311,-1371 13307,-1366 13307,-1365 13309,11349 6992,11352 6992,11354 6997,11356 7002,11356 7007,11359 7010,11354 7005,9354 7009,9356 7011,9359 7016,9360 7014,9360 7015,9363 8015,9367 11015,9370 11012,9367 11012,9368 11016,9363 11017,9360 11018,9364 11021,9359 11016,11402 8027,11399 8029,11400 8033,11401 8034,11405 8029,11407 8027,11410 8029,12410 8033,12414 8035,12412 8040,12415 8040,12416 8045,12421 8042,12426 8037,12424 8042,12427 8042,12430 8044,12434 8046,12430 8048,12434 8045,9434 8045,9439 8043,9442 8043,9442 8045,9442 8040,9442 8035,9438 8038,9440 8039,9445 8036,9446 8039,9441 8043,12441 8047,12440 8048,12444 8052,12445 8057,12450 8053,12452 8053,12448 8054,12443 8058,12441 8063,12444 8067,12449 8067,12448 8071,12451 8076,12454 8073,17454 8073,17457 8074,17459 8079,17463 8079,17461 8080,17464 4080,17467 4085,17463 4085,17463 4088,17462 4090,17464 4095,17468 4094,17464 4097,17464 4093,17466 4088,17469 4092,17470 4094,17472 4089,17470 4090,17473 4089,17478 4094,17474 4091,17477 4095,17482 4100,17487 4103,17492 4101,17492 4104,17493 4101,17495 4106,17497 4106,17502 4111,17505 4111,17504 4113,17505 4115,17509 4119,17504 4123,17505 4127,17503 4131,17503 4126,17504 4126,17506 4129,17501 4132,17502 4133,17499 4133,17503 5133,17503 5135,17498 5134,21498 5134,21498 5131,21498 5133,21497 5138,21501 5140,21502 5138,21502 5141,21505 5136,21501 5139,21501 5141,21505 5146,21510 5151,21510 5155,21512 5156,21508 5159,21508 5163,21512 5167,21517 5169,21521 5173,21519 5172,21517 5172,21515 5172,21515 5173,21516 5172,21515 5169,21516 5170,21516 5170,21516 5168,21520 5172,21523 5172,21525 5174,21522 5176,21523 5180,21527 5176,21527 5177,21527 5178,21531 5183,21533 5181,21538 5176,21539 5179,21544 9179,21544 9184,21547 9186,21548 9184,21553 9188,21553 9193,21554 9195,21556 9200,21556 9201,21555 9201,21556 9205,21561 9205,21556 9202,21561 9203,22561 9204,22566 9204,22561 9208,22559 9210,22564 9207,22560 9205,22560 9208,22564 9210,22567 9214,22569 9218,22572 9222,22576 9218,23576 9222,24576 9220,24574 9224,24569 9228,24569 9228,6481 16100,6483 16101,6486 16104,6485 16108,8485 16110,8486 16115,8482 16110,8483 16115,8485 16110,8486 16106,8487 16103,8490 16106,8486 16107,8487 16104,8487 16104,8492 16108,8493 17108,8488 17108,8490 17110,8494 17114,8495 17113,8495 17117,8498 17117,8503 17122,8498 17124,8498 17128,8494 17129,8496 17134,8496 17134,8497 17135,8498 17135,8501 17135,8502 17132,8506 17132,8501 17130,8505 17131,21515 5169,21518 5164,21523 5160,21528 5162,21530 8162,21532 8164,21536 8165,21536 8168,21540 8169,21543 8165,25543 8169,25545 8173,25549 8169,29549 8174,29546 8177,29547 8172,29552 8177,29552 8180,29557 8180,29558 8175,34558 8180,34558 8176,34555 8179,34556 8181,7584 14249,7586 14250,7588 14252,7591 14256,7587 14257,7590 14257,7592 17257,7597 17261,7601 17265,7605 17268,7606 17273,7610 17268,7612 17270,7612 17271,7615 17266,7617 17266,7622 17270,7627 17272,7627 19272,7631 19277,7636 19279,7636 19280,7636 19285,7637 19287,7639 19290,7644 19295,7647 19291,7649 19296,7653 19296,7653 19291,7656 19292,7657 19292,7653 19292,7653 19297,7652 19297,7648 19299,7647 19303,7647 19304,7649 19307,7654 19309,7651 21309,7653 21309,7657 21313,7659 21309,7662 21310,7666 21314,7663 21314,7663 21317,7658 21317,7661 21321,7666 21323,7667 21328,7662 21333,7663 21328,7667 21332,7669 21334,7671 21330,7674 21326,7675 21331,7679 21336,7681 21338,7681 21342,7681 21342,7677 21345,7682 21346,3682 21348,3680 21350,3681 21351,3680 21349,3681 21349,3686 21350,8686 21355,8682 21354,8685 21350,8681 21345,8684 21350,8683 21353,8681 21356,8681 21358,8684 21361,8684 21364,8684 21367,8685 21363,8685 21365,8685 21362,8688 21358,8690 21359,8687 21364,8687 21364,8689 21361,8691 21356,8696 21353,8696 21352,8699 21352,8699 21357,8703 21358,8706 21353,8708 21358,17503 4126,17505 4129,20505 4133,20510 4133,20515 4128,21515 4129,21516 9129,21519 9131,21524 9134,21522 9135,21522 9138,21518 9137,21516 9138,21516 9138,21515 12138,21516 12142,21518 12146,21513 12144,21517 12149,21521 12144,21521 12148,21523 12151,21527 12148,21527 12143,21528 12148,21528 12145,21533 12149,21534 12152,21537 12155,21532 7155,21536 7153,21540 7157,21536 7154,21540 7154,21539 7157,21539 7160,21542 7160,21547 7164,21551 7168,21554 9168,21556 9168,21556 9169,21559 9166,21561 9169,21565 9171,21568 9176,21565 9181,21567 9180,23567 9178,23570 9181,23575 9181,23571 9181,20571 9176,20574 9179,20569 9182,20569 9184,20570 9189,20565 9191,20562 9195,20559 9196,20559 9201,20563 9197,20564 9193,20565 9197,20565 9200,20565 9200,20563 9201,20559 9205,20564 13205,20560 13207,20560 13212,20555 13213,20558 13217,20554 13217,20558 13219,20559 13222,20561 13223,20561 13226,20561 13231,20562 13232,20567 13235,20564 13239,20560 13239,20560 13236,20560 13236,20560 13237,20564 13241,24564 13241,28564 13242,28564 13240,28561 13237,28561 13240,28562 13243,28563 13243,28560 13248,28559 13248,28559 9248,28562 9245,28564 9241,28567 9245,28568 9240,28568 9245,28571 9247,28571 9248,28574 9253,28572 9256,28576 9257,28577 9257,28574 9257,10564 25183,10566 25188,10567 25190,10568 25186,10569 25187,10570 25188,10573 25185,10568 25185,10570 25187,10573 25191,10573 25193,10578 25193,10578 25198,10581 25202,10582 25206,10578 25206,10579 25211,10580 25206,10582 25208,12426 8037,12427 8042,12432 8047,12437 8047,12435 8051,12435 9051,12432 9054,12433 9056,12435 9061,12438 9062,12435 9062,12438 9067,12434 9071,12431 9075,12436 11075,12436 11075,12441 11080,12445 11085,12449 11089,12445 11091,12442 11091,12442 11093,12442 11093,12443 11098,12439 11098,12440 11099,7440 11104,7442 11107,7446 11110,7446 11114,7451 6114,7452 6110,11452 6105,11452 6104,11454 6103,11459 6106,11462 6107,13462 6107,13458 6104,12458 9104,17458 9109,17458 9110,17460 9113,17465 12113,17468 12112,17468 12114,17466 12111,17470 12116,17469 12119,17472 12123,17470 12118,17474 12118,17476 12120,13476 12121,13480 17121,13480 17125,13484 17123,13489 17122,13489 17125,13487 17127,13487 17132,13486 17131,13491 17136,13491 17139,13495 17144,13496 17147,13496 21147,13498 21149,13498 21154,16498 21159,16503 21162,16504 26162,16509 26160,16509 26163,16509 26162,16514 26159,16518 26163,16522 26158,16518 30158,16516 30161,16516 30164,16517 30169,16520 30167,16525 30168,16528 30170,17528 30170,17532 30175,17533 30177,17533 30182,17536 30186,17537 30189,17540 30193,20540 30193,20541 30196,20541 30197,20542 30196,20544 30195,20548 30200,20553 30199,20557 30201,20561 30206,20565 30210,20566 30209,20568 30214,20568 30217,20563 30217,20563 30218,20565 30222,20567 30222,20572 30225,20567 29225,20570 29225,20570 29230,20573 29231,20571 29230,20569 29232,20570 29236,17504 4123,17505 4127,17508 5127,17505 5131,17505 5135,17509 5140,17508 5142,17510 5139,17515 5141,17517 5144,17522 5144,17524 5146,17529 5147,17529 5152,17533 8152,17533 8150,17537 8153,17532 8158,17533 11158,17536 11163,17540 16163,17540 16165,17542 16168,17542 16171,17542 16171,17547 16167,17548 16170,17550 16170,17545 16175,17549 16178,17549 16179,17549 16179,20549 16181,20551 16186,20549 15186,20550 15186,20547 15188,20550 15184,20546 15186,20545 15191,20548 15190,20552 15193,20557 15195,20552 15196,20557 15193,20562 15196,20562 15199,20567 15202,20563 15207,20564 15207,20564 15209,20568 15209,20571 13209,20573 13209,20576 13211,20577 13216,20574 14216,20570 14215,20568 17215,20568 17216,20570 17218,20575 17218,20580 16218,20583 16215,20586 16217,20581 16220,20582 16224,20585 16224,20588 16229,20590 16231,20592 16235,20595 16232,20595 16234,20598 16238,20603 16240,20607 16236,20608 16236,20608 16239,20611 21239,20613 21244,20614 21246,20612 21244,20612 21242,20615 21239,20616 21241,20621 21242,17621 21244,17626 21245,17629 21244,15629 21239,15632 21240,15636 21245,15637 21247,15639 21244,15637 21245,15642 21245,15647 21244,15646 21248,15650 21252,15653 21247,15651 21250,15649 21250,15645 21250,19645 21253,19648 21256,19647 21253,19643 21249,19646 21249,19648 21245,19650 21242,19647 21240,19652 21240,14652 21240,14657 21243,14659 21244,14664 21241,14659 21239,14654 21240,14651 21244,14647 21246,14647 21249,14650 21247,14651 21252,14651 21255,14649 21258,14652 21262,14655 21262,14652 21260,14653 21255,14653 21255,14653 21257,14656 21258,14651 21258,14653 21261,14654 21263,14654 21264,14659 21267,14660 21263,14664 21264,14666 26264,14661 26266,14661 26263,14661 26264,14666 26265,14667 26265,14665 26263,14669 26263,14667 26263,14669 26261,14667 26263,14671 26261,14671 26263,12671 26264,12672 26266,12677 26269,17677 26269,17673 26271,17676 26271,17676 26273,17681 26278,17685 26278,21536 8168,21539 8171,21543 8169,21538 8170,21541 8170,21544 8171,21548 8166,21548 8168,21552 8171,21555 8173,21558 8168,21557 8168,21562 8163,21559 8168,21559 8172,21564 8177,21569 8175,21568 8175,21573 8178,21575 8180,21570 8183,21570 8186,21566 8184,21569 8185,21569 8187,25569 8190,25571 8193,25575 8193,25576 8194,25576 13194,25580 13194,25584 13196,25589 13197,25592 13200,25595 13205,25592 17205,25593 17209,25594 17213,27594 17209,27592 17213,27590 17212,27592 17217,27592 17220,27596 17224,27599 17227,27603 17232,27603 17227,27605 17229,28605 17230,28607 17234,28609 17230,28610 17231,28610 17236,28611 17238,28613 17241,28614 17241,28615 17243,28616 18243,28618 18246,28618 18246,28622 18246,28627 18246,28632 18245,27632 18245,27634 18245,27633 18244,27638 18245,-1366 13297,-1365 13299,-1362 13303,-1362 13300,-1361 13304,-1366 13308,-1368 13304,-1368 13306,-1367 13309,-1363 13313,-1358 13313,-1353 13318,-1351 13319,-1347 13323,-1343 13318,-1343 13322,-1340 13317,-1337 13318,-1337 13322,-1337 13324,-1335 13327,-1339 13328,-339 13328,-334 13333,-331 13336,-327 13338,-326 13340,-326 13342,-321 13340,-318 13343,-317 11343,-312 11345,-307 11349,-311 11353,-314 11350,-311 11353,-313 11349,-308 11352,-313 11347,-308 11351,-306 9351,-306 9351,-306 9351,-301 9355,-301 9356,-299 9359,-297 9355,-297 9354,-296 9359,-294 9364,-290 9360,-294 9355,-289 9357,-291 9353,-286 9355,-4286 9351,-4283 9347,-4281 9344,-4281 9344,-4280 9342,-4280 9342,-4280 9339,-4277 9335,-4274 9333,-4274 9335,-4269 9336,-4265 9339,-4260 9340,-4256 9339,-4251 9336,-4251 9339,-4249 9344,-4254 9344,-4255 9348,-4253 7348,-4251 7352,-4247 7354,-4243 7357,-4242 7357,-4240 7362,-4240 7367,-4235 7371,-3235 7371,-3230 7376,-3225 7375,-3221 7372,-3223 7369,-3223 7371,-3223 7369,-3225 7364,-3220 7364,-3218 11364,-3218 11368,-3215 11369,-3210 11372,-3210 11369,-3208 11373,-3207 11377,-3207 11381,-3209 11384,-3209 11383,-1209 11379,-1211 11383,-1209 11383,-1205 11379,-1200 11384,-1197 11379,-1195 11375,-1197 11376,-1192 11377,-1192 11379,-1192 11384,-1188 11382,-1186 11382,-1181 11384,-1180 11388,-1176 11389,-1171 11388,-1171 11393,-1169 11393,-1164 11398,-1162 11393,-1158 11392,-1155 11395,-1155 11397,-155 16397,-156 16401,-156 16406,-158 16409,-158 16412,-158 16414,-160 16415,-158 20415,2842 20411,2847 20413,2848 20417,2848 20417,2848 20412,2850 20407,2850 20403,2846 20408,2847 20406,2849 20406,2854 20402,2858 20403,2863 23403,2858 23402,2855 23405,2858 23400,2857 23400,2852 26400,2849 26404,2850 26406,2855 26410,2859 26415,2863 26411,2866 26411,2866 26411,2866 26412,2868 26415,2868 26419,2868 26423,2873 26424,2876 26425,14656 21258,14661 21260,14664 21262,14664 22262,14662 22267,14662 22268,14662 22268,14658 22273,14660 22278,14658 22277,14659 22278,14660 22283,14661 22281,14661 22285,14661 22288,14664 22290,14659 22295,14662 22298,14663 22301,14667 22301,14668 22301,14673 22303,14678 22306,14681 22302,14686 22299,14686 22301,14683 22304,14686 22305,14687 22301,14689 25301,14684 25301,14684 25299,14685 25300,14685 25301,14685 24301,14688 24301,14693 24303,14693 24298,14693 24298,14688 24299,14689 24297,14690 24299,14690 24302,14690 24302,14686 24303,14686 24306,14688 24302,8492 16108,8494 16113,8498 16116,8495 16116,8496 16116,8499 16116,8504 20116,8508 20119,8508 20119,8507 20119,8509 20123,8509 20127,8512 20128,8514 20130,8519 20135,8522 20136,8522 20136,8524 20138,8524 20141,8528 20142,8526 20145,8530 20141,8530 20145,8532 20149,8531 20151,8536 20155,8535 20154,8539 20154,8539 20149,8539 20149,8543 20146,8540 25146,8538 23146,8540 23149,8540 23149,8545 23151,8546 23152,8551 23152,8555 23152,8559 23153,8561 23153,10561 18153,10561 18153,12561 18158,12564 18159,12566 18163,12567 18165,12564 18165,12568 20165,12570 20170,12575 20173,12579 20177,12576 20177,12579 20176,12584 20176,12583 20181,12585 20182,12583 20186,12582 20187,12585 20192,12582 20194,12584 20198,12586 20198,12581 20201,12582 20204,12581 20206,13581 20209,13586 20211,13586 20216,13589 20217,13589 20213,13586 20215,13588 20213,13592 20215,13596 20216,13596 20221,13600 20221,13598 20224,13595 20221,13598 20226,13602 20229,15602 20232,15606 20232,15611 20232,15610 20232,15613 20235,15617 20239,15612 20234,15612 20233,15615 20237,15617 20233,15619 20234,15619 20229,15623 25229,15624 25229,20624 25228,20628 25229,20631 25234,20630 25239,20634 25241,20632 25244,20636 25240,20634 25237,20639 25236,20634 25241,7590 14257,7592 14260,7592 14262,7592 14265,7595 14266,7600 14263,7600 14268,7604 14270,7609 14274,7611 14275,7615 14275,7620 14277,7620 14276,7625 14277,7625 14277,7628 14281,7628 14286,7630 14284,7630 14284,8543 20146,8542 20148,8546 20150,8550 20152,8550 20153,8550 20158,8545 20156,8545 20157,8550 20157,8550 20155,8550 20157,8553 20161,8557 20161,8557 20165,8560 20161,8563 20159,8568 20154,8570 20158,8573 20161,8573 20166,8577 20168,8580 20171,8584 20173,8585 20175,8580 20180,8582 20183,8582 20188,8582 20188,8585 20193,8588 20198,8589 20199,8591 20197,8594 20198,8596 20196,8592 23196,8597 25196,8601 25199,8601 25203,8604 25202,8604 25202,8599 25205,8601 25210,8601 25206,8603 25206,8606 25206,8605 25211,8609 25211,8613 25208,8614 25205,8619 25208,8619 25210,8621 25214,8619 29214,8615 29218,8616 29219,8617 29217,8622 29222,11622 29225,11624 29229,11623 29230,9623 29225,9621 29224,9625 29227,9628 29227,9624 29232,9626 29237,9631 29241,9634 29245,9635 29248,9638 29253,9643 29258,9646 29258,9647 29255,9648 29253,9650 29258,9648 29262,9647 29262,9642 29267,9646 29267,14646 29269,14650 29274,14655 29279,14654 29277,14655 29275,14653 29276,14655 29273,14656 29269,14653 29272,14656 29272,14656 29274,14660 29276,14663 29276,14660 29278,14659 29281,14659 29276,14661 29272,14656 29273,14657 29274,14652 29270,14654 29274,14657 29270,14659 29272,14655 29275,14657 29270,14659 32270,14660 32270,14662 32273,14665 32277,12665 32279,12670 32279,12670 32277,12670 32274,12672 32277,12677 32282,12682 32285,12678 32289,12674 32291,12677 32287,12679 32287,12683 32292,12685 32292,12680 32289,12682 32294,12683 32299,12687 32298,12692 32300,12695 32305,12699 32310,12703 32311,12704 32312,21515 5172,21516 5175,21518 5175,21513 5177,21516 5182,21520 5186,21525 5185,21529 5185,21528 5186,21530 5181,21533 5178,21537 5183,21537 5183,26537 5183,26534 5183,26539 5183,26542 5178,26542 5176,26544 5176,26546 5177,26548 5175,26549 5178,26548 5181,26548 5184,26553 10184,26557 10179,26559 10175,26563 10171,26563 10173,26564 10170,26568 10169,26572 10171,26577 10171,26581 10169,26577 10173,26573 10169,26575 10171,26578 12171,26576 12175,26576 12180,26581 12183,26577 12183,26580 12184,26582 12181,26582 12182,26583 12182,26588 12186,26590 12191,26593 12193,26593 12198,26598 12198,26602 12193,26602 12193,26604 12195,26607 12195,26611 12196,26615 12196,26615 12200,21534 12152,21534 12152,21537 12147,21540 12147,21545 12150,21545 12145,21548 12150,21549 12152,21544 12152,21544 12150,21547 12153,21552 12152,21553 12157,20553 12161,20553 12156,20556 12152,15556 12157,15559 12160,15557 12163,15561 12163,15564 12166,15565 12165,15561 12161,15559 12163,15559 12168,-4274 9335,-4274 9339,-4276 9341,-4276 9344,-4273 9341,-4271 9341,-4266 9342,-4266 9339,-4269 9335,-4265 9339,-4263 9342,-4259 9345,-4254 9345,-4250 9340,-4250 9335,-4245 9338,-4242 9341,-4240 9341,-3240 9346,-3242 9349,-3241 9351,-3239 9352,-3238 9355,-3237 9358,-3233 9356,-3232 9358,-3233 9358,-3228 9363,-3228 9364,-3223 9369,-3226 9369,-3224 9373,-3222 9378,-3217 9379,-3215 9384,-3215 9384,-3215 9389,-3215 9394,-3215 9390,-3210 9385,-210 9386,-207 9389,-208 9389,1328 -1007,1328 -1010,1329 -1013,1334 -1018,1339 -1013,1344 -1013,1346 -1013,1350 -1015,1351 -2015,1353 -2016,1353 -2011,1350 -2016,1350 -2013,1354 -2010,1356 -2005,1359 -2007,1364 -2005,1363 -2005,1365 -2000,1362 -1999,1365 -1998,1366 -1998,1362 -1994,1364 -1989,1365 -1988,3668 17323,3665 17327,3663 17332,3666 17337,3667 17341,11433 8033,11434 8035,11434 8031,11437 8031,11437 8032,11441 8033,11439 8033,11442 8036,11445 8037,11448 8038,11452 8043,11454 8047,11456 8047,11459 8044,11454 8049,11457 8051,11460 8052,11463 8055,11458 8057,1346 -2990,1346 -2986,1350 -2982,1347 -2986,1352 -2983,1352 -5983,1355 -5979,1358 -5974,1354 -5970,1356 -5965,1360 -5964,1362 -5960,1364 -5960,1364 -5960,1369 -5960,1364 -5963,1369 -5960,1374 -5957,1378 -5952,1380 -5951,1384 -5951,1380 -5948,1380 -5944,1384 -5942,1387 -5945,5387 -5949,5391 -5950,5395 -5950,5395 -5951,5395 -5949,5400 -5954,5404 -5953,5402 -5958,7402 -5958,7403 -5963,7404 -5960,7404 -5959,11363 6016,11359 6018,11364 6023,11365 6024,11365 6023,11369 6025,11373 6020,11378 6020,11377 6024,11379 6029,11383 6033,11384 6034,11388 6037,11389 6041,11394 6043,11396 6048,11401 6048,11402 6050,11406 6052,11404 6054,11409 6058,11413 6059,11415 6060,11411 6065,11416 6068,11420 6073,11415 6076,11416 6078,11419 6083,11423 6085,11428 6086,11430 6086,11432 11086,11437 11091,11432 11088,11429 11086,11432 11086,11427 11090,11427 11095,11429 11092,11427 11092,11431 11087,11433 11088,11436 11090,11436 11091,11436 11096,11439 11099,11440 11099,11440 11095,11445 11097,15445 11102,15445 11102,15441 11099,15445 11100,15445 11102,15443 11106,15445 11110,15450 11107,15453 11110,15457 11110,15457 11115,15459 11119,15460 11117,15465 11117,15465 11120,15464 11123,15463 11124,15460 11124,15460 16124,15458 16127,15462 16122,15466 16126,15462 16131,15465 16133,15463 16135,15462 16136,15462 16140,15466 16142,15468 16147,15468 16147,15471 16149,15471 16147,15475 12147,15477 12150,15480 12147,15484 12144,15487 12145,15490 12147,15492 12149,15494 12150,15496 12153,15497 12155,15499 12150,15499 12147,15500 12143,15504 12146,15499 12150,15500 12150,15500 12152,15505 12153,15506 12157,15506 12157,15508 12158,15512 12159,19512 12162,19513 12159,19511 12163,19512 12162,19517 12167,19520 12167,19522 12168,19525 12171,19525 12172,19525 12175,19526 12172,19526 12172,19526 17172,19527 17175,19528 17176,19529 17179,19529 17178,19533 17181,19532 17183,19532 17179,19537 17174,19539 19174,19538 19171,19542 19172,19547 15172,7641 17282,7646 17284,7649 17284,7652 17284,7654 17285,7650 17289,7647 17291,7645 17296,7649 17297,7650 17294,7653 17294,7653 17298,7656 17303,7658 17308,7662 17313,7666 17308,7664 17313,7669 17313,7669 17313,7669 17316,7667 17313,7667 18313,7663 18314,7661 18316,7662 18317,7657 18318,7662 18315,7658 18316,7661 18318,7661 18322,7664 18317,7667 18315,7671 18315,7675 18315,7674 18315,7670 18316,11670 18316,16670 18321,16673 18321,16678 18322,16682 18327,16683 18332,16686 18334,16690 18334,16688 18336,16685 23336,16688 23337,14688 23338,14692 23337,14694 23338,14697 23339,14697 23342,14698 23342,14698 23343,14698 23348,14693 23350,14694 23347,14695 23347,14696 26347,14692 23347,14692 23347,14693 23350,14693 23351,14698 23355,18698 23352,18698 23356,18702 23360,18701 23362,18699 23363,18701 23363,18702 23366,18699 23366,18694 23370,18699 23370,18702 23374,18707 23378,18706 23380,18706 23381,22706 23384,22706 23385,22705 23389,22706 23384,22706 23384,22706 23384,22710 23380,22713 23381,22718 23386,22716 23390,22712 23390,22708 23390,22705 23392,22704 23397,25704 23402,25704 23402,25706 23404,25710 23404,22710 18404,22707 18402,22704 18403,22704 18406,22704 18411,22704 18411,22704 18410,22709 18410,22709 18407,22704 18405,22703 18405,22707 18405,20707 18409,20709 18412,20710 18411,20712 18414,20712 18414,20712 18412,20712 18416,20714 18412,20717 18417,20720 18419,20715 18421,20718 18422,20723 18425,20723 18430,20723 18434,20725 18435,20724 18437,20724 18433,20726 18433,20731 18437,20732 18437,20730 18438,20735 18440,20739 18438,20734 18438,20739 18437,20739 18437,20744 18439,20749 18438,20750 18434,20753 18436,20754 18431,20754 18432,20758 18433,20762 18438,20764 18443,20766 18447,20766 18450,20767 18451,20768 18451,20769 18448,20770 18452,20774 18456,20777 18458,20781 18462,20782 18463,20785 18468,17785 21468,17784 21473,17782 21477,17787 21481,17783 21482,17785 26482,17788 26482,17788 26482,17791 26479,17794 26483,17790 26483,22790 26483,22790 26479,20583 16215,20585 16220,20589 16225,20590 20225,20592 20222,23592 20227,22592 20229,22597 20233,22600 20233,22603 20237,22604 20240,22599 20241,22595 18241,22595 18242,22598 18243,22602 18247,22605 18252,22601 18256,22598 18255,22600 18257,22604 18258,22609 18261,22608 18261,22606 18264,22608 18261,22605 18265,24605 18262,24608 18263,24611 18267,24608 18267,24613 18271,24615 18272,24610 18273,24614 18272,24619 18276,24621 18281,24625 18276,24622 18280,24622 18282,24621 18279,24622 18277,24627 18279,24631 18284,24634 18289,24634 18292,24634 18294,24636 18299,24639 18294,24644 18295,24647 18298,24647 18301,24643 18303,24643 18306,24639 18311,24636 18315,24641 18317,24645 18317,24648 18319,24649 18323,24649 18328,24652 18330,24652 18329,24652 18327,24655 18322,24656 18319,24658 18319,24661 18320,24664 18316,24660 18320,24657 18318,24657 18320,24659 18325,24660 18327,24661 18323,24656 18327,24652 18323,24654 23323,24658 28323,24660 28318,24665 28319,24666 28323,24668 28325,24668 28328,24672 28325,24667 28328,24668 28325,24670 28326,24665 28330,24668 28334,24672 28336,24672 28336,24668 28339,24672 28340,24672 28338,24674 28341,24675 28346,24675 28351,24677 28356,24679 28357,24681 28356,24677 28360,24680 28355,24684 28354,24688 28356,24688 28351,24690 28356,24686 28361,24691 28364,24692 28364,24692 28365,24692 31365,24693 31370,21693 31370,21692 35370,21688 35372,21692 35377,21695 35377,21697 35377,21698 35379,21698 35374,21701 35375,21701 35379,21703 35380,21708 35383,21706 36383,21709 36383,16709 36383,16710 36386,16715 36382,16711 36386,16706 36388,16706 39388,16706 39383,16706 39379,16711 39379,16711 39376,16714 39381,16716 39386,16717 39389,16717 39391,16720 39391,16723 39387,17723 39392,17726 43392,17722 43396,19722 43399,19724 43394,19727 43391,19725 43395,19723 43398,19726 46398,19730 46400,19730 46403,19730 46405,19734 46407,19734 46410,19733 46407,19728 46412,19726 46416,19726 50416,19723 50417,19723 50416,19718 50420,19719 50424,19718 50429,19713 50433,19715 50437,19718 50442,19719 50442,19718 50444,19719 50439,19721 50443,18721 50444,18721 50446,18721 50450,18726 50451,18727 50453,18722 50451,18727 50456,18729 50455,18731 50458,18726 50458,18728 50458,18730 50463,18730 50460,18729 50456,18727 50460,18730 50462,18734 50457,18739 50455,18744 50457,18744 50461,18748 50461,18748 50466,18745 50468,18749 50463,18750 50468,18754 50472,18754 50472,18759 50472,18760 50468,18763 50473,18760 50477,18762 50477,18766 50481,18769 50483,18769 50481,18772 50482,18776 50482,18779 50486,18779 50489,18781 50489,18783 50494,18786 50496,18786 50495,18786 50498,18784 50499,18784 50499,21784 50504,21788 50502,21785 49502,21790 49501,21790 49498,21795 49494,21800 49494,21801 49495,21801 49500,21797 49505,21799 46505,21802 46508,21798 46513,21799 46516,21802 46516,21805 46519,21800 46524,21805 46527,21804 46528,21801 47528,21801 47531,21804 47533,21804 47529,21804 47534,21809 47538,21808 47538,21812 47540,21812 47535,21813 47532,21810 52532,21812 52535,21817 52536,21820 52536,21824 52541,21828 52545,19828 52545,19829 52547,19829 52551,19833 52555,19831 52552,19826 52557,17826 52562,17827 52567,17830 52568,17830 52572,17830 52575,17830 52575,17830 52574,17831 52578,17827 52582,17827 55582,17829 55583,17834 55583,17839 56583,17843 56579,17846 56580,17850 56584,17848 56588,17853 56592,17851 56596,17856 56596,17856 56600,17851 56601,17856 56601,17856 56604,20856 56604,20861 56601,20865 56596,20865 56597,20866 56597,20869 56602,20871 56603,20874 56607,20871 56605,20872 56610,20874 56613,20874 56612,20876 56617,20876 56622,20876 56626,20876 56621,20879 56623,20880 56627,20883 56624,20880 56629,20880 56629,20881 56630,20884 56630,20884 56635,20881 56636,20879 56637,20876 56632,20879 56629,20881 56633,20878 56634,20879 56634,20879 56637,20879 56642,20884 56638,20879 56639,20884 56634,20885 56631,20886 56633,20889 56632,20894 56627,20894 56631,20894 56631,20898 56632,20903 56632,20908 56630,20907 56633,20907 56636,20903 56641,20904 56641,20904 56637,20900 56639,20905 56642,20910 56643,20905 56648,20910 56653,20915 56654,20910 56659,20910 56663,20910 56664,20912 56664,20912 56666,20917 56670,20922 56670,20918 56673,20920 56675,20920 56677,20920 56677,20921 56681,20926 56677,20931 56677,20934 56680,20934 56684,20936 56689,20938 56689,20938 56690,20940 56695,20935 56696,20939 56697,20939 56699,20940 56696,20941 56694,20940 56698,20945 56700,20947 56702,20947 56707,20950 56712,20954 56713,20950 56710,20952 56706,20955 56704,20957 56708,20953 56709,20951 56714,20953 56716,20957 56720,20957 56722,20959 56725,20958 56727,20959 56728,20962 56731,20963 56736,20965 56741,20965 56740,20967 56742,20969 56737,20969 56742,20974 56744,20979 56744,20978 56745,20974 56748,20970 57748,20972 57749,20974 57751,20971 57754,20972 57752,20977 57755,20981 57758,20981 57763,20981 57765,20984 57765,20982 57767,20982 57763,20987 55763,20989 55767,20991 55770,20987 55771,20988 55774,20988 55777,20991 55775,21991 55778,21996 55778,22000 55783,22001 55783,22005 55783,22010 55785,17010 55781,17011 55783,20011 55778,20015 55783,20018 55786,20015 55791,20015 55795,20019 55792,20019 55792,20021 55792,20022 55788,20023 55783,20028 55786,25028 55790,26028 55795,26029 55790,26030 57790,26033 57794,26032 57798,26036 57802,26039 57805,26042 57805,26046 57810,26050 57811,26054 57815,26054 57819,26050 57819,26055 57820,26060 57822,26063 57823,26066 57826,26068 57824,26073 57826,26077 57831,26082 57831,26078 57836,26082 57839,26084 57839,26086 57834,26082 57834,26083 57835,26082 57840,26083 57844,26086 57843,26083 57846,22083 57849,22084 57847,22089 57847,22094 57848,22094 57853,22094 57850,22095 59850,22095 59855,22098 59858,22099 63858,22099 63861,21099 63861,21104 63862,19104 63862,19108 63864,19109 63864,19112 63868,19113 63873,19117 63876,19121 63875,19116 63877,19115 63882,19117 63878,19122 63883,19125 63884,19129 63879,19133 63879,19135 63874,19139 63871,19136 63871,19136 63873,19140 63868,19140 63873,19144 63877,20144 63879,20144 63876,20146 63880,20148 63878,20149 63877,20149 63879,20150 63882,20155 63886,20155 64886,20159 64884,20160 64884,20161 64887,20160 64887,20164 64887,12677 32287,12677 32292,12679 32297,12678 32298,12682 32294,12687 32294,12682 32296,12682 32296,12683 32298,12683 32301,12682 32305,12685 32309,12686 32311,12686 32316,12691 32311,12692 32316,12692 32312,12697 32314,12700 32319,12705 32322,12706 32327,12704 32329,12705 32332,12702 32334,12707 32338,12703 28338,12704 28340,12700 28345,12702 28345,12702 28345,12701 28348,12704 28349,12704 28345,12709 28342,12709 28343,12714 28347,12718 28351,12723 28352,12727 28353,12730 28355,12728 28353,12733 25353,15733 25353,15736 25355,15740 25356,15745 25356,15747 25351,15752 25353,15752 25354,15754 25354,15754 25353,15759 25352,15763 25352,15764 25357,15759 25352,15761 27352,15760 27354,15760 27354,15760 27355,15762 27357,15762 27354,15759 27354,15759 27354,15763 27358,15767 32358,15764 32360,15769 32360,15767 32360,15765 37360,15770 37362,15772 37363,15774 37367,15779 37363,15780 37359,15779 37363,15782 37366,15780 37370,15775 37370,15778 37365,15781 37360,15785 37356,15785 39356,15789 39358,15789 39360,15794 39365,15794 39370,15797 39375,15797 39380,15799 39379,15804 39376,15805 39377,15807 39380,15808 39385,15809 39386,15807 39386,15809 39386,15810 39389,15815 39392,15820 39392,15819 39396,15820 39398,15820 39395,15825 39400,15823 39405,15824 39403,15829 39403,15834 39406,15836 39411,15831 39415,15832 39415,15833 39415,15838 39417,15839 39419,15839 39414,15842 39413,15846 39418,15843 39420,15842 39423,15839 39420,15840 39422,15839 39420,15842 39415,15846 39410,17846 39415,17845 39411,17847 39416,17849 39420,18849 39424,18847 41424,18852 41424,18849 41429,18849 41432,18848 43432,18852 43433,18855 43433,18859 43435,18855 47435,18858 47440,18861 47435,18866 47435,18866 47439,18869 47442,18871 47445,18873 47445,21873 47445,21876 47444,21873 47449,21878 47451,21883 47456,21880 47454,21880 47454,21880 47457,21883 47459,21887 47464,21890 47465,21893 47467,21894 47464,16894 47462,16899 47457,16898 47455,16893 47456,16897 47458,16896 47455,16898 47459,16900 47464,16903 47469,16908 47471,16903 47474,16901 47473,16906 47473,16901 47478,16904 47479,16906 47475,16906 47474,16907 47475,16906 47479,16901 47482,16901 47482,16905 47486,16908 47487,16911 47490,16915 47490,16917 47492,16921 47497,16926 47498,19525 12175,19525 12176,19521 12177,19522 12181,19525 14181,19521 14181,19519 14185,19519 14189,19524 14192,19527 14192,19529 14196,19534 14200,19535 14205,19538 14208,19540 14204,19545 14207,19545 14207,19547 14210,19550 15210,19554 15210,19555 15210,19555 15213,19560 15213,19562 15212,19564 15213,19569 15210,19570 15214,19573 15214,23573 15217,28573 17217,28574 17220,28574 17219,28574 17224,28576 17229,28577 17233,28577 17236,28579 17236,28580 17238,28584 17243,28588 17248,28587 17252,28587 17252,28582 17255,29582 17259,29577 17260,29578 17262,29583 17257,29585 17257,29586 17260,29586 17265,29590 17267,29593 17267,29594 17267,29599 21267,29603 21271,29603 21272,29605 21274,29607 21276,29612 26276,29613 26279,29616 26280,29621 26277,29621 26277,29623 26282,29626 26285,29631 26289,29628 26289,29632 26290,29637 26294,29642 26290,29646 26292,29648 26291,29649 26288,29653 26293,29655 26292,29655 26293,12702 28345,12703 28348,12698 27348,12699 27349,12698 27354,12700 27354,12700 27355,12703 27360,12703 27361,12700 27362,12704 27367,12701 27371,12706 27376,12710 27372,12710 27373,12710 27368,12715 27370,12713 27374,12716 27378,12716 27380,12714 27379,12719 27374,12718 27373,12722 27376,12724 27376,12729 27371,12733 27372,12733 27377,12735 27373,12735 27374,12737 27378,12739 27379,12742 27381,12739 27381,12739 27376,12743 27378,12743 27379,9743 27375,9744 32375,9745 32377,9746 32374,9746 32372,9750 37372,9752 37375,9754 37375,9751 37377,9755 37379,9759 37379,9763 37383,9766 37385,9767 37382,9768 37383,9765 40383,9770 40378,9770 40382,9775 40384,9777 40386,9782 40391,9778 40395,9773 40395,9778 40397,9779 40399,9781 40402,9781 40398,9781 40393,9780 40396,9782 40399,9785 40398,9786 40395,9789 40390,9793 40387,9798 40390,9803 40394,9805 40397,9800 40400,9795 40402,9800 40403,9802 40407,9807 40410,9806 40407,9807 40403,9812 40400,9814 40403,9819 40403,9819 40400,9822 40405,9824 40405,9822 40408,9827 40410,9831 40413,9831 40413,9826 40412,9827 40417,9832 40418,9832 40416,9833 41416,9833 41421,9834 41416,9838 41416,9838 41421,9840 41422,9844 41424,9839 41424,9843 41427,9845 41430,9849 41430,9849 41425,9852 41423,9855 41426,9858 41429,9860 41434,9862 41436,9866 41441,9868 41436,9869 41434,9871 41434,9875 41437,9877 41437,9881 41438,9883 41438,9879 41438,20903 56641,20898 56644,20903 56647,20901 56649,20903 56645,20905 56650,20909 53650,20905 53650,20910 53652,20907 53655,20912 53652,20916 53656,20917 53656,20912 53661,20912 53660,23912 53663,23912 53663,23909 53663,23912 53665,23913 53669,23911 53669,23915 53669,23912 53671,23916 53670,23917 53675,23922 53680,23927 53683,23930 53688,23935 53689,23935 53691,23935 53691,23931 53692,23931 53694,27931 53693,27933 53695,27937 53695,27942 53699,27947 53701,27949 53703,27949 53704,27949 53708,27952 55708,27953 55710,27949 55710,27953 55710,27958 55713,27959 55718,27960 55722,27962 55725,27965 55730,27965 55732,27968 55730,27969 55733,27972 55733,27975 55734,27975 55734,27979 55737,27981 55733,27982 55732,32982 55732,32979 55734,32978 55737,32978 55738,32974 55742,32977 55746,32981 55750,32985 55746,32983 55747,32987 55750,32992 55751,32995 55751,32998 55751,32998 55753,32998 55753,32993 55753,32995 55757,32999 55758,33002 55760,33002 55761,33005 55766,33005 55767,33000 55764,32997 55767,32997 55771,33001 55773,32998 55777,33001 55777,33005 55776,33004 55776,33009 55781,33014 55786,33014 55790,33015 55790,33016 55790,33015 55786,34015 55787,34019 55790,34019 55791,34021 55793,34017 55793,34019 55796,34016 55797,34020 55793,34020 55796,34023 55792,34023 54792,34025 54797,34028 54800,34029 54799,34029 54795,34034 54796,34036 54797,34041 54792,36041 54797,36045 54801,36048 54803,36051 54804,36053 54806,11439 8033,11441 8038,11441 8039,11441 8040,11445 8035,11441 8035,11442 8039,11438 8035,11438 8035,11443 8039,16443 8038,16444 8038,14444 8040,14448 12040,14451 12036,14455 12038,14455 12041,14456 12046,14459 12049,14457 12051,14458 12046,14458 12047,14459 12042,14464 12042,14465 12047,14470 12050,14471 12055,14471 12058,14468 12060,14473 10060,14477 7060,14477 7062,14474 7062,14474 7067,16474 7063,16471 7065,16474 7067,16471 7072,16471 7068,16476 7066,16481 7069,16482 7072,16487 7072,16487 7077,16488 7077,16493 7076,16493 7079,16497 7079,16500 7079,16502 7079,16502 7079,16505 7075,16504 7080,16501 7077,16497 7079,16501 7081,16497 7080,16496 7084,16500 7086,16495 7087,16498 7084,16501 7087,16496 7087,16496 7083,17496 7083,17500 7083,17505 7088,9860 41434,9864 41435,9864 41435,9865 42435,9860 42435,9862 42436,9863 42434,9863 42430,9862 40430,9863 40427,9863 40428,20608 16239,20605 16242,20610 16237,20614 16237,20615 16242,20611 16242,20612 16245,20609 16244,20604 16242,22604 16237,22608 16239,22607 16240,22610 16244,22610 16241,22615 16246,22616 16246,22614 16251,22616 16251,22617 16249,22619 16254,22623 16252,22618 16255,22618 16259,22620 16262,22615 16262,22618 16263,22622 16263,22626 16265,22629 16266,22628 16269,22633 16267,22636 16268,22636 16267,22641 16269,22646 16269,22645 16271,22646 16273,22650 16271,22655 16274,22655 16277,22658 16279,22660 16280,22658 16280,22661 20280,22663 20282,19663 20285,19658 20288,19658 20292,19661 20295,19666 20298,19670 20301,19671 20301,19675 20301,19677 20306,19675 20311,19674 20315,19678 20318,19677 20314,19680 20315,19682 20310,19684 20314,19683 20316,19687 20315,19688 20316,19688 20319,19693 20319,19698 20322,19702 20323,19698 20323,19702 21323,19707 22323,8508 20119,8509 20119,8510 20116,8515 20113,8518 20115,8519 20116,8516 20120,8520 20119,8520 20118,8525 20123,8527 20125,8527 20125,8528 20123,8530 20126,8533 20123,8535 20127,8532 20132,8534 20136,8538 20138,8542 20141,8537 20143,8537 20145,8542 20145,8547 21145,8548 24145,8552 24145,8557 24150,8560 24147,8562 24151,8566 24156,8569 24160,8574 24156,8579 24159,8584 24164,8587 24164,8585 24167,8588 24170,8591 24171,8589 24172,8590 24176,8595 24177,8593 24174,8596 24178,8600 24179,8603 24175,8602 24178,9602 24182,9605 24177,9609 24178,9610 24182,9608 24178,9603 24183,9606 24188,9608 24193,9609 24195,9614 24196,9616 24197,9618 24201,9618 24205,9613 24209,9612 24214,9608 24211,9603 24216,9607 24221,9611 24221,9615 24217,9617 24217,9618 24221,9623 24225,9623 24225,9626 24225,9630 24225,9630 24222,9626 24223,9626 22223,9627 22223,9626 22226,9629 22228,9632 22228,9636 22225,9638 22226,9639 22227,9634 22230,9634 22231,9639 22235,9639 22240,9641 22242,9642 22246,9647 22249,9652 22250,9655 22255,9651 22256,9652 22253,9652 22256,9652 22261,9655 22262,9657 22257,9659 22261,9659 22261,9657 22264,9657 22261,9656 22264,9661 22267,9662 22270,12662 22270,12665 22265,12669 22270,12669 22270,12673 22269,11356 7007,11361 7010,11361 7010,11357 7014,11356 7015,12356 7020,12357 7015,12361 7017,11361 7018,11364 7017,11359 7018,11355 7017,11354 7020,11357 7020,11361 7023,11364 12023,11368 12028,11368 12029,11371 12030,11372 12034,14372 12034,14372 12039,14372 12042,14376 12045,14381 12047,14379 12047,14381 12049,14384 12054,14385 12051,14388 12056,14384 12056,14384 12061,14381 12058,14386 12062,14386 12059,14391 12059,14396 12060,14397 12060,14398 12056,14403 12051,14408 12052,14410 12057,14409 12057,14414 12053,14414 12051,14415 12051,14420 12049,14423 12048,14427 12044,14427 12044,14425 10044,14421 10049,14424 11049,14426 11054,14427 11059,14429 11064,14433 11064,14434 11064,14437 11065,14441 11068,14444 11072,14445 11076,13445 12076,13445 12077,13445 12081,13444 14081,13446 14081,13446 14078,13449 14083,13447 14084,13450 14085,13452 14090,13453 14087,13456 14084,13457 14083,13461 14081,13463 14082,12463 14082,12463 14087,12463 14087,12464 14087,8464 14087,8465 14083,8465 14080,8467 14085,8472 14085,8473 14085,8476 14090,8474 14094,8475 14094,8480 14094,8481 14099,8476 14103,8476 14107,8480 14111,8483 14116,8488 14120,8488 14118,8488 14120,8483 14115,8481 14118,8485 17118,8485 17114,8488 17110,8488 17115,8484 21115,8484 21118,8486 21120,8487 21120,8482 21115,8487 21118,8490 21122,8494 21127,8497 21132,8497 21133,8500 23133,8503 23135,8507 23135,8508 23132,8511 23129,8512 23125,8517 23126,8522 23125,8527 23129,8522 23131,8527 23132,8530 23132,8531 23128,8533 23132,8533 23134,8533 23139,8533 23144,8536 23143,8537 23146,8533 23146,8533 23149,8537 23152,8533 23157,8530 23158,8532 23162,8536 23162,8536 23165,8536 23165,8540 23170,8544 23171,8548 23169,8547 23173,8551 23176,8552 23173,8548 23169,8553 23173,8553 23170,8548 23173,8549 23173,8546 22173,8547 22174,8551 22177,8550 22179,8552 22183,8553 22183,8553 22184,8557 22185,6557 22185,13598 20226,13601 20227,13604 20229,13608 20233,13610 20234,13605 20237,17605 20237,17610 20242,17605 20242,17602 20241,14602 20241,18602 20236,18606 20239,18606 20244,18608 20241,16608 20245,16611 20240,16615 20239,16610 20234,16611 20232,16613 20235,16608 20235,16608 20239,16613 20242,19734 46410,19734 46410,19738 46414,19737 46414,19735 46415,19737 46418,19741 46421,19744 46423,23912 53671,23908 53673,27908 53675,27913 54675,27917 58675,27921 58677,27925 58678,27930 58678,27926 58683,27930 58686,27931 58691,27931 58695,27934 58700,27936 58699,27936 58699,27941 58695,27942 58695,27947 58699,27952 58699,27954 58703,27957 58704,27962 58708,27958 58706,27959 58703,27962 58703,27967 58706,27967 58701,27965 58701,27962 58702,27966 58703,27971 58704,27976 58706,27980 58709,27980 58712,27975 58711,27971 58716,27971 58713,27968 58712,27968 58712,27971 58711,27968 58713,27968 58710,27969 58708,27972 58706,27976 58711,27978 58716,27979 58716,27983 58718,27978 58718,27981 58719,27981 58723,27986 58725,27986 58728,27986 58731,27991 58734,27996 58738,27993 58736,27995 58732,31995 58736,31990 58735,31993 58738,31990 58734,31995 58729,31996 58729,31999 58731,31994 58726,31996 58731,12463 14087,12465 14090,12465 14093,12463 14090,12463 14095,12461 14092,12464 14093,12459 14091,12459 14091,12459 14091,12459 14096,12461 14100,12458 14103,12457 14101,12452 14101,12452 14106,12453 14103,12453 17103,12455 17104,15455 17104,15460 17108,15463 17104,15458 17108,18458 17108,21458 17105,21461 17105,21464 17110,21467 17115,21464 17120,21464 17120,21468 17123,21470 17126,21465 21126,21461 21126,21464 21128,21464 21132,21468 21137,21471 21142,21475 21146,21471 21146,21476 21147,21473 21151,21475 25151,21475 25152,21477 25153,21481 29153,21479 29158,21484 29162,21488 29162,21490 29165,21487 29170,21488 29167,21489 29162,21493 29164,21493 29169,21498 29169,21499 29164,21495 29167,21498 29167,23498 29170,23498 29169,23503 29172,23505 29171,23510 29167,23514 29164,28514 29168,28514 29172,28514 29174,28512 29172,28513 29176,28518 29179,28518 29182,28521 29177,28521 29179,28519 29179,28517 29179,28515 29177,28519 29177,28519 29179,28524 29184,28527 29183,28527 29185,28523 29187,28523 29184,28525 29189,28522 29189,28518 29186,28523 29189,28519 29189,28521 29189,28526 29193,28529 29193,28529 29196,28534 29200,28538 32200,28537 30200,28539 30202,33539 30207,33539 30209,33534 30205,33535 30208,33536 30208,33538 30213,33538 30214,33542 30218,33545 30221,33548 30222,33551 30225,33552 30227,33554 30231,33555 30233,33560 30228,33563 30225,33564 30229,33565 34229,33565 34234,33570 34231,33572 34235,33572 34239,33573 34243,33578 34239,33579 34243,33574 34247,33573 34247,33576 34243,33573 37243,33573 37246,33568 37241,33568 37244,33573 37239,33578 33239,33574 33241,33574 33239,33578 38239,33583 38242,33587 38242,33590 38242,33594 38243,33596 38247,33599 38248,33599 38252,33595 38252,33598 38257,33603 38258,33604 37258,33609 37255,33604 37257,33607 37262,33607 37265,33609 37266,33614 37271,33614 37276,33616 37278,33616 38278,33616 38282,33621 38284,33621 38288,33621 38285,33618 38289,33616 38291,33616 38294,33611 38296,33608 38301,33610 38305,33610 38300,33612 38303,33617 38308,33621 38309,33625 38305,33630 38307,33634 42307,33636 42310,33638 42314,33634 42312,33631 42315,33631 42315,27931 58691,27936 58693,27937 58695,27940 58700,27943 58703,27943 58708,27946 58709,27950 58711,27950 58714,29950 58718,29951 58723,29947 58728,29947 58732,29950 58727,29950 58727,29955 58730,29960 58734,29964 58732,29961 58734,29963 58735,29968 58739,29968 58741,34968 58739,34971 58739,34972 58739,34973 58740,34968 58741,34970 58743,34974 58745,34977 58749,34979 58744,39979 58745,39979 58742,39978 58744,39982 58748,39983 58744,39983 58744,39979 58747,39979 58752,39983 58757,39982 58759,39985 58759,39986 58759,39983 60759,39986 60762,39990 60767,39994 60770,39994 60770,39997 60770,39997 60770,40000 60775,40002 60775,40003 60779,40007 60784,40008 60787,40011 60788,40015 60788,40016 60790,40016 60792,40021 60788,40025 60788,40030 60788,40026 60786,40027 60786,40030 60787,40032 60792,40037 60795,40032 60800,40032 60799,40035 64799,40035 64801,40036 64806,40041 64803,40037 64805,40038 64801,40040 64804,40036 64804,40040 64805,40045 64810,40048 64811,40051 64813,40051 64817,13491 17139,13486 18139,13489 18139,13494 20139,13492 20138,13494 20141,13499 20145,13499 20145,13499 20148,13503 20149,13500 20149,13505 20151,9367 11012,12367 11015,12369 11011,12364 11012,12364 11015,12359 11011,12354 11011,12354 11014,12359 11017,12356 11015,12361 11015,12361 12015,12365 12016,12369 8016,12374 8021,12373 8025,11373 8021,11368 8021,11373 8024,12700 27362,13700 27363,13705 27364,13710 27368,13705 27369,13707 27367,13707 27371,13709 27375,13712 27377,13714 27373,13712 27376,13714 27379,13713 27382,13718 27384,13713 27380,13713 27385,13711 27386,13715 27386,13719 27386,13719 27389,15719 27394,15724 27398,15729 27400,15734 27401,15734 27401,15729 27396,15732 27396,15735 27397,15734 27399,15733 27400,15729 27400,15734 27400,15729 27405,15734 27405,15739 27408,15739 27408,15741 27412,15743 27416,15743 27416,15740 27416,16740 31416,16743 31421,16738 31425,16742 31430,16742 31435,16743 31439,16743 31444,16741 31449,16746 31450,16747 31455,16742 31459,16738 31463,16742 31466,16742 31471,16742 31471,16742 31471,16744 31475,16749 36475,16749 36473,16753 36478,16757 36474,16761 36477,16759 36478,16761 36481,16760 36484,16761 36485,16760 36486,16765 36491,16766 36494,16771 36498,16769 36501,16771 37501,16774 37504,16769 37507,16769 37507,16772 37503,16772 37508,16774 37511,16774 37510,18774 37515,18777 37515,18772 37512,18775 37514,18777 37517,18778 37519,18779 37517,18776 37517,18778 37520,18780 37520,18785 37522,18785 37526,18787 37523,18786 37520,18790 38520,18789 38520,18792 38522,18797 38527,18802 38529,20802 38534,20804 38535,20803 38540,20802 38539,20806 38543,20811 38546,20814 38543,20812 38541,20808 38546,20811 38544,20815 38539,20816 38535,20818 38531,20815 38531,20814 38528,20814 38533,20817 38536,20816 38539,20821 38540,20818 38542,20820 38540,20816 38540,20821 38540,20823 38541,20828 38541,20831 38546,20836 38547,20836 38548,20835 38553,20835 37553,20835 37558,20837 37558,20842 37560,20846 37561,20846 37564,20849 37569,20854 37564,20854 37565,20850 37566,20852 38566,20856 39566,20861 39566,20863 39562,20867 39566,20872 39567,20868 39566,20873 39568,20876 39573,20876 39573,20880 39575,20884 39579,20885 39580,20889 39580,20891 39584,20888 38584,20889 38587,20890 38592,20891 37592,20892 37597,20894 35597,20895 35600,20897 35603,20899 35605,16678 18322,16681 18323,16682 18323,16686 18328,16690 18326,16693 18331,11693 18335,11692 18332,11695 18332,11698 18335,11703 18335,11703 18336,11702 18339,11698 18344,11702 18349,11705 18353,11704 18357,11707 18360,11707 18359,11711 18358,11716 18358,11713 18358,11712 18360,11710 18360,11710 18362,11710 18362,11710 18367,11710 18366,11707 18366,11706 18365,11710 18369,11715 18371,11714 18374,11712 18376,11711 18377,11711 18379,11712 18384,11715 18385,11711 18385,11714 18387,11717 18389,11718 18386,11721 19386,11723 19391,11722 19395,11722 19396,11723 19398,11726 19398,11729 19403,11733 19408,11736 19407,11733 19411,6733 19407,6735 19402,6738 19402,6743 19406,6746 19406,6742 19411,6742 19414,6742 19414,6746 19419,6746 19423,6746 19418,6749 19418,6747 19418,6748 19420,6748 19424,6748 19424,6751 19427,6751 19429,6752 19429,9752 19426,9754 19428,9759 19430,9756 19431,9751 19435,9753 19440,9757 19445,9755 19443,9757 19448,9757 19448,9759 19451,9763 19451,9766 19454,9766 19456,9770 19459,9770 19462,9770 19466,9766 19467,9771 19468,9772 19468,9769 19469,9768 19470,9770 19470,9774 19473,9778 19470,9781 19470,9786 19471,9789 19471,9789 19473,9792 19478,9795 19475,9800 19478,1256 2899,1260 -1101,1256 -1097,1255 -1093,1255 -1094,1259 -1089,1260 -89,2260 -84,2258 -84,2263 -88,2267 -89,2268 -91,2269 -86,2272 -86,2272 -82,2273 -77,2276 -79,2281 -81,2283 -79,2287 -75,2292 1925,2297 1930,2299 1930,2303 1932,2308 1937,2308 1936,2313 1937,2315 1934,2316 1935,2311 1936,2316 1937,2319 1938,2322 1940,2327 1940,2331 1940,2327 1943,2329 1945,2331 1950,2336 1950,2339 1954,2338 1954,7338 1954,7337 1958,7341 1960,7341 1964,8550 20152,8554 20152,8553 15152,8550 15152,8554 15154,8552 15149,8552 15153,8556 15151,8556 15148,8552 15152,8547 15149,8552 15154,8552 15155,8553 15156,8550 15156,8553 15160,8556 15164,8558 15163,8561 15163,8563 15167,8559 15169,8559 15166,8564 15167,8568 15171,8572 16171,8572 16173,8574 16170,8571 16174,8575 16174,8576 16174,8576 16174,8580 16178,8579 16183,8574 16184,8576 16184,7576 16186,7572 16181,7577 16181,7577 16185,7578 16190,7583 16185,7583 16185,7587 16185,12587 19185,12582 19188,12587 19193,12587 19195,10534 21158,10538 21162,10540 19162,10543 19158,10547 19158,10551 19160,10551 19158,10554 19158,10553 19157,10555 19157,10555 19154,10552 19156,10553 19161,10555 19166,10558 19165,10560 19165,10561 19165,10561 19165,10564 19166,10567 19164,10570 19162,10575 19165,10577 19164,10577 19168,10578 19168,10574 19171,10574 19172,10571 19175,10573 19178,6503 16143,6507 16146,6509 16142,6510 16142,6510 16143,6512 16143,6514 16146,6517 16148,6522 16143,6525 16143,6530 16143,6534 16146,6531 16144,8490 16106,8490 16106,8492 16109,8489 16110,8491 16106,8487 16109,8488 16104,8490 17104,8495 17108,8490 17109,8493 17108,8498 17111,8500 17111,8500 17109,8501 17113,8506 17118,8506 17118,8506 17123,4506 17125,4511 17123,4516 17126,4514 17125,4519 17124,4520 17126,4525 17129,4530 17124,4526 17124,4528 17124,4533 17127,4535 17127,4531 16127,4531 16124,4534 16124,4538 16125,2538 16130,2539 16131,2544 16133,2544 16129,2540 16129,2545 16129,2550 16126,7550 16126,7555 16128,7559 16124,7559 16129,7560 16132,7561 16128,7566 16132,9566 16136,9568 16136,9573 16141,9570 16144,9571 16146,9573 16150,9577 16153,9581 16148,9579 16153,9584 16157,9586 16160,9581 16162,9578 16165,10578 16162,10579 16163,10574 18163,10570 18164,10568 18164,10570 18169,10572 18170,10575 18170,10575 18175,10579 18176,10580 18176,10585 18176,10581 20176,10586 20178,10587 20178,10585 20179,10585 20177,10581 20178,10584 20183,10586 20187,10590 20187,10591 20190,10587 20188,10591 20187,10591 20192,10592 20191,10597 20195,10602 20194,10602 20195,10607 20197,10607 20198,13607 20201,13607 20200,13607 20204,13604 20204,13605 20209,13607 20209,13612 20214,13615 20218,13615 20218,13619 20220,13624 20224,13628 20219,18628 20216,18630 20213,18635 20213,18632 20211,18629 20211,18632 20215,18632 20216,18632 20217,18632 20217,18627 20214,18630 20209,18633 20212,18636 20212,18638 20217,18643 20222,22643 20219,22643 20219,22644 20219,22644 20214,22645 20216,22645 21216,22646 21220,22642 21224,22642 21221,22641 21224,22638 21229,22641 21232,22642 21235,22643 21238,22644 21236,22649 21237,22704 18411,22704 18412,22699 18412,22696 18416,22701 18412,22703 18416,22698 18416,22693 18418,22695 18422,22698 18422,22700 18426,22705 18427,22706 18427,22708 18432,22708 18432,22704 18431,22709 18427,22709 18432,22709 18436,22713 21436,22718 21438,22719 21437,22721 21440,22725 21443,22727 21445,22724 21450,22724 21451,22727 21453,22730 21453,22730 21458,22734 21460,22738 21464,20738 21464,20742 21465,22742 21465,22741 21464,22736 21464,22738 21464,22742 21460,22742 21460,22744 21458,22743 21458,22741 21455,22741 21460,22739 21456,22739 21458,22734 23458,22732 23458,22733 23463,22731 23467,22731 23469,22736 23472,22739 23472,22742 23471,22744 23471,24744 23466,24744 23468,24739 23471,24742 23474,24747 23478,24747 23481,24747 23483,24747 23486,24751 25486,24753 25489,24758 25493,24762 25497,24764 25499,24769 25496,24773 25498,24777 25499,24779 25503,24782 25500,24782 25498,24777 25498,24779 25495,24775 25495,24776 25495,24777 25495,24781 25500,24778 25503,24778 25499,24780 25500,24777 22500,24775 22505,24777 22505,24777 22501,24778 22502,24778 22505,24774 22509,24776 22509,24776 22509,24781 22509,24784 22511,24780 22513,24780 22514,24783 22515,24786 22520,24786 22520,24791 22518,24788 22517,24791 22522,24794 22525,24791 22524,24791 22528,24789 22530,24794 22530,24799 22525,24795 22524,24798 22520,24796 22516,24801 22511,24803 22516,24804 22521,24804 22526,24806 22524,24805 22524,24809 22529,24810 22531,24813 22536,24817 22536,24815 22535,24810 22530,24815 22530,24816 22530,24818 22531,24818 22531,24818 22533,24822 22533,24820 22530,24816 22529,24820 22532,24822 22533,24822 27533,24823 27536,24826 27540,24829 27541,24832 27546,24833 27549,24832 27553,24833 27552,24833 27551,24836 27551,24839 27554,24841 27554,24841 27556,24842 27559,24847 27557,24847 27562,24842 27566,24840 27564,24842 27568,24844 27563,25844 27565,25847 27569,25848 27564,25851 27561,25855 27559,25856 27556,25852 27556,25857 27561,25857 27564,25858 27564,25863 27567,25868 27567,25871 27564,25872 27565,25875 27570,25877 27573,25878 27575,25879 27574,25884 27579,25887 27577,25886 27579,25882 27582,25882 27578,25882 27582,25884 27578,25887 27583,25891 27584,25895 27582,25895 27582,25898 27583,25900 27580,11433 8033,11435 8037,11439 8040,11444 8044,11439 8048,11441 8045,11446 8044,11446 8039,11451 8038,11451 8043,11450 8046,11451 8046,11447 8049,11443 8052,11445 8057,11441 8058,11439 8060,11444 8056,11445 8053,11448 8053,11450 8049,11455 8044,11453 8042,11454 8044,11451 8049,11453 8049,11458 8052,11459 8055,11457 8053,11460 8053,11461 8055,11465 9055,11466 9056,12466 9058,12467 9054,12472 4054,12467 4056,12467 4059,12470 4058,12468 4060,14468 4064,14467 4063,14471 4060,14473 4062,14471 4067,14468 4072,14471 4076,14466 4077,14467 4074,14472 4075,14472 4080,14476 4085,14476 4090,14481 4090,14485 4091,14490 4095,14493 4095,14495 4100,14492 4100,14497 4102,14499 4100,14501 4101,14500 4106,14500 4107,14496 4108,14495 4110,14494 7110,33625 38305,38625 38310,38625 38315,38623 38318,38625 38317,38629 38318,38632 38313,38634 38313,38639 38314,38640 38317,38644 38320,38649 38321,38647 38317,38647 38322,38643 38324,38640 38319,38645 38319,38646 38319,38645 38316,38644 38318,38646 38319,38644 38324,38647 38328,38652 38325,38649 38328,38651 38332,40651 43332,40651 43335,40655 43335,40652 43339,40652 43339,40654 43336,40654 43337,40657 43333,40656 43335,40656 43338,40656 43343,40656 43341,40659 43346,45659 43348,45664 43350,45666 43346,45665 43351,45669 43355,45673 43355,45674 43359,50674 43360,50678 43363,50678 43364,50679 43367,50682 43371,50687 43374,50690 43374,50690 43377,50693 43377,50698 43382,50693 43386,50689 43386,50692 43390,50695 43392,50699 43392,50704 43397,50707 43395,50711 43391,50706 43393,50709 43393,50711 43395,50710 43397,50714 43394,50718 43394,50715 43394,50717 43399,50722 43403,50724 43407,50728 43407,50730 43408,47730 43403,47730 43404,47733 43408,47737 43409,47735 43414,47738 43416,47741 43416,47744 43421,47743 43422,47748 43424,47753 43419,47754 43420,47749 43419,52749 43423,52751 43421,52753 43421,52750 43426,52752 43428,52748 43430,52748 43426,52747 43431,52744 43431,52748 43435,52748 43435,52750 45435,52753 45440,52753 45440,52757 45442,52761 45447,52758 45447,52761 45447,52761 45452,52758 45454,52758 45455,52758 45456,52761 45460,52759 45458,52755 45463,52759 45464,52756 45461,52756 45462,52758 45467,52760 45470,52759 45469,52762 45473,52762 45474,15617 20233,15612 20238,15611 20242,15613 20237,15617 20238,15618 20239,15621 20236,15623 20240,15622 20240,15622 20245,15623 20244,15628 20242,15628 20247,15625 20246,15628 20250,15630 24250,15632 24251,15634 24253,15629 24252,15633 24250,15629 24250,15633 24248,15629 24248,15634 24248,15636 24253,15640 24253,15643 24257,15639 24254,15642 24257,15643 26257,15648 26255,15643 26256,15641 26258,15646 26262,15646 26263,15651 26263,15648 26267,15653 27267,15656 27270,15660 27272,15662 29272,15658 29276,15658 29277,15658 29272,15663 29274,15663 29274,17663 29274,17663 29279,17668 29283,17671 29285,17670 29287,17675 29289,17676 29293,17679 29296,17682 29297,17685 29299,17686 29300,17687 29305,17685 33305,17686 33310,17687 33310,17689 33306,17687 34306,17691 34304,17694 34306,17696 34306,17695 34309,17691 34314,17691 34311,17692 34306,17696 34310,17700 34310,17697 34312,17699 34316,17704 34318,17701 34318,17705 34322,17704 34321,17706 34319,17706 34319,17702 34316,17707 37316,17710 37318,19710 37313,19705 37313,19708 37308,19712 37310,19710 37312,19711 37307,19711 37307,19714 37310,19718 37312,19719 37309,19723 37312,19727 37315,19729 37317,19731 37322,19734 37323,19735 37324,19737 37322,19742 37326,19740 37331,19745 37335,19742 37335,19742 37340,19745 37341,19749 37341,19749 37342,19752 37347,19757 37347,19762 37345,19764 37341,19768 37345,19769 37350,19771 37355,19773 33355,19770 33360,19765 33364,19769 33364,19773 33365,22773 33364,22771 33360,22775 38360,22779 38364,22780 38369,22782 38371,22784 38371,22789 40371,22792 40375,22789 40375,22789 40377,22793 40376,23793 40378,23795 41378,23791 41378,23792 41378,23796 41382,23798 41383,22798 41386,22799 41390,22804 41390,22804 41391,22808 41391,22812 41393,22814 39393,22819 39393,22821 39395,22823 39397,22828 36397,22832 36392,22832 36393,22836 36396,22836 36401,22838 36402,19838 36403,19837 36408,19841 36408,19843 36409,19845 36404,19847 36405,19847 36408,19847 36411,19848 36413,19850 36415,19845 36419,19841 36417,19843 36419,19843 36419,19846 36424,19848 36425,19850 36425,19845 36425,19846 36425,19848 36430,19852 36430,19849 36435,19846 36440,19851 36440,19846 36438,19848 36439,19844 36442,19845 36446,19841 36448,19841 36449,19841 38449,19841 38452,19846 38455,19848 38458,19852 42458,19856 42462,19859 42463,19859 42465,19861 42462,19862 42463,19864 42463,19867 42467,19870 42470,19871 42468,21871 42467,26871 42464,26867 42466,26872 42463,26872 42464,26874 42463,26879 42466,26882 42466,26883 42471,26879 42476,26878 42477,27878 42479,27882 42479,27883 42480,27886 42483,27887 42487,27885 42484,27887 42483,27890 42484,27890 42485,22890 42486,22890 42489,22890 42491,22895 42494,22897 42498,22899 42502,22901 42502,22896 42503,22892 42498,22896 42498,22891 42502,22892 42505,22897 42507,22898 42511,22903 42515,22906 42510,22911 42513,17911 42508,17915 42512,17918 42509,17913 44509,17915 44514,17919 44510,17923 44514,17927 44510,17927 44513,17927 44517,17928 44521,21928 44517,21930 44516,21931 44513,21929 44513,21933 44517,21934 44519,21933 44520,21934 44520,21937 44520,21938 44520,21943 44520,21938 44523,21940 44527,21936 44532,21941 44536,21942 44541,21937 44545,21938 44545,21938 44545,21940 44543,21937 44538,21941 44543,21938 44547,21938 44547,21938 44547,21937 44551,21937 44551,21933 44556,21935 44554,21937 44558,21940 44562,21944 44564,21949 44561,21952 44566,21955 44568,21960 44569,21963 44571,21963 44571,21965 44574,25965 44579,25967 44584,25967 44584,25970 44588,22970 41588,22970 41586,22975 41585,22974 41589,22970 41593,22966 41598,22965 41598,22970 41598,22965 41601,22965 41604,22965 46604,22968 46604,27968 46602,27968 46602,25968 46601,25967 45601,25968 45602,25971 45607,25975 45610,25979 45614,25977 45612,25975 45609,26975 45609,26980 46609,26979 46613,26982 46610,26982 46611,26980 46615,26982 46616,26985 46616,26986 46617,26987 46615,30987 46617,30987 46622,30986 46626,30988 46629,30989 46627,17671 29285,17673 26285,17677 26286,17678 26285,17681 26289,15681 26292,15685 26297,10685 26297,10689 26301,10689 26297,10693 26300,10695 26301,10691 26297,10696 26299,10696 26304,10692 26306,10688 26301,10690 26302,10690 26307,10686 26305,10684 26309,10686 26312,10691 26313,10688 26318,10683 26320,10684 26325,10683 26328,14683 26328,14680 21328,14681 21331,14683 21335,14680 21333,14677 21333,14682 25333,14684 25334,14689 25338,14693 25338,14698 25341,14696 25342,18696 25343,20696 25345,20699 25349,20702 25346,20703 25351,20703 25351,20704 25351,20704 25354,20700 26354,20705 26352,20706 26351,20706 26351,20703 26354,20708 26354,20712 26355,20712 26352,20717 26349,20717 26346,20722 26351,20727 26353,20729 26348,20734 26353,24734 26349,24729 26349,24729 26352,24725 26349,24725 26353,24726 26353,24729 26355,24729 26357,24732 26359,24735 26362,24735 26364,24730 26364,24730 26363,24734 26365,24739 26368,24739 26364,24739 26366,24739 26367,24734 26370,24735 26365,24732 26367,24732 26369,24729 26372,24728 26370,24726 26365,24728 26368,24731 26370,24734 26375,24738 26378,24733 26378,24733 26381,24729 26381,13496 17147,13491 17152,13495 17148,13496 17146,13498 17141,13498 17145,13501 17147,13502 17149,13502 17153,13505 17149,13505 17152,13500 17149,13496 20149,13492 20150,13497 20155,8497 20151,8501 20153,8502 20156,8506 20159,8503 20159,12503 19159,12503 19159,12505 19164,12500 19159,12500 19164,12500 15164,12503 15169,12508 15168,12511 15170,12514 15170,12510 15169,12512 15172,12512 15172,12515 15172,12519 15175,12522 15176,12525 15180,12528 15184,23912 53663,23915 53661,28915 53666,28914 53667,28918 53664,28921 53667,28922 53667,28924 53670,28925 53674,28926 53674,28927 53672,28922 53676,28924 53677,28927 53678,28932 56678,28934 56682,28935 56683,28936 56688,28938 56688,28934 56691,28938 56693,28942 56690,28939 56694,28939 56698,28942 56695,28946 56698,28950 56701,28953 56706,28954 56706,28949 56708,28950 56708,28953 56709,28958 56706,28960 56709,28965 56707,28965 56707,28965 56705,28963 56709,28966 59709,28969 59710,28973 59711,28977 59715,28977 59717,28982 59719,28981 59715,28985 59718,28986 59718,33986 59721,35986 59723,35990 59723,35990 61723,35993 61726,35995 61728,35998 61724,36000 61721,36004 61723,36002 61718,36007 61718,36010 61719,36010 61721,36010 61721,36010 61721,36015 61721,36018 61716,36022 61717,36024 61718,36025 61723,36029 61722,36031 61726,36035 61722,36040 62722,36042 62722,36044 62722,36049 62724,36051 62720,36053 62723,36052 62719,36055 62717,36056 62712,36059 62714,36058 67714,36059 67716,40059 67716,40063 67719,40067 67722,40069 67726,40065 67724,40067 67721,40067 67722,40071 67721,40075 67726,37075 67730,37076 67733,37076 67736,37072 67741,37072 67741,37072 67744,37076 67744,37079 67745,37081 67750,37082 67750,37082 67753,37082 67753,37083 67752,37081 67753,37084 67753,37087 67757,37087 67758,37083 67753,37084 67758,37084 67761,37088 67759,37091 67762,37088 67762,37090 67767,37090 72767,37090 72771,37085 72771,37089 72774,38089 71774,38090 71771,38086 71771,38086 71774,38086 71777,38089 71782,38089 71782,38087 71780,38092 71782,38087 71785,38083 71783,38081 71781,38078 71781,38078 71783,38076 71786,38075 71787,38078 71783,38079 71781,38081 71781,41081 71783,41081 71778,41082 71778,41085 71783,41085 71783,41088 71785,41083 71789,41083 71794,41088 71796,41088 71796,41092 71798,41095 71794,41095 71789,41098 71790,41093 71790,41091 71795,41092 71796,41087 71798,41084 71796,41086 71797,41084 71799,41084 71795,41086 71798,41085 71799,41089 71803,41085 71804,41083 71802,41083 71803,41079 71803,41081 71808,41081 71809,41083 71810,41083 71809,41085 71810,41082 71814,41087 71817,41089 71818,41086 71813,41083 71813,39083 71816,39083 71814,39085 71814,39083 71814,39086 71818,39087 71820,39087 71824,39091 71826,39096 71829,39098 74829,39102 74830,39107 74833,39110 74836,39115 74835,39115 74836,39115 74838,39115 74835,39119 74838,39117 74840,39121 74840,39125 74843,39121 74848,39122 77848,39122 77844,39123 77848,39126 77851,39131 77855,39136 77857,39132 77857,39135 78857,39135 78859,39136 78864,39133 78865,39135 78866,39139 79866,39142 79870,39147 79872,39146 79872,39150 79876,39150 78876,39154 78879,39154 75879,39154 75881,39158 75881,39157 75884,39160 75884,39155 75884,39160 75889,39156 75891,39158 75888,39163 75891,39163 75894,39166 75891,39166 75895,39167 75900,39170 75901,39170 75906,35170 75907,35171 75911,35176 75906,35172 75908,35173 75908,35178 75908,35175 75909,35170 75908,35170 75903,35168 75904,35173 75906,35178 75903,35179 75904,35179 75908,35182 75905,35184 71905,35188 71902,35185 71904,35186 71907,35187 71908,35189 71903,35191 71905,35195 71900,35197 71904,35198 71909,35200 71907,35199 71903,35201 71900,40201 71896,25028 55790,25029 55785,28029 55789,28031 55790,28032 55790,28037 55794,28042 55793,28043 55798,28046 55803,30046 55803,30051 55806,30050 55810,30049 55810,30049 55812,30049 55816,30054 55820,2545 16129,2540 16133,2542 16137,2542 16139,2544 16138,2545 16139,7545 16136,7546 16139,7541 16142,7542 16142,7543 20142,7547 20143,11547 20143,11550 20139,11555 20139,11556 20137,11552 20142,11555 24142,11556 24145,11559 24140,11563 24143,11567 24139,16567 24136,16567 24139,16572 24142,16573 24147,14573 24143,14574 24147,14570 24145,14573 24150,14569 24150,14570 24145,14573 24149,14575 24150,14575 24154,14579 24149,14579 24153,14576 24157,14576 24152,14571 24149,14571 24152,14575 24150,14572 24151,15572 24153,15575 24149,15577 24154,15582 24151,15582 24153,15586 24156,15587 24152,15588 24157,15590 24162,15590 24166,15590 24166,20590 24166,17590 24169,17595 24171,17597 24172,17599 24172,17595 24174,17599 24178,17599 24181,18599 24184,18594 24187,18597 24187,18593 24189,18597 24192,18601 24192,18599 24197,18599 24197,18603 24200,18605 24204,18600 24205,18605 24201,18605 24197,18610 24202,18608 24205,18611 24204,18613 24208,18617 24203,22617 24205,22619 29205,22622 31205,22622 31209,22623 31214,22624 31212,22627 31214,22623 31214,22626 31215,22629 31214,22633 31218,22631 31221,22630 31223,22632 31227,21937 44551,21935 44555,21939 44551,21934 44553,21936 44554,21933 44556,21935 44552,21935 44553,21939 44548,21939 44551,21939 44551,21938 44555,21938 44558,21938 44559,21941 44559,21945 44558,19945 44562,19942 44560,19943 44561,19939 44565,19940 44561,19939 44556,19935 44557,9770 19466,9773 19471,9775 19471,9770 19471,9770 19468,9770 19467,9772 19466,9772 19468,9774 19469,9775 19472,12775 19470,12773 19466,12773 19467,12773 19464,12773 19466,12776 19461,12779 19461,12779 19465,12780 19465,12782 19460,12781 19458,12776 19461,12776 19461,12777 19463,12778 19466,12776 19466,12780 19463,12780 19466,12785 19468,12789 19473,12788 19477,12793 19475,12798 19480,12802 19482,12803 24482,12802 24484,16802 24486,16806 28486,16808 28486,16812 28490,16812 28494,16815 28498,16816 28498,16818 28502,16818 28504,16819 28509,19819 28513,19819 28510,19821 28515,19816 28510,19811 28510,19811 28511,19809 28511,19810 28510,19813 28515,22813 28510,22818 28514,22818 28515,22815 28516,22818 28514,22819 28514)',')')) where i = 1; +rollback; + +check table t1; + +drop table t1; + +--disable_warnings +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; +--enable_warnings + +# Test partial update rollback. +create table t1(i int primary key, +a geometry not null, b geometry not null, +c int, +spatial index(a),key(a(25)),key(b(25)), +unique key (c), +spatial index(b))engine=innodb; + +insert into t1 values(0, point(0,0), point(0,0), 0); +insert into t1 values(1, point(1,1), point(1,1), 1); +insert into t1 values(2, point(2,2), point(2,2), 2); +insert into t1 values(3, point(3,3), point(3,3), 3); +insert into t1 values(4, point(4,4), point(4,4), 4); + +start transaction; +# It's a partial update, hit dup key error, rollback. +--error ER_DUP_ENTRY +update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3; +rollback; + +# Test partial update rollback after recovered. +# Crash the server in partial update. +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +set session debug="+d,row_mysql_crash_if_error"; +--error 2013 +update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3; + +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect + +insert into t1 values(5, point(5,5), point(5,5), 5); + +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/row_format.test b/mysql-test/suite/innodb_gis/t/row_format.test new file mode 100644 index 00000000000..2f588c95996 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/row_format.test @@ -0,0 +1,34 @@ +--source include/not_embedded.inc +--source include/have_innodb.inc +--source include/have_innodb_zip.inc + +# Test the redundant format +LET $file_per_table='off'; +LET $file_format='Antelope'; +LET $row_format=REDUNDANT; + +--source include/innodb_gis_row_format_basic.inc + + +# Test the compressed format +LET $file_per_table='on'; +LET $file_format='Barracuda'; +LET $row_format=COMPRESSED; + +--source include/innodb_gis_row_format_basic.inc + + +# Test the dynamic format +LET $file_per_table='on'; +LET $file_format='Barracuda'; +LET $row_format=DYNAMIC; + +--source include/innodb_gis_row_format_basic.inc + +# Test the compact format +LET $file_per_table='off'; +LET $file_format='Antelope'; +LET $row_format=COMPACT; + +--source include/innodb_gis_row_format_basic.inc + diff --git a/mysql-test/suite/innodb_gis/t/rtree_compress.test b/mysql-test/suite/innodb_gis/t/rtree_compress.test new file mode 100644 index 00000000000..946a336a4d0 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_compress.test @@ -0,0 +1,64 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/have_innodb_zip.inc +--source include/have_debug.inc +--source include/big_test.inc +# Valgrind takes too much time on PB2 even in the --big-test runs. +--source include/not_valgrind.inc + +# Create table with R-tree index. +SET GLOBAL innodb_file_per_table=1; + +#Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; + +# Insert enough values to let R-tree split. +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +start transaction; +insert into t1 select * from t1; +select count(*) from t1; +rollback; + +check table t1; + +select count(*) from t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; +delete from t1; +SET DEBUG='-d,page_copy_rec_list_start_compress_fail'; + + +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +# Clean up. +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_compress2.test b/mysql-test/suite/innodb_gis/t/rtree_compress2.test new file mode 100644 index 00000000000..a83701416ac --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_compress2.test @@ -0,0 +1,58 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree multi level split. + +# Restarting is not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/have_innodb_zip.inc +--source include/big_test.inc +# Valgrind takes too much time on PB2 even in the --big-test runs. +--source include/not_valgrind.inc + +SET GLOBAL innodb_file_per_table=1; + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +# Test level 3 rtree. +CALL insert_t1(70000); +select count(*) from t1; + +# Check table. +check table t1; + +truncate table t1; + +# Test crash recovery. +# +# +call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); + +# Test rtree enlarge recovery. +START TRANSACTION; +CALL insert_t1(5000); +#select count(*) from t1; + +# Check table. +#check table t1; + +COMMIT; + +--source include/kill_and_restart_mysqld.inc + +# Clean up. +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_concurrent_srch.test b/mysql-test/suite/innodb_gis/t/rtree_concurrent_srch.test new file mode 100644 index 00000000000..ec6f496b5cc --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_concurrent_srch.test @@ -0,0 +1,451 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/big_test.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +insert into t1 select * from t1; +insert into t1 select * from t1; + +connect (a,localhost,root,,); +connection a; +SET SESSION debug="+d,rtr_pcur_move_to_next_return"; + +set session transaction isolation level serializable; +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +SET DEBUG_SYNC = 'RESET'; +SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead'; +--send select count(*) from t1 where MBRWithin(t1.c2, @g1); + +--echo # Establish session con1 (user=root) +connect (con1,localhost,root,,); +connection con1; +set session transaction isolation level serializable; + +SET DEBUG_SYNC = 'now WAIT_FOR started'; +insert into t1 select * from t1; +SET DEBUG_SYNC = 'now SIGNAL go_ahead'; + +connection a; +reap; +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +connection default; +insert into t1 select * from t1; +insert into t1 select * from t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set session transaction isolation level serializable; + +truncate t1; + +# Test on predicate locking +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +# Connection 'a' will place predicate lock on almost all pages +connection a; +set session transaction isolation level serializable; +select @@tx_isolation; +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); + +# The split will replicate locks across pages +connect (b,localhost,root,,); +connection b; +set session transaction isolation level serializable; +set session innodb_lock_wait_timeout = 1; + +select @@tx_isolation; + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +# FIXME: Put this back once we sort out the shrink business +#insert into t1 select * from t1; + +connection a; +commit; + +connection default; +select count(*) from t1; + +# Insert a record that would be in the search range +insert into t1 values (105, Point(105, 105)); + +# Connection 'a' will place predicate lock on almost all pages +connection a; +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); + +connection b; +select @@innodb_lock_wait_timeout; +select @@tx_isolation; + +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 select * from t1; +select count(*) from t1; + +connection a; +select sleep(2); +commit; + +#==================Test predicates on "MBRIntersects"========================== +connection default; +truncate t1; + +# Test on predicate locking +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +# Connection 'a' will place predicate lock on almost all pages +connection a; +set session transaction isolation level serializable; +select @@tx_isolation; +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); + +# The split will replicate locks across pages +connection b; +set session transaction isolation level serializable; +set session innodb_lock_wait_timeout = 1; + +select @@tx_isolation; + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +connection a; +commit; + +connection default; +select count(*) from t1; + +# Insert a record that would be in the search range +insert into t1 values (105, Point(105, 105)); + +# Connection 'a' will place predicate lock on almost all pages +connection a; +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +select count(*) from t1 where MBRIntersects(t1.c2, @g1); + +connection b; +select @@innodb_lock_wait_timeout; +select @@tx_isolation; + +# this should conflict with the "MBRIntersects" predicate lock in session "a" +--error ER_LOCK_WAIT_TIMEOUT +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 105, 200 105)')); +select count(*) from t1; + +connection a; +select sleep(2); +commit; + +#==================Test predicate lock on "delete"========================== +connection default; +truncate t1; + +# Test on predicate locking +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); + +# Connection default will place predicate lock on follow range +set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))'); +start transaction; +delete from t1 where MBRWithin(t1.c2, @g1); + +connection a; +set session innodb_lock_wait_timeout = 1; +select @@innodb_lock_wait_timeout; +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values(4, Point(4,4)); + +connection default; +rollback; + +#==================Test predicate lock on "select for update"================== +connection default; +truncate t1; + +# Test on predicate locking +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); + +# Connection default will place predicate lock on follow range +set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))'); +start transaction; +select count(*) from t1 where MBRWithin(t1.c2, @g1) for update; + +connection a; +set session innodb_lock_wait_timeout = 1; +select @@innodb_lock_wait_timeout; +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values(4, Point(4,4)); + +connection default; +rollback; +#==================Test predicates replicate through split ================= +connection default; +truncate t1; + +delimiter |; +create procedure insert_t1(IN start int, IN total int) +begin + declare i int default 1; + set i = start; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +CALL insert_t1(0, 1000); + +# Connection 'a' will place predicate lock on root and last leaf page +connection a; +set session transaction isolation level serializable; +select @@tx_isolation; +start transaction; +set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); + +# Connection 'b' will split the last leaf page, so the predicate +# lock should replicate +connection b; + +CALL insert_t1(1001, 2000); + +# This insert goes to the new page after split, it should be blocked +set session transaction isolation level serializable; +set session innodb_lock_wait_timeout = 1; +# Insert a record that would be in the search range +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values (1200, Point(950, 950)); + +connection a; +select sleep(2); +commit; + +connection a; +SET SESSION debug="-d,rtr_pcur_move_to_next_return"; +disconnect a; +--source include/wait_until_disconnected.inc + +connection b; +disconnect b; +--source include/wait_until_disconnected.inc + +# Clean up. +connection default; +drop table t1; + +drop procedure insert_t1; + +#============ Test row locks ======================= +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + + +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (2, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (2, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); + +connect (a,localhost,root,,); +connection a; +SET SESSION debug="+d,rtr_pcur_move_to_next_return"; + +set transaction isolation level serializable; +start transaction; +set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); + +connect (b,localhost,root,,); +connection b; + +# This should be successful +delete from t1 where c1 = 1; + +connection a; +commit; +set transaction isolation level serializable; +start transaction; +set @g1 = ST_GeomFromText('Polygon((0 0, 0 300, 300 300, 300 0, 0 0))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); + +connection b; + +set session innodb_lock_wait_timeout = 1; +--error ER_LOCK_WAIT_TIMEOUT +delete from t1 where c1 = 2; + +# Clean up. +connection a; +commit; + +connection default; +drop table t1; +SET DEBUG_SYNC= 'RESET'; + +# Test btr_discard_page adjust concurrent search path +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +start transaction; +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +insert into t1 select * from t1; + +select count(*) from t1; + +connection b; +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +set transaction isolation level read uncommitted; +SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb'; +send select count(*) from t1 where MBRWithin(t1.c2, @g1); + +connection default; +SET DEBUG_SYNC= 'now WAIT_FOR siga'; +rollback; +SET DEBUG_SYNC= 'now SIGNAL sigb'; + +connection b; +--reap +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +connection default; +DROP TABLE t1; +SET DEBUG_SYNC = 'RESET'; + +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +start transaction; + +CALL insert_t1(100); + +connection a; +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); +SET DEBUG_SYNC= 'rtr_pcur_move_to_next_return SIGNAL siga WAIT_FOR sigb'; +--send select count(*) from t1 where MBRWithin(t1.c2, @g1); + +connection default; +SET DEBUG_SYNC= 'now WAIT_FOR siga'; +rollback; + +SET DEBUG_SYNC= 'now SIGNAL sigb'; + +connection a; +--reap; + +connection default; +drop procedure insert_t1; +DROP TABLE t1; + +connection a; +SET SESSION debug="-d,rtr_pcur_move_to_next_return"; +disconnect a; +--source include/wait_until_disconnected.inc + +connection b; +disconnect b; +--source include/wait_until_disconnected.inc + +connection default; +SET DEBUG_SYNC = 'RESET'; diff --git a/mysql-test/suite/innodb_gis/t/rtree_create_inplace.test b/mysql-test/suite/innodb_gis/t/rtree_create_inplace.test new file mode 100644 index 00000000000..ef3f017197a --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_create_inplace.test @@ -0,0 +1,49 @@ +# This is to test create GIS index with algorithm=inplace. + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/no_valgrind_without_big.inc + +# Create table with geometry column +CREATE TABLE t1 (c1 INT, c2 GEOMETRY NOT NULL, c3 GEOMETRY NOT NULL) ENGINE=INNODB; + +# Insert enough values +INSERT INTO t1 VALUES(1, Point(1,1), ST_GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))')); +INSERT INTO t1 VALUES(2, Point(2,2), ST_GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))')); +INSERT INTO t1 VALUES(3, Point(3,3), ST_GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))')); +INSERT INTO t1 VALUES(4, Point(4,4), ST_GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))')); +INSERT INTO t1 VALUES(5, Point(5,5), ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); +INSERT INTO t1 VALUES(6, Point(6,6), ST_GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))')); +INSERT INTO t1 VALUES(7, Point(7,7), ST_GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))')); +INSERT INTO t1 VALUES(8, Point(8,8), ST_GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))')); +INSERT INTO t1 VALUES(9, Point(9,9), ST_GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); + +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; + +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; + +# create spatial index +CREATE SPATIAL INDEX idx ON t1(c2); + +SELECT COUNT(*) FROM t1; + +SET @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +SELECT COUNT(*) FROM t1 WHERE MBRWithin(t1.c2, @g1); + +SET @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +SELECT COUNT(*) FROM t1 WHERE MBRWithin(t1.c2, @g1); + +ALTER TABLE t1 DROP INDEX idx, ADD SPATIAL INDEX idx3(c2); + +SET SESSION debug="+d,row_merge_instrument_log_check_flush"; +ALTER TABLE t1 DROP INDEX idx3, ADD SPATIAL INDEX idx4(c2), ADD SPATIAL INDEX idx5(c3); + +# Clean up. +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_debug.test b/mysql-test/suite/innodb_gis/t/rtree_debug.test new file mode 100644 index 00000000000..3ba8ecc0655 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_debug.test @@ -0,0 +1,73 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree multi level split. + +--source include/have_innodb.inc +--source include/big_test.inc +--source include/not_valgrind.inc +--source include/have_debug.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values + (i, Point(i, i)), + (i + 1, Point(i + 1, i + 1)), + (i + 2, Point(i + 2, i + 2)), + (i + 3, Point(i + 3, i + 3)), + (i + 4, Point(i + 4, i + 4)), + (i + 5, Point(i + 5, i + 5)), + (i + 6, Point(i + 6, i + 6)), + (i + 7, Point(i + 7, i + 7)), + (i + 8, Point(i + 8, i + 8)), + (i + 9, Point(i + 9, i + 9)); + set i = i + 10; + end while; +end| +delimiter ;| + +# Test level 1 rtree. +CALL insert_t1(5000); +select count(*) from t1; + +# Check table. +check table t1; + +# Test level 2 rtree. +truncate table t1; +CALL insert_t1(10000); +select count(*) from t1; + +drop index c2 on t1; + +create spatial index idx on t1(c2); + +show create table t1; + +SET DEBUG='+d,row_merge_ins_spatial_fail'; +--error ER_GET_ERRNO +create spatial index idx2 on t1(c2); +SET DEBUG='-d,row_merge_ins_spatial_fail'; +show create table t1; + +# Check table. +check table t1; + +# Test level 3 rtree. +truncate table t1; +CALL insert_t1(100000); +select count(*) from t1; + +# Check table. +check table t1; + +truncate table t1; + +# Clean up. +drop procedure insert_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_drop_index.test b/mysql-test/suite/innodb_gis/t/rtree_drop_index.test new file mode 100644 index 00000000000..66dd4e41700 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_drop_index.test @@ -0,0 +1,25 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/not_embedded.inc + +--echo # +--echo # Bug #21899444 INNODB: ASSERT FAILURE (COL->ORD_PART) +--echo # IN DICT_COL_GET_SPATIAL_STATUS() + +set global innodb_purge_stop_now = on; +CREATE TABLE t1 ( + p INT NOT NULL AUTO_INCREMENT, + g LINESTRING NOT NULL, + PRIMARY KEY(p) +) ENGINE=InnoDB ROW_FORMAT=dynamic; + +ALTER TABLE t1 ADD INDEX`si`(g(500)); +INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 111,27 108,32 104,37 107,42 107,44 112,44 116,40 118,43 114,46 114,42 118,44 123,45 123,49 123,53 119,50 123,50 124,54 126,58 125,59 126,64 127,65 127,69 131,74 132,75 135,78 139,2078 141,2075 143,2077 143,2079 143,2084 143,2085 147,2090 -1853,2086 -1852,2086 -1856,2089 -1852,2093 -1850,2090 -1851,2090 -1852,2091 -1851,2092 -1850,2097 -1847,2102 -1848,2100 -1852,2100 -1852,7100 -1851,7103 -1850,7104 -1847,7109 -1842,65 127,67 131,66 131,61 132,61 133,62 137,65 1137,2065 1135,2061 1135,2064 1135,5064 1135,5066 1135,5070 1136,5070 1141,5071 1138,5074 1141,5075 1141,5074 1137,5076 1137,5071 1139,5066 1142,5065 2142,5068 2147,5073 2151,5069 2156,5071 2157,5072 2162,5074 2165,5069 2169,5072 2169,5076 2173,5074 2169,5078 2169,5076 2170,76 2175,74 2179,75 2184,80 2188,83 2190,87 2189,84 2193,87 2189,86 2190,87 2195,87 2200,87 1200,85 1202,86 1199,87 1200,87 1201,91 1206,92 1204,94 1204,98 1206,102 1208,105 1211,102 1216,105 1220,109 1224,110 1224,114 1225,117 1224,118 1229,117 1232,122 1237,123 1236,120 1235,124 1237,121 1236,122 1240,126 1244,127 1246,126 1249,125 5249,123 5251,127 5251,131 5251,135 5256,138 5257,135 5257,139 5257,138 5258,141 5260,146 5260,146 5260,143 10260,147 10265,151 10270,156 10266,157 10269,162 10273,166 12273,168 12274,163 12270,168 12275,170 12277,170 12277,-3830 12277,-3825 12277,-3824 12278,-3825 12276,-3825 12278,-3822 12277,-3825 12275,-3829 12278,-3828 12275,-3824 12280,-3827 12280,-3826 12282,-3822 12283,-3822 12286,-3820 12288,-3818 12289,-3816 12294,-3817 12297,-3819 12300,-3816 12297,-3813 12295,-3811 12299,-3811 12297,-3806 12298,-3806 12298,-3804 12301,-3801 12306,-3803 17306,-3803 17306,-3798 17306,-3803 17310,-3801 17314,-3798 17317,-3797 17317,-797 17321,-797 17323,-796 17325,-793 17326,-792 17322,-789 17327,-784 17331,-780 17335,-776 17339,-774 17339,-771 17342,-770 17345,-765 17348,-765 17349,-763 17353,-760 17350,-760 22350,-756 22346,-752 22349,-748 22352,-752 22348,-748 22347,-746 22345,-745 27345,-743 27346,257 27350,260 27349,261 27352,266 27348,266 22348,269 22347,271 22347,272 22347,273 22348,273 22352,278 22348,279 22344,282 22345,282 22342,283 22347,283 22347,288 22349,292 22347,292 22348,293 22348,298 22348,303 22351,306 22352,309 22352,308 22354,310 22356,311 22361,311 22358,311 22360,311 22360,315 22356,320 22358,325 22363,326 22366,321 22371,318 22373,318 22375,314 22375,316 22375,321 22376,321 22376,322 22372,32 104,36 109,40 114,40 113,40 117,44 119,49 123,49 126,49 129,53 133,50 137,50 139,49 137,48 138,43 138,42 139,46 142,46 138,41 139,45 141,4045 5141,4045 5146,4042 5147,4043 10147,4041 10150,4042 10152,4045 10152,4041 10156,4041 10152,4041 10152,4046 10153,4049 10156,4046 10155,4051 10157,4055 10159,4055 10160,4056 10161,4055 10166,4054 10169,4054 10172,4054 15172,4051 15176,4047 15177,4049 15174,4047 15176,4047 15176,4046 15177,4046 15180,4043 15184,4043 15187,4038 15190,4040 15194,4040 15199,4045 15196,4047 15197,4050 15200,4050 15204,4050 15208,4047 15212,4047 15215,4049 15216,4046 15218,4042 15223,4042 15228,4042 15232,4047 15235,4050 15236,4050 15239,4051 15243,4053 15243,4050 17243,4052 17243,4052 18243,4057 18247,4061 18249,4064 18249,4067 20249,4067 20250,4067 20255,4066 20259,4066 20259,4067 20255,4069 20256,4071 20258,4072 20254,4067 20257,4067 20260,4069 20265,4065 20267,4069 20266,4070 20267,4071 20264,4074 20259,4070 20264,4073 20260,4074 20263,4077 20268,4082 20271,4084 20273,4084 20277,4081 18277,4085 18279,4086 18276,4087 18273,4087 18275,4092 18277,4093 18279,4093 18280,4095 18280,4091 18283,4092 18281,4094 18283,4090 18287,4094 18287,138 5257,138 5255,138 5258,-1862 5254,-1860 5256,-1856 5258,-1851 5255,-1850 5260,-1847 5260,-1847 5263,-1847 5258,-1850 5257,-1850 5259,-1851 5257,-1855 5258,-1853 5261,-1849 5261,-1849 5258,-1849 5259,-1845 5264,-1847 5264,-1850 5268,-1852 5266,-1853 5270,-1856 5265,-1852 5262,-1847 5263,-1842 5263,-1842 5260,-1842 5265,-1841 5265,-1844 5265,-1842 5270,-1837 5274,-1838 5279,-1843 5275,-1842 5280,-1838 5281,-1838 5285,-1833 5285,-1828 5288,-1824 5289,-1828 5291,-1831 5291,-1826 5291,-1830 5293,-1826 5296,-1822 5301,-1826 5302,-1826 5302,-1826 5302,-1825 5297,-1820 5299,-1816 5303,-1816 5299,-3811 12299,-3809 12302,-3806 12302,-3806 12302,-3803 12304,-3798 12304,-3797 12304,-3793 12306,-3788 12306,-3783 12309,-3816 12294,-3811 12299,-3809 12297,7100 -1851,7098 -1854,7102 -1854,7107 -1856,7107 -1858,7110 -1854,7110 -1851,7113 -1851,7115 -1851,7120 -1851,7123 -1847,7124 -1852,7125 -1852,7127 -1852,7131 -1852,7129 1148,7129 1145,7133 1150,7137 1148,7138 1147,7143 1149,7147 1154,8147 1155,8152 3155,8147 3157,8143 3158,8144 3160,8144 3164,11144 3167,11146 3167,11148 3163,11152 3161,11148 3159,11149 3163,11150 3161,11151 3166,11154 3171,11154 3170,8144 3160,8144 3163,8144 3166,8145 3166,8146 3171,8146 3174,8144 3174,8144 3174,8145 3176,8141 3180,3141 3182,7141 3183,7141 7183,7136 7185,7136 7185,7133 7187,7136 7187,7131 7190,7136 7194,7137 7197,7141 7196,7139 7199,12139 7200,12143 7200,12143 7199,12144 7203,12145 7200,12141 7200,12136 7195,12136 7191,12137 7191,12137 7196,12139 7197,12140 7197,12137 7201,12140 7204,12140 7209,12143 7209,12145 7210,12147 7214,12148 9214,12152 9218,12149 9218,12149 9221,12149 9220,12150 9222,12153 10222,12153 10226,12156 10227,12159 10223,12160 10220,12161 10225,12161 10227,12163 10224,12163 10223,12158 10224,12158 10227,12158 10231,12155 12231,12157 12226,7136 7185,7139 7189,7139 7189,7139 7188,7137 7191,7139 7191,7140 7189,7143 7191,7144 7189,7144 7190,7149 7193,7152 7194,7154 7198,7153 7203,7148 7207,12148 7209,12146 7209,12145 7213,12140 7217,12139 7219,12141 7219,12138 7218,12143 7218,13143 7220,13140 7224,13142 7228,13137 7231,13142 7235,13146 7239,13149 7243,13148 7247,13150 7248,13155 7249,13155 7253,13155 7253,13155 7258,13157 7260,13162 7255,13159 7255,13163 7258,13164 7258,13164 7263,13167 7264,13167 8264,13165 8265,13169 8265,13171 13265,13175 13261,13176 13259,13176 13259,13180 13262,13181 13262,13183 13262,13188 13265,13191 13267,13191 13265,13194 13267,13191 13269,13192 13264,13196 13269,13198 13272,13200 13272,13202 13270,13207 11270,13211 11270,13211 11273,13213 11274,13217 11275,13222 11276,13222 11272,13226 11274,13231 11277,13233 11282,13236 11284,13238 11284,13236 11286,13236 11288,13236 11283,13236 11284,13238 11289,13241 11292,13244 11292,13245 11289,13241 11294,13244 11298,13249 11301,320 22358,324 24358,328 24358,327 24363,326 24359,327 24361,329 24365,334 24367,-666 24367,-670 24368,49 123,46 127,46 129,49 131,49 136,47 135,45 138,3045 135,3042 138,3044 139,3044 144,3049 144,3053 142,3055 137,3058 136,3053 139,3048 142,7048 138,7048 3138,7048 3139,7048 3140,7050 3145,7053 1145,7050 1146,7053 5146,7048 5150,7047 5146,10047 5147,10043 5147,10047 5147,10050 5152,10052 5155,10054 5156,10056 5157,10056 5159,10058 5162,10062 5164,10062 5169,10066 9169,10068 9168,10063 9164,10063 9169,10061 9171,14061 9172,14061 9174,282 22342,287 22347,288 22347,288 22343,285 22339,280 22338,278 22341,279 25341,284 25343,13241 11294,13246 11296,13243 11296,13244 11291,13245 11291,13244 11291,13246 11295,13251 11300,13253 11305,13253 11306,13258 11305,13255 11306,13256 11309,13256 11311,13261 11307,13265 11303,13267 11305,13270 11301,13275 11298,13271 11300,15271 11302,15276 11306,15279 11303,15284 11305,15286 11305,15289 11307,15290 11302,15292 11305,15296 11309,15297 11313,15298 11316,15300 11317,15304 11320,15306 11324,15306 11320,15307 11320,15312 11320,15313 11319,15317 11317,15315 11321,15317 11323,15317 11328,15319 11333,15322 11336,15322 11337,15322 11337,15324 11341,15324 11345,15325 14345,15328 13345,17328 13346,17333 13349,17337 13354,17338 13358,17342 13358,17346 13353,17348 13353,17345 13353,17348 13354,17347 13354,17347 13354,17347 13355,22347 13358,22349 13355,22351 13355,22356 13354,22358 13354,22361 13355,22362 13355,22358 13355,22359 13359,22364 13364,22369 13369,22372 13373,22376 13371,22377 13371,22377 13369,22381 13374,22386 13379,22387 13376,22387 13380,22392 13378,22390 13374,22392 13378,22391 13378,22391 13375,22392 13378,22390 13380,22393 13382,22398 13387,22398 10387,22402 10391,22399 10392,22400 10392,22400 10394,22404 10391,22403 15391,22405 15392,22407 15392,22412 15387,22412 15390,22412 15394,22408 15396,26408 15398,26407 20398,26411 20402,26415 20406,26417 20411,26420 20407,26422 20407,31422 16407,31421 16405,31421 16410,31423 16410,31426 16414,31426 16410,31430 16415,31430 16418,31435 16419,31437 16420,31438 16422,31438 16425,31438 16425,31441 16427,31439 16431,31441 16436,36441 16436,36443 18436,36442 18437,36440 18440,36440 18436,36440 18440,36442 18445,36443 18446,36447 18451,37447 23451,37452 23456,37456 23455,37458 23459,37456 23461,37458 23463,37460 23466,37464 23469,37460 23474,37462 23476,37461 26476,37466 26479,37470 26483,37471 26488,37474 26489,37474 26485,37474 26483,37474 26488,37470 26492,37474 26497,37474 26499,37478 26495,37483 26499,37483 26501,37488 26496,37491 26499,37495 26495,37500 26496,37500 26497,37500 26501,37497 26499,37497 26499,37495 26504,37498 26504,37494 26509,37497 26514,37495 26515,37498 26514,37503 26514,37508 26512,37510 26516,37511 26519,37509 26523,37506 26528,37507 26532,37512 26536,37513 26538,37510 26542,37512 26544,37517 26543,37522 26546,37527 26551,37525 26555,37529 26558,37524 26563,37524 26562,37527 26562,37522 26562,37522 26559,37526 26561,37522 26559,37523 26561,37523 26556,37524 26558,40524 26560,40524 26563,40521 26567,40525 26566,40527 26568,40532 26572,40534 26569,40533 26565,40531 26565,40535 26569,40535 26570,40539 26572,40544 26575,40543 26575,40544 26579,40548 26584,40549 26581,40553 26585,40556 26590,40552 22590,40557 22594,40556 22595,40561 22592,40561 22593,40565 22593,40568 22593,40573 22588,40570 22590,40570 22591,40570 22588,40573 22590,40573 22593,40568 22593,40567 22597,40567 22599,40571 22599,40574 22600,40574 22604,42574 22607,42577 22607,42577 22612,42579 22616,38579 22619,38580 22617,38580 22614,38575 22619,38579 22619,38579 18619,38582 18614,38582 18617,38586 18622,38590 18625,38590 18622,38594 18621,38596 18616,38597 18614,38597 18618,38600 21618,38601 21618,38605 21620,38607 25620,38611 25620,38608 25617,38608 25621,38608 25625,38611 25623,38615 25623,38615 25620,38616 25622,38619 25624,38620 25625,38620 26625,38623 26627,38623 26627,311 22358,311 22359,-1689 22360,2311 27360,2312 27360,2312 27360,2317 27362,2317 27362,2319 27359,2319 27364,2318 27359,2321 27364,2326 27367,2325 27371,2326 27373,2326 27373,2325 27377,2329 27377,2327 27377,2330 27379,2333 27379,2331 27379,2331 27381,2336 27381,6336 27382,6336 27383,40527 26568,40531 26572,40533 26574,40538 26576,40533 26580,40538 26585,40539 26588,40536 26583,40540 26587,40539 26588,40535 26593,40540 26594,40544 26597,40548 26602,40548 26601,40549 26602,40547 26602,40548 26603,40553 26606,40548 26606,40548 26603,40551 26608,40556 26612,40559 26616,40554 26619,40556 26619,40556 26623,42556 26623,42556 26624,42560 26624,42562 26626,42563 26630,42564 26630,42564 26634,42559 26635,42562 26635,42565 26637,42562 26638,42564 26642,42564 26641,42568 26641,42572 26641,42572 29641,42574 29642,39574 29641,39574 34641,39576 34643,39581 34638,39578 34638,39574 34642,39574 34645,39572 35645,34572 35648,34577 35651,39577 35655,43577 35659,43580 35655,43575 35658,43578 35658,43581 35662,43577 39662,43572 39658,43572 39661,43572 39664,43572 39666,43576 39670,43577 39667,43580 39671,43576 39673,43573 39673,43574 39677,43569 39679,43567 39679,43568 39683,43563 39686,43566 39690,43566 39692,43568 39694,43568 39695,41568 39691,41570 39692,41571 39692,41571 39693,41571 39698,41571 39698,41574 39698,41569 39698,41570 39699,41570 39704,41572 39709,41573 39712,41578 39713,41579 39717,41584 39719,41585 39720,-1850 5268,-1845 5268,-1847 5266,-1842 5268,-1840 5263,-1845 5264,-1843 5264,-1839 8264,-1839 8267,-1839 8272,-1838 8276,-1834 8273,-1834 8273,-1833 8274,-1837 8279,-1836 8283,-1834 8286,-1836 8282,-1834 8279,-1835 8279,-1834 8280,-1836 8283,-1841 8288,-1846 8289,-1843 8286,-1838 8286,-1841 8285,-1838 8285,-1834 8288,-1829 8291,-1825 8286,-1825 8289,-1825 8287,-1824 8291,-1822 8294,-1821 8298,-1818 8300,-1818 8296,-1814 8296,-1811 8295,-1808 8292,1192 8296,1192 8297,1195 11297,1192 11301,1195 11305,1197 11300,1193 11300,1193 11296,1193 11293,1194 11294,1199 11292,1204 11292,1205 11294,1210 11292,1208 11288,1204 11290,1205 11289,1207 8289,1202 8284,1204 8282,1204 8281,1206 8281,1208 8281,1212 8283,1212 13283,1213 13287,1213 13290,1216 13293,1214 13289,1217 13286,1212 13291,1208 13288,1208 13292,1209 13297,1208 13296,1204 13298,1205 13303,1209 13308,1204 13308,1209 13304,1210 13304,1214 13309,1214 13314,1215 13314,1219 13314,1219 13319,1224 13320,1229 13321,1232 13325,1233 13329,1231 13329,1234 13334,-2766 13336,-2769 13337,-2765 13340,-2762 13345,-2760 13342,2240 13342,2238 13342,2242 13342,2246 13345,2246 13346,2244 13348,2239 13348,2240 13351,2240 13352,2245 13357,2248 13357,2243 13362,2247 13362,2248 13362,2252 13363,2256 13363,2256 13363,2260 13367,2255 13372,2251 13369,2251 13369,2252 13372,2249 13376,2254 13378,2255 13382,2259 13379,2262 13379,2267 13381,2262 13381,2262 13383,2265 13383,2269 13385,2270 13386,2271 13389,2267 13391,2271 13386,2275 13391,2273 13392,2275 13387,2277 13390,2274 13390,2275 13394,2280 13395,2280 11395,2281 14395,2279 14400,2277 14403,2273 14406,2274 16406,2274 16410,2279 16410,2284 16411,2280 16409,2280 16409,2282 16409,2282 16411,2282 16412,2280 16413,3280 16418,3284 16418,3285 16423,3289 16423,3292 16427,3294 16429,3296 16431,3297 16436,3298 16435,3303 16435,3305 16434,3305 16436,3305 16436,3309 16437,3309 16438,3308 16439,3308 16439,3306 16444,3302 16441,-1698 16437,-1703 16438,-1699 16438,-1697 16438,-1698 16439,-1695 16436,-1690 16441,-1687 16446,-1683 16450,-1682 16451,-1684 16453,-1682 16457,-1682 16457,-1686 16460,-1681 16459,-1680 16456,-1677 16460,-1681 16461,-1679 16464,-1674 16465,-1673 16469,-1669 16471,-1669 16476,-1665 16474,-1665 16478,-1664 16478,-1664 16479,-1661 16474,-1656 16471,-1655 11471,-1660 11473,-1663 11475,-1666 11480,3334 15480,3338 15476,3342 15471,3345 15471,3345 15470,3350 15469,3347 15474,3351 15476,3352 15473,3353 15476,3350 15477,3350 15479,3351 15482,3352 15484,3351 15487,3353 15487,3358 15487,3353 15486,1217 13286,1222 13291,1222 13291,1225 13286,1229 13286,1231 13281,1235 13280,1236 13281,1241 13282,1245 13285,1247 13285,1247 13287,1250 13287,1247 13290,1247 13295,1247 13298,1252 13301,1249 13304,1252 13304,3252 13304,3247 13304,3249 13308,3254 13308,3257 13308,3261 17308,3261 17309,3261 17306,3259 17305,3262 17310,3263 17308,3262 17311,3259 17314,3259 17314,3257 17309,3254 17309,3253 17309,3255 17310,3253 17312,3255 17312,3255 17312,3256 17307,3257 17307,3256 17311,3256 17313,3255 17317,3251 17317,3248 17321,3253 17325,3256 17326,3258 17324,3258 17327,3263 17322,7263 17325,7265 17328,7263 17330,7265 17333,7270 17333,7273 17333,7278 17336,4278 21336,4278 21340,4279 21340,4281 21340,4286 24340,4290 24343,9290 24347,9294 24349,9296 24347,9298 25347,9301 25348,9301 25348,9304 25353,9303 25357,9303 25352,11303 25355,11304 25358,11307 25358,11312 25358,11312 25361,11310 25365,11313 25365,11314 25369,11319 25371,11321 25371,11325 25366,11329 25365,11330 25366,11329 25370,11330 25365,11334 25367,11338 25366,11343 25363,11348 25359,11345 25356,11348 25357,11349 25358,11349 25358,11352 25360,11356 30360,11360 30365,11360 30365,11362 30365,11367 30367,11368 30369,15368 30370,15373 30371,15376 30373,14376 30378,14377 30383,14381 30378,14386 30380,14388 30382,14391 30385,14393 31385,16393 31389,16396 31394,16396 31397,16392 31400,16395 31405,16398 31409,16398 31413,16397 31415,16396 31417,16401 31418,16401 31422,16402 31419,16407 31420,16411 31419,16406 31423,18406 31427,18411 31432,18415 28432,18417 28437,18418 28441,18414 28438,18417 28435,18416 28439,18420 28442,18423 28447,18427 28444,21427 28445,21428 28450,22428 28455,22432 28457,22436 28458,22441 28458,22445 28463,22448 28468,22451 28465,22456 28468,22453 28468,22458 28471,22463 28473,22460 28475,22459 28472,22463 28476,22464 28472,22468 28468,22468 28471,25468 28466,25471 28468,25473 28464,25473 28464,25475 29464,25476 29466,25479 29461,25476 29462,25476 29464,25478 29464,25483 29461,25484 29460,25486 29458,25486 29462,25490 29460,25495 26460,25498 26463,25495 26468,25495 26472,25495 26472,25499 26474,25504 26476,25504 26478,25509 26476,25513 26479,25514 26481,25519 26477,25519 26480,25518 26481,25519 26484,25524 26483,25527 26484,25522 26484,25526 26487,25528 26492,25533 26496,25535 26498,25535 26498,25539 26503,25542 26504,25543 26505,25547 26510,25552 26510,25551 26508,25550 26512,25553 26510,25557 26510,25554 26511,25552 26508,25556 26505,25556 26506,25560 26506,25560 26507,25560 26506,25565 26501,25567 26504,25569 26504,25568 26508,25571 26508,25571 26511,25576 26511,25581 26516,25581 26519,25582 26521,25585 26522,25588 26527,25588 26526,25584 26530,25587 26534,25589 26529,25593 26533,25598 26538,25599 26540,25599 26540,25599 26540,25604 26543,25603 26543,25603 26538,25606 26538,25609 26540,25611 26542,25612 26547,25612 26547,25612 26548,25617 25548,25612 25548,25613 25547,25616 25545,25616 25549,25618 25551,25620 25555,25620 25551,25622 25550,25625 25551,25622 25555,25619 25557,25617 25556,25622 28556,25625 28551,25630 28546,25634 28548,25639 28553,25643 28553,25638 25553,25634 25553,25634 25557,25639 25557,25643 25558,25644 25553,25646 25556,25647 25560,25650 25562,25650 30562,25650 30562,25650 30564,25650 30566,25652 30570,25656 30571,25661 31571,25662 31575,25663 31579,25662 31579,25665 31581,25666 31584,25671 31582,25674 31581,25674 31584,25676 31584,25673 31587,25678 31586,25679 31581,30679 31584,30675 31589,30680 31590,35680 31590,35675 31589,35677 31591,35680 31590,35681 31587,35684 31588,35685 31589,35689 31592,35689 31593,35692 31597,35696 31597,35700 34597,35699 34599,35703 34604,35703 34606,35702 34601,35705 34603,35705 34606,35708 34603,35713 34604,35717 34603,35719 34608,35715 34608,35711 34608,35713 34609,35714 34605,35714 34610,35714 34614,35718 34616,35719 34617,35722 34618,35722 34621,35725 34625,35725 34626,35725 34629,35725 34631,35725 34635,35730 34636,35727 34638,35731 34640,35735 34642,35739 34645,35741 34645,35742 34649,35738 34649,35738 34645,35741 34647,38741 34650,38741 37650,38742 37646,38746 37651,38749 37652,38753 37653,38753 37657,38757 37656,38756 37660,38761 37660,38765 37660,38760 37660,38759 37660,38760 41660,38760 41660,38762 41665,38757 41667,43757 41669,43752 41674,43752 41677,43757 41672,43758 41677,45758 41680,45758 41679,45762 41683,45765 41683,45769 41683,45770 41684,45768 46684,45773 46688,45776 46692,45774 46694,45775 46697,45778 46695,45776 46698,45774 46702,45779 46702,45784 46704,45787 46706,45791 46711,45786 46707,45790 46711,45793 46715,45796 46719,45799 46724,45797 46728,45802 46726,45797 46729,45801 46733,45802 46733,45803 46732,45804 46732,45805 46732,45808 46735,45810 46740,45810 46744,2326 27373,2322 27377,2323 27379,2325 27383,2325 27382,2322 27382,2323 27382,5323 23382,5325 23385,5329 23386,5330 23390,5335 23392,5330 23392,5330 23395,5329 23395,5333 23399,5333 23402,5338 23405,5339 23405,5334 23406,5329 23401,5332 23403,5330 23407,5333 23409,5328 20409,5324 20411,5324 20414,5329 20416,5328 20421,5325 20421,5329 20424,5330 20424,5335 21424,5331 21427,5333 21431,5334 21433,5329 21434,5330 21437,5333 21440,5338 21437,5338 21440,5334 21441,5333 21438,5329 26438,5332 26435,5335 26439,5337 26440,5338 26444,5342 26439,5342 26442,5345 26440,5349 26438,5352 26442,5349 26445,5348 30445,5350 30447,5350 30444,5354 30444,5359 30443,5363 30445,5367 30446,5367 30448,5367 30453,5371 30455,5371 30453,5373 30458,5375 30461,5380 30463,5384 30463,5383 30459,5384 30459,5383 30459,5385 30460,5390 30459,5392 30464,5394 30464,5389 30465,5393 30469,5391 30469,5391 30469,5395 30474,5396 30470,5399 30470,5401 30467,5401 30468,5404 30470,5400 30465,5401 30462,5403 30467,5404 30467,5409 30469,5412 30473,5412 30477,5407 30481,8407 30486,8408 30489,8410 30490,8410 30489,8413 30490,8414 30493,8414 30496,8419 30501,8420 30502,8415 30507,13415 30509,13411 30506,13414 30507,13412 30511,13412 30515,13417 30518,13419 30523,13418 30527,13422 30529,13418 30531,13413 35531,13409 35531,13413 35532,13417 35537,13419 35533,13423 35529,13424 35529,13423 35524,13428 35525,13433 35526,13438 35530,13443 35531,13448 35531,13452 35532,13455 35536,13457 35536,13452 35536,13455 35539,13452 35535,13457 35540,13457 35544,18457 35546,18460 35547,22460 35546,22465 35550,22466 35554,22468 35552,22473 35555,22471 35559,22470 35564,22472 35564,22470 35569,22474 35569,22474 35571,22477 35573,22482 35576,22487 35580,22488 35583,22489 35585,22493 35585,22496 35585,25496 35586,25493 35582,25494 35585,25498 35585,25496 35585,25498 35587,25503 35591,25503 35593,25499 35590,25499 35591,25495 35591,26495 35595,29495 35591,29495 35593,29498 35597,29498 35601,29500 35606,29501 30606,29502 30603,29505 30603,29510 30606,29511 30606,29514 30607,29516 30610,29518 30608,3259 17305,3263 17304,3267 17303,3271 17308,3269 17312,3269 17313,3274 17315,3277 17315,3282 17311,3285 17313,3283 17309,3278 17310,3275 17315,3275 17317,3276 17322,3280 17324,3280 17324,3276 17325,3277 17325,3276 17328,3278 17324,3273 17329,3277 17331,3280 17326,3281 17328,3276 17324,3277 17324,3277 17322,3277 17321,3277 17321,3281 17323,3282 17327,3282 17332,3287 17335,3288 17335,3288 17338,3290 17337,3294 17340,3294 17341,3299 17341,3299 12341,3299 12342,3304 12339,3301 14339,3305 14340,3307 14341,3311 14343,3313 14343,3314 16343,3310 16341,3310 16346,3312 16348,3311 16349,4311 16346,4316 16348,4321 16344,4324 16348,4322 16349,4323 16346,4323 16346,4326 16350,4322 16354,4323 16356,4325 16361,4325 16358,4322 16362,4325 20362,4325 20366,4322 20367,4326 20372,4326 20374,4331 20373,4333 20373,4338 20376,4339 20379,4341 20382,4338 20384,4339 20386,4340 20383,4340 20383,4335 20388,4336 20390,4341 20390,4346 20391,4348 20391,4349 20393,37497 26499,37494 26496,37496 26500,37496 26501,37499 26506,37497 26502,37498 26502,37500 29502,37500 29507,37505 29508,37506 33508,37508 33513,37513 33518,37517 33522,37516 33520,37521 33521,37521 33525,37516 33530,37519 33528,37520 33528,37524 33530,37527 33530,37525 33527,37528 33530,37533 33533,37534 38533,37536 38536,22358 13355,25358 13360,25361 13358,25362 13362,25362 13362,25365 13365,25363 13367,25359 13369,25357 13374,25360 13374,2247 13362,2252 13366,2254 13363,2257 13363,2261 13358,2264 13354,2264 13356,2269 13361,2272 13363,2274 13363,2275 13363,2273 13362,2274 13365,2278 13365,2280 13370,2284 13366,2284 13365,2289 13368,2290 13366,2293 13368,2298 13373,2298 13372,2295 13375,271 22347,273 22350,4273 22347,4269 22348,4270 22350,4271 22355,4272 22360,4276 22363,4281 22365,4284 24365,4279 24365,4282 24365,4285 24365,4287 24364,4289 24362,4294 24360,4295 24362,4298 24365,4301 24369,1301 24370,1301 24371,1305 24375,1305 24376,1307 24377,1312 24380,1314 24382,1318 24380,1316 24382,1316 24387,1318 24387,1318 29387,1321 29387,1316 29383,1320 29386,1321 29389,1326 29389,1327 29389,2327 29394,2327 29394,2332 29393,-666 24367,-663 24368,-661 24368,-656 24371,-653 24372,-649 24372,-647 24374,-643 24370,-638 24375,-635 24380,-638 24382,-638 24384,-638 24384,-636 24388,-637 24390,-632 24386,-630 24386,-629 24386,371 24389,376 24394,374 24392,377 24397,3377 24400,6377 24405,6378 24408,6373 24406,6370 24406,6375 24403,6370 24403,6375 24403,6379 24406,6374 24409,6378 24411,6380 24412,6378 24415,6378 24419,6383 24423,6385 24425,6387 24428,6390 24433,6386 24430,6386 24435,6387 24436,6388 24440,6387 24444,6383 29444,6383 29447,6386 29451,6382 29446,6387 29447,6390 29452,6393 29452,6397 29455,6400 29459,6400 29463,6397 29467,6393 29467,6395 29470,6397 29473,6399 29468,6394 29467,6397 29470,6396 29473,6396 29470,6393 29465,6389 29469,6390 29470,6389 29465,6389 29468,6392 29470,6388 33470,6390 33466,6391 33466,6392 33467,6394 33467,322 22372,322 22374,323 22377,327 22378,331 22382,330 22383,332 22386,333 22383,331 22383,330 22387,332 22391,332 22396,337 22397,339 22394,340 22399,340 22398,340 22396,343 22396,343 22396,341 22400,342 22404,343 22402,348 22403,345 22407,347 22411,342 22411,345 22413,340 22417,345 22417,348 22422,348 22426,351 22427,352 22432,352 22436,4352 22438,4353 22442,4354 22444,4354 22447,4357 22449,4360 22450,4364 22450,4367 22451,4369 22453,4366 22455,4369 22453,4373 22458,4377 22459,4380 22459,4380 22464,4385 22467,4385 22467,4390 22469,4385 22469,4385 22472,25571 26508,25574 26507,25578 26512,25581 26512,25581 26512,25583 26508,25583 26513,25587 26516,25589 26515,25590 26515,25591 26517,25589 26520,25587 26522,23587 26526,23585 26531,23589 26534,23592 26538,24592 26543,24588 26545,24593 26547,24598 26543,24598 26548,24602 26545,24598 26540,24600 26545,24600 26548,24600 31548,24605 31549,24608 31551,24613 31552,24615 36552,24616 36557,24619 36557,24622 36560,24622 36564,24627 35564,24627 35569,24632 35569,25632 35570,25635 35569,25636 35573,25636 35573,25638 35576,25641 35580,25641 35583,25641 35588,25642 40588,20642 40593,20645 40593,20650 40595,20651 40591,20651 40594,20648 40591,20648 40591,20652 40596,20652 40596,20656 40597,20656 40600,20656 40601,20659 40598,20662 40597,20662 40597,20663 40600,20668 40601,20665 40606,1215 13314,1214 13319,1212 13317,1209 13312,1210 13312,1211 13317,6211 13320,6214 13320,6216 13320,6211 13323,6214 13318,6214 13323,6214 13324,6216 13319,6219 13323,6218 13321,6219 13321,6218 13326,6221 13329,6225 13331,6230 13335,6231 13339,6231 13343,6235 13338,6234 13342,6234 13344,6236 13345,25524 26483,25521 26484,25524 26489,25527 26487,25529 26484,25530 26482,25534 27482,25539 27486,25537 27488,25541 27483,25544 27486,25547 27490,25550 27491,25550 27491,25554 27486,25559 27486,25563 27489,25561 27489,25563 27493,25561 27491,25563 27493,25563 27495,25564 27497,25563 27497,25563 27497,25558 27498,25563 27499,25565 27503,25567 27503,25569 27503,25567 27504,25565 27505,25565 27505,25565 27505,25566 27505,25570 27501,25570 27497,25574 27498,25570 32498,25570 32501,25573 32501,25576 32497,25576 32498,25577 32501,25579 32503,25583 32504,25588 32507,25592 32512,25596 32507,25599 32507,25594 32503,25597 32506,25597 32510,25594 32509,25594 32510,25596 32513,25592 32513,25594 32515,25594 32520,25598 32520,25602 32517,25603 32518,27603 32520,27607 32523,27608 31523,27613 31527,27615 31527,30615 31530,30617 31530,30618 31532,30619 31536,30623 31537,30623 31538,30625 31538,30626 31541,30627 31541,30624 31540,30623 31540,30624 31545,34624 31546,34619 31543,34623 31545,34624 31549,34624 31548,34626 31550,34626 31555,34626 31551,34628 31555,34633 31555,34636 31559,34634 31564,34636 31564,34639 31562,34639 31560,36639 31555,36636 27555,41636 27557,41640 27554,41644 27558,41647 27559,41648 27555,41653 27555,41658 27555,41658 27552,41658 27552,41660 27550,41656 27554,41661 27558,41664 27561,41667 27566,41662 27562,41663 27563,41663 27565,41662 27569,41661 27569,41664 27571,41664 27567,41659 30567,41660 30565,41660 30561,41665 30566,41664 30561,41664 30561,41664 30562,41664 30563,41660 30558,1312 24380,4312 25380,4315 25384,4315 25385,4319 25383,4322 25388,6322 25387,6322 25387,6326 25392,6321 25397,6324 25397,6324 25401,6319 25404,9319 25405,9314 25400,9312 25402,9310 25403,9313 25403,9313 25403,9316 25400,9319 25401,4319 25396,8319 25398,8315 25400,8315 25396,8315 25397,8311 25398,8307 25394,8309 25394,8311 25397,8315 25402,8310 25403,11310 25365,11311 25365,11316 25370,11320 25375,11325 25375,11325 25380,11325 25382,11326 25378,14326 25380,14328 25382,14331 25383,14334 25385,14336 25386,19336 25386,19336 25389,19332 25390,19332 25391,19335 25388,19338 25391,19342 25393,19340 25393,19345 25396,19345 25394,19347 25394,19349 25393,19351 25397,19350 25398,19348 25399,19349 25403,19352 25399,19350 25402,19354 25400,19353 25405,23353 25402,23354 25402,23356 25405,23358 25409,23360 25413,23363 25414,23367 25412,23365 25411,23367 25414,23363 25413,23367 25416,23367 25416,23370 25418,24370 25414,24370 25419,24373 27419,24378 27419,24380 27416,24380 27412,24380 27410,24380 27406,24376 27406,24374 27410,24370 27414,24370 27415,24371 27420,24375 27415,24378 27411,24375 27415,24378 27418,24382 27421,24383 27426,24383 27425,24385 27430,24390 27431,24394 27432,24395 27436,24399 30436,24400 30439,24404 30443,24403 30439,24406 30438,24410 30442,24406 30446,24408 30445,24403 30445,24408 30442,24412 30446,24416 30446,24416 30449,19416 30449,19416 30447,19418 30452,19420 30453,19423 30458,15423 30462,15423 30464,15425 30466,16425 30467,16424 30471,16421 30474,16426 30474,16428 30476,16428 30476,16424 30474,16424 33474,16425 33474,16427 33477,16425 33479,16426 33477,16422 33480,16425 33482,16430 33479,16430 33478,16429 33482,16424 33482,16427 33484,16430 33488,16431 33488,16434 33488,16435 33491,16432 33487,16436 37487,16434 37490,16438 37485,16443 37482,16446 37480,16447 37480,16447 37482,16451 37478,16454 37479,16458 37479,16454 37479,16454 37482,16459 37486,16460 37491,16463 37495,16464 37492,16465 37493,16466 37494,16468 37497,16468 37501,16468 37501,16473 37503,16473 37503,16473 37498,16476 37494,21476 33494,21473 33493,21476 33489,21478 33491,21478 33496,21478 33492,21480 33496,21483 33501,21484 33504,21483 33500,21484 33505,21484 33505,21488 35505,21491 35505,21494 35506,21496 35510,21492 35506,21492 35509,21489 35514,21490 35517,21487 35519,23487 35523,23485 35528,23487 35533,23483 35534,23487 35535,23488 35537,23493 35539,23495 35542,23495 35546,23495 35550,23491 35549,23488 35552,23492 35555,23495 35560,23500 35559,23496 35557,4322 16354,4317 16358,4318 16358,4320 16363,4315 16363,4315 16362,4316 20362,4320 20365,4323 20363,4326 20366,4329 20367,4332 20370,4337 20374,4338 20375,4333 20375,4338 20375,4341 20377,4342 20377,4342 20378,4343 20381,4346 20386,4346 20386,4346 20386,4346 20386,4349 20390,4352 20395,4354 20396,4355 20400,4358 20400,4360 20401,4360 20404,4363 20405,4368 20406,4372 20411,4371 20416,4367 20417,4364 20422,4367 20420,4372 20425,4373 20422,4374 20418,4377 20418,4381 20422,4382 20423,4384 20418,4389 20421,4385 20423,4390 20423,4390 20425,4392 20429,4396 20434,41574 39698,41578 39702,41576 39704,45576 39704,45575 39709,45577 39713,45581 39715,45581 39718,45583 39721,45578 39726,47578 39722,47581 39719,47586 39722,47586 39726,47589 39730,47592 39733,47597 39733,47593 39733,47596 39735,47597 39735,47595 39735,47591 39739,47593 39744,47593 39747,4074 20263,4077 20268,4079 20268,4078 20271,4078 22271,4083 22276,4087 22272,4088 22275,4086 22279,4082 22280,4084 22282,4086 22277,4082 22277,4087 22281,4090 22281,4092 22281,4092 22286,4094 22287,4097 22290,4097 22291,4095 22286,4095 22288,4095 22293,4095 22288,4092 22285,4089 22286,4090 22286,4095 22281,4100 22286,4103 22285,4104 22288,4104 22289,4107 22294,4112 22292,4117 22290,4120 22295,120 22300,121 22303,122 22300,122 22300,121 26300,125 26303,129 26303,127 26305,127 26306,132 26306,132 26307,136 26307,141 26309,140 26311,143 26313,140 26314,145 26318,149 26318,153 26321,153 29321,158 29326,158 29329,162 29324,162 34324,165 34329,168 34328,167 34332,169 34333,173 34334,173 34336,177 34338,178 34340,178 34344,182 34348,177 34348,182 34348,184 34353,184 34358,181 34360,183 34365,187 34365,192 34365,197 34367,199 34366,203 34368,205 34368,202 34363,204 34360,1204 34360,1205 34364,1205 30364,1205 30359,1206 30361,1207 30364,1210 30366,1210 30366,1214 30367,1218 30372,1219 30375,1214 30379,1214 30384,1217 30382,1222 30383,1223 30382,1225 30380,1228 30379,1231 30383,1232 30383,1235 30384,1237 30388,1242 30386,1244 30389,2244 30392,2241 30395,2245 30397,2245 30399,2244 30394,2242 30395,2246 32395,2246 32395,2249 32398,2251 32393,5251 32390,5251 32395,5255 32399,5255 32397,5257 32397,5257 32401,5261 32406,5261 32411,5266 32412,5271 32416,5273 32419,5276 32420,5281 32422,5279 32425,6279 33425,6284 33429,6284 33430,6282 33431,6282 33428,6286 33425,6288 32425,6288 32421,6286 32424,6288 32424,11288 32427,11292 32425,11292 32429,11290 32434,11286 32437,11286 32437,11283 32442,11278 32442,11279 32443,11283 32445,11284 32445,11283 32448,13283 32447,13287 32442,16287 32446,16282 32445,16283 32445,16284 32448,16285 32448,16284 32446,16286 32443,16290 32446,16291 32446,16292 32450,16291 32450,16291 32450,16291 32445,16287 32447,16288 32452,16287 32457,16291 36457,16289 36462,16293 36462,16294 36462,16297 36462,16301 36464,16306 36469,16310 36467,16310 36463,16313 36459,16312 36460,16313 36465,16313 36469,16308 36470,16309 36468,16314 36470,16319 41470,16322 41471,16325 44471,16330 44471,16330 44471,16330 44473,16330 44474,16335 44479,16332 44477,8414 30496,8415 30497,8419 30497,8414 30501,8416 30500,8418 30495,8421 35495,8423 35494,8427 35497,8429 35499,8432 35499,8436 35503,8438 35503,8443 35505,8440 35508,8443 35509,8440 35509,8440 35511,8441 35515,8445 35511,8448 35512,8443 35517,8443 35519,8442 35524,8444 35526,8441 35527,8436 35527,8433 35523,8429 35527,8430 35530,8431 35532,8429 35533,8433 35535,8437 32535,8435 32536,8439 32536,8436 32539,9436 32542,9434 32537,9429 32534,9429 32534,9433 32537,9433 32542,9429 32543,9434 32538,9436 32538,9436 34538,7436 34538,7438 34543,7439 34543,7439 34543,7439 34548,7438 34549,7438 34552,7438 34553,7438 34556,11438 34561,11434 34559,11436 34555,7436 34553,7436 34549,120 1235,124 1239,125 1236,125 1238,129 1235,128 1235,125 1236,123 1239,128 2239,132 2242,131 2242,135 2242,140 2242,145 2247,146 2252,144 2253,146 2248,144 2245,146 2244,150 2249,155 2245,159 2242,160 2243,160 2245,155 2244,156 2245,3156 2246,3159 2248,3159 2250,3164 2254,3165 2257,3166 2255,3169 2257,3171 2262,3169 2263,3174 2268,3177 2273,3174 2276,3178 2275,3173 2279,3177 2276,3180 2279,3182 2284,3185 2289,5185 2286,5185 2288,5181 2286,5185 2288,5184 2293,5187 2293,5187 2297,5190 2299,5187 2299,5185 2300,5181 6300,5182 6297,5187 6300,5189 6298,5191 6296,5193 6296,5193 6296,5195 6297,5195 6300,5197 6297,5195 6300,5190 6302,5191 6306,5192 6308,5195 6312,24395 27436,24391 27437,24393 27433,24398 27436,24398 27437,16286 32443,21286 32443,21286 32444,21282 32448,21283 32446,21283 32448,21285 32451,21281 32456,21282 32458,21282 32463,21282 32468,21284 32470,21289 32471,21287 32471,21287 32469,21287 32474,21284 32477,21288 32482,21291 32482,21291 32486,21296 32485,21299 32486,21301 32487,21303 32484,21301 32482,21305 32487,21310 32491,21312 32495,21313 32491,21315 32495,21312 32495,21314 32498,21316 32501,21311 32506,21311 32508,21312 32513,21317 32516,21319 32516,21324 32516,21327 32521,21328 32526,21332 32527,21328 36527,21331 41527,21336 41527,21334 41531,21337 41533,21335 41535,21339 41540,21340 41540,21343 41536,25343 41539,25340 41542,25337 41542,25337 41545,25335 41542,25335 41543,25335 46543,25339 46548,30339 46551,30340 46556,30343 46557,30342 46553,30337 46556,30341 46561,30337 46565,30336 46563,30338 46564,24373 27419,24373 27421,24375 27424,24377 27425,24377 27430,24374 27435,24379 27437,24384 27432,24385 27434,24382 27437,24381 27442,24381 31442,24381 33442,20381 33439,20383 34439,20382 34440,20378 34444,20381 34446,20381 34442,20384 34443,20388 34446,20392 34447,20393 34442,20393 34447,20396 29447,20395 29443,20399 29443,20400 29439,20399 29436,20404 29439,20409 29440,20410 29440,20410 29444,20408 29445,20413 29448,20413 29451,20412 29455,20413 29458,20418 29461,20413 29463,20415 29464,20416 29464,20416 29463,20416 29463,20418 29464,20414 29465,20418 29463,20413 29460,20413 26460,20418 26458,20421 26459,20421 26461,20421 26460,43578 35658,43578 35654,43578 35658,43578 35660,43583 35661,43583 35659,43583 35662,43579 35663,43583 35661,43587 35666,25625 25551,25629 25551,25630 25554,25630 25559,25632 25560,25627 25561,25623 25557,25623 25559,25624 25561,26624 25566,26627 25566,29627 25571,29626 25574,29625 25575,29622 25579,29625 25583,29630 25588,29632 25589,29635 25591,29635 25594,29637 25598,29642 25596,29643 25597,29644 25597,29649 25598,29654 25602,29656 25602,29661 25603,29661 25601,29664 26601,29666 26604,29665 26604,29668 26607,29672 26607,29669 26611,29671 26616,29674 26613,29679 26616,29680 26616,29681 26615,29682 26619,29679 26617,29684 26622,29686 26624,29689 26624,29690 26628,29691 26630,29693 26625,29694 26620,29698 26617,29703 29617,29707 29616,29706 29620,29709 29623,34709 29626,34710 29628,34710 29627,2282 16411,2283 16412,2283 16412,2287 16417,2292 16421,2297 16421,2298 16426,2303 16426,2304 16429,2309 11429,2313 11432,2308 14432,2308 14431,2311 14433,2310 14437,2308 14438,2309 14440,2311 14440,2309 14443,2312 14443,2314 14447,2314 14452,2314 14450,2309 14451,2309 14451,2309 14456,2313 14461,2313 14461,2309 19461,2309 19461,2311 19462,2315 19465,2318 19465,2321 19462,2317 19464,2321 19467,2322 19467,2322 19469,2322 19469,2320 19464,2321 19462,2322 19461,2327 19466,2327 19461,2322 19461,2322 19463,2317 19467,2318 19471,2102 -1848,2107 -1848,2111 -1846,2114 1154,2114 1156,2115 1157,2114 6157,2116 6162,2121 6165,2124 6170,2121 6175,2124 6179,2124 6183,2128 6178,2126 6179,2125 6178,2126 6181,2122 10181,2127 10186,2128 10189,2130 10188,2130 10191,2127 11191,2127 11195,2131 11196,2132 11192,2131 11197,2135 11201,2135 11203,2139 11199,2142 11203,2143 11204,2147 11208,2142 11210,2142 11211,2147 11212,2150 11217,2150 11219,2151 11219,2152 11222,2152 11222,2148 11224,2150 11220,2150 11223,2146 11218,2143 11219,2140 11221,2143 11218,2140 11219,2140 11223,2145 11225,2147 11226,2152 11226,2155 11224,2157 11229,2157 11229,2153 11233,2153 11238,2149 11239,7149 10239,7154 10241,7157 10241,7162 10243,7164 10248,7164 10251,7169 10253,7171 10253,7172 10257,7177 10260,7182 10256,7187 10260,7191 8260,7195 8256,7200 8258,7204 8258,7203 8261,7203 8262,7205 8266,7209 8270,7209 8273,7214 8273,7214 8276,7210 8276,7211 8276,7213 8279,7218 8278,7222 8283,7223 8279,7220 10279,7221 10283,7223 10284,7228 10286,7230 10290,7231 10290,7231 10293,7232 10294,7232 10297,7234 10299,7229 10295,7226 10294,7221 10293,7223 10295,7228 10299,7229 10303,7232 10307,7232 10311,7233 10316,7234 9316,7239 9318,7244 9321,7241 9326,7241 9328,7238 9331,7235 9330,7237 9335,7236 9335,7236 9337,7236 9338,7231 14338,7230 14333,7232 14338,7237 18338,4082 22280,4081 22280,6081 22283,6076 22285,6076 22289,6078 22286,6080 22287,6084 22292,6084 22293,6085 22293,6086 22291,6091 22294,6092 22293,9092 22290,9095 22294,9096 22295,9096 22297,9091 22292,9096 22295,9098 22290,9094 18290,9097 18290,9096 18294,9099 18292,9098 18297,9103 18299,9103 18302,9103 18305,9100 18301,9102 18302,9106 18305,9102 18310,9101 18306,9103 18308,9103 18312,9107 18310,9107 18315,9107 18320,9111 18322,9111 18326,9113 18329,9111 18329,9116 18329,9121 18329,9121 18332,9123 18331,9124 18332,9125 18328,9127 18325,9125 18328,9128 18329,9133 18329,9136 18333,9141 18337,9142 18342,9143 18340,9148 18344,9152 18341,9150 18346,9149 18341,9149 18341,9154 18343,9158 18345,9161 18346,9161 18347,9163 18352,9164 18352,9162 18349,9165 18352,9165 18351,9165 18352,9165 18356,9163 18352,9167 18353,9167 18349,9168 18351,9168 18347,9173 18347,9175 18347,9179 18348,9182 18349,9187 18352,9186 18357,9189 18360,9192 18360,9196 18362,13196 18367,13196 18369,13196 18371,13199 18374,13194 18374,13197 18375,13200 18377,13205 18380,13210 18384,13209 18379,13209 18374,13213 18375,13216 20375,13212 20375,13215 20375,13211 20375,13211 20372,13208 20373,13204 20373,13204 20369,13205 20369,13207 20366,13212 20367,13216 20367,13221 20372,13222 20377,13225 20381,13226 20386,13230 20383,9230 20388,9228 20384,9228 20386,9223 20389,9223 20392,4223 20397,4223 20396,4225 20399,4222 20404,4220 20408,4220 20411,4223 20416,4227 20421,4230 20418,4234 20421,4232 20422,4236 20423,4238 20423,4239 20423,4235 20427,4231 20427,4230 20426,4228 20428,4232 20427,4232 20431,4236 20433,4241 20431,4241 22431,4236 22436,4239 22437,4239 22439,4236 22443,4232 22439,4236 22444,4236 22446,4239 22447,4239 22452,4241 22454,4245 22457,4245 22460,4250 22462,4251 22465,4253 22465,4249 22465,4251 22460,4251 22464,4255 22469,4257 22473,4256 22478,4259 22479,4260 22480,4257 22485,6257 22489,6260 22490,6260 22493,6262 22496,6262 22500,6267 22495,6271 22495,6276 22491,6276 22489,6281 22487,6286 22490,6289 22490,6294 22490,6294 22489,6292 22485,6292 22489,6288 22489,6288 22494,6288 22496,6286 22497,6288 22501,6292 22500,5292 22503,5292 22503,5296 22508,5295 22510,5300 22510,5305 22513,5302 22514,5306 22510,5309 22513,5313 27513,5313 27513,5317 27513,5322 22513,5326 22517,6326 22516,6323 22518,6323 22523,6320 22523,6321 22526,6323 22531,6323 22531,6324 22532,6324 22532,6325 22529,6321 22531,6323 22534,6328 22534,6329 22530,6324 22527,10324 22522,10319 22524,10315 22520,10314 22525,10311 22525,10307 22526,10304 22531,10306 22527,10306 22528,10309 22530,10312 27530,10312 27534,10312 27534,10307 27536,10307 27532,11307 27531,11307 27533,11308 27535,11303 27531,11298 27532,11294 27534,11294 27534,11299 27538,11297 27542,11302 27547,11306 27547,11311 27549,11313 30549,11317 30551,11313 30546,11316 30541,11316 30540,11319 30545,11318 30546,11323 30550,11326 30554,11326 34554,11330 34558,11331 34558,11333 34558,11332 34561,11328 34561,11331 34562,11336 34562,11336 34567,11340 34570,11342 34569,11345 34568,11344 34569,11345 34571,11349 34574,15349 34574,15354 34569,15359 34566,15362 34571,15363 34576,15367 34577,15368 34577,15371 34581,15374 34576,15379 34574,15383 34579,15384 34584,15387 34583,17387 34578,17392 34578,17391 34578,17396 34573,17397 34578,17397 34580,17397 39580,17402 39584,17397 39587,17402 39587,17406 39582,17403 39587,17407 39589,17409 39592,17406 39592,17409 39595,17409 39599,17412 39603,17416 39608,17417 39608,17417 39608,17421 39607,17422 39609,17424 39608,17427 39604,17425 39605,17426 39609,17423 39611,17422 39610,17425 39613,17428 39618,17428 39619,17429 39616,17432 39616,13432 39615,13432 39617,13432 39617,13432 44617,13434 44621,13434 44623,13439 44627,13442 44632,13442 44635,13440 44631,13442 44631,13445 44635,13447 44639,13445 44637,13445 44638,13450 44639,13454 44644,13457 44644,13459 44642,15459 44639,15457 44644,15461 44644,15462 44642,15459 44645,15459 44647,15463 44650,15458 44651,15459 44653,15461 44657,15463 44661,15463 44661,15463 44663,15467 44666,15472 44668,15474 44664,15470 44668,15471 44670,15473 44674,15475 44675,-3806 12298,-3804 12301,-3805 13301,-3804 13296,-3808 13292,-3809 13295,-3806 13300,-3804 13297,-3801 13301,-3801 13302,-3796 18302,-3801 18306,-3799 18311,-3802 18311,-3799 18312,-3801 18314,-3796 18319,-3795 18322,-3791 18321,-3786 18320,-3786 18321,-3784 18321,-3782 18321,-3781 18324,-3782 18325,-3783 18320,-3788 18324,-1788 18324,-1788 18329,-1784 18333,-1784 18334,-1781 18329,-1777 18334,-6777 18337,-6774 18339,-6776 18341,-6781 18341,-6779 18341,-6779 18343,-6779 18339,-6777 18343,-6782 18338,-6779 18341,-6778 18341,-6776 18336,-6776 18333,-6776 18333,-6780 18338,-6784 18338,-6787 18335,-6786 18336,-6781 22336,-6781 22335,-6778 22331,-6777 22326,-6777 22331,-6777 22335,-6772 22335,-6774 22340,-6769 22341,-6767 22337,-6767 22335,-6767 22335,-6767 22333,-6767 22336,-6762 22331,-6759 22331,-6764 22332,-6765 22334,-6767 22339,-6762 22334,-6760 22334,-6760 22334,-6758 22337,-6754 22341,-6754 22342,-6750 22339,-4750 22343,-4747 22343,-4752 22343,-4751 22344,-4749 22345,-4745 22348,-4740 22353,-4736 22358,-4738 22363,-4740 22358,21336 41527,21334 41527,21330 41526,21330 41526,21333 41529,21328 41529,21329 41530,21326 41532,21328 41532,21324 41537,21328 41532,21330 41535,21334 41532,21336 40532,21334 40536,21339 40534,21341 40534,21344 40534,21346 40532,21350 40532,21353 40535,21357 40539,21359 40542,21360 40546,21355 40546,21360 40547,21359 40550,21356 40551,21356 40550,21357 40550,21361 40554,21358 45554,21362 45556,21366 45553,21370 45557,21374 45556,21377 45553,22377 45549,22382 45549,22382 45552,22386 45557,22387 45557,22388 45553,22392 45557,24392 45561,22392 45558,22397 45561,22399 45558,22398 45561,22400 45564,22400 45569,22404 45573,22406 45577,22406 45581,22404 45581,22407 45582,22409 45579,22409 45575,22409 45579,22407 45579,22402 45582,22402 45582,22404 45587,22406 45587,22406 45589,22411 45589,22413 45590,22417 45591,22417 45592,22422 45587,22425 45583,22428 50583,22428 50585,22428 50585,22430 50588,22435 50590,22435 50585,22435 50590,22439 50595,22440 50590,22445 50587,22442 50584,22442 50586,22443 54586,22443 54590,22446 54595,22448 54597,22448 59597,22444 59593,22449 59596,22449 59599,22452 59600,22457 59600,22458 59605,22457 59602,22462 59603,22463 59604,22461 59605,22458 59602,22457 59601,22457 59601,22455 59605,25455 59606,25457 59611,25462 59613,25464 59614,25467 59617,25472 59612,25476 59613,25478 59610,25482 59615,25482 59616,25486 59612,25483 59614,25487 59619,25492 59623,25497 59625,146 2252,150 2249,150 2249,152 2254,157 2249,158 2253,157 2252,161 2255,159 3255,161 3258,161 3255,163 3255,168 3259,168 3259,172 3263,167 3267,172 3271,172 3272,172 3274,175 3278,179 3282,181 3283,184 3280,185 3282,187 3282,191 3284,192 3286,191 6286,193 6289,198 6285,195 6290,194 6289,195 6289,199 6293,200 6288,198 6290,202 6291,207 6296,212 6301,215 6301,216 6301,211 6304,212 6304,216 6309,216 6304,214 6308,213 6308,211 6305,212 6309,217 6314,220 6317,224 6322,222 6327,220 6323,41573 39712,41572 39709,41576 40709,41580 40714,41576 40717,36576 40717,36577 40719,36582 40716,36585 40721,36590 43721,36585 43721,36582 43724,36585 43729,36590 43731,36590 43730,15289 11307,15285 11312,15286 11315,15289 11315,15294 11315,15295 11316,15296 13316,38742 37646,38743 37650,38745 37655,38744 37658,38739 37659,38737 37662,38742 37662,38745 37657,38748 37662,38748 37662,38752 37667,38753 37667,38748 37669,38748 37668,38752 37673,38754 37674,38756 37676,38758 37674,38760 37679,38760 37675,38758 37675,38763 37675,38767 37674,38772 40674,38767 40679,38772 40683,38774 44683,38778 44686,38780 44690,38780 44690,38779 44695,38782 44700,38780 44695,38775 44696,38775 44696,38775 44696,38779 44699,38783 44696,38784 44696,38786 44692,38786 44692,38786 44696,38791 44698,38793 44699,38795 44703,38800 44708,38803 44708,38807 44709,38802 44706,38806 44708,38809 44709,36809 44709,36814 44704,36813 44705,36814 44705,36816 44709,36811 44712,36812 48712,36811 48717,36815 48721,36816 51721,36818 51717,36822 51720,40822 51715,40827 51712,40830 51716,40829 51719,40832 51723,40835 51724,40840 51721,40841 51721,40836 51725,40841 51730,40846 51734,40848 51738,40849 51740,40851 51743,40854 51745,40855 51746,40857 51750,40857 51746,40861 51748,40866 51751,40862 51750,40866 51750,40869 51752,40865 51752,40863 51755,40858 51757,40855 51753,40855 51758,40852 51758,40853 51760,40857 51761,40855 51757,40852 51760,40853 51761,40855 51762,40858 51757,40859 51756,40863 51757,40863 51759,40860 51764,40859 51764,40854 51768,40850 51765,40852 51767,40852 51767,40848 51772,40852 51776,40854 51778,40852 51778,43852 51778,43854 52778,43856 52781,43859 52781,43859 52776,37512 26536,37517 26531,37520 26535,37520 26540,37522 26544,37527 26544,37532 26549,37537 26544,37540 26549,37545 26544,37549 26547,37549 26550,37548 26551,37549 26553,37546 26553,37546 26553,37549 26556,37549 26559,37552 26559,37556 26564,37560 26559,37561 26561,37565 26565,41565 26565,41569 26568,41571 26573,41571 26573,41576 29573,41571 29573,41573 29576,41573 29578,46573 29578,46569 29582,45569 29583,45572 29583,45568 29583,45573 29581,45575 29578,45571 29581,45572 29584,45572 29585,45576 29585,45578 29588,45581 29591,45582 29593,45582 29598,45584 29597,45589 29600,45585 29605,45589 33605,45593 36605,45594 36607,45599 36609,45600 36604,45604 36604,45604 36608,45604 36607,45608 36610,50608 36613,50611 36609,50614 36609,50619 36605,50624 36605,50625 36606,50625 36605,50629 36606,50624 36608,50625 36610,50626 36610,50629 36608,50627 36610,50628 36614,50632 36618,46632 34618,46632 35618,46636 35622,46636 35617,46637 35620,46639 35619,46643 35620,46645 35625,46643 35630,46648 35635,46648 35640,46649 35643,46651 35647,46655 35650,46652 35655,46657 35656,46658 35657,46662 35660,46659 35663,46662 35664,46665 35663,46667 35667,46667 35663,46670 35666,46672 35671,46674 35671,47674 35668,47676 35672,47677 35673,47677 35678,47677 35677,47677 35677,47677 35682,47672 35683,47671 35683,49671 35685,49674 35689,49677 35692,49675 35692,54675 35697,54678 35699,54674 35699,54670 35701,54670 35700,54675 35703,54676 34703,54676 34703,54679 34706,54683 34708,54688 34706,54688 34707,54685 34702,54687 34702,54692 34707,54687 36707,54687 36706,54682 36707,54685 38707,54680 38710,54680 38714,54677 38714,54679 38719,54682 38720,54687 38716,54688 38717,54692 38722,54697 38726,54699 38727,54700 38724,54702 38720,52702 38719,52702 38719,52702 38721,52702 38725,52704 38726,52706 38728,52707 38729,52711 38728,52711 35728,52713 35733,52712 35737,52712 35739,52713 35742,52713 35745,52708 35745,52710 39745,52713 39749,52716 39748,52721 39749,52720 39753,52716 39756,52716 40756,47716 40757,47717 40761,47722 40761,47722 40761,47722 40766,47726 40769,47728 40772,47733 40777,47731 40773,50731 40777,51731 40779,51733 40782,51734 40786,51737 40784,51741 41784,51739 41783,51739 41785,51739 41785,51736 41789,51731 41789,52731 41790,52735 41791,52738 41790,52742 41789,52746 41785,52747 41785,52745 41785,52750 41782,52753 41786,52753 41787,52758 41792,52754 42792,52749 42793,52752 42794,52756 42791,52757 42790,52762 42793,52766 42797,52766 42797,52769 42802,52774 42806,52774 42805,52771 42807,52774 42807,52770 42808,52771 42811,52767 42811,52766 42812,52767 42817,52771 42817,52771 42817,52775 42815,52779 42811,52779 42812,52780 42815,52776 42818,52774 42818,52777 42822,52780 42823,52781 42827,52776 42829,52780 42832,54780 42835,54780 42840,2135 11201,2140 11203,2137 11204,2140 11209,2142 11213,2147 11211,2145 11213,2145 11213,2150 11218,2150 11221,2153 11225,2157 13225,2162 13228,2167 13231,2171 13232,2167 13229,2168 13233,2171 13237,2173 13239,2168 13234,2168 13235,2173 13235,2175 13234,2177 13235,2177 13234,2179 13229,2179 13226,2180 13226,2177 13226,2177 13231,2180 13231,2181 10231,2176 10233,2177 10232,2180 10235,2185 10237,2182 10240,6182 10240,6184 10244,6182 10242,6183 10243,6185 10246,6190 10244,6194 10244,6194 10247,6192 10247,6192 10252,6195 10256,6194 10260,6195 9260,6195 9260,6195 9264,6199 9269,6204 9272,6199 9268,6201 9268,6203 9265,6208 9268,6204 9270,6204 9275,6201 9279,6201 9281,6201 9286,6206 9281,6206 9277,6202 9281,6200 9285,6202 9288,6198 9290,7198 9293,7200 9297,7201 9297,7205 9298,7209 9298,7209 9299,8209 9302,8214 10302,8218 10306,8222 10308,8226 10313,8231 10313,8235 10318,8237 10318,8237 10323,8233 10326,8233 10327,8237 10325,8238 10328,8238 10330,8234 10330,11234 10332,11236 10333,11241 10337,14241 10338,14240 10338,14237 10339,14238 10337,14237 10339,14242 10339,14246 10339,14250 10339,14250 10339,14251 10337,14254 10337,14256 10334,14256 10332,14252 10336,14255 10340,14259 10342,14262 10347,11148 3159,11153 3163,11154 3162,11154 3165,11158 3167,11161 3172,11162 3175,11162 3176,11166 3179,11166 3181,11171 3185,11176 3180,11178 3179,11176 3181,11179 3183,11174 3182,52776 42818,52778 42822,52777 42822,52782 42817,52783 42822,52784 42823,52789 42826,52789 42823,56789 42828,56786 42829,56786 42832,56789 42836,56789 42835,56785 42838,56786 42843,51786 42844,51788 42846,51790 42847,51794 42842,51796 42842,51801 42846,53801 42849,53806 42849,53809 42852,53812 42850,53817 42846,53817 42848,53818 42853,53822 42856,53823 42854,53826 42858,53825 42860,53826 42860,53826 42864,53830 42868,53835 42873,53839 42873,53841 42872,53841 42876,53841 42879,53841 42884,53836 42888,53836 42889,53836 44889,53833 44889,53835 44893,53838 44897,53842 44897,53844 44900,53844 44904,53845 44905,53850 44903,53853 44904,53858 44906,53856 44907,53861 44909,53856 44913,53858 44916,53863 44916,53868 44918,53867 43918,53869 43921,53869 43919,53867 43919,53862 43918,53860 43923,53864 43928,53869 43930,53874 43933,53874 43932,53874 43932,53875 43930,53877 43928,53878 43924,53883 43927,55883 43929,55883 43925,55879 43929,55881 43929,55884 43928,55881 43928,55882 43929,55883 45929,55883 45933,55883 45936,55884 45941,55884 45941,55886 45946,55882 45948,55883 45952,55888 45956,55890 45957,55894 45953,55892 45954,55897 45950,55893 45954,55896 45956,55892 45955,55897 45959,55899 45961,55899 45961,55894 45962,55898 45957,55893 49957,55896 47957,55894 47956,55898 47960,55901 47964,55901 47967,55901 47970,55896 47973,55898 47969,55894 47974,55895 47975,55891 47976,55896 47979,55899 47984,55902 47983,55897 47987,55899 47989,55904 47992,55904 47993,55905 47997,55902 48001,55902 48003,55907 48000,55910 47998,55915 47999,55911 47994,55906 47998,55910 48003,55914 48000,55918 48000,55914 48000,55919 48000,55921 48003,55921 48007,55924 48007,55919 48010,55922 48005,55927 48009,55928 48008,55928 48008,55930 48012,55925 48012,55925 48016,54925 48014,54922 48018,54922 44018,54926 44013,54929 44012,54932 44016,55932 44017,55935 44017,55936 44020,55937 44022,55936 44020,55939 44015,55944 44018,55945 44022,55947 44023,55950 44024,55953 44020,55956 44023,53867 43919,53871 43921,52871 43921,53871 43923,53876 43923,53881 43923,53880 43927,53882 43931,53886 43936,53884 43937,53879 43934,53879 43937,53877 43939,53878 43938,53879 43942,53880 43947,53881 43948,53884 45948,53884 45949,53882 45953,53883 45954,53878 45956,53880 45953,53885 45958,53885 45958,53886 45957,53886 48957,53886 48962,53891 48962,53892 48964,53897 48965,49897 48962,49902 48965,49906 48967,49902 48967,49904 48971,49901 48967,49904 48970,54904 48971,54904 48971,54904 48975,54909 48979,54907 48975,54910 48975,54906 48971,54909 48973,54911 48975,54915 48978,54920 48978,54923 48981,54918 48984,54921 48984,56921 48984,56926 48986,56924 48981,56929 48980,56932 48979,56932 48977,56936 48979,56937 48981,56937 48982,61937 48984,61937 48980,61934 51980,61935 51981,61935 51984,61935 51984,61931 51986,5329 23395,5331 23395,5333 23390,5337 23392,5340 23395,5345 27395,5345 27397,5350 27398,5355 27399,5356 27402,6356 27405,6360 27407,6361 27406,6364 27402,6366 26402,6371 26402,6371 26402,6372 26405,6370 26405,6375 26406,6380 26411,6385 26413,6387 26414,6388 26419,6390 26419,6391 26424,6393 30424,6390 30429,6390 30432,6390 30430,6394 30434,6394 30437,6394 30441,6396 30442,6398 30439,6399 30436,6404 30435,6405 30435,6400 30435,6405 30440,6404 30443,6405 30447,6409 30447,6411 30447,6412 30448,6417 30446,6421 30450,6418 30448,6417 30444,6418 30449,6420 30451,6425 30456,6426 30456,6425 30458,6426 30458,6426 34458,6427 34459,6432 39459,6434 39462,6434 39467,6439 39470,6443 39467,6444 39468,6449 39473,6451 39476,6452 39481,6452 39479,6452 39476,8452 39476,8456 39478,8460 39480,10460 39482,10455 39482,10456 39484,10460 39484,10463 39484,10468 39486,10473 39482,10475 39484,10475 39486,10476 39488,10477 39492,10475 39494,10480 39499,10476 39501,10479 39506,10480 39510,10475 39508,10480 39513,10481 39516,10481 39516,10485 39521,10487 39522,10490 39523,10490 39520,10493 39520,10496 44520,10491 44519,10491 44524,10492 44520,10497 44525,10499 44525,10502 44527,10500 44531,10502 44535,10506 44535,10511 44532,13511 44536,13513 44533,13510 44535,13507 44540,13511 44543,13515 44548,13517 44549,13522 44550,13525 42550,13520 42551,13522 42553,13525 42552,13529 42557,13529 42558,13524 42559,13525 42559,13525 42562,13520 42564,13523 42567,15523 42569,15523 42572,15524 42577,15529 42577,15530 42582,15532 42584,15532 42588,15531 42587,15531 42592,15530 42587,15530 42583,15533 42583,15536 47583,15532 47583,15535 47587,15534 47590,15536 47594,11536 47590,11533 47590,11529 47590,11533 47592,11533 47592,11533 47593,11537 47598,11538 47603,11538 47603,11538 47605,11541 47609,11544 47613,14544 47614,14539 47610,14537 47610,14537 47614,14535 50614,14537 50619,14539 50619,14540 50623,14538 50623,14537 50619,25599 26540,25599 26541,25599 26544,25594 26542,25599 26543,25596 26544,25597 26543,25598 26543,25593 26544,25588 26542,25593 26545,25595 26544,25596 26544,25599 26541,25594 26544,25592 26549,25593 26548,25597 26549,25596 26550,25594 26551,25590 26550,25594 26554,25597 26550,25598 26552,25593 26555,25598 22555,25599 22557,25604 22559,25605 22558,25606 22562,25605 22559,25605 22564,30605 22569,30610 22571,30610 22575,30609 22575,30609 22576,30609 22581,30605 22581,30610 22583,30610 22584,30613 22579,30613 22581,30616 22577,30619 22577,30621 22580,30621 22585,30626 22590,30628 22593,30629 22598,30626 22603,30628 22606,30629 22607,30629 22604,30627 22606,30632 22608,30633 22608,30636 22612,30641 17612,30642 17614,30647 17614,30651 17615,30654 17610,30655 17607,30658 17611,30653 17610,30654 17606,30654 17607,30659 17606,30660 17611,30658 17616,30659 17616,30664 17619,30665 17621,30665 17620,30667 17621,30671 17624,30673 17624,30673 17624,30678 17627,30675 17632,30675 17635,30678 17640,30681 17643,30686 17639,30691 17641,30696 19641,30699 19640,30700 19640,30696 19645,30698 19643,30699 19645,30702 19646,30703 19649,30699 19651,30704 19648,30706 19652,30709 19653,30709 19655,30709 19655,30712 19657,30708 19658,30705 19660,30700 19662,30701 19663,30706 19664,30711 19663,30707 19667,30704 19670,30708 19672,30709 19673,30711 19673,30711 19674,30713 19678,30718 19682,30723 20682,30721 20686,30725 20691,30726 20693,30729 20695,30728 20690,30730 20692,30733 20694,30736 20692,30736 20691,30740 20694,30741 20695,30741 20697,30746 20700,30747 20702,30750 20701,30751 20698,30753 24698,30749 24701,30748 24703,30746 24704,30747 29704,30747 29705,30749 29707,30752 29712,30757 29712,30760 34712,30760 34716,30763 34716,30759 34713,30759 34717,30763 34717,30758 34717,30757 34721,30760 34726,30758 34726,30763 34727,30763 34727,30764 34727,30759 34729,30759 34732,30762 34734,30757 34735,30761 34736,30759 34736,30762 34738,30757 34733,30760 34735,30762 34737,30760 34736,30765 34733,32765 34737,32768 34737,32765 34740,32765 34742,32768 34747,32772 34751,32772 34752,32777 34749,32782 34751,32783 33751,32783 33746,36783 33749,36783 33754,36786 33756,36787 33755,36787 33758,36791 33754,36796 33754,36801 33756,36801 33758,36801 33762,36802 33765,36802 33765,36806 33770,33806 33772,33806 33777,33809 33777,33814 33780,33814 33785,33818 33782,33821 33784,33826 33781,33822 33781,33824 33783,33822 33784,33826 33787,33823 33792,33827 33795,33828 33798,33829 33799,33833 33801,33833 33801,33836 33805,33839 33809,33842 33805,33847 33810,33845 32810,33847 32808,33849 32812,33851 32815,33849 32818,33849 32822,33847 32822,33847 32826,33850 32831,33854 32836,33857 32833,33856 32828,33859 32829,33860 32832,33857 32834,33857 32830,33855 32830,33857 32830,33855 32834,33859 32829,33859 32833,33862 32836,33864 32837,33864 32839,33866 32837,33869 32835,33872 32840,33874 37840,33879 37845,33881 37850,33881 37855,33886 37856,33891 37860,33896 37860,33893 37863,33894 38863,33896 38859,28896 38864,28899 39864,33899 39869,33896 39871,33898 39875,33902 39873,33902 39875,33907 39879,33912 39884,33908 39887,33908 39888,33905 39890,33909 39895,33911 39896,33908 39900,33912 39901,33915 39902,33915 39902,33915 39902,33910 39907,33910 39904,33914 39903,33912 39906,33916 39909,33920 39909,33922 39912,33923 39916,33928 39916,33931 39918,33932 39919,33935 39915,33936 39912,33934 39909,35934 39914,35931 39915,35935 39917,35939 39920,35939 39915,35940 39911,35944 39916,35944 39911,35944 39908,35945 39904,35945 39908,35945 39912,35950 39915,35955 39917,38955 39916,38960 39921,38962 39920,38962 39920,38967 39922,38967 39924,38970 39928,38975 39928,38973 39928,38977 39931,38980 39934,38984 39936,38982 39939,38983 39942,38985 39943,38987 39945,38992 41945,38988 41950,38989 41954,38992 41958,38992 41962,38992 41965,38993 41970,38997 41970,38997 41970,38994 41974,38994 41979,38997 41979,38999 41982,38994 41980,38998 41985,38998 41984,5334 23406,5330 23406,5325 23403,9325 23404,12325 23408,12325 23408,12322 23406,13322 23411,13325 23416,13326 23412,13322 23414,13327 23419,13328 23422,13329 23425,13333 23422,13337 23424,23491 35549,23490 35544,23494 35546,23499 35548,23495 35549,21495 35553,21490 35556,21492 35558,21492 35556,21494 35559,21494 35564,21494 35566,21499 35566,21502 35562,21502 35567,17502 35568,17506 35573,17507 35574,17511 35578,17512 35583,17513 35588,18513 35591,18514 35592,18515 35594,18513 35596,16513 35601,16513 37601,16513 37602,16511 37604,16513 37609,16514 37611,16518 37616,16522 34616,16524 34613,16528 34615,16528 34620,16533 34624,16535 34627,16538 34628,16539 34630,16539 34631,16542 34628,16542 34633,16544 34638,16547 38638,16547 38640,16543 38645,16543 38640,16540 38640,16543 38640,16542 38641,16546 38646,16541 38649,16541 38645,18541 38648,18544 38648,18544 38653,18544 38656,18549 38651,18547 38651,18550 38656,18547 38658,23547 38663,23544 38664,23548 38668,23548 38670,28548 38672,28549 38669,28549 38673,28545 38669,28549 38670,28554 38670,28557 38674,28560 38669,28562 38674,28562 38669,28561 38669,28564 38671,28569 38671,38779 44699,38780 44695,38778 44698,38783 44700,38785 44700,38781 44701,38782 44696,38786 44691,38789 44692,38794 44692,38799 44688,38799 44693,38803 44697,38808 44697,38806 44697,38806 44700,38803 44702,38803 44706,38802 44707,38807 48707,38808 48707,38806 48707,38810 48712,38810 48709,38810 48711,38810 48711,38806 48707,38802 48710,38803 48706,38805 48711,38810 48711,38805 48709,38809 48710,38809 48710,38814 48707,38815 48703,38816 48703,38816 48704,38820 48704,38822 48709,38820 48710,38818 48714,38822 48716,38822 48719,38827 48722,38828 48727,38832 48725,38830 48730,38831 48726,38832 48724,38829 48728,8431 35532,8431 35537,4431 35532,4434 35537,4438 35537,4439 35533,4443 35535,4442 35530,4445 35527,4449 35527,4453 35530,4458 35530,4459 39530,4460 39531,4461 39531,4464 39531,4468 39531,4470 39534,4465 39534,4465 39532,4469 39532,4471 39537,4466 39538,4470 39539,4473 39540,4476 39540,4480 39543,4485 39548,4483 39546,4484 39547,4484 39549,4484 39551,4486 39553,4486 39554,4487 39551,4483 39553,4486 39554,4490 39556,4493 39557,4498 39561,4494 39562,-4749 22345,-4752 22345,-4748 22348,-4744 22351,-4740 22356,-4741 22358,-4739 22361,-4734 22359,-4730 25359,-4730 25360,-4725 25360,-4727 25360,-4727 25361,-6727 25360,-6729 25365,-6730 25365,-6727 25365,-6731 25364,-6730 27364,-6727 27366,-6723 27367,-3723 27363,-3719 27368,-3720 27371,-3718 27366,-3717 27369,-3716 27369,-3714 27372,-3711 27370,-3712 27371,-3712 27370,-3710 27375,-3708 27377,-3707 27382,-3706 27385,-3706 27389,-3705 32389,-3704 32392,-3704 32392,-3699 32391,-3699 32395,-3694 32399,-3694 32400,-3695 32404,-3695 32408,-3693 32410,-3693 32410,-3697 32410,-3692 32413,-3691 32418,-3686 32420,-3683 32425,-3681 32420,-3678 32424,-3673 32424,-3676 32427,-3673 32426,-3671 32426,-3676 33426,-3678 33428,-3676 33428,-3679 33428,-3679 33433,-3677 33434,-3676 33438,-3681 33440,1319 33444,1321 33441,1325 33444,1329 33439,1326 33444,1326 33439,1327 33439,1327 33440,1332 33444,1333 33449,1338 33453,1338 33450,1343 33450,1347 33454,1346 33457,1346 33455,1342 33459,1341 33462,1346 33462,1347 33463,1343 33463,1344 33462,1348 33457,1347 33460,1352 33464,1356 33468,1361 33469,1363 33468,1365 33469,1368 33472,1369 33475,-2631 33478,-2633 33483,-2629 33486,-2632 34486,-2628 36486,-2625 36488,-2621 36488,-2624 36488,-2622 36492,-2624 36491,-2629 36491,-2627 36496,-2623 36499,-2628 36502,-2631 36506,-2626 36506,-2622 36506,-2622 36509,-2619 36514,-2624 36512,-2621 36510,-2619 36510,-2619 36508,-2617 36512,-2615 36512,-2615 36513,-2615 36511,-2615 36506,-2612 36507,-2609 36511,-2606 37511,-2606 37508,-2610 37505,-2607 37508,-2602 37512,-2599 37512,-2595 37510,-2597 37511,-2592 37515,-2597 37514,-2592 37519,-2592 37524,-2592 37526,-2594 37521,-2594 37516,-2591 36516,-2588 36517,-2589 36513,-2586 36514,-2584 36514,-2583 36516,-2579 36514,-2578 36518,-2578 35518,-2575 35519,-2577 35519,-2578 35524,-2578 35529,-2578 35532,-2578 35534,-2580 35537,-2584 35541,-2586 35542,-2587 35544,-2585 35540,-2585 35544,-2584 35543,-2580 35548,-2576 35550,-2571 35553,-2567 35555,-2565 35560,-2560 35560,-2557 35564,-2553 35564,-5553 36564,-5548 36564,-5544 36565,-5547 36565,-5545 36570,-5542 36565,-5543 36566,-5543 36568,-5543 36570,-5540 36575,-5537 36577,-5535 36581,-5532 36580,-5528 36575,-5526 38575,-5526 38576,-5526 38571,-5522 38571,-5518 38576,-5514 42576,-5510 42581,-5512 42583,-5512 42582,-5507 42582,-5510 42585,-2510 42589,-2511 42592,-2508 42594,-2506 42597,-2503 42598,-2503 42603,-2498 42608,-2501 42611,-2500 42616,-2502 42613,-2502 42616,-4502 42616,-4502 42620,-4502 42622,-4506 42619,-4509 42621,-4511 42624,-4515 42625,-4510 42625,-4507 42628,-4502 42624,-4501 42629,-4505 45629,-4503 45630,-4499 45631,-4496 45630,-4497 45628,-4495 45630,-4494 46630,-4491 46634,-4487 46629,-4483 46631,21336 40532,21341 40533,21346 40534,21346 40536,21345 40536,21346 40536,21345 40536,21344 40538,21347 40543,21348 40543,21351 40540,21351 40542,21348 40545,21351 40546,21352 40546,21353 40546,21358 40546,21359 40545,21359 40550,21357 40555,21362 40560,21364 40555,21363 40555,21364 40560,25364 40564,25365 40566,25368 40566,25371 45566,25372 45567,25372 45562,25376 45564,25381 42564,25385 42560,25389 42564,25389 42568,25393 42572,25390 42572,28390 42569,28389 42570,28385 42574,28386 42576,28389 42577,31389 42578,31385 42582,31387 42582,31390 42578,31391 42579,31392 42576,29392 42580,29396 42582,29398 43582,29402 43584,29406 43585,29407 43587,29411 43592,29413 43594,29414 43595,25414 43600,25412 43595,25415 43599,25420 43602,25418 43604,25423 43599,25426 43599,25429 43602,25434 42602,25429 42604,25432 42600,25435 42605,25436 47605,25440 50605,25441 50610,25439 50614,25444 50617,25447 50621,25444 50624,25444 50626,25445 50627,25450 50632,25450 50628,25451 50630,25451 50632,25454 50633,25458 50637,25462 50641,25463 50640,25463 51640,25467 51644,25469 51649,25473 51650,25474 51653,25475 51654,26475 51658,26475 51662,26474 51665,26476 51665,26481 51661,26483 55661,26485 55664,30485 55667,30485 55670,30489 55671,30489 55668,30491 55670,30492 55670,30493 55675,30497 55675,30501 55671,30503 55676,30500 55677,30498 55672,30494 55675,30499 55676,30500 55676,30505 55681,30501 55684,30496 55685,30500 55685,30502 55687,30506 55692,30507 55693,30506 55692,30511 55693,30516 55694,30514 55699,30514 55701,30512 55701,34512 55705,34516 55708,34520 55704,34518 56704,34519 56704,34520 56706,34517 56706,34515 56701,34519 59701,34522 59706,34522 59708,34522 59713,34526 59715,34528 59717,34533 59712,34538 59715,34538 59717,34541 59717,34546 59720,34548 59721,34552 63721,34547 63726,34549 63728,34554 63726,34556 63726,34557 63721,34556 63725,34561 63730,34558 63730,37558 63725,37561 63729,37565 63724,37569 63720,37573 63718,37578 63722,37577 63718,37579 63720,37579 63722,37580 63719,37580 63720,37579 63724,37574 63725,37574 63727,37576 63725,37581 63729,37583 63732,37586 63732,37590 63737,37592 63734,37597 63731,37600 63730,37596 63731,37596 63733,37600 63733,37601 63735,37596 63735,37591 63732,37596 63733,37601 63738,37602 63733,37599 63738,37594 63740,37598 63744,37603 63745,37605 63747,37607 63752,37607 63756,37603 63757,37603 63761,37604 63761,37608 63758,37609 63762,37604 63764,37604 63764,41604 63765,41600 63761,41599 63761,41600 63766,41596 63766,41599 63766,41601 63770,41604 63768,41608 63768,41611 63772,41614 63767,41609 63763,41612 63765,41615 63760,38615 63764,38615 63768,38618 63768,35618 63769,35618 63774,35617 63775,35618 63776,35613 63775,35615 63780,35612 63782,35613 63779,35614 63775,35618 63774,35619 63776,35624 63778,35624 63780,35629 63785,35629 63780,35626 63781,35624 63782,35629 63784,35634 63787,35638 63782,35634 63783,35634 63778,35633 63777,35638 63782,35641 63786,35644 63791,35648 63793,35647 63793,35649 63797,35653 63801,35654 63804,35654 63804,35656 63804,35655 63806,35658 63810,35658 63805,35662 63805,35657 67805,35658 67808,35660 67811,35664 67808,35660 67803,35658 67803,35661 67803,35663 67808,35666 67810,35670 67814,35669 67813,35669 67816,37669 67820,37664 67820,2275 13363,2278 16363,2274 16363,2275 16362,2279 16362,2282 16362,2287 16366,2284 16366,4284 16366,4286 16371,4290 16375,4294 18375,4295 18377,9295 18381,9296 18381,9299 18382,9303 18379,9305 19379,9308 19375,8308 19380,8312 19380,38746 37651,38749 37652,38754 37653,38757 37656,38753 37661,38753 37661,38758 37663,38763 37664,38763 42664,38768 42666,38765 42668,38770 42664,38767 42659,38768 42659,38773 42654,38771 42659,38775 42661,41775 42663,41778 42665,41781 42669,41782 42667,41779 42669,41784 42672,41781 42672,41783 42672,41780 42672,41783 42675,41784 42675,41788 42676,41792 42677,41792 42675,41793 42680,41793 42676,41796 42681,41801 42685,41804 42684,41806 42685,41804 42690,41802 42692,41805 42696,41800 42697,41802 42698,41804 42700,41809 42704,41813 42705,36813 42708,36813 42704,36810 42703,36811 42705,40811 42706,40815 46706,40816 46708,40820 46708,40818 46712,40822 46717,40825 46720,40829 46724,40827 46727,40831 46727,40833 46731,40829 46733,40830 46733,36830 46738,36830 46741,36834 46744,36831 46749,36826 46748,36822 46748,36824 46751,36819 46755,36823 46758,36823 46762,36824 46766,36822 46769,36826 46772,36831 46774,36828 42774,36833 42776,36833 42777,36838 42782)'))); +INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); +UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; + +alter table t1 drop index `si`; +set global innodb_purge_run_now=on; +set global innodb_fast_shutdown = 0; +--source include/restart_mysqld.inc +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_estimate.test b/mysql-test/suite/innodb_gis/t/rtree_estimate.test new file mode 100644 index 00000000000..4caa5feb5b1 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_estimate.test @@ -0,0 +1,79 @@ +# +# BUG#21245805 HA_INNOBASE::RECORDS_IN_RANGE() RETURNS CONSTANT FOR SPATIAL INDEXES +# + +--source include/have_innodb.inc +--source include/have_debug.inc + +CREATE TABLE t1 ( + g GEOMETRY NOT NULL +) ENGINE=InnoDB; + +ALTER TABLE t1 ADD SPATIAL(g); + +SET @g1 = ST_GeomFromText('POINT(10 10)'); +SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))'); +SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))'); + +# Test empty table +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); + +# Insert gis data +INSERT INTO t1 VALUES(@g1); +INSERT INTO t1 VALUES(@g2); +INSERT INTO t1 VALUES(@g3); + +SELECT ST_AsText(g) FROM t1; + +ANALYZE TABLE t1; + +# Test g1 +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); + +# Test g2 +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); + +# Test g3 +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); + +EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); +SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); + +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test b/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test new file mode 100644 index 00000000000..928b1878e69 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test @@ -0,0 +1,125 @@ +# WL#6745 InnoDB R-tree support +# This test case will test basic R-tree support features. + +--source include/have_innodb.inc + +# Create table with R-tree index. +create table t1 (i int, i2 char(10), g geometry not null, primary key (i, i2), spatial index (g))engine=innodb; + +# Insert values. +insert into t1 values (1, "111", POINT(1,1)); +insert into t1 values (2, "222", POINT(1.5,1.5)); +insert into t1 values (3, "333", POINT(3,3)); +insert into t1 values (4, "444", POINT(3.1,3.1)); +insert into t1 values (5, "555", POINT(5,5)); + +analyze table t1; + +# Select by R-tree index. +set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))'); +explain select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1); +select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1); + +# Delete values. +set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))'); +delete from t1 where MBRWithin(t1.g, @g1); +check table t1; + +select ST_astext(t1.g) from t1; + +# Update values. +set @g1 = ST_GeomFromText('Polygon((5 5,5 5,5 5,5 5,5 5))'); +update t1 set g = POINT(2,2) where MBRWithin(t1.g, @g1); +check table t1; + +select ST_astext(t1.g) from t1; + +# Show index. +--replace_column 7 # +show indexes from t1; + +# Cleanup. +drop table t1; + +# Test functions. +create table t1 (name VARCHAR(100), square GEOMETRY not null, spatial index (square))engine=innodb; + + +INSERT INTO t1 VALUES("small", ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); +INSERT INTO t1 VALUES("big", ST_GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); + +INSERT INTO t1 VALUES("up", ST_GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))')); +INSERT INTO t1 VALUES("up2", ST_GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))')); +INSERT INTO t1 VALUES("up3", ST_GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))')); + +INSERT INTO t1 VALUES("down", ST_GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))')); +INSERT INTO t1 VALUES("down2", ST_GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))')); +INSERT INTO t1 VALUES("down3", ST_GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))')); + +INSERT INTO t1 VALUES("right", ST_GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))')); +INSERT INTO t1 VALUES("right2", ST_GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))')); +INSERT INTO t1 VALUES("right3", ST_GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))')); + +INSERT INTO t1 VALUES("left", ST_GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))')); +INSERT INTO t1 VALUES("left2", ST_GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))')); +INSERT INTO t1 VALUES("left3", ST_GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))')); + +SET @p = ST_GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'); +SELECT name, ST_AsText(square) from t1 where MBRContains(@p, square); +SELECT name, ST_AsText(square) from t1 where MBRDisjoint(@p, square); +SELECT name, ST_AsText(square) from t1 where MBREquals(@p, square); +SELECT name, ST_AsText(square) from t1 where MBRIntersects(@p, square); +SELECT name, ST_AsText(square) from t1 where MBROverlaps(@p, square); +SELECT name, ST_AsText(square) from t1 where MBRTouches(@p, square); +SELECT name, ST_AsText(square) from t1 where MBRWithin(@p, square); + +# MBROverlaps needs a few more tests, with point and line dimensions + +--error ER_GIS_INVALID_DATA +SET @vert1 = ST_GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))'); +--error ER_GIS_INVALID_DATA +SET @horiz1 = ST_GeomFromText('POLYGON ((-2 0, 2 0, -2 0))'); +--error ER_GIS_INVALID_DATA +SET @horiz2 = ST_GeomFromText('POLYGON ((-1 0, 3 0, -1 0))'); +--error ER_GIS_INVALID_DATA +SET @horiz3 = ST_GeomFromText('POLYGON ((2 0, 3 0, 2 0))'); +--error ER_GIS_INVALID_DATA +SET @point1 = ST_GeomFromText('POLYGON ((0 0))'); +--error ER_GIS_INVALID_DATA +SET @point2 = ST_GeomFromText('POLYGON ((-2 0))'); + +SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @vert1) GROUP BY a1.name; +SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @horiz1) GROUP BY a1.name; +SELECT MBROverlaps(@horiz1, @vert1) FROM DUAL; +SELECT MBROverlaps(@horiz1, @horiz2) FROM DUAL; +SELECT MBROverlaps(@horiz1, @horiz3) FROM DUAL; +SELECT MBROverlaps(@horiz1, @point1) FROM DUAL; +SELECT MBROverlaps(@horiz1, @point2) FROM DUAL; + +DROP TABLE t1; + +# Inplace create spatial index is not supported +create table t1 (i int not null, g geometry not null)engine=innodb; + +# Insert values. +insert into t1 values (1, POINT(1,1)); +insert into t1 values (2, POINT(1.5,1.5)); +insert into t1 values (3, POINT(3,3)); +insert into t1 values (4, POINT(3.1,3.1)); +insert into t1 values (5, POINT(5,5)); + +alter table t1 add primary key(i), algorithm=inplace; +alter table t1 drop primary key; + +create spatial index idx on t1(g) algorithm=inplace; + +create spatial index idx2 on t1(g); + +alter table t1 add primary key(i), algorithm=inplace; + +show create table t1; + +drop index idx on t1; + +drop table t1; + diff --git a/mysql-test/suite/innodb_gis/t/rtree_old.test b/mysql-test/suite/innodb_gis/t/rtree_old.test new file mode 100644 index 00000000000..6dafa7870bb --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_old.test @@ -0,0 +1,1014 @@ +# This is a testcase ported from mysql-test/t/gis-rtree.test + +-- source include/have_geometry.inc + +# +# test of rtree (using with spatial data) +# +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +--enable_warnings + +CREATE TABLE t1 ( + fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + g GEOMETRY NOT NULL, + SPATIAL KEY(g) +) ENGINE=InnoDB; + +SHOW CREATE TABLE t1; + +let $1=150; +let $2=150; +while ($1) +{ + eval INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString($1 $1, $2 $2)')); + dec $1; + inc $2; +} + +SELECT count(*) FROM t1; +SELECT fid, ST_AsText(g) FROM t1 WHERE MBRWithin(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))')) ORDER BY fid; + +DROP TABLE t1; + +CREATE TABLE t2 ( + fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + g GEOMETRY NOT NULL +) ENGINE=InnoDB; + +let $1=10; +while ($1) +{ + let $2=10; + while ($2) + { + eval INSERT INTO t2 (g) VALUES (LineString(Point($1 * 10 - 9, $2 * 10 - 9), Point($1 * 10, $2 * 10))); + dec $2; + } + dec $1; +} + +ALTER TABLE t2 ADD SPATIAL KEY(g); +SHOW CREATE TABLE t2; +SELECT count(*) FROM t2; +SELECT fid, ST_AsText(g) FROM t2 WHERE MBRWithin(g, + ST_GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')) ORDER BY fid; + +let $1=10; +while ($1) +{ + let $2=10; + while ($2) + { + eval DELETE FROM t2 WHERE MBRWithin(g, ST_Envelope(ST_GeometryFromWKB(Point($1 * 10 - 9, $2 * 10 - 9), Point($1 * 10, $2 * 10)))); + SELECT count(*) FROM t2; + dec $2; + } + dec $1; +} + +DROP TABLE t2; + +drop table if exists t1; +CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a)); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +INSERT INTO t1 VALUES (ST_GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); +check table t1; +analyze table t1; +drop table t1; + +# +# The following crashed gis +# + +CREATE TABLE t1 ( + fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + g GEOMETRY NOT NULL, + SPATIAL KEY(g) +) ENGINE=InnoDB; + +INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString(1 2, 2 3)')),(ST_GeomFromText('LineString(1 2, 2 4)')); +#select * from t1 where g ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +--error ER_WRONG_ARGUMENTS +SELECT 1 FROM t1 WHERE a > ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +--error ER_WRONG_ARGUMENTS +EXPLAIN SELECT 1 FROM t1 WHERE a >= ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +--error ER_WRONG_ARGUMENTS +SELECT 1 FROM t1 WHERE a >= ST_GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1 1)'); +DROP TABLE t1; + + +--echo # +--echo # Bug #51357: crash when using handler commands on spatial indexes +--echo # + +CREATE TABLE t1(a GEOMETRY NOT NULL,SPATIAL INDEX a(a)); +HANDLER t1 OPEN; +HANDLER t1 READ a FIRST; +HANDLER t1 READ a NEXT; +HANDLER t1 READ a PREV; +HANDLER t1 READ a LAST; +HANDLER t1 CLOSE; + +# second crash fixed when the tree has changed since the last search. +HANDLER t1 OPEN; +HANDLER t1 READ a FIRST; +INSERT INTO t1 VALUES (ST_GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); +--echo # should not crash +--disable_result_log +HANDLER t1 READ a NEXT; +--enable_result_log +HANDLER t1 CLOSE; + +DROP TABLE t1; + + +--echo End of 5.0 tests. + + +--echo # +--echo # Bug #57323/11764487: myisam corruption with insert ignore +--echo # and invalid spatial data +--echo # + +CREATE TABLE t1(a LINESTRING NOT NULL, b GEOMETRY NOT NULL, + SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=InnoDB; +--error ER_CANT_CREATE_GEOMETRY_OBJECT +INSERT INTO t1 VALUES(ST_GEOMFROMTEXT("point (0 0)"), ST_GEOMFROMTEXT("point (1 1)")); +--error ER_CANT_CREATE_GEOMETRY_OBJECT +INSERT IGNORE INTO t1 SET a=ST_GEOMFROMTEXT("point (-6 0)"), b=ST_GEOMFROMTEXT("error"); +--error ER_CANT_CREATE_GEOMETRY_OBJECT +INSERT IGNORE INTO t1 SET a=ST_GEOMFROMTEXT("point (-6 0)"), b=NULL; +SELECT ST_ASTEXT(a), ST_ASTEXT(b) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL, + KEY(a), SPATIAL KEY(b)) ENGINE=InnoDB; +INSERT INTO t1 VALUES(0, ST_GEOMFROMTEXT("point (1 1)")); +--error ER_GIS_INVALID_DATA +INSERT IGNORE INTO t1 SET a=0, b=ST_GEOMFROMTEXT("error"); +--error ER_CANT_CREATE_GEOMETRY_OBJECT +INSERT IGNORE INTO t1 SET a=1, b=NULL; +SELECT a, ST_ASTEXT(b) FROM t1; +DROP TABLE t1; + +--echo End of 5.1 tests diff --git a/mysql-test/suite/innodb_gis/t/rtree_purge.test b/mysql-test/suite/innodb_gis/t/rtree_purge.test new file mode 100644 index 00000000000..98652c58f19 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_purge.test @@ -0,0 +1,52 @@ +# This test case will test R-tree purge. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/have_innodb_zip.inc +--source include/have_debug.inc +--source include/big_test.inc +# Valgrind takes too much time on PB2 even in the --big-test runs. +--source include/not_valgrind.inc + +# Temporarily disable it for 4k page size. Since it'll take too long +# time. +--disable_warnings +if (`SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 4096`) +{ + --skip Test requires InnoDB with not 4k Page size. +} +--enable_warnings + +create table t ( + a point not null,b point not null,c point, + d point not null,e point,f point, + spatial key (d),spatial key (b) +) engine=innodb; + +delimiter |; +create procedure p(i int) +begin + declare n int default 0; + declare continue handler for sqlexception begin end; + delete from t; + repeat + set @p=point(1,1); + insert into t values(@p,@p,@p,@p,@p,@p); + insert into t values(@p,@p,@p,@p,@p,@p); + insert into t select @p,@p,@p,@p,@p,@p + from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j; + delete from t; + set n:=n+1; + until n >= i end repeat; +end| +delimiter ;| + +call p(200); + +--source include/wait_innodb_all_purged.inc + +# Clean up. +drop procedure p; +drop table t; diff --git a/mysql-test/suite/innodb_gis/t/rtree_recovery.test b/mysql-test/suite/innodb_gis/t/rtree_recovery.test new file mode 100644 index 00000000000..9e332c089f2 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_recovery.test @@ -0,0 +1,77 @@ +# WL#6745 InnoDB R-tree support +# This test case test R-tree crash/recovery. + +# Restart is not supported in embedded +--source include/not_embedded.inc +--source include/have_innodb.inc +--source include/no_valgrind_without_big.inc + +# Do a clean shutdown and restart so that the redo log is cleaned up from previous tests. +--source include/restart_mysqld.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +# Update values +delimiter |; +create procedure update_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + update t1 set c2 = Point(i + 10000, i + 10000) where c2 = Point(i, i); + set i = i + 1; + end while; +end| +delimiter ;| + + +# Test crash recovery. +# + +# Test level 1 rtree. +CALL insert_t1(367); +COMMIT; + +--source include/kill_and_restart_mysqld.inc + +# Check table. +check table t1; + +# Clean up. +drop table t1; + +# Test crash recovery on point spatial index. +create table t1 (c1 int, c2 point not null, spatial index (c2))engine=innodb; + +# Some DML on point spatial index. +CALL insert_t1(367); +CALL update_t1(367); + +SET @poly1 = ST_GeomFromText('POLYGON((10000 10000, 10000 10350, 10350 10350, 10350 10000, 10000 10000))'); +delete from t1 where ST_Contains(@poly1, c2); +COMMIT; + +--source include/kill_and_restart_mysqld.inc + +# Check table. +check table t1; + +select count(*) from t1; +select c1, ST_astext(c2) from t1; + +# Clean up. +drop procedure insert_t1; +drop procedure update_t1; +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_rollback1.test b/mysql-test/suite/innodb_gis/t/rtree_rollback1.test new file mode 100644 index 00000000000..123bccf76a1 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_rollback1.test @@ -0,0 +1,54 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/big_test.inc +--source include/not_valgrind.inc +--source include/have_innodb_16k.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +start transaction; +insert into t1 select * from t1; +select count(*) from t1; +rollback; +check table t1; + +select count(*) from t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +# Clean up. +drop table t1; + diff --git a/mysql-test/suite/innodb_gis/t/rtree_rollback2.test b/mysql-test/suite/innodb_gis/t/rtree_rollback2.test new file mode 100644 index 00000000000..cddbaf5592d --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_rollback2.test @@ -0,0 +1,34 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/big_test.inc +--source include/not_valgrind.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +start transaction; +CALL insert_t1(70000); +rollback; +check table t1; + +# Clean up. +drop procedure insert_t1; +drop table t1; + diff --git a/mysql-test/suite/innodb_gis/t/rtree_search.test b/mysql-test/suite/innodb_gis/t/rtree_search.test new file mode 100644 index 00000000000..3c591004042 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_search.test @@ -0,0 +1,140 @@ +# WL#6968 InnoDB R-tree cursor support + +# Not supported in embedded +--source include/not_embedded.inc +--source include/not_valgrind.inc + +--source include/have_innodb.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +# Test level 1 rtree. +CALL insert_t1(1000); +select count(*) from t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); + +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +#SET DEBUG='+d, rtr_pessimistic_position'; +#select count(*) from t1 where MBRWithin(t1.c2, @g1); +#SET DEBUG='-d, rtr_pessimistic_position'; + +# Equality search +set @g1 = ST_GeomFromText('Point(1 1)'); +select count(*) from t1 where MBRequals(t1.c2, @g1); + +# MBRDisjoint search +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRdisjoint(t1.c2, @g1); + +# Clean up. +DROP PROCEDURE insert_t1; + +truncate t1; + +let $1=150; +let $2=150; +while ($1) +{ + eval INSERT INTO t1 VALUES ($1, ST_GeomFromText('LineString($1 $1, $2 $2)')); + dec $1; + inc $2; +} + +select count(*) from t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); +select count(*) from t1 where MBRwithin(t1.c2, @g1); +truncate t1; + +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(4 4, 170 170)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); +INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +# Testing "MBRtouches" +# This is apparently now treated as "intersects" +set @g1 = ST_GeomFromText('Polygon((0 0,0 2, 2 2, 2 0, 0 0))'); +select count(*) from t1 where MBRtouches(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((0 0,0 200,200 200,200 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +# Test MBRequals +set @g1 = ST_GeomFromText('LineString(2 2, 150 150)'); +select count(*) from t1 where MBRequals(t1.c2, @g1); + +# Test store procedure with open cursor +set @g1 = ST_GeomFromText('Polygon((0 0,0 200,200 200,200 0,0 0))'); +create table t3 (a int) engine = innodb; + +delimiter |; + +CREATE PROCEDURE curdemo() +BEGIN + DECLARE done INT DEFAULT FALSE; + DECLARE a INT; + + DECLARE cur1 CURSOR FOR SELECT c1 from t1 where MBRWithin(t1.c2, @g1); + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + OPEN cur1; + read_loop: LOOP + FETCH cur1 INTO a; + IF done THEN + LEAVE read_loop; + END IF; + INSERT INTO test.t3 VALUES (a); +END LOOP; + +CLOSE cur1; +END| + +delimiter ;| + +call curdemo(); + +select count(*) from t3; + +drop procedure curdemo; +drop table t3; +drop table t1; + diff --git a/mysql-test/suite/innodb_gis/t/rtree_split.test b/mysql-test/suite/innodb_gis/t/rtree_split.test new file mode 100644 index 00000000000..e6925940fcd --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_split.test @@ -0,0 +1,102 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree split, mostly on duplciate records. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/big_test.inc +--source include/not_valgrind.inc +--source include/have_debug.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +#Check second round spliting. +SET SESSION debug="+d, rtr_page_need_second_split"; +insert into t1 select * from t1; +SET SESSION debug="-d, rtr_page_need_second_split"; + +delete from t1; + +insert into t1 values(1, Point(1,1)); +insert into t1 values(2, Point(2,2)); +insert into t1 values(3, Point(3,3)); +insert into t1 values(4, Point(4,4)); +insert into t1 values(5, Point(5,5)); +insert into t1 values(6, Point(6,6)); +insert into t1 values(7, Point(7,7)); +insert into t1 values(8, Point(8,8)); +insert into t1 values(9, Point(9,9)); + +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; + +insert into t1 select * from t1; +insert into t1 select * from t1; + +insert into t1 select * from t1; +insert into t1 select * from t1; +start transaction; +insert into t1 select * from t1; +rollback; +check table t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +check table t1; + +select count(*) from t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +drop index c2 on t1; + +# Test create index with algorithm=inplace +create spatial index idx2 on t1(c2); + +show create table t1; + +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +# test read only case +let $restart_parameters = restart: --innodb-read-only; +--source include/restart_mysqld.inc +set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))'); +select count(*) from t1 where MBRWithin(t1.c2, @g1); + +let $restart_parameters = restart; +--source include/restart_mysqld.inc + +# Clean up. +drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_undo.test b/mysql-test/suite/innodb_gis/t/rtree_undo.test new file mode 100644 index 00000000000..5ed11f6165d --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_undo.test @@ -0,0 +1,38 @@ +# +# BUG#21340268 INNODB: BOGUS CHECK FOR MAXIMUM RECORD LENGTH WITH SPATIAL KEY +# BUG#21508582 UNDO LOG DOES NOT CONTAIN ENOUGH INFORMATION ON SPATIAL COLUMNS +# + +--source include/have_innodb.inc +--source include/count_sessions.inc + +connect (con1,localhost,root,,); +connection default; + +let $row_format = DYNAMIC; +let $prefix_size = 767; + +let $index = spatial_none; +--source include/innodb_gis_undo.inc + +let $index = spatial_only; +--source include/innodb_gis_undo.inc + +let $index = spatial_mixed; +--source include/innodb_gis_undo.inc + + +let $row_format = COMPACT; +let $prefix_size = 767; + +let $index = spatial_none; +--source include/innodb_gis_undo.inc + +let $index = spatial_only; +--source include/innodb_gis_undo.inc + +let $index = spatial_mixed; +--source include/innodb_gis_undo.inc + +disconnect con1; +--source include/wait_until_count_sessions.inc diff --git a/mysql-test/suite/innodb_gis/t/types.test b/mysql-test/suite/innodb_gis/t/types.test new file mode 100644 index 00000000000..bd03e7b1dbe --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/types.test @@ -0,0 +1,89 @@ +# WL#6455 GEOMETRY datatypes support +# In order to implement GIS indexing in InnoDB, +# InnoDB needs to support GEOMETRY datatypes, +# so that InnoDB stores them properly and understands them. + +# Restarting is not supported in embedded +--source include/not_embedded.inc +--source include/have_innodb.inc +--source include/have_debug.inc + +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc + +# Turn on the geometry data print. +SET SESSION debug="+d,row_print_geometry_data"; + +# Test GEOMETRY datatype. +CREATE TABLE t_wl6455 ( i INT, g GEOMETRY NOT NULL) ENGINE=InnoDB; +SHOW CREATE TABLE t_wl6455; + +# Insert Point. +INSERT INTO t_wl6455 VALUES(1, POINT(1,1)); + +INSERT INTO t_wl6455 VALUES(2, POINT(2,2)); + +# Insert MultiPoint. +SET @mp = 'MULTIPOINT(0 0, 20 20, 60 60)'; +INSERT INTO t_wl6455 VALUES(3, ST_GeomFromText(@mp)); + +# Insert LineString. +INSERT INTO t_wl6455 VALUES(4, LINESTRING(POINT(1,1), POINT(4, 4))); + +INSERT INTO t_wl6455 VALUES(5, LINESTRING(POINT(2,2), POINT(5, 5))); + +# Insert MultiLineString. +SET @mls = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))'; +INSERT INTO t_wl6455 VALUES(6, ST_GeomFromText(@mls)); + +# Insert Polygon. +SET @poly = 'Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'; +INSERT INTO t_wl6455 VALUES(7, ST_GeomFromText(@poly)); + +# Insert MultiPolygon. +SET @mpoly = 'MultiPolygon(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1)))'; +INSERT INTO t_wl6455 VALUES(8, ST_GeomFromText(@mpoly)); + +# Insert GeometryCollection. +SET @gc = 'GeometryCollection(Point(1 1),LineString(2 2, 3 3))'; +INSERT INTO t_wl6455 VALUES(9, ST_GeomFromText(@gc)); + +# Show result. +SELECT ST_AsText(g) FROM t_wl6455; + +# Test create prefix index. +CREATE INDEX i_p ON t_wl6455 (g(10)); + +# Select on prefix index. +--replace_column 10 # +EXPLAIN SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(2,2); +SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(2,2); + +# Test rollback/commit +SET AUTOCOMMIT = 0; +INSERT INTO t_wl6455 VALUES(10, POINT(10,10)); +SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(10,10); +ROLLBACK; +SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(10,10); + +INSERT INTO t_wl6455 VALUES(10, POINT(10,10)); +COMMIT; + +INSERT INTO t_wl6455 VALUES(11, POINT(11,11)); +BEGIN; +INSERT INTO t_wl6455 VALUES(1, POINT(1,1)); + +--source include/kill_and_restart_mysqld.inc + +CHECK TABLE t_wl6455; +SELECT ST_AsText(g) FROM t_wl6455; + +# Check information_schema, the mtype of GEOMETRY datatype is 14. +SELECT sc.name, sc.pos, sc.mtype +FROM information_schema.innodb_sys_columns sc +INNER JOIN information_schema.innodb_sys_tables st +ON sc.TABLE_ID=st.TABLE_ID +WHERE st.NAME='test/t_wl6455' AND sc.NAME='g'; + +# Clean up +DROP TABLE t_wl6455; diff --git a/mysql-test/suite/innodb_gis/t/update_root.test b/mysql-test/suite/innodb_gis/t/update_root.test new file mode 100644 index 00000000000..395fc715f31 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/update_root.test @@ -0,0 +1,39 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree multi level split. + +# Not supported in embedded +--source include/not_embedded.inc + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/big_test.inc +--source include/not_valgrind.inc +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values (i, Point(i, i)); + set i = i + 1; + end while; +end| +delimiter ;| + +# Test level 3 rtree. +CALL insert_t1(70000); + +CALL insert_t1(90); +CALL insert_t1(90); +CALL insert_t1(83); + +insert into t1 values (0, Point(0.9, 0.9)); + +# Check table. +check table t1; + +drop procedure insert_t1; +drop table t1; From a6a4c25bf7d943ff5a429fbf32fe04fdaca25b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 12 Oct 2017 17:21:04 +0300 Subject: [PATCH 094/128] MariaDB adjustments to innodb_gis tests. Some test are still disabled as they provide different results, fail on different error or crash. Fixes also MDEV-14060 InnoDB: Foreign key constraint to geometry type does not work where test intentionally tried incorrect cases. --- .../include/innodb_gis_row_format_basic.inc | 420 ++++++++++++++++++ .../include/kill_and_restart_mysqld.inc | 15 + mysql-test/include/wait_innodb_all_purged.inc | 60 +++ mysql-test/suite/innodb_gis/disabled.def | 26 ++ .../suite/innodb_gis/r/kill_server.result | 2 +- .../suite/innodb_gis/r/point_basic.result | 89 ++-- .../innodb_gis/r/repeatable_spatial.result | 20 + mysql-test/suite/innodb_gis/r/rollback.result | 2 + .../suite/innodb_gis/r/rtree_compress.result | 4 + .../suite/innodb_gis/r/rtree_compress2.result | 2 +- .../innodb_gis/r/rtree_create_inplace.result | 2 + .../suite/innodb_gis/r/rtree_debug.result | 6 +- .../innodb_gis/r/rtree_drop_index.result | 10 +- .../suite/innodb_gis/r/rtree_purge.result | 1 + .../suite/innodb_gis/r/rtree_undo.result | 27 ++ mysql-test/suite/innodb_gis/r/types.result | 12 +- .../suite/innodb_gis/t/bug16236208.test | 1 + .../suite/innodb_gis/t/bug17057168.test | 1 + mysql-test/suite/innodb_gis/t/geometry.test | 2 +- .../suite/innodb_gis/t/gis_split_inf.test | 10 +- .../suite/innodb_gis/t/kill_server.test | 3 +- .../suite/innodb_gis/t/point_basic.test | 15 +- mysql-test/suite/innodb_gis/t/row_format.test | 2 +- .../suite/innodb_gis/t/rtree_compress2.test | 2 +- .../suite/innodb_gis/t/rtree_drop_index.test | 12 +- mysql-test/suite/innodb_gis/t/rtree_old.test | 1 + .../suite/innodb_gis/t/rtree_purge.test | 2 +- 27 files changed, 697 insertions(+), 52 deletions(-) create mode 100644 mysql-test/include/innodb_gis_row_format_basic.inc create mode 100644 mysql-test/include/kill_and_restart_mysqld.inc create mode 100644 mysql-test/include/wait_innodb_all_purged.inc create mode 100644 mysql-test/suite/innodb_gis/disabled.def diff --git a/mysql-test/include/innodb_gis_row_format_basic.inc b/mysql-test/include/innodb_gis_row_format_basic.inc new file mode 100644 index 00000000000..e6d7d3f2783 --- /dev/null +++ b/mysql-test/include/innodb_gis_row_format_basic.inc @@ -0,0 +1,420 @@ +--source include/have_innodb.inc +--source include/not_embedded.inc + +eval SET GLOBAL innodb_file_per_table=$file_per_table; +eval SET GLOBAL innodb_file_format=$file_format; + +# +# This test is the same as innodb_gis_rollback +# + +eval CREATE TABLE t1 ( + id bigint(12) unsigned NOT NULL auto_increment, + c2 varchar(15) collate utf8_bin DEFAULT NULL, + c1 varchar(15) collate utf8_bin DEFAULT NULL, + c3 varchar(10) collate utf8_bin DEFAULT NULL, + spatial_point point NOT NULL, + PRIMARY KEY(id), + SPATIAL KEY (spatial_point) +) ROW_FORMAT=$row_format ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES + ('y', 's', 'j', ST_GeomFromText('POINT(167 74)')), + ('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')), + ('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')), + ('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')), + ('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')), + ('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')), + ('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')), + ('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')), + ('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')), + ('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')), + ('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')), + ('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')), + ('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')), + ('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')), + ('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')), + ('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')), + ('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')), + ('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')), + ('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')), + ('y', 'h', 't', ST_GeomFromText('POINT(14 220)')), + ('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')), + ('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')), + ('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')), + ('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')), + ('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')), + ('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')), + ('w', 's', 'p', ST_GeomFromText('POINT(115 6)')), + ('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')), + ('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')), + ('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')), + ('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')), + ('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')), + ('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')), + ('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')), + ('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')), + ('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')), + ('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')), + ('r', 't', 'j', ST_GeomFromText('POINT(178 6)')), + ('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')), + ('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')), + ('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')), + ('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')), + ('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')), + ('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')), + ('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')), + ('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')), + ('z', 's', 'w', ST_GeomFromText('POINT(216 225)')), + ('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')), + ('f', 'v', 't', ST_GeomFromText('POINT(187 141)')), + ('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')), + ('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')), + ('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')), + ('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')), + ('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')), + ('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')), + ('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')), + ('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')), + ('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')), + ('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')), + ('q', 's', 'j', ST_GeomFromText('POINT(92 101)')), + ('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')), + ('w', 't', 'b', ST_GeomFromText('POINT(193 109)')), + ('b', 's', 's', ST_GeomFromText('POINT(223 211)')), + ('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')), + ('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')), + ('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')), + ('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')), + ('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')), + ('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')), + ('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')), + ('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')), + ('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')), + ('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')), + ('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')), + ('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')), + ('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')), + ('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')), + ('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')), + ('m', 'e', 't', ST_GeomFromText('POINT(136 154)')), + ('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')), + ('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')), + ('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')), + ('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')), + ('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')), + ('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')), + ('g', 's', 'o', ST_GeomFromText('POINT(144 251)')), + ('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')), + ('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')), + ('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')), + ('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')), + ('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')), + ('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')), + ('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')), + ('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')), + ('k', 's', 'a', ST_GeomFromText('POINT(2 150)')), + ('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')), + ('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')), + ('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')), + ('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')), + ('s', 'q', 'v', ST_GeomFromText('POINT(98 161)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES + ('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')), + ('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')), + ('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')), + ('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')), + ('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')), + ('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')), + ('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')), + ('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')), + ('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')), + ('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')), + ('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')), + ('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')), + ('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')), + ('b', 'q', 't', ST_GeomFromText('POINT(153 33)')), + ('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')), + ('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')), + ('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')), + ('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')), + ('j', 't', 'u', ST_GeomFromText('POINT(174 239)')), + ('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')), + ('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')), + ('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')), + ('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')), + ('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')), + ('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')), + ('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')), + ('z', 't', 't', ST_GeomFromText('POINT(99 134)')), + ('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')), + ('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')), + ('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')), + ('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')), + ('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')), + ('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')), + ('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')), + ('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')), + ('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')), + ('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')), + ('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')), + ('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')), + ('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')), + ('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')), + ('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')), + ('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')), + ('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')), + ('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')), + ('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')), + ('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')), + ('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')), + ('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')), + ('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')), + ('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')), + ('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')), + ('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')), + ('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')), + ('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')), + ('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')), + ('d', 't', 'p', ST_GeomFromText('POINT(234 87)')), + ('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')), + ('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')), + ('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')), + ('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')), + ('x', 's', 'b', ST_GeomFromText('POINT(25 181)')), + ('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')), + ('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')), + ('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')), + ('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')), + ('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')), + ('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')), + ('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')), + ('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')), + ('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')), + ('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')), + ('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')), + ('d', 'q', 't', ST_GeomFromText('POINT(218 77)')), + ('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')), + ('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')), + ('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')), + ('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')), + ('k', 'n', 't', ST_GeomFromText('POINT(175 147)')), + ('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')), + ('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')), + ('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')), + ('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')), + ('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')), + ('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')), + ('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')), + ('t', 's', 'u', ST_GeomFromText('POINT(84 18)')), + ('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')), + ('l', 'z', 't', ST_GeomFromText('POINT(59 80)')), + ('j', 'g', 's', ST_GeomFromText('POINT(54 26)')), + ('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')), + ('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')), + ('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')), + ('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')), + ('w', 'z', 's', ST_GeomFromText('POINT(235 8)')), + ('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')), + ('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')), + ('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')), + ('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')), + ('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')), + ('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')), + ('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')), + ('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')), + ('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')), + ('m', 't', 'u', ST_GeomFromText('POINT(119 237)')), + ('o', 'w', 's', ST_GeomFromText('POINT(193 166)')), + ('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')), + ('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')), + ('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')), + ('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')), + ('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')), + ('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')), + ('p', 'z', 't', ST_GeomFromText('POINT(148 249)')), + ('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')), + ('v', 't', 'm', ST_GeomFromText('POINT(70 228)')), + ('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')), + ('x', 't', 'b', ST_GeomFromText('POINT(35 50)')), + ('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')), + ('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')), + ('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')), + ('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')), + ('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')), + ('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')), + ('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')), + ('e', 's', 'u', ST_GeomFromText('POINT(254 1)')), + ('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')), + ('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')), + ('m', 's', 's', ST_GeomFromText('POINT(172 149)')), + ('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')), + ('x', 't', 'r', ST_GeomFromText('POINT(10 165)')), + ('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')), + ('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')), + ('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')), + ('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')), + ('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')), + ('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')), + ('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')), + ('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')), + ('e', 't', 'm', ST_GeomFromText('POINT(129 55)')), + ('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')), + ('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')), + ('c', 'b', 's', ST_GeomFromText('POINT(13 19)')), + ('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')), + ('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')), + ('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')), + ('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')), + ('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')), + ('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')), + ('o', 'r', 'f', ST_GeomFromText('POINT(171 140)')); +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES + ('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')), + ('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')), + ('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')), + ('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')), + ('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')), + ('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')), + ('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')), + ('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')), + ('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')), + ('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')), + ('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')), + ('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')), + ('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')), + ('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')), + ('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')), + ('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')), + ('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')), + ('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')), + ('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')), + ('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')), + ('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')), + ('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')), + ('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')), + ('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')), + ('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')), + ('s', 'n', 't', ST_GeomFromText('POINT(50 138)')), + ('v', 'p', 't', ST_GeomFromText('POINT(114 91)')), + ('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')), + ('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')), + ('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')), + ('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')), + ('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')), + ('g', 's', 'p', ST_GeomFromText('POINT(238 126)')), + ('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')), + ('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')), + ('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')), + ('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')), + ('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')), + ('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')), + ('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')), + ('k', 'b', 's', ST_GeomFromText('POINT(170 64)')), + ('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')), + ('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')), + ('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')), + ('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')), + ('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')), + ('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')), + ('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')), + ('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')), + ('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')), + ('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')), + ('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')), + ('l', 's', 't', ST_GeomFromText('POINT(83 18)')), + ('t', 't', 'a', ST_GeomFromText('POINT(26 168)')), + ('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')), + ('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')), + ('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')), + ('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')), + ('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')), + ('v', 't', 'm', ST_GeomFromText('POINT(184 24)')), + ('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')), + ('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')), + ('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')), + ('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')), + ('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')), + ('s', 's', 'v', ST_GeomFromText('POINT(238 198)')), + ('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')), + ('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')), + ('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')), + ('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')), + ('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')), + ('u', 's', 'r', ST_GeomFromText('POINT(70 62)')), + ('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')), + ('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')), + ('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')), + ('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')), + ('b', 'n', 't', ST_GeomFromText('POINT(120 12)')), + ('u', 'f', 's', ST_GeomFromText('POINT(190 212)')), + ('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')), + ('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')), + ('n', 'c', 's', ST_GeomFromText('POINT(218 163)')), + ('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')), + ('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')), + ('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')), + ('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')), + ('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')), + ('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')), + ('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')), + ('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')), + ('e', 'd', 's', ST_GeomFromText('POINT(91 190)')), + ('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')), + ('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')), + ('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')), + ('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')), + ('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')), + ('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')), + ('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')), + ('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')), + ('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')), + ('g', 'v', 'm', ST_GeomFromText('POINT(66 158)')); + +START TRANSACTION; + +# following INSERTion will result in a node split +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES + ('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); + +# Test rollback, this will result above split being rolled back, btr_compress +# gets called +ROLLBACK; + +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES + ('f', 'x', 'p', ST_GeomFromText('POINT(92 181)')); + +# create overlap on the bounding box in parent +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)')); + +INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)')); + +# Add a row in the cross section of the 2 bounding box +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); + +# Delete this new poINT +DELETE FROM t1 WHERE id = 1280; + +INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)')); + +START TRANSACTION; +DELETE FROM t1 WHERE id = 1280; +ROLLBACK; + +# Test MBR increase +START TRANSACTION; +INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES + ('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)')); +ROLLBACK; + +SELECT COUNT(*) FROM t1; +UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000; +SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))'); +DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point); +SELECT COUNT(*) FROM t1; + +DROP TABLE t1; + +SET GLOBAL innodb_file_per_table=default; +SET GLOBAL innodb_file_format=default; + diff --git a/mysql-test/include/kill_and_restart_mysqld.inc b/mysql-test/include/kill_and_restart_mysqld.inc new file mode 100644 index 00000000000..b67fb7350b4 --- /dev/null +++ b/mysql-test/include/kill_and_restart_mysqld.inc @@ -0,0 +1,15 @@ +if (!$restart_parameters) +{ + let $restart_parameters = restart; +} + +--let $_server_id= `SELECT @@server_id` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect + +--echo # Kill and $restart_parameters +--exec echo "$restart_parameters" > $_expect_file_name +--shutdown_server 0 +--source include/wait_until_disconnected.inc +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect diff --git a/mysql-test/include/wait_innodb_all_purged.inc b/mysql-test/include/wait_innodb_all_purged.inc new file mode 100644 index 00000000000..c5edc5937da --- /dev/null +++ b/mysql-test/include/wait_innodb_all_purged.inc @@ -0,0 +1,60 @@ +# include/wait_innodb_all_purged.inc +# +# SUMMARY +# +# Waits until purged all undo records of innodb, or operation times out. +# +# USAGE +# +# --source include/wait_innodb_all_purged.inc +# +--source include/have_innodb.inc +--source include/have_debug.inc + +--disable_query_log + +let $wait_counter_init= 300; +if ($wait_timeout) +{ + let $wait_counter_init= `SELECT $wait_timeout * 10`; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +let $wait_timeout= 0; + +let $wait_counter= $wait_counter_init; + +# Keep track of how many times the wait condition is tested +let $wait_condition_reps= 0; +let $prev_trx_age= 0; +while ($wait_counter) +{ +--disable_warnings + let $trx_age = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS +WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE';`; +--enable_warnings + + if ($trx_age != $prev_trx_age) + { + let $wait_counter= $wait_counter_init; + let $prev_trx_age= $trx_age; + } + + let $success= `SELECT $trx_age < 1`; + inc $wait_condition_reps; + if ($success) + { + let $wait_counter= 0; + } + if (!$success) + { + real_sleep 0.1; + dec $wait_counter; + } +} +if (!$success) +{ + echo Timeout in wait_innodb_all_purged.inc for INNODB_PURGE_TRX_ID_AGE = $trx_age; +} + +--enable_query_log diff --git a/mysql-test/suite/innodb_gis/disabled.def b/mysql-test/suite/innodb_gis/disabled.def new file mode 100644 index 00000000000..4ffc0607a90 --- /dev/null +++ b/mysql-test/suite/innodb_gis/disabled.def @@ -0,0 +1,26 @@ +############################################################################## +# +# List the test cases that are to be disabled temporarily. +# +# Separate the test case name and the comment with ':'. +# +# : BUG# +# +# Do not use any TAB characters for whitespace. +# +############################################################################## + +gis_split_inf : MDEV-14057 InnoDB GIS tests fail +row_format : MDEV-14057 InnoDB GIS tests fail +rtree_estimate : MDEV-14057 InnoDB GIS tests fail +rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail +rtree_recovery : MDEV-14058 InnoDB Assertion failure !leaf on rem0rec.cc line 566 on test innodb_gis.rtree_recovery +tree_search : MDEV-14057 InnoDB GIS tests fail +rtree_concurrent_srch: MDEV-14059 InnoDB assertion failure offset >= ((38U + 36 + 2 * 10) + 5) at page0page.h line 318 +point_big : MDEV-14057 InnoDB GIS tests fail +geometry : MDEV-14057 InnoDB GIS tests fail +bug17057168 : MDEV-14057 InnoDB GIS tests fail +bug16236208 : MDEV-14057 InnoDB GIS tests fail +bug16266012 : MDEV-14057 InnoDB GIS tests fail +rtree_search : MDEV-14057 InnoDB GIS tests fail +rtree_old : MDEV-14057 InnoDB GIS tests fail diff --git a/mysql-test/suite/innodb_gis/r/kill_server.result b/mysql-test/suite/innodb_gis/r/kill_server.result index 12ca15a420d..579317872b4 100644 --- a/mysql-test/suite/innodb_gis/r/kill_server.result +++ b/mysql-test/suite/innodb_gis/r/kill_server.result @@ -32,7 +32,7 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK truncate table t1; -call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); +call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds"); START TRANSACTION; CALL insert_t1(5000); COMMIT; diff --git a/mysql-test/suite/innodb_gis/r/point_basic.result b/mysql-test/suite/innodb_gis/r/point_basic.result index 0e1c8de141b..faaef07c112 100644 --- a/mysql-test/suite/innodb_gis/r/point_basic.result +++ b/mysql-test/suite/innodb_gis/r/point_basic.result @@ -24,10 +24,8 @@ INSERT INTO gis_point VALUES (ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(200.32247328 101.86728201)')), (ST_PointFromText('POINT(100.32374832 101.23741821)'), ST_PointFromText('POINT(100.32374832 101.98527111)')); EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; -id select_type table partitions type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using temporary; Using filesort -Warnings: -Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` group by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2` +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE gis_point ALL NULL NULL NULL NULL 4 # SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point GROUP BY p1, p2; ST_AsText(p1) ST_AsText(p2) POINT(100.32374832 101.23741821) POINT(100.32374832 101.98527111) @@ -146,10 +144,11 @@ POINT(1 0) POINT(10 20) POINT(0 0) POINT(10 20) SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); ST_AsText(p) ST_AsText(p1) +POINT(1 0) POINT(10 20) POINT(0 0) POINT(10 20) # Drop spatial keys on the table ALTER TABLE t1 DROP KEY p, DROP KEY p1; -ERROR 42000: Can't DROP 'p1'; check that column/key exists +ERROR 42000: Can't DROP INDEX `p1`; check that it exists SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' OR name = 'p1'; name mtype prtype len p 14 1535 12 @@ -171,6 +170,7 @@ POINT(1 0) POINT(10 20) POINT(0 0) POINT(10 20) SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); ST_AsText(p) ST_AsText(p1) +POINT(1 0) POINT(10 20) POINT(0 0) POINT(10 20) TRUNCATE t1; ALTER TABLE t1 DROP COLUMN p, DROP COLUMN p1; @@ -203,8 +203,10 @@ SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText(' ST_AsText(p) ST_AsText(p1) POINT(0 1) POINT(10 19) POINT(1 1) POINT(10 20) +POINT(1 0) POINT(10 21) SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')); ST_AsText(p) ST_AsText(p1) +POINT(1 0) POINT(10 21) POINT(0 0) POINT(10 22) ALTER TABLE t1 DROP COLUMN p1, ADD COLUMN p1 POINT, CHANGE COLUMN p pp POINT AFTER p1; SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'pp' OR name = 'g' OR name = 'p1'; @@ -232,9 +234,14 @@ SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(1 ST_AsText(pp) ST_AsText(p1) SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')) ORDER BY pp; ST_AsText(pp) ST_AsText(p1) +POINT(0 0) POINT(5 5) +POINT(0 1) POINT(5 5) +POINT(1 0) POINT(5 5) +POINT(1 1) POINT(5 5) SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(pp, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')) ORDER BY pp; ST_AsText(pp) ST_AsText(p1) POINT(0 0) POINT(5 5) +POINT(1 0) POINT(5 5) DROP TABLE t1; # # Test when the POINT is on B-TREE @@ -263,10 +270,8 @@ INSERT INTO gis_point VALUES (206, ST_PointFromWKB(ST_AsWKB(ST_PointFromText('POINT(103.43718640 105.248206478)')))); 'The ORDER BY will use filesort' EXPLAIN SELECT ST_AsText(p) FROM gis_point ORDER BY p; -id select_type table partitions type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using filesort -Warnings: -Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p`) AS `ST_AsText(p)` from `test`.`gis_point` order by `test`.`gis_point`.`p` +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE gis_point ALL NULL NULL NULL NULL 10 # SELECT ST_AsText(p) FROM gis_point ORDER BY p; ST_AsText(p) POINT(10 10) @@ -418,7 +423,6 @@ CREATE TABLE t2 AS SELECT * FROM t1; DROP TABLE t1; SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name = 'p' OR name = 'g' AND name='t2'; name mtype prtype len -p 14 1535 12 DROP table t2; # # Test when POINT is used in spatial index @@ -453,8 +457,6 @@ SELECT name, mtype, prtype, len FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE name mtype prtype len p1 14 1535 12 p2 14 1535 12 -p1 14 1535 12 -p2 14 1535 12 SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point1; ST_AsText(p1) ST_AsText(p2) POINT(1 2) POINT(-1 -3) @@ -475,14 +477,18 @@ ST_AsText(p1) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Contains(@poly2, p2); ST_AsText(p2) POINT(-1 -3) POINT(-2 -6) POINT(-3 -9) POINT(-4 -12) +POINT(-5 -15) +POINT(0 0) POINT(-1 -1) SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Equals(p2, @p1); ST_AsText(p2) @@ -493,10 +499,13 @@ POINT(20.5 41) POINT(32.1234 64.2468) SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1); ST_AsText(p1) +POINT(3 6) POINT(4 8) POINT(5 10) POINT(6 12) POINT(7 14) +POINT(8 16) +POINT(10 21) POINT(20.5 41) SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly); ST_AsText(p1) @@ -549,8 +558,10 @@ POINT(4 8) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1); ST_AsText(p1) POINT(2 4) @@ -673,8 +684,10 @@ POINT(4 8) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1); ST_AsText(p1) POINT(2 4) @@ -756,14 +769,18 @@ ST_AsText(p1) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2); ST_AsText(p2) POINT(-1 -3) POINT(-2 -6) POINT(-3 -9) POINT(-4 -12) +POINT(-5 -15) +POINT(0 0) POINT(-1 -1) SELECT ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1); ST_AsText(p2) @@ -774,10 +791,13 @@ POINT(20.5 41) POINT(32.1234 64.2468) SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1); ST_AsText(p1) +POINT(3 6) POINT(4 8) POINT(5 10) POINT(6 12) POINT(7 14) +POINT(8 16) +POINT(10 21) POINT(20.5 41) SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly); ST_AsText(p1) @@ -830,8 +850,10 @@ POINT(4 8) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); ST_AsText(p1) POINT(2 4) @@ -954,8 +976,10 @@ POINT(4 8) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); ST_AsText(p1) POINT(2 4) @@ -1067,8 +1091,10 @@ POINT(4 8) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); ST_AsText(p1) POINT(2 4) @@ -1191,8 +1217,10 @@ POINT(4 8) POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1); ST_AsText(p1) +POINT(2 4) POINT(3 6) POINT(4 8) +POINT(5 10) SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1); ST_AsText(p1) POINT(2 4) @@ -1260,10 +1288,8 @@ Table Op Msg_type Msg_text test.gis_point check status OK The ORDER BY for spatial index will use filesort EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; -id select_type table partitions type possible_keys key key_len ref rows filtered Extra -1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using filesort -Warnings: -Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` order by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2` +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE gis_point ALL NULL NULL NULL NULL 13 # SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2; ST_AsText(p1) ST_AsText(p2) POINT(2 4) POINT(-2 -6) @@ -1423,8 +1449,8 @@ a ST_AsText(p) ST_AsText(l) ST_AsText(g) 1 POINT(10 10) LINESTRING(1 1,5 5,10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) 2 POINT(20 20) LINESTRING(2 3,7 8,9 10,15 16) POLYGON((10 30,30 40,40 50,40 30,30 20,10 30)) EXPLAIN UPDATE t1 SET p = ST_GeomFromText('POINT(30 30)') WHERE p = ST_GeomFromText('POINT(20 20)'); -id select_type table partitions type possible_keys key key_len ref rows filtered Extra -1 UPDATE t1 NULL range PRIMARY PRIMARY 27 const # 100.00 Using where +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range PRIMARY PRIMARY 27 NULL 1 # UPDATE t1 SET p = ST_GeomFromText('POINT(30 30)') WHERE p = ST_GeomFromText('POINT(20 20)'); SELECT a, ST_AsText(p), ST_AsText(l), ST_AsText(g) FROM t1; a ST_AsText(p) ST_AsText(l) ST_AsText(g) @@ -1461,10 +1487,8 @@ a ST_AsText(p) ST_AsText(l) ST_AsText(g) ALTER TABLE t1 DROP PRIMARY KEY; ALTER TABLE t1 ADD PRIMARY KEY(p); EXPLAIN SELECT a, ST_AsText(p) FROM t1 WHERE a = 2 AND p = ST_GeomFromText('POINT(30 30)'); -id select_type table partitions type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 NULL const PRIMARY,idx2 PRIMARY 27 const # 100.00 NULL -Warnings: -Note 1003 /* select#1 */ select '2' AS `a`,st_astext(' +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 const PRIMARY,idx2 PRIMARY 27 const 1 # SELECT a, ST_AsText(p) FROM t1 WHERE a = 2 AND p = ST_GeomFromText('POINT(30 30)'); a ST_AsText(p) 2 POINT(30 30) @@ -1497,13 +1521,28 @@ child CREATE TABLE `child` ( SPATIAL KEY `idx2` (`p`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); -ERROR HY000: Cannot add foreign key constraint +ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 150 "Foreign key constraint is incorrectly formed") +show warnings; +Level Code Message +Warning 150 Alter table '`test`.`child`' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. +Error 1005 Can't create table `test`.`#sql-temporary` (errno: 150 "Foreign key constraint is incorrectly formed") +Warning 1215 Cannot add foreign key constraint ALTER TABLE parent DROP INDEX idx1; ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); -ERROR HY000: Cannot add foreign key constraint +Got one of the listed errors +show warnings; +Level Code Message +Warning 150 Alter table '`test`.`child`' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. +Error 1005 Can't create table `test`.`#sql-temporary` (errno: 150 "Foreign key constraint is incorrectly formed") +Warning 1215 Cannot add foreign key constraint ALTER TABLE child DROP INDEX idx2; ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); -ERROR HY000: Cannot add foreign key constraint +Got one of the listed errors +show warnings; +Level Code Message +Warning 150 Alter table '`test`.`child`' with foreign key constraint failed. There is only prefix index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. +Error 1005 Can't create table `test`.`#sql-temporary` (errno: 150 "Foreign key constraint is incorrectly formed") +Warning 1215 Cannot add foreign key constraint DROP TABLE child, parent; # # Bug#28763: Selecting geometry fields in UNION caused server crash. diff --git a/mysql-test/suite/innodb_gis/r/repeatable_spatial.result b/mysql-test/suite/innodb_gis/r/repeatable_spatial.result index 6a2ab9a4ad2..065312f612f 100644 --- a/mysql-test/suite/innodb_gis/r/repeatable_spatial.result +++ b/mysql-test/suite/innodb_gis/r/repeatable_spatial.result @@ -16,6 +16,8 @@ SELECT COUNT(*) FROM tab; COUNT(*) 1 "In connection 1" +connect con1,localhost,root,,; +connection con1; SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT @@tx_isolation; @@tx_isolation @@ -27,6 +29,8 @@ SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; c1 ST_AsText(c2) ST_AsText(c3) ST_AsText(c4) ST_AsText(c5) 1 POINT(10 10) LINESTRING(5 5,20 20,30 30) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) "In connection 2" +connect con2,localhost,root,,; +connection con2; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT @@tx_isolation; @@tx_isolation @@ -41,6 +45,7 @@ SET @g2 = ST_GeomFromText('POINT(10 10)'); UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))') WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2); "In connection 1" +connection con1; SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'); SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3); c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) @@ -52,11 +57,14 @@ SELECT COUNT(*) FROM tab; COUNT(*) 1 "In connection 2" +connection con2; SELECT COUNT(*) FROM tab; COUNT(*) 2 COMMIT; +disconnect con2; "In connection 1" +connection con1; SELECT COUNT(*) FROM tab; COUNT(*) 1 @@ -74,6 +82,8 @@ SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab; c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) 1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300)) 2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) +disconnect con1; +connection default; DROP TABLE tab; CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL, c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL) @@ -93,6 +103,8 @@ SELECT COUNT(*) FROM tab; COUNT(*) 1 "In connection 1" +connect con1,localhost,root,,; +connection con1; SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT @@tx_isolation; @@tx_isolation @@ -104,6 +116,8 @@ SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab; c1 ST_AsText(c2) ST_AsText(c3) ST_AsText(c4) ST_AsText(c5) 1 POINT(10 10) LINESTRING(5 5,20 20,30 30) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) "In connection 2" +connect con2,localhost,root,,; +connection con2; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT @@tx_isolation; @@tx_isolation @@ -118,6 +132,7 @@ SET @g2 = ST_GeomFromText('POINT(10 10)'); UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))') WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2); "In connection 1" +connection con1; SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'); SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3); c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) @@ -129,11 +144,14 @@ SELECT COUNT(*) FROM tab; COUNT(*) 1 "In connection 2" +connection con2; SELECT COUNT(*) FROM tab; COUNT(*) 2 COMMIT; +disconnect con2; "In connection 1" +connection con1; SELECT COUNT(*) FROM tab; COUNT(*) 1 @@ -151,4 +169,6 @@ SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab; c1 ST_AsText(c2) ST_AsText(c4) ST_AsText(c5) 1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30)) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300)) 2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50)) +disconnect con1; +connection default; DROP TABLE tab; diff --git a/mysql-test/suite/innodb_gis/r/rollback.result b/mysql-test/suite/innodb_gis/r/rollback.result index 8471065359e..36a39902ca9 100644 --- a/mysql-test/suite/innodb_gis/r/rollback.result +++ b/mysql-test/suite/innodb_gis/r/rollback.result @@ -410,6 +410,8 @@ update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3; ERROR 23000: Duplicate entry '5' for key 'c' rollback; set session debug="+d,row_mysql_crash_if_error"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3; ERROR HY000: Lost connection to MySQL server during query insert into t1 values(5, point(5,5), point(5,5), 5); diff --git a/mysql-test/suite/innodb_gis/r/rtree_compress.result b/mysql-test/suite/innodb_gis/r/rtree_compress.result index bbf7e8eeb93..50f0367af5e 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_compress.result +++ b/mysql-test/suite/innodb_gis/r/rtree_compress.result @@ -40,8 +40,12 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1); count(*) 0 SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead delete from t1; SET DEBUG='-d,page_copy_rec_list_start_compress_fail'; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead select count(*) from t1 where MBRWithin(t1.c2, @g1); count(*) 0 diff --git a/mysql-test/suite/innodb_gis/r/rtree_compress2.result b/mysql-test/suite/innodb_gis/r/rtree_compress2.result index 6e32fcc8a9f..3522a1097aa 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_compress2.result +++ b/mysql-test/suite/innodb_gis/r/rtree_compress2.result @@ -16,7 +16,7 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK truncate table t1; -call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); +call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds"); START TRANSACTION; CALL insert_t1(5000); COMMIT; diff --git a/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result b/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result index 5279eea8aa8..a8898f5c98f 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result +++ b/mysql-test/suite/innodb_gis/r/rtree_create_inplace.result @@ -31,5 +31,7 @@ COUNT(*) 0 ALTER TABLE t1 DROP INDEX idx, ADD SPATIAL INDEX idx3(c2); SET SESSION debug="+d,row_merge_instrument_log_check_flush"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead ALTER TABLE t1 DROP INDEX idx3, ADD SPATIAL INDEX idx4(c2), ADD SPATIAL INDEX idx5(c3); DROP TABLE t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_debug.result b/mysql-test/suite/innodb_gis/r/rtree_debug.result index 1c102dbfafe..e3877880387 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_debug.result +++ b/mysql-test/suite/innodb_gis/r/rtree_debug.result @@ -39,9 +39,13 @@ t1 CREATE TABLE `t1` ( SPATIAL KEY `idx` (`c2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SET DEBUG='+d,row_merge_ins_spatial_fail'; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead create spatial index idx2 on t1(c2); -ERROR HY000: Got error 1000 from storage engine +ERROR HY000: Got error 1000 "Unknown error 1000" from storage engine InnoDB SET DEBUG='-d,row_merge_ins_spatial_fail'; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead show create table t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/suite/innodb_gis/r/rtree_drop_index.result b/mysql-test/suite/innodb_gis/r/rtree_drop_index.result index f8c6adf68f6..8ac1a049b8e 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_drop_index.result +++ b/mysql-test/suite/innodb_gis/r/rtree_drop_index.result @@ -1,7 +1,9 @@ # # Bug #21899444 INNODB: ASSERT FAILURE (COL->ORD_PART) # IN DICT_COL_GET_SPATIAL_STATUS() -set global innodb_purge_stop_now = on; +connect purge_control,localhost,root; +START TRANSACTION WITH CONSISTENT SNAPSHOT; +connection default; CREATE TABLE t1 ( p INT NOT NULL AUTO_INCREMENT, g LINESTRING NOT NULL, @@ -12,7 +14,9 @@ INSERT INTO t1(g) VALUES(ST_linefromtext(concat('linestring','(18 106,19 106,24 INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, 26 115, 29 112, 34 108, 39 111, 44 111, 46 116, 46 120, 42 122, 45 118, 48 118, 44 122, 46 127, 47 127, 51 127, 55 123, 52 127, 52 128, 56 130, 60 129, 61 130, 66 131, 67 131, 71 135, 76 136, 77 139, 80 143, 2080 145, 2077 147, 2079 147, 2081 147, 2086 147, 2087 151, 2092 -1849, 2088 -1848, 2088 -1852, 2091 -1848, 2095 -1846, 2092 -1847, 2092 -1848, 2093 -1847, 2094 -1846, 2099 -1843, 2104 -1844, 2102 -1848, 2102 -1848, 7102 -1847, 7105 -1846, 7106 -1843, 7111 -1838, 67 131, 69 135, 68 135, 63 136, 63 137, 64 141, 67 1141, 2067 1139, 2063 1139, 2066 1139, 5066 1139, 5068 1139, 5072 1140, 5072 1145, 5073 1142, 5076 1145, 5077 1145, 5076 1141, 5078 1141, 5073 1143, 5068 1146, 5067 2146, 5070 2151, 5075 2155, 5071 2160, 5073 2161, 5074 2166, 5076 2169, 5071 2173, 5074 2173, 5078 2177, 5076 2173, 5080 2173, 5078 2174, 78 2179, 76 2183, 77 2188, 82 2192, 85 2194, 89 2193, 86 2197, 89 2193, 88 2194, 89 2199, 89 2204, 89 1204, 87 1206, 88 1203, 89 1204, 89 1205, 93 1210, 94 1208, 96 1208, 100 1210, 104 1212, 107 1215, 104 1220, 107 1224, 111 1228, 112 1228, 116 1229, 119 1228, 120 1233, 119 1236, 124 1241, 125 1240, 122 1239, 126 1241, 123 1240, 124 1244, 128 1248, 129 1250, 128 1253, 127 5253, 125 5255, 129 5255, 133 5255, 137 5260, 140 5261, 137 5261, 141 5261, 140 5262, 143 5264, 148 5264, 148 5264, 145 10264, 149 10269, 153 10274, 158 10270, 159 10273, 164 10277, 168 12277, 170 12278, 165 12274, 170 12279, 172 12281, 172 12281, -3828 12281, -3823 12281, -3822 12282, -3823 12280, -3823 12282, -3820 12281, -3823 12279, -3827 12282, -3826 12279, -3822 12284, -3825 12284, -3824 12286, -3820 12287, -3820 12290, -3818 12292, -3816 12293, -3814 12298, -3815 12301, -3817 12304, -3814 12301, -3811 12299, -3809 12303, -3809 12301, -3804 12302, -3804 12302, -3802 12305, -3799 12310, -3801 17310, -3801 17310, -3796 17310, -3801 17314, -3799 17318, -3796 17321, -3795 17321, -795 17325, -795 17327, -794 17329, -791 17330, -790 17326, -787 17331, -782 17335, -778 17339, -774 17343, -772 17343, -769 17346, -768 17349, -763 17352, -763 17353, -761 17357, -758 17354, -758 22354, -754 22350, -750 22353, -746 22356, -750 22352, -746 22351, -744 22349, -743 27349, -741 27350, 259 27354, 262 27353, 263 27356, 268 27352, 268 22352, 271 22351, 273 22351, 274 22351, 275 22352, 275 22356, 280 22352, 281 22348, 284 22349, 284 22346, 285 22351, 285 22351, 290 22353, 294 22351, 294 22352, 295 22352, 300 22352, 305 22355, 308 22356, 311 22356, 310 22358, 312 22360, 313 22365, 313 22362, 313 22364, 313 22364, 317 22360, 322 22362, 327 22367, 328 22370, 323 22375, 320 22377, 320 22379, 316 22379, 318 22379, 323 22380, 323 22380, 324 22376, 34 108, 38 113, 42 118, 42 117, 42 121, 46 123, 51 127, 51 130, 51 133, 55 137, 52 141, 52 143, 51 141, 50 142, 45 142, 44 143, 48 146, 48 142, 43 143, 47 145, 4047 5145, 4047 5150, 4044 5151, 4045 10151, 4043 10154, 4044 10156, 4047 10156, 4043 10160, 4043 10156, 4043 10156, 4048 10157, 4051 10160, 4048 10159, 4053 10161, 4057 10163, 4057 10164, 4058 10165, 4057 10170, 4056 10173, 4056 10176, 4056 15176, 4053 15180, 4049 15181, 4051 15178, 4049 15180, 4049 15180, 4048 15181, 4048 15184, 4045 15188, 4045 15191, 4040 15194, 4042 15198, 4042 15203, 4047 15200, 4049 15201, 4052 15204, 4052 15208, 4052 15212, 4049 15216, 4049 15219, 4051 15220, 4048 15222, 4044 15227, 4044 15232, 4044 15236, 4049 15239, 4052 15240, 4052 15243, 4053 15247, 4055 15247, 4052 17247, 4054 17247, 4054 18247, 4059 18251, 4063 18253, 4066 18253, 4069 20253, 4069 20254, 4069 20259, 4068 20263, 4068 20263, 4069 20259, 4071 20260, 4073 20262, 4074 20258, 4069 20261, 4069 20264, 4071 20269, 4067 20271, 4071 20270, 4072 20271, 4073 20268, 4076 20263, 4072 20268, 4075 20264, 4076 20267, 4079 20272, 4084 20275, 4086 20277, 4086 20281, 4083 18281, 4087 18283, 4088 18280, 4089 18277, 4089 18279, 4094 18281, 4095 18283, 4095 18284, 4097 18284, 4093 18287, 4094 18285, 4096 18287, 4092 18291, 4096 18291, 140 5261, 140 5259, 140 5262, -1860 5258, -1858 5260, -1854 5262, -1849 5259, -1848 5264, -1845 5264, -1845 5267, -1845 5262, -1848 5261, -1848 5263, -1849 5261, -1853 5262, -1851 5265, -1847 5265, -1847 5262, -1847 5263, -1843 5268, -1845 5268, -1848 5272, -1850 5270, -1851 5274, -1854 5269, -1850 5266, -1845 5267, -1840 5267, -1840 5264, -1840 5269, -1839 5269, -1842 5269, -1840 5274, -1835 5278, -1836 5283, -1841 5279, -1840 5284, -1836 5285, -1836 5289, -1831 5289, -1826 5292, -1822 5293, -1826 5295, -1829 5295, -1824 5295, -1828 5297, -1824 5300, -1820 5305, -1824 5306, -1824 5306, -1824 5306, -1823 5301, -1818 5303, -1814 5307, -1814 5303, -3809 12303, -3807 12306, -3804 12306, -3804 12306, -3801 12308, -3796 12308, -3795 12308, -3791 12310, -3786 12310, -3781 12313, -3814 12298, -3809 12303, -3807 12301, 7102 -1847, 7100 -1850, 7104 -1850, 7109 -1852, 7109 -1854, 7112 -1850, 7112 -1847, 7115 -1847, 7117 -1847, 7122 -1847, 7125 -1843, 7126 -1848, 7127 -1848, 7129 -1848, 7133 -1848, 7131 1152, 7131 1149, 7135 1154, 7139 1152, 7140 1151, 7145 1153, 7149 1158, 8149 1159, 8154 3159, 8149 3161, 8145 3162, 8146 3164, 8146 3168, 11146 3171, 11148 3171, 11150 3167, 11154 3165, 11150 3163, 11151 3167, 11152 3165, 11153 3170, 11156 3175, 11156 3174, 8146 3164, 8146 3167, 8146 3170, 8147 3170, 8148 3175, 8148 3178, 8146 3178, 8146 3178, 8147 3180, 8143 3184, 3143 3186, 7143 3187, 7143 7187, 7138 7189, 7138 7189, 7135 7191, 7138 7191, 7133 7194, 7138 7198, 7139 7201, 7143 7200, 7141 7203, 12141 7204, 12145 7204, 12145 7203, 12146 7207, 12147 7204, 12143 7204, 12138 7199, 12138 7195, 12139 7195, 12139 7200, 12141 7201, 12142 7201, 12139 7205, 12142 7208, 12142 7213, 12145 7213, 12147 7214, 12149 7218, 12150 9218, 12154 9222, 12151 9222, 12151 9225, 12151 9224, 12152 9226, 12155 10226, 12155 10230, 12158 10231, 12161 10227, 12162 10224, 12163 10229, 12163 10231, 12165 10228, 12165 10227, 12160 10228, 12160 10231, 12160 10235, 12157 12235, 12159 12230, 7138 7189, 7141 7193, 7141 7193, 7141 7192, 7139 7195, 7141 7195, 7142 7193, 7145 7195, 7146 7193, 7146 7194, 7151 7197, 7154 7198, 7156 7202, 7155 7207, 7150 7211, 12150 7213, 12148 7213, 12147 7217, 12142 7221, 12141 7223, 12143 7223, 12140 7222, 12145 7222, 13145 7224, 13142 7228, 13144 7232, 13139 7235, 13144 7239, 13148 7243, 13151 7247, 13150 7251, 13152 7252, 13157 7253, 13157 7257, 13157 7257, 13157 7262, 13159 7264, 13164 7259, 13161 7259, 13165 7262, 13166 7262, 13166 7267, 13169 7268, 13169 8268, 13167 8269, 13171 8269, 13173 13269, 13177 13265, 13178 13263, 13178 13263, 13182 13266, 13183 13266, 13185 13266, 13190 13269, 13193 13271, 13193 13269, 13196 13271, 13193 13273, 13194 13268, 13198 13273, 13200 13276, 13202 13276, 13204 13274, 13209 11274, 13213 11274, 13213 11277, 13215 11278, 13219 11279, 13224 11280, 13224 11276, 13228 11278, 13233 11281, 13235 11286, 13238 11288, 13240 11288, 13238 11290, 13238 11292, 13238 11287, 13238 11288, 13240 11293, 13243 11296, 13246 11296, 13247 11293, 13243 11298, 13246 11302, 13251 11305, 322 22362, 326 24362, 330 24362, 329 24367, 328 24363, 329 24365, 331 24369, 336 24371, -664 24371, -668 24372, 51 127, 48 131, 48 133, 51 135, 51 140, 49 139, 47 142, 3047 139, 3044 142, 3046 143, 3046 148, 3051 148, 3055 146, 3057 141, 3060 140, 3055 143, 3050 146, 7050 142, 7050 3142, 7050 3143, 7050 3144, 7052 3149, 7055 1149, 7052 1150, 7055 5150, 7050 5154, 7049 5150, 10049 5151, 10045 5151, 10049 5151, 10052 5156, 10054 5159, 10056 5160, 10058 5161, 10058 5163, 10060 5166, 10064 5168, 10064 5173, 10068 9173, 10070 9172, 10065 9168, 10065 9173, 10063 9175, 14063 9176, 14063 9178, 284 22346, 289 22351, 290 22351, 290 22347, 287 22343, 282 22342, 280 22345, 281 25345, 286 25347, 13243 11298, 13248 11300, 13245 11300, 13246 11295, 13247 11295, 13246 11295, 13248 11299, 13253 11304, 13255 11309, 13255 11310, 13260 11309, 13257 11310, 13258 11313, 13258 11315, 13263 11311, 13267 11307, 13269 11309, 13272 11305, 13277 11302, 13273 11304, 15273 11306, 15278 11310, 15281 11307, 15286 11309, 15288 11309, 15291 11311, 15292 11306, 15294 11309, 15298 11313, 15299 11317, 15300 11320, 15302 11321, 15306 11324, 15308 11328, 15308 11324, 15309 11324, 15314 11324, 15315 11323, 15319 11321, 15317 11325, 15319 11327, 15319 11332, 15321 11337, 15324 11340, 15324 11341, 15324 11341, 15326 11345, 15326 11349, 15327 14349, 15330 13349, 17330 13350, 17335 13353, 17339 13358, 17340 13362, 17344 13362, 17348 13357, 17350 13357, 17347 13357, 17350 13358, 17349 13358, 17349 13358, 17349 13359, 22349 13362, 22351 13359, 22353 13359, 22358 13358, 22360 13358, 22363 13359, 22364 13359, 22360 13359, 22361 13363, 22366 13368, 22371 13373, 22374 13377, 22378 13375, 22379 13375, 22379 13373, 22383 13378, 22388 13383, 22389 13380, 22389 13384, 22394 13382, 22392 13378, 22394 13382, 22393 13382, 22393 13379, 22394 13382, 22392 13384, 22395 13386, 22400 13391, 22400 10391, 22404 10395, 22401 10396, 22402 10396, 22402 10398, 22406 10395, 22405 15395, 22407 15396, 22409 15396, 22414 15391, 22414 15394, 22414 15398, 22410 15400, 26410 15402, 26409 20402, 26413 20406, 26417 20410, 26419 20415, 26422 20411, 26424 20411, 31424 16411, 31423 16409, 31423 16414, 31425 16414, 31428 16418, 31428 16414, 31432 16419, 31432 16422, 31437 16423, 31439 16424, 31440 16426, 31440 16429, 31440 16429, 31443 16431, 31441 16435, 31443 16440, 36443 16440, 36445 18440, 36444 18441, 36442 18444, 36442 18440, 36442 18444, 36444 18449, 36445 18450, 36449 18455, 37449 23455, 37454 23460, 37458 23459, 37460 23463, 37458 23465, 37460 23467, 37462 23470, 37466 23473, 37462 23478, 37464 23480, 37463 26480, 37468 26483, 37472 26487, 37473 26492, 37476 26493, 37476 26489, 37476 26487, 37476 26492, 37472 26496, 37476 26501, 37476 26503, 37480 26499, 37485 26503, 37485 26505, 37490 26500, 37493 26503, 37497 26499, 37502 26500, 37502 26501, 37502 26505, 37499 26503, 37499 26503, 37497 26508, 37500 26508, 37496 26513, 37499 26518, 37497 26519, 37500 26518, 37505 26518, 37510 26516, 37512 26520, 37513 26523, 37511 26527, 37508 26532, 37509 26536, 37514 26540, 37515 26542, 37512 26546, 37514 26548, 37519 26547, 37524 26550, 37529 26555, 37527 26559, 37531 26562, 37526 26567, 37526 26566, 37529 26566, 37524 26566, 37524 26563, 37528 26565, 37524 26563, 37525 26565, 37525 26560, 37526 26562, 40526 26564, 40526 26567, 40523 26571, 40527 26570, 40529 26572, 40534 26576, 40536 26573, 40535 26569, 40533 26569, 40537 26573, 40537 26574, 40541 26576, 40546 26579, 40545 26579, 40546 26583, 40550 26588, 40551 26585, 40555 26589, 40558 26594, 40554 22594, 40559 22598, 40558 22599, 40563 22596, 40563 22597, 40567 22597, 40570 22597, 40575 22592, 40572 22594, 40572 22595, 40572 22592, 40575 22594, 40575 22597, 40570 22597, 40569 22601, 40569 22603, 40573 22603, 40576 22604, 40576 22608, 42576 22611, 42579 22611, 42579 22616, 42581 22620, 38581 22623, 38582 22621, 38582 22618, 38577 22623, 38581 22623, 38581 18623, 38584 18618, 38584 18621, 38588 18626, 38592 18629, 38592 18626, 38596 18625, 38598 18620, 38599 18618, 38599 18622, 38602 21622, 38603 21622, 38607 21624, 38609 25624, 38613 25624, 38610 25621, 38610 25625, 38610 25629, 38613 25627, 38617 25627, 38617 25624, 38618 25626, 38621 25628, 38622 25629, 38622 26629, 38625 26631, 38625 26631, 313 22362, 313 22363, -1687 22364, 2313 27364, 2314 27364, 2314 27364, 2319 27366, 2319 27366, 2321 27363, 2321 27368, 2320 27363, 2323 27368, 2328 27371, 2327 27375, 2328 27377, 2328 27377, 2327 27381, 2331 27381, 2329 27381, 2332 27383, 2335 27383, 2333 27383, 2333 27385, 2338 27385, 6338 27386, 6338 27387, 40529 26572, 40533 26576, 40535 26578, 40540 26580, 40535 26584, 40540 26589, 40541 26592, 40538 26587, 40542 26591, 40541 26592, 40537 26597, 40542 26598, 40546 26601, 40550 26606, 40550 26605, 40551 26606, 40549 26606, 40550 26607, 40555 26610, 40550 26610, 40550 26607, 40553 26612, 40558 26616, 40561 26620, 40556 26623, 40558 26623, 40558 26627, 42558 26627, 42558 26628, 42562 26628, 42564 26630, 42565 26634, 42566 26634, 42566 26638, 42561 26639, 42564 26639, 42567 26641, 42564 26642, 42566 26646, 42566 26645, 42570 26645, 42574 26645, 42574 29645, 42576 29646, 39576 29645, 39576 34645, 39578 34647, 39583 34642, 39580 34642, 39576 34646, 39576 34649, 39574 35649, 34574 35652, 34579 35655, 39579 35659, 43579 35663, 43582 35659, 43577 35662, 43580 35662, 43583 35666, 43579 39666, 43574 39662, 43574 39665, 43574 39668, 43574 39670, 43578 39674, 43579 39671, 43582 39675, 43578 39677, 43575 39677, 43576 39681, 43571 39683, 43569 39683, 43570 39687, 43565 39690, 43568 39694, 43568 39696, 43570 39698, 43570 39699, 41570 39695, 41572 39696, 41573 39696, 41573 39697, 41573 39702, 41573 39702, 41576 39702, 41571 39702, 41572 39703, 41572 39708, 41574 39713, 41575 39716, 41580 39717, 41581 39721, 41586 39723, 41587 39724, -1848 5272, -1843 5272, -1845 5270, -1840 5272, -1838 5267, -1843 5268, -1841 5268, -1837 8268, -1837 8271, -1837 8276, -1836 8280, -1832 8277, -1832 8277, -1831 8278, -1835 8283, -1834 8287, -1832 8290, -1834 8286, -1832 8283, -1833 8283, -1832 8284, -1834 8287, -1839 8292, -1844 8293, -1841 8290, -1836 8290, -1839 8289, -1836 8289, -1832 8292, -1827 8295, -1823 8290, -1823 8293, -1823 8291, -1822 8295, -1820 8298, -1819 8302, -1816 8304, -1816 8300, -1812 8300, -1809 8299, -1806 8296, 1194 8300, 1194 8301, 1197 11301, 1194 11305, 1197 11309, 1199 11304, 1195 11304, 1195 11300, 1195 11297, 1196 11298, 1201 11296, 1206 11296, 1207 11298, 1212 11296, 1210 11292, 1206 11294, 1207 11293, 1209 8293, 1204 8288, 1206 8286, 1206 8285, 1208 8285, 1210 8285, 1214 8287, 1214 13287, 1215 13291, 1215 13294, 1218 13297, 1216 13293, 1219 13290, 1214 13295, 1210 13292, 1210 13296, 1211 13301, 1210 13300, 1206 13302, 1207 13307, 1211 13312, 1206 13312, 1211 13308, 1212 13308, 1216 13313, 1216 13318, 1217 13318, 1221 13318, 1221 13323, 1226 13324, 1231 13325, 1234 13329, 1235 13333, 1233 13333, 1236 13338, -2764 13340, -2767 13341, -2763 13344, -2760 13349, -2758 13346, 2242 13346, 2240 13346, 2244 13346, 2248 13349, 2248 13350, 2246 13352, 2241 13352, 2242 13355, 2242 13356, 2247 13361, 2250 13361, 2245 13366, 2249 13366, 2250 13366, 2254 13367, 2258 13367, 2258 13367, 2262 13371, 2257 13376, 2253 13373, 2253 13373, 2254 13376, 2251 13380, 2256 13382, 2257 13386, 2261 13383, 2264 13383, 2269 13385, 2264 13385, 2264 13387, 2267 13387, 2271 13389, 2272 13390, 2273 13393, 2269 13395, 2273 13390, 2277 13395, 2275 13396, 2277 13391, 2279 13394, 2276 13394, 2277 13398, 2282 13399, 2282 11399, 2283 14399, 2281 14404, 2279 14407, 2275 14410, 2276 16410, 2276 16414, 2281 16414, 2286 16415, 2282 16413, 2282 16413, 2284 16413, 2284 16415, 2284 16416, 2282 16417, 3282 16422, 3286 16422, 3287 16427, 3291 16427, 3294 16431, 3296 16433, 3298 16435, 3299 16440, 3300 16439, 3305 16439, 3307 16438, 3307 16440, 3307 16440, 3311 16441, 3311 16442, 3310 16443, 3310 16443, 3308 16448, 3304 16445, -1696 16441, -1701 16442, -1697 16442, -1695 16442, -1696 16443, -1693 16440, -1688 16445, -1685 16450, -1681 16454, -1680 16455, -1682 16457, -1680 16461, -1680 16461, -1684 16464, -1679 16463, -1678 16460, -1675 16464, -1679 16465, -1677 16468, -1672 16469, -1671 16473, -1667 16475, -1667 16480, -1663 16478, -1663 16482, -1662 16482, -1662 16483, -1659 16478, -1654 16475, -1653 11475, -1658 11477, -1661 11479, -1664 11484, 3336 15484, 3340 15480, 3344 15475, 3347 15475, 3347 15474, 3352 15473, 3349 15478, 3353 15480, 3354 15477, 3355 15480, 3352 15481, 3352 15483, 3353 15486, 3354 15488, 3353 15491, 3355 15491, 3360 15491, 3355 15490, 1219 13290, 1224 13295, 1224 13295, 1227 13290, 1231 13290, 1233 13285, 1237 13284, 1238 13285, 1243 13286, 1247 13289, 1249 13289, 1249 13291, 1252 13291, 1249 13294, 1249 13299, 1249 13302, 1254 13305, 1251 13308, 1254 13308, 3254 13308, 3249 13308, 3251 13312, 3256 13312, 3259 13312, 3263 17312, 3263 17313, 3263 17310, 3261 17309, 3264 17314, 3265 17312, 3264 17315, 3261 17318, 3261 17318, 3259 17313, 3256 17313, 3255 17313, 3257 17314, 3255 17316, 3257 17316, 3257 17316, 3258 17311, 3259 17311, 3258 17315, 3258 17317, 3257 17321, 3253 17321, 3250 17325, 3255 17329, 3258 17330, 3260 17328, 3260 17331, 3265 17326, 7265 17329, 7267 17332, 7265 17334, 7267 17337, 7272 17337, 7275 17337, 7280 17340, 4280 21340, 4280 21344, 4281 21344, 4283 21344, 4288 24344, 4292 24347, 9292 24351, 9296 24353, 9298 24351, 9300 25351, 9303 25352, 9303 25352, 9306 25357, 9305 25361, 9305 25356, 11305 25359, 11306 25362, 11309 25362, 11314 25362, 11314 25365, 11312 25369, 11315 25369, 11316 25373, 11321 25375, 11323 25375, 11327 25370, 11331 25369, 11332 25370, 11331 25374, 11332 25369, 11336 25371, 11340 25370, 11345 25367, 11350 25363, 11347 25360, 11350 25361, 11351 25362, 11351 25362, 11354 25364, 11358 30364, 11362 30369, 11362 30369, 11364 30369, 11369 30371, 11370 30373, 15370 30374, 15375 30375, 15378 30377, 14378 30382, 14379 30387, 14383 30382, 14388 30384, 14390 30386, 14393 30389, 14395 31389, 16395 31393, 16398 31398, 16398 31401, 16394 31404, 16397 31409, 16400 31413, 16400 31417, 16399 31419, 16398 31421, 16403 31422, 16403 31426, 16404 31423, 16409 31424, 16413 31423, 16408 31427, 18408 31431, 18413 31436, 18417 28436, 18419 28441, 18420 28445, 18416 28442, 18419 28439, 18418 28443, 18422 28446, 18425 28451, 18429 28448, 21429 28449, 21430 28454, 22430 28459, 22434 28461, 22438 28462, 22443 28462, 22447 28467, 22450 28472, 22453 28469, 22458 28472, 22455 28472, 22460 28475, 22465 28477, 22462 28479, 22461 28476, 22465 28480, 22466 28476, 22470 28472, 22470 28475, 25470 28470, 25473 28472, 25475 28468, 25475 28468, 25477 29468, 25478 29470, 25481 29465, 25478 29466, 25478 29468, 25480 29468, 25485 29465, 25486 29464, 25488 29462, 25488 29466, 25492 29464, 25497 26464, 25500 26467, 25497 26472, 25497 26476, 25497 26476, 25501 26478, 25506 26480, 25506 26482, 25511 26480, 25515 26483, 25516 26485, 25521 26481, 25521 26484, 25520 26485, 25521 26488, 25526 26487, 25529 26488, 25524 26488, 25528 26491, 25530 26496, 25535 26500, 25537 26502, 25537 26502, 25541 26507, 25544 26508, 25545 26509, 25549 26514, 25554 26514, 25553 26512, 25552 26516, 25555 26514, 25559 26514, 25556 26515, 25554 26512, 25558 26509, 25558 26510, 25562 26510, 25562 26511, 25562 26510, 25567 26505, 25569 26508, 25571 26508, 25570 26512, 25573 26512, 25573 26515, 25578 26515, 25583 26520, 25583 26523, 25584 26525, 25587 26526, 25590 26531, 25590 26530, 25586 26534, 25589 26538, 25591 26533, 25595 26537, 25600 26542, 25601 26544, 25601 26544, 25601 26544, 25606 26547, 25605 26547, 25605 26542, 25608 26542, 25611 26544, 25613 26546, 25614 26551, 25614 26551, 25614 26552, 25619 25552, 25614 25552, 25615 25551, 25618 25549, 25618 25553, 25620 25555, 25622 25559, 25622 25555, 25624 25554, 25627 25555, 25624 25559, 25621 25561, 25619 25560, 25624 28560, 25627 28555, 25632 28550, 25636 28552, 25641 28557, 25645 28557, 25640 25557, 25636 25557, 25636 25561, 25641 25561, 25645 25562, 25646 25557, 25648 25560, 25649 25564, 25652 25566, 25652 30566, 25652 30566, 25652 30568, 25652 30570, 25654 30574, 25658 30575, 25663 31575, 25664 31579, 25665 31583, 25664 31583, 25667 31585, 25668 31588, 25673 31586, 25676 31585, 25676 31588, 25678 31588, 25675 31591, 25680 31590, 25681 31585, 30681 31588, 30677 31593, 30682 31594, 35682 31594, 35677 31593, 35679 31595, 35682 31594, 35683 31591, 35686 31592, 35687 31593, 35691 31596, 35691 31597, 35694 31601, 35698 31601, 35702 34601, 35701 34603, 35705 34608, 35705 34610, 35704 34605, 35707 34607, 35707 34610, 35710 34607, 35715 34608, 35719 34607, 35721 34612, 35717 34612, 35713 34612, 35715 34613, 35716 34609, 35716 34614, 35716 34618, 35720 34620, 35721 34621, 35724 34622, 35724 34625, 35727 34629, 35727 34630, 35727 34633, 35727 34635, 35727 34639, 35732 34640, 35729 34642, 35733 34644, 35737 34646, 35741 34649, 35743 34649, 35744 34653, 35740 34653, 35740 34649, 35743 34651, 38743 34654, 38743 37654, 38744 37650, 38748 37655, 38751 37656, 38755 37657, 38755 37661, 38759 37660, 38758 37664, 38763 37664, 38767 37664, 38762 37664, 38761 37664, 38762 41664, 38762 41664, 38764 41669, 38759 41671, 43759 41673, 43754 41678, 43754 41681, 43759 41676, 43760 41681, 45760 41684, 45760 41683, 45764 41687, 45767 41687, 45771 41687, 45772 41688, 45770 46688, 45775 46692, 45778 46696, 45776 46698, 45777 46701, 45780 46699, 45778 46702, 45776 46706, 45781 46706, 45786 46708, 45789 46710, 45793 46715, 45788 46711, 45792 46715, 45795 46719, 45798 46723, 45801 46728, 45799 46732, 45804 46730, 45799 46733, 45803 46737, 45804 46737, 45805 46736, 45806 46736, 45807 46736, 45810 46739, 45812 46744, 45812 46748, 2328 27377, 2324 27381, 2325 27383, 2327 27387, 2327 27386, 2324 27386, 2325 27386, 5325 23386, 5327 23389, 5331 23390, 5332 23394, 5337 23396, 5332 23396, 5332 23399, 5331 23399, 5335 23403, 5335 23406, 5340 23409, 5341 23409, 5336 23410, 5331 23405, 5334 23407, 5332 23411, 5335 23413, 5330 20413, 5326 20415, 5326 20418, 5331 20420, 5330 20425, 5327 20425, 5331 20428, 5332 20428, 5337 21428, 5333 21431, 5335 21435, 5336 21437, 5331 21438, 5332 21441, 5335 21444, 5340 21441, 5340 21444, 5336 21445, 5335 21442, 5331 26442, 5334 26439, 5337 26443, 5339 26444, 5340 26448, 5344 26443, 5344 26446, 5347 26444, 5351 26442, 5354 26446, 5351 26449, 5350 30449, 5352 30451, 5352 30448, 5356 30448, 5361 30447, 5365 30449, 5369 30450, 5369 30452, 5369 30457, 5373 30459, 5373 30457, 5375 30462, 5377 30465, 5382 30467, 5386 30467, 5385 30463, 5386 30463, 5385 30463, 5387 30464, 5392 30463, 5394 30468, 5396 30468, 5391 30469, 5395 30473, 5393 30473, 5393 30473, 5397 30478, 5398 30474, 5401 30474, 5403 30471, 5403 30472, 5406 30474, 5402 30469, 5403 30466, 5405 30471, 5406 30471, 5411 30473, 5414 30477, 5414 30481, 5409 30485, 8409 30490, 8410 30493, 8412 30494, 8412 30493, 8415 30494, 8416 30497, 8416 30500, 8421 30505, 8422 30506, 8417 30511, 13417 30513, 13413 30510, 13416 30511, 13414 30515, 13414 30519, 13419 30522, 13421 30527, 13420 30531, 13424 30533, 13420 30535, 13415 35535, 13411 35535, 13415 35536, 13419 35541, 13421 35537, 13425 35533, 13426 35533, 13425 35528, 13430 35529, 13435 35530, 13440 35534, 13445 35535, 13450 35535, 13454 35536, 13457 35540, 13459 35540, 13454 35540, 13457 35543, 13454 35539, 13459 35544, 13459 35548, 18459 35550, 18462 35551, 22462 35550, 22467 35554, 22468 35558, 22470 35556, 22475 35559, 22473 35563, 22472 35568, 22474 35568, 22472 35573, 22476 35573, 22476 35575, 22479 35577, 22484 35580, 22489 35584, 22490 35587, 22491 35589, 22495 35589, 22498 35589, 25498 35590, 25495 35586, 25496 35589, 25500 35589, 25498 35589, 25500 35591, 25505 35595, 25505 35597, 25501 35594, 25501 35595, 25497 35595, 26497 35599, 29497 35595, 29497 35597, 29500 35601, 29500 35605, 29502 35610, 29503 30610, 29504 30607, 29507 30607, 29512 30610, 29513 30610, 29516 30611, 29518 30614, 29520 30612, 3261 17309, 3265 17308, 3269 17307, 3273 17312, 3271 17316, 3271 17317, 3276 17319, 3279 17319, 3284 17315, 3287 17317, 3285 17313, 3280 17314, 3277 17319, 3277 17321, 3278 17326, 3282 17328, 3282 17328, 3278 17329, 3279 17329, 3278 17332, 3280 17328, 3275 17333, 3279 17335, 3282 17330, 3283 17332, 3278 17328, 3279 17328, 3279 17326, 3279 17325, 3279 17325, 3283 17327, 3284 17331, 3284 17336, 3289 17339, 3290 17339, 3290 17342, 3292 17341, 3296 17344, 3296 17345, 3301 17345, 3301 12345, 3301 12346, 3306 12343, 3303 14343, 3307 14344, 3309 14345, 3313 14347, 3315 14347, 3316 16347, 3312 16345, 3312 16350, 3314 16352, 3313 16353, 4313 16350, 4318 16352, 4323 16348, 4326 16352, 4324 16353, 4325 16350, 4325 16350, 4328 16354, 4324 16358, 4325 16360, 4327 16365, 4327 16362, 4324 16366, 4327 20366, 4327 20370, 4324 20371, 4328 20376, 4328 20378, 4333 20377, 4335 20377, 4340 20380, 4341 20383, 4343 20386, 4340 20388, 4341 20390, 4342 20387, 4342 20387, 4337 20392, 4338 20394, 4343 20394, 4348 20395, 4350 20395, 4351 20397, 37499 26503, 37496 26500, 37498 26504, 37498 26505, 37501 26510, 37499 26506, 37500 26506, 37502 29506, 37502 29511, 37507 29512, 37508 33512, 37510 33517, 37515 33522, 37519 33526, 37518 33524, 37523 33525, 37523 33529, 37518 33534, 37521 33532, 37522 33532, 37526 33534, 37529 33534, 37527 33531, 37530 33534, 37535 33537, 37536 38537, 37538 38540, 22360 13359, 25360 13364, 25363 13362, 25364 13366, 25364 13366, 25367 13369, 25365 13371, 25361 13373, 25359 13378, 25362 13378, 2249 13366, 2254 13370, 2256 13367, 2259 13367, 2263 13362, 2266 13358, 2266 13360, 2271 13365, 2274 13367, 2276 13367, 2277 13367, 2275 13366, 2276 13369, 2280 13369, 2282 13374, 2286 13370, 2286 13369, 2291 13372, 2292 13370, 2295 13372, 2300 13377, 2300 13376, 2297 13379, 273 22351, 275 22354, 4275 22351, 4271 22352, 4272 22354, 4273 22359, 4274 22364, 4278 22367, 4283 22369, 4286 24369, 4281 24369, 4284 24369, 4287 24369, 4289 24368, 4291 24366, 4296 24364, 4297 24366, 4300 24369, 4303 24373, 1303 24374, 1303 24375, 1307 24379, 1307 24380, 1309 24381, 1314 24384, 1316 24386, 1320 24384, 1318 24386, 1318 24391, 1320 24391, 1320 29391, 1323 29391, 1318 29387, 1322 29390, 1323 29393, 1328 29393, 1329 29393, 2329 29398, 2329 29398, 2334 29397, -664 24371, -661 24372, -659 24372, -654 24375, -651 24376, -647 24376, -645 24378, -641 24374, -636 24379, -633 24384, -636 24386, -636 24388, -636 24388, -634 24392, -635 24394, -630 24390, -628 24390, -627 24390, 373 24393, 378 24398, 376 24396, 379 24401, 3379 24404, 6379 24409, 6380 24412, 6375 24410, 6372 24410, 6377 24407, 6372 24407, 6377 24407, 6381 24410, 6376 24413, 6380 24415, 6382 24416, 6380 24419, 6380 24423, 6385 24427, 6387 24429, 6389 24432, 6392 24437, 6388 24434, 6388 24439, 6389 24440, 6390 24444, 6389 24448, 6385 29448, 6385 29451, 6388 29455, 6384 29450, 6389 29451, 6392 29456, 6395 29456, 6399 29459, 6402 29463, 6402 29467, 6399 29471, 6395 29471, 6397 29474, 6399 29477, 6401 29472, 6396 29471, 6399 29474, 6398 29477, 6398 29474, 6395 29469, 6391 29473, 6392 29474, 6391 29469, 6391 29472, 6394 29474, 6390 33474, 6392 33470, 6393 33470, 6394 33471, 6396 33471, 324 22376, 324 22378, 325 22381, 329 22382, 333 22386, 332 22387, 334 22390, 335 22387, 333 22387, 332 22391, 334 22395, 334 22400, 339 22401, 341 22398, 342 22403, 342 22402, 342 22400, 345 22400, 345 22400, 343 22404, 344 22408, 345 22406, 350 22407, 347 22411, 349 22415, 344 22415, 347 22417, 342 22421, 347 22421, 350 22426, 350 22430, 353 22431, 354 22436, 354 22440, 4354 22442, 4355 22446, 4356 22448, 4356 22451, 4359 22453, 4362 22454, 4366 22454, 4369 22455, 4371 22457, 4368 22459, 4371 22457, 4375 22462, 4379 22463, 4382 22463, 4382 22468, 4387 22471, 4387 22471, 4392 22473, 4387 22473, 4387 22476, 25573 26512, 25576 26511, 25580 26516, 25583 26516, 25583 26516, 25585 26512, 25585 26517, 25589 26520, 25591 26519, 25592 26519, 25593 26521, 25591 26524, 25589 26526, 23589 26530, 23587 26535, 23591 26538, 23594 26542, 24594 26547, 24590 26549, 24595 26551, 24600 26547, 24600 26552, 24604 26549, 24600 26544, 24602 26549, 24602 26552, 24602 31552, 24607 31553, 24610 31555, 24615 31556, 24617 36556, 24618 36561, 24621 36561, 24624 36564, 24624 36568, 24629 35568, 24629 35573, 24634 35573, 25634 35574, 25637 35573, 25638 35577, 25638 35577, 25640 35580, 25643 35584, 25643 35587, 25643 35592, 25644 40592, 20644 40597, 20647 40597, 20652 40599, 20653 40595, 20653 40598, 20650 40595, 20650 40595, 20654 40600, 20654 40600, 20658 40601, 20658 40604, 20658 40605, 20661 40602, 20664 40601, 20664 40601, 20665 40604, 20670 40605, 20667 40610, 1217 13318, 1216 13323, 1214 13321, 1211 13316, 1212 13316, 1213 13321, 6213 13324, 6216 13324, 6218 13324, 6213 13327, 6216 13322, 6216 13327, 6216 13328, 6218 13323, 6221 13327, 6220 13325, 6221 13325, 6220 13330, 6223 13333, 6227 13335, 6232 13339, 6233 13343, 6233 13347, 6237 13342, 6236 13346, 6236 13348, 6238 13349, 25526 26487, 25523 26488, 25526 26493, 25529 26491, 25531 26488, 25532 26486, 25536 27486, 25541 27490, 25539 27492, 25543 27487, 25546 27490, 25549 27494, 25552 27495, 25552 27495, 25556 27490, 25561 27490, 25565 27493, 25563 27493, 25565 27497, 25563 27495, 25565 27497, 25565 27499, 25566 27501, 25565 27501, 25565 27501, 25560 27502, 25565 27503, 25567 27507, 25569 27507, 25571 27507, 25569 27508, 25567 27509, 25567 27509, 25567 27509, 25568 27509, 25572 27505, 25572 27501, 25576 27502, 25572 32502, 25572 32505, 25575 32505, 25578 32501, 25578 32502, 25579 32505, 25581 32507, 25585 32508, 25590 32511, 25594 32516, 25598 32511, 25601 32511, 25596 32507, 25599 32510, 25599 32514, 25596 32513, 25596 32514, 25598 32517, 25594 32517, 25596 32519, 25596 32524, 25600 32524, 25604 32521, 25605 32522, 27605 32524, 27609 32527, 27610 31527, 27615 31531, 27617 31531, 30617 31534, 30619 31534, 30620 31536, 30621 31540, 30625 31541, 30625 31542, 30627 31542, 30628 31545, 30629 31545, 30626 31544, 30625 31544, 30626 31549, 34626 31550, 34621 31547, 34625 31549, 34626 31553, 34626 31552, 34628 31554, 34628 31559, 34628 31555, 34630 31559, 34635 31559, 34638 31563, 34636 31568, 34638 31568, 34641 31566, 34641 31564, 36641 31559, 36638 27559, 41638 27561, 41642 27558, 41646 27562, 41649 27563, 41650 27559, 41655 27559, 41660 27559, 41660 27556, 41660 27556, 41662 27554, 41658 27558, 41663 27562, 41666 27565, 41669 27570, 41664 27566, 41665 27567, 41665 27569, 41664 27573, 41663 27573, 41666 27575, 41666 27571, 41661 30571, 41662 30569, 41662 30565, 41667 30570, 41666 30565, 41666 30565, 41666 30566, 41666 30567, 41662 30562, 1314 24384, 4314 25384, 4317 25388, 4317 25389, 4321 25387, 4324 25392, 6324 25391, 6324 25391, 6328 25396, 6323 25401, 6326 25401, 6326 25405, 6321 25408, 9321 25409, 9316 25404, 9314 25406, 9312 25407, 9315 25407, 9315 25407, 9318 25404, 9321 25405, 4321 25400, 8321 25402, 8317 25404, 8317 25400, 8317 25401, 8313 25402, 8309 25398, 8311 25398, 8313 25401, 8317 25406, 8312 25407, 11312 25369, 11313 25369, 11318 25374, 11322 25379, 11327 25379, 11327 25384, 11327 25386, 11328 25382, 14328 25384, 14330 25386, 14333 25387, 14336 25389, 14338 25390, 19338 25390, 19338 25393, 19334 25394, 19334 25395, 19337 25392, 19340 25395, 19344 25397, 19342 25397, 19347 25400, 19347 25398, 19349 25398, 19351 25397, 19353 25401, 19352 25402, 19350 25403, 19351 25407, 19354 25403, 19352 25406, 19356 25404, 19355 25409, 23355 25406, 23356 25406, 23358 25409, 23360 25413, 23362 25417, 23365 25418, 23369 25416, 23367 25415, 23369 25418, 23365 25417, 23369 25420, 23369 25420, 23372 25422, 24372 25418, 24372 25423, 24375 27423, 24380 27423, 24382 27420, 24382 27416, 24382 27414, 24382 27410, 24378 27410, 24376 27414, 24372 27418, 24372 27419, 24373 27424, 24377 27419, 24380 27415, 24377 27419, 24380 27422, 24384 27425, 24385 27430, 24385 27429, 24387 27434, 24392 27435, 24396 27436, 24397 27440, 24401 30440, 24402 30443, 24406 30447, 24405 30443, 24408 30442, 24412 30446, 24408 30450, 24410 30449, 24405 30449, 24410 30446, 24414 30450, 24418 30450, 24418 30453, 19418 30453, 19418 30451, 19420 30456, 19422 30457, 19425 30462, 15425 30466, 15425 30468, 15427 30470, 16427 30471, 16426 30475, 16423 30478, 16428 30478, 16430 30480, 16430 30480, 16426 30478, 16426 33478, 16427 33478, 16429 33481, 16427 33483, 16428 33481, 16424 33484, 16427 33486, 16432 33483, 16432 33482, 16431 33486, 16426 33486, 16429 33488, 16432 33492, 16433 33492, 16436 33492, 16437 33495, 16434 33491, 16438 37491, 16436 37494, 16440 37489, 16445 37486, 16448 37484, 16449 37484, 16449 37486, 16453 37482, 16456 37483, 16460 37483, 16456 37483, 16456 37486, 16461 37490, 16462 37495, 16465 37499, 16466 37496, 16467 37497, 16468 37498, 16470 37501, 16470 37505, 16470 37505, 16475 37507, 16475 37507, 16475 37502, 16478 37498, 21478 33498, 21475 33497, 21478 33493, 21480 33495, 21480 33500, 21480 33496, 21482 33500, 21485 33505, 21486 33508, 21485 33504, 21486 33509, 21486 33509, 21490 35509, 21493 35509, 21496 35510, 21498 35514, 21494 35510, 21494 35513, 21491 35518, 21492 35521, 21489 35523, 23489 35527, 23487 35532, 23489 35537, 23485 35538, 23489 35539, 23490 35541, 23495 35543, 23497 35546, 23497 35550, 23497 35554, 23493 35553, 23490 35556, 23494 35559, 23497 35564, 23502 35563, 23498 35561, 4324 16358, 4319 16362, 4320 16362, 4322 16367, 4317 16367, 4317 16366, 4318 20366, 4322 20369, 4325 20367, 4328 20370, 4331 20371, 4334 20374, 4339 20378, 4340 20379, 4335 20379, 4340 20379, 4343 20381, 4344 20381, 4344 20382, 4345 20385, 4348 20390, 4348 20390, 4348 20390, 4348 20390, 4351 20394, 4354 20399, 4356 20400, 4357 20404, 4360 20404, 4362 20405, 4362 20408, 4365 20409, 4370 20410, 4374 20415, 4373 20420, 4369 20421, 4366 20426, 4369 20424, 4374 20429, 4375 20426, 4376 20422, 4379 20422, 4383 20426, 4384 20427, 4386 20422, 4391 20425, 4387 20427, 4392 20427, 4392 20429, 4394 20433, 4398 20438, 41576 39702, 41580 39706, 41578 39708, 45578 39708, 45577 39713, 45579 39717, 45583 39719, 45583 39722, 45585 39725, 45580 39730, 47580 39726, 47583 39723, 47588 39726, 47588 39730, 47591 39734, 47594 39737, 47599 39737, 47595 39737, 47598 39739, 47599 39739, 47597 39739, 47593 39743, 47595 39748, 47595 39751, 4076 20267, 4079 20272, 4081 20272, 4080 20275, 4080 22275, 4085 22280, 4089 22276, 4090 22279, 4088 22283, 4084 22284, 4086 22286, 4088 22281, 4084 22281, 4089 22285, 4092 22285, 4094 22285, 4094 22290, 4096 22291, 4099 22294, 4099 22295, 4097 22290, 4097 22292, 4097 22297, 4097 22292, 4094 22289, 4091 22290, 4092 22290, 4097 22285, 4102 22290, 4105 22289, 4106 22292, 4106 22293, 4109 22298, 4114 22296, 4119 22294, 4122 22299, 122 22304, 123 22307, 124 22304, 124 22304, 123 26304, 127 26307, 131 26307, 129 26309, 129 26310, 134 26310, 134 26311, 138 26311, 143 26313, 142 26315, 145 26317, 142 26318, 147 26322, 151 26322, 155 26325, 155 29325, 160 29330, 160 29333, 164 29328, 164 34328, 167 34333, 170 34332, 169 34336, 171 34337, 175 34338, 175 34340, 179 34342, 180 34344, 180 34348, 184 34352, 179 34352, 184 34352, 186 34357, 186 34362, 183 34364, 185 34369, 189 34369, 194 34369, 199 34371, 201 34370, 205 34372, 207 34372, 204 34367, 206 34364, 1206 34364, 1207 34368, 1207 30368, 1207 30363, 1208 30365, 1209 30368, 1212 30370, 1212 30370, 1216 30371, 1220 30376, 1221 30379, 1216 30383, 1216 30388, 1219 30386, 1224 30387, 1225 30386, 1227 30384, 1230 30383, 1233 30387, 1234 30387, 1237 30388, 1239 30392, 1244 30390, 1246 30393, 2246 30396, 2243 30399, 2247 30401, 2247 30403, 2246 30398, 2244 30399, 2248 32399, 2248 32399, 2251 32402, 2253 32397, 5253 32394, 5253 32399, 5257 32403, 5257 32401, 5259 32401, 5259 32405, 5263 32410, 5263 32415, 5268 32416, 5273 32420, 5275 32423, 5278 32424, 5283 32426, 5281 32429, 6281 33429, 6286 33433, 6286 33434, 6284 33435, 6284 33432, 6288 33429, 6290 32429, 6290 32425, 6288 32428, 6290 32428, 11290 32431, 11294 32429, 11294 32433, 11292 32438, 11288 32441, 11288 32441, 11285 32446, 11280 32446, 11281 32447, 11285 32449, 11286 32449, 11285 32452, 13285 32451, 13289 32446, 16289 32450, 16284 32449, 16285 32449, 16286 32452, 16287 32452, 16286 32450, 16288 32447, 16292 32450, 16293 32450, 16294 32454, 16293 32454, 16293 32454, 16293 32449, 16289 32451, 16290 32456, 16289 32461, 16293 36461, 16291 36466, 16295 36466, 16296 36466, 16299 36466, 16303 36468, 16308 36473, 16312 36471, 16312 36467, 16315 36463, 16314 36464, 16315 36469, 16315 36473, 16310 36474, 16311 36472, 16316 36474, 16321 41474, 16324 41475, 16327 44475, 16332 44475, 16332 44475, 16332 44477, 16332 44478, 16337 44483, 16334 44481, 8416 30500, 8417 30501, 8421 30501, 8416 30505, 8418 30504, 8420 30499, 8423 35499, 8425 35498, 8429 35501, 8431 35503, 8434 35503, 8438 35507, 8440 35507, 8445 35509, 8442 35512, 8445 35513, 8442 35513, 8442 35515, 8443 35519, 8447 35515, 8450 35516, 8445 35521, 8445 35523, 8444 35528, 8446 35530, 8443 35531, 8438 35531, 8435 35527, 8431 35531, 8432 35534, 8433 35536, 8431 35537, 8435 35539, 8439 32539, 8437 32540, 8441 32540, 8438 32543, 9438 32546, 9436 32541, 9431 32538, 9431 32538, 9435 32541, 9435 32546, 9431 32547, 9436 32542, 9438 32542, 9438 34542, 7438 34542, 7440 34547, 7441 34547, 7441 34547, 7441 34552, 7440 34553, 7440 34556, 7440 34557, 7440 34560, 11440 34565, 11436 34563, 11438 34559, 7438 34557, 7438 34553, 122 1239, 126 1243, 127 1240, 127 1242, 131 1239, 130 1239, 127 1240, 125 1243, 130 2243, 134 2246, 133 2246, 137 2246, 142 2246, 147 2251, 148 2256, 146 2257, 148 2252, 146 2249, 148 2248, 152 2253, 157 2249, 161 2246, 162 2247, 162 2249, 157 2248, 158 2249, 3158 2250, 3161 2252, 3161 2254, 3166 2258, 3167 2261, 3168 2259, 3171 2261, 3173 2266, 3171 2267, 3176 2272, 3179 2277, 3176 2280, 3180 2279, 3175 2283, 3179 2280, 3182 2283, 3184 2288, 3187 2293, 5187 2290, 5187 2292, 5183 2290, 5187 2292, 5186 2297, 5189 2297, 5189 2301, 5192 2303, 5189 2303, 5187 2304, 5183 6304, 5184 6301, 5189 6304, 5191 6302, 5193 6300, 5195 6300, 5195 6300, 5197 6301, 5197 6304, 5199 6301, 5197 6304, 5192 6306, 5193 6310, 5194 6312, 5197 6316, 24397 27440, 24393 27441, 24395 27437, 24400 27440, 24400 27441, 16288 32447, 21288 32447, 21288 32448, 21284 32452, 21285 32450, 21285 32452, 21287 32455, 21283 32460, 21284 32462, 21284 32467, 21284 32472, 21286 32474, 21291 32475, 21289 32475, 21289 32473, 21289 32478, 21286 32481, 21290 32486, 21293 32486, 21293 32490, 21298 32489, 21301 32490, 21303 32491, 21305 32488, 21303 32486, 21307 32491, 21312 32495, 21314 32499, 21315 32495, 21317 32499, 21314 32499, 21316 32502, 21318 32505, 21313 32510, 21313 32512, 21314 32517, 21319 32520, 21321 32520, 21326 32520, 21329 32525, 21330 32530, 21334 32531, 21330 36531, 21333 41531, 21338 41531, 21336 41535, 21339 41537, 21337 41539, 21341 41544, 21342 41544, 21345 41540, 25345 41543, 25342 41546, 25339 41546, 25339 41549, 25337 41546, 25337 41547, 25337 46547, 25341 46552, 30341 46555, 30342 46560, 30345 46561, 30344 46557, 30339 46560, 30343 46565, 30339 46569, 30338 46567, 30340 46568, 24375 27423, 24375 27425, 24377 27428, 24379 27429, 24379 27434, 24376 27439, 24381 27441, 24386 27436, 24387 27438, 24384 27441, 24383 27446, 24383 31446, 24383 33446, 20383 33443, 20385 34443, 20384 34444, 20380 34448, 20383 34450, 20383 34446, 20386 34447, 20390 34450, 20394 34451, 20395 34446, 20395 34451, 20398 29451, 20397 29447, 20401 29447, 20402 29443, 20401 29440, 20406 29443, 20411 29444, 20412 29444, 20412 29448, 20410 29449, 20415 29452, 20415 29455, 20414 29459, 20415 29462, 20420 29465, 20415 29467, 20417 29468, 20418 29468, 20418 29467, 20418 29467, 20420 29468, 20416 29469, 20420 29467, 20415 29464, 20415 26464, 20420 26462, 20423 26463, 20423 26465, 20423 26464, 43580 35662, 43580 35658, 43580 35662, 43580 35664, 43585 35665, 43585 35663, 43585 35666, 43581 35667, 43585 35665, 43589 35670, 25627 25555, 25631 25555, 25632 25558, 25632 25563, 25634 25564, 25629 25565, 25625 25561, 25625 25563, 25626 25565, 26626 25570, 26629 25570, 29629 25575, 29628 25578, 29627 25579, 29624 25583, 29627 25587, 29632 25592, 29634 25593, 29637 25595, 29637 25598, 29639 25602, 29644 25600, 29645 25601, 29646 25601, 29651 25602, 29656 25606, 29658 25606, 29663 25607, 29663 25605, 29666 26605, 29668 26608, 29667 26608, 29670 26611, 29674 26611, 29671 26615, 29673 26620, 29676 26617, 29681 26620, 29682 26620, 29683 26619, 29684 26623, 29681 26621, 29686 26626, 29688 26628, 29691 26628, 29692 26632, 29693 26634, 29695 26629, 29696 26624, 29700 26621, 29705 29621, 29709 29620, 29708 29624, 29711 29627, 34711 29630, 34712 29632, 34712 29631, 2284 16415, 2285 16416, 2285 16416, 2289 16421, 2294 16425, 2299 16425, 2300 16430, 2305 16430, 2306 16433, 2311 11433, 2315 11436, 2310 14436, 2310 14435, 2313 14437, 2312 14441, 2310 14442, 2311 14444, 2313 14444, 2311 14447, 2314 14447, 2316 14451, 2316 14456, 2316 14454, 2311 14455, 2311 14455, 2311 14460, 2315 14465, 2315 14465, 2311 19465, 2311 19465, 2313 19466, 2317 19469, 2320 19469, 2323 19466, 2319 19468, 2323 19471, 2324 19471, 2324 19473, 2324 19473, 2322 19468, 2323 19466, 2324 19465, 2329 19470, 2329 19465, 2324 19465, 2324 19467, 2319 19471, 2320 19475, 2104 -1844, 2109 -1844, 2113 -1842, 2116 1158, 2116 1160, 2117 1161, 2116 6161, 2118 6166, 2123 6169, 2126 6174, 2123 6179, 2126 6183, 2126 6187, 2130 6182, 2128 6183, 2127 6182, 2128 6185, 2124 10185, 2129 10190, 2130 10193, 2132 10192, 2132 10195, 2129 11195, 2129 11199, 2133 11200, 2134 11196, 2133 11201, 2137 11205, 2137 11207, 2141 11203, 2144 11207, 2145 11208, 2149 11212, 2144 11214, 2144 11215, 2149 11216, 2152 11221, 2152 11223, 2153 11223, 2154 11226, 2154 11226, 2150 11228, 2152 11224, 2152 11227, 2148 11222, 2145 11223, 2142 11225, 2145 11222, 2142 11223, 2142 11227, 2147 11229, 2149 11230, 2154 11230, 2157 11228, 2159 11233, 2159 11233, 2155 11237, 2155 11242, 2151 11243, 7151 10243, 7156 10245, 7159 10245, 7164 10247, 7166 10252, 7166 10255, 7171 10257, 7173 10257, 7174 10261, 7179 10264, 7184 10260, 7189 10264, 7193 8264, 7197 8260, 7202 8262, 7206 8262, 7205 8265, 7205 8266, 7207 8270, 7211 8274, 7211 8277, 7216 8277, 7216 8280, 7212 8280, 7213 8280, 7215 8283, 7220 8282, 7224 8287, 7225 8283, 7222 10283, 7223 10287, 7225 10288, 7230 10290, 7232 10294, 7233 10294, 7233 10297, 7234 10298, 7234 10301, 7236 10303, 7231 10299, 7228 10298, 7223 10297, 7225 10299, 7230 10303, 7231 10307, 7234 10311, 7234 10315, 7235 10320, 7236 9320, 7241 9322, 7246 9325, 7243 9330, 7243 9332, 7240 9335, 7237 9334, 7239 9339, 7238 9339, 7238 9341, 7238 9342, 7233 14342, 7232 14337, 7234 14342, 7239 18342, 4084 22284, 4083 22284, 6083 22287, 6078 22289, 6078 22293, 6080 22290, 6082 22291, 6086 22296, 6086 22297, 6087 22297, 6088 22295, 6093 22298, 6094 22297, 9094 22294, 9097 22298, 9098 22299, 9098 22301, 9093 22296, 9098 22299, 9100 22294, 9096 18294, 9099 18294, 9098 18298, 9101 18296, 9100 18301, 9105 18303, 9105 18306, 9105 18309, 9102 18305, 9104 18306, 9108 18309, 9104 18314, 9103 18310, 9105 18312, 9105 18316, 9109 18314, 9109 18319, 9109 18324, 9113 18326, 9113 18330, 9115 18333, 9113 18333, 9118 18333, 9123 18333, 9123 18336, 9125 18335, 9126 18336, 9127 18332, 9129 18329, 9127 18332, 9130 18333, 9135 18333, 9138 18337, 9143 18341, 9144 18346, 9145 18344, 9150 18348, 9154 18345, 9152 18350, 9151 18345, 9151 18345, 9156 18347, 9160 18349, 9163 18350, 9163 18351, 9165 18356, 9166 18356, 9164 18353, 9167 18356, 9167 18355, 9167 18356, 9167 18360, 9165 18356, 9169 18357, 9169 18353, 9170 18355, 9170 18351, 9175 18351, 9177 18351, 9181 18352, 9184 18353, 9189 18356, 9188 18361, 9191 18364, 9194 18364, 9198 18366, 13198 18371, 13198 18373, 13198 18375, 13201 18378, 13196 18378, 13199 18379, 13202 18381, 13207 18384, 13212 18388, 13211 18383, 13211 18378, 13215 18379, 13218 20379, 13214 20379, 13217 20379, 13213 20379, 13213 20376, 13210 20377, 13206 20377, 13206 20373, 13207 20373, 13209 20370, 13214 20371, 13218 20371, 13223 20376, 13224 20381, 13227 20385, 13228 20390, 13232 20387, 9232 20392, 9230 20388, 9230 20390, 9225 20393, 9225 20396, 4225 20401, 4225 20400, 4227 20403, 4224 20408, 4222 20412, 4222 20415, 4225 20420, 4229 20425, 4232 20422, 4236 20425, 4234 20426, 4238 20427, 4240 20427, 4241 20427, 4237 20431, 4233 20431, 4232 20430, 4230 20432, 4234 20431, 4234 20435, 4238 20437, 4243 20435, 4243 22435, 4238 22440, 4241 22441, 4241 22443, 4238 22447, 4234 22443, 4238 22448, 4238 22450, 4241 22451, 4241 22456, 4243 22458, 4247 22461, 4247 22464, 4252 22466, 4253 22469, 4255 22469, 4251 22469, 4253 22464, 4253 22468, 4257 22473, 4259 22477, 4258 22482, 4261 22483, 4262 22484, 4259 22489, 6259 22493, 6262 22494, 6262 22497, 6264 22500, 6264 22504, 6269 22499, 6273 22499, 6278 22495, 6278 22493, 6283 22491, 6288 22494, 6291 22494, 6296 22494, 6296 22493, 6294 22489, 6294 22493, 6290 22493, 6290 22498, 6290 22500, 6288 22501, 6290 22505, 6294 22504, 5294 22507, 5294 22507, 5298 22512, 5297 22514, 5302 22514, 5307 22517, 5304 22518, 5308 22514, 5311 22517, 5315 27517, 5315 27517, 5319 27517, 5324 22517, 5328 22521, 6328 22520, 6325 22522, 6325 22527, 6322 22527, 6323 22530, 6325 22535, 6325 22535, 6326 22536, 6326 22536, 6327 22533, 6323 22535, 6325 22538, 6330 22538, 6331 22534, 6326 22531, 10326 22526, 10321 22528, 10317 22524, 10316 22529, 10313 22529, 10309 22530, 10306 22535, 10308 22531, 10308 22532, 10311 22534, 10314 27534, 10314 27538, 10314 27538, 10309 27540, 10309 27536, 11309 27535, 11309 27537, 11310 27539, 11305 27535, 11300 27536, 11296 27538, 11296 27538, 11301 27542, 11299 27546, 11304 27551, 11308 27551, 11313 27553, 11315 30553, 11319 30555, 11315 30550, 11318 30545, 11318 30544, 11321 30549, 11320 30550, 11325 30554, 11328 30558, 11328 34558, 11332 34562, 11333 34562, 11335 34562, 11334 34565, 11330 34565, 11333 34566, 11338 34566, 11338 34571, 11342 34574, 11344 34573, 11347 34572, 11346 34573, 11347 34575, 11351 34578, 15351 34578, 15356 34573, 15361 34570, 15364 34575, 15365 34580, 15369 34581, 15370 34581, 15373 34585, 15376 34580, 15381 34578, 15385 34583, 15386 34588, 15389 34587, 17389 34582, 17394 34582, 17393 34582, 17398 34577, 17399 34582, 17399 34584, 17399 39584, 17404 39588, 17399 39591, 17404 39591, 17408 39586, 17405 39591, 17409 39593, 17411 39596, 17408 39596, 17411 39599, 17411 39603, 17414 39607, 17418 39612, 17419 39612, 17419 39612, 17423 39611, 17424 39613, 17426 39612, 17429 39608, 17427 39609, 17428 39613, 17425 39615, 17424 39614, 17427 39617, 17430 39622, 17430 39623, 17431 39620, 17434 39620, 13434 39619, 13434 39621, 13434 39621, 13434 44621, 13436 44625, 13436 44627, 13441 44631, 13444 44636, 13444 44639, 13442 44635, 13444 44635, 13447 44639, 13449 44643, 13447 44641, 13447 44642, 13452 44643, 13456 44648, 13459 44648, 13461 44646, 15461 44643, 15459 44648, 15463 44648, 15464 44646, 15461 44649, 15461 44651, 15465 44654, 15460 44655, 15461 44657, 15463 44661, 15465 44665, 15465 44665, 15465 44667, 15469 44670, 15474 44672, 15476 44668, 15472 44672, 15473 44674, 15475 44678, 15477 44679, -3804 12302, -3802 12305, -3803 13305, -3802 13300, -3806 13296, -3807 13299, -3804 13304, -3802 13301, -3799 13305, -3799 13306, -3794 18306, -3799 18310, -3797 18315, -3800 18315, -3797 18316, -3799 18318, -3794 18323, -3793 18326, -3789 18325, -3784 18324, -3784 18325, -3782 18325, -3780 18325, -3779 18328, -3780 18329, -3781 18324, -3786 18328, -1786 18328, -1786 18333, -1782 18337, -1782 18338, -1779 18333, -1775 18338, -6775 18341, -6772 18343, -6774 18345, -6779 18345, -6777 18345, -6777 18347, -6777 18343, -6775 18347, -6780 18342, -6777 18345, -6776 18345, -6774 18340, -6774 18337, -6774 18337, -6778 18342, -6782 18342, -6785 18339, -6784 18340, -6779 22340, -6779 22339, -6776 22335, -6775 22330, -6775 22335, -6775 22339, -6770 22339, -6772 22344, -6767 22345, -6765 22341, -6765 22339, -6765 22339, -6765 22337, -6765 22340, -6760 22335, -6757 22335, -6762 22336, -6763 22338, -6765 22343, -6760 22338, -6758 22338, -6758 22338, -6756 22341, -6752 22345, -6752 22346, -6748 22343, -4748 22347, -4745 22347, -4750 22347, -4749 22348, -4747 22349, -4743 22352, -4738 22357, -4734 22362, -4736 22367, -4738 22362, 21338 41531, 21336 41531, 21332 41530, 21332 41530, 21335 41533, 21330 41533, 21331 41534, 21328 41536, 21330 41536, 21326 41541, 21330 41536, 21332 41539, 21336 41536, 21338 40536, 21336 40540, 21341 40538, 21343 40538, 21346 40538, 21348 40536, 21352 40536, 21355 40539, 21359 40543, 21361 40546, 21362 40550, 21357 40550, 21362 40551, 21361 40554, 21358 40555, 21358 40554, 21359 40554, 21363 40558, 21360 45558, 21364 45560, 21368 45557, 21372 45561, 21376 45560, 21379 45557, 22379 45553, 22384 45553, 22384 45556, 22388 45561, 22389 45561, 22390 45557, 22394 45561, 24394 45565, 22394 45562, 22399 45565, 22401 45562, 22400 45565, 22402 45568, 22402 45573, 22406 45577, 22408 45581, 22408 45585, 22406 45585, 22409 45586, 22411 45583, 22411 45579, 22411 45583, 22409 45583, 22404 45586, 22404 45586, 22406 45591, 22408 45591, 22408 45593, 22413 45593, 22415 45594, 22419 45595, 22419 45596, 22424 45591, 22427 45587, 22430 50587, 22430 50589, 22430 50589, 22432 50592, 22437 50594, 22437 50589, 22437 50594, 22441 50599, 22442 50594, 22447 50591, 22444 50588, 22444 50590, 22445 54590, 22445 54594, 22448 54599, 22450 54601, 22450 59601, 22446 59597, 22451 59600, 22451 59603, 22454 59604, 22459 59604, 22460 59609, 22459 59606, 22464 59607, 22465 59608, 22463 59609, 22460 59606, 22459 59605, 22459 59605, 22457 59609, 25457 59610, 25459 59615, 25464 59617, 25466 59618, 25469 59621, 25474 59616, 25478 59617, 25480 59614, 25484 59619, 25484 59620, 25488 59616, 25485 59618, 25489 59623, 25494 59627, 25499 59629, 148 2256, 152 2253, 152 2253, 154 2258, 159 2253, 160 2257, 159 2256, 163 2259, 161 3259, 163 3262, 163 3259, 165 3259, 170 3263, 170 3263, 174 3267, 169 3271, 174 3275, 174 3276, 174 3278, 177 3282, 181 3286, 183 3287, 186 3284, 187 3286, 189 3286, 193 3288, 194 3290, 193 6290, 195 6293, 200 6289, 197 6294, 196 6293, 197 6293, 201 6297, 202 6292, 200 6294, 204 6295, 209 6300, 214 6305, 217 6305, 218 6305, 213 6308, 214 6308, 218 6313, 218 6308, 216 6312, 215 6312, 213 6309, 214 6313, 219 6318, 222 6321, 226 6326, 224 6331, 222 6327, 41575 39716, 41574 39713, 41578 40713, 41582 40718, 41578 40721, 36578 40721, 36579 40723, 36584 40720, 36587 40725, 36592 43725, 36587 43725, 36584 43728, 36587 43733, 36592 43735, 36592 43734, 15291 11311, 15287 11316, 15288 11319, 15291 11319, 15296 11319, 15297 11320, 15298 13320, 38744 37650, 38745 37654, 38747 37659, 38746 37662, 38741 37663, 38739 37666, 38744 37666, 38747 37661, 38750 37666, 38750 37666, 38754 37671, 38755 37671, 38750 37673, 38750 37672, 38754 37677, 38756 37678, 38758 37680, 38760 37678, 38762 37683, 38762 37679, 38760 37679, 38765 37679, 38769 37678, 38774 40678, 38769 40683, 38774 40687, 38776 44687, 38780 44690, 38782 44694, 38782 44694, 38781 44699, 38784 44704, 38782 44699, 38777 44700, 38777 44700, 38777 44700, 38781 44703, 38785 44700, 38786 44700, 38788 44696, 38788 44696, 38788 44700, 38793 44702, 38795 44703, 38797 44707, 38802 44712, 38805 44712, 38809 44713, 38804 44710, 38808 44712, 38811 44713, 36811 44713, 36816 44708, 36815 44709, 36816 44709, 36818 44713, 36813 44716, 36814 48716, 36813 48721, 36817 48725, 36818 51725, 36820 51721, 36824 51724, 40824 51719, 40829 51716, 40832 51720, 40831 51723, 40834 51727, 40837 51728, 40842 51725, 40843 51725, 40838 51729, 40843 51734, 40848 51738, 40850 51742, 40851 51744, 40853 51747, 40856 51749, 40857 51750, 40859 51754, 40859 51750, 40863 51752, 40868 51755, 40864 51754, 40868 51754, 40871 51756, 40867 51756, 40865 51759, 40860 51761, 40857 51757, 40857 51762, 40854 51762, 40855 51764, 40859 51765, 40857 51761, 40854 51764, 40855 51765, 40857 51766, 40860 51761, 40861 51760, 40865 51761, 40865 51763, 40862 51768, 40861 51768, 40856 51772, 40852 51769, 40854 51771, 40854 51771, 40850 51776, 40854 51780, 40856 51782, 40854 51782, 43854 51782, 43856 52782, 43858 52785, 43861 52785, 43861 52780, 37514 26540, 37519 26535, 37522 26539, 37522 26544, 37524 26548, 37529 26548, 37534 26553, 37539 26548, 37542 26553, 37547 26548, 37551 26551, 37551 26554, 37550 26555, 37551 26557, 37548 26557, 37548 26557, 37551 26560, 37551 26563, 37554 26563, 37558 26568, 37562 26563, 37563 26565, 37567 26569, 41567 26569, 41571 26572, 41573 26577, 41573 26577, 41578 29577, 41573 29577, 41575 29580, 41575 29582, 46575 29582, 46571 29586, 45571 29587, 45574 29587, 45570 29587, 45575 29585, 45577 29582, 45573 29585, 45574 29588, 45574 29589, 45578 29589, 45580 29592, 45583 29595, 45584 29597, 45584 29602, 45586 29601, 45591 29604, 45587 29609, 45591 33609, 45595 36609, 45596 36611, 45601 36613, 45602 36608, 45606 36608, 45606 36612, 45606 36611, 45610 36614, 50610 36617, 50613 36613, 50616 36613, 50621 36609, 50626 36609, 50627 36610, 50627 36609, 50631 36610, 50626 36612, 50627 36614, 50628 36614, 50631 36612, 50629 36614, 50630 36618, 50634 36622, 46634 34622, 46634 35622, 46638 35626, 46638 35621, 46639 35624, 46641 35623, 46645 35624, 46647 35629, 46645 35634, 46650 35639, 46650 35644, 46651 35647, 46653 35651, 46657 35654, 46654 35659, 46659 35660, 46660 35661, 46664 35664, 46661 35667, 46664 35668, 46667 35667, 46669 35671, 46669 35667, 46672 35670, 46674 35675, 46676 35675, 47676 35672, 47678 35676, 47679 35677, 47679 35682, 47679 35681, 47679 35681, 47679 35686, 47674 35687, 47673 35687, 49673 35689, 49676 35693, 49679 35696, 49677 35696, 54677 35701, 54680 35703, 54676 35703, 54672 35705, 54672 35704, 54677 35707, 54678 34707, 54678 34707, 54681 34710, 54685 34712, 54690 34710, 54690 34711, 54687 34706, 54689 34706, 54694 34711, 54689 36711, 54689 36710, 54684 36711, 54687 38711, 54682 38714, 54682 38718, 54679 38718, 54681 38723, 54684 38724, 54689 38720, 54690 38721, 54694 38726, 54699 38730, 54701 38731, 54702 38728, 54704 38724, 52704 38723, 52704 38723, 52704 38725, 52704 38729, 52706 38730, 52708 38732, 52709 38733, 52713 38732, 52713 35732, 52715 35737, 52714 35741, 52714 35743, 52715 35746, 52715 35749, 52710 35749, 52712 39749, 52715 39753, 52718 39752, 52723 39753, 52722 39757, 52718 39760, 52718 40760, 47718 40761, 47719 40765, 47724 40765, 47724 40765, 47724 40770, 47728 40773, 47730 40776, 47735 40781, 47733 40777, 50733 40781, 51733 40783, 51735 40786, 51736 40790, 51739 40788, 51743 41788, 51741 41787, 51741 41789, 51741 41789, 51738 41793, 51733 41793, 52733 41794, 52737 41795, 52740 41794, 52744 41793, 52748 41789, 52749 41789, 52747 41789, 52752 41786, 52755 41790, 52755 41791, 52760 41796, 52756 42796, 52751 42797, 52754 42798, 52758 42795, 52759 42794, 52764 42797, 52768 42801, 52768 42801, 52771 42806, 52776 42810, 52776 42809, 52773 42811, 52776 42811, 52772 42812, 52773 42815, 52769 42815, 52768 42816, 52769 42821, 52773 42821, 52773 42821, 52777 42819, 52781 42815, 52781 42816, 52782 42819, 52778 42822, 52776 42822, 52779 42826, 52782 42827, 52783 42831, 52778 42833, 52782 42836, 54782 42839, 54782 42844, 2137 11205, 2142 11207, 2139 11208, 2142 11213, 2144 11217, 2149 11215, 2147 11217, 2147 11217, 2152 11222, 2152 11225, 2155 11229, 2159 13229, 2164 13232, 2169 13235, 2173 13236, 2169 13233, 2170 13237, 2173 13241, 2175 13243, 2170 13238, 2170 13239, 2175 13239, 2177 13238, 2179 13239, 2179 13238, 2181 13233, 2181 13230, 2182 13230, 2179 13230, 2179 13235, 2182 13235, 2183 10235, 2178 10237, 2179 10236, 2182 10239, 2187 10241, 2184 10244, 6184 10244, 6186 10248, 6184 10246, 6185 10247, 6187 10250, 6192 10248, 6196 10248, 6196 10251, 6194 10251, 6194 10256, 6197 10260, 6196 10264, 6197 9264, 6197 9264, 6197 9268, 6201 9273, 6206 9276, 6201 9272, 6203 9272, 6205 9269, 6210 9272, 6206 9274, 6206 9279, 6203 9283, 6203 9285, 6203 9290, 6208 9285, 6208 9281, 6204 9285, 6202 9289, 6204 9292, 6200 9294, 7200 9297, 7202 9301, 7203 9301, 7207 9302, 7211 9302, 7211 9303, 8211 9306, 8216 10306, 8220 10310, 8224 10312, 8228 10317, 8233 10317, 8237 10322, 8239 10322, 8239 10327, 8235 10330, 8235 10331, 8239 10329, 8240 10332, 8240 10334, 8236 10334, 11236 10336, 11238 10337, 11243 10341, 14243 10342, 14242 10342, 14239 10343, 14240 10341, 14239 10343, 14244 10343, 14248 10343, 14252 10343, 14252 10343, 14253 10341, 14256 10341, 14258 10338, 14258 10336, 14254 10340, 14257 10344, 14261 10346, 14264 10351, 11150 3163, 11155 3167, 11156 3166, 11156 3169, 11160 3171, 11163 3176, 11164 3179, 11164 3180, 11168 3183, 11168 3185, 11173 3189, 11178 3184, 11180 3183, 11178 3185, 11181 3187, 11176 3186, 52778 42822, 52780 42826, 52779 42826, 52784 42821, 52785 42826, 52786 42827, 52791 42830, 52791 42827, 56791 42832, 56788 42833, 56788 42836, 56791 42840, 56791 42839, 56787 42842, 56788 42847, 51788 42848, 51790 42850, 51792 42851, 51796 42846, 51798 42846, 51803 42850, 53803 42853, 53808 42853, 53811 42856, 53814 42854, 53819 42850, 53819 42852, 53820 42857, 53824 42860, 53825 42858, 53828 42862, 53827 42864, 53828 42864, 53828 42868, 53832 42872, 53837 42877, 53841 42877, 53843 42876, 53843 42880, 53843 42883, 53843 42888, 53838 42892, 53838 42893, 53838 44893, 53835 44893, 53837 44897, 53840 44901, 53844 44901, 53846 44904, 53846 44908, 53847 44909, 53852 44907, 53855 44908, 53860 44910, 53858 44911, 53863 44913, 53858 44917, 53860 44920, 53865 44920, 53870 44922, 53869 43922, 53871 43925, 53871 43923, 53869 43923, 53864 43922, 53862 43927, 53866 43932, 53871 43934, 53876 43937, 53876 43936, 53876 43936, 53877 43934, 53879 43932, 53880 43928, 53885 43931, 55885 43933, 55885 43929, 55881 43933, 55883 43933, 55886 43932, 55883 43932, 55884 43933, 55885 45933, 55885 45937, 55885 45940, 55886 45945, 55886 45945, 55888 45950, 55884 45952, 55885 45956, 55890 45960, 55892 45961, 55896 45957, 55894 45958, 55899 45954, 55895 45958, 55898 45960, 55894 45959, 55899 45963, 55901 45965, 55901 45965, 55896 45966, 55900 45961, 55895 49961, 55898 47961, 55896 47960, 55900 47964, 55903 47968, 55903 47971, 55903 47974, 55898 47977, 55900 47973, 55896 47978, 55897 47979, 55893 47980, 55898 47983, 55901 47988, 55904 47987, 55899 47991, 55901 47993, 55906 47996, 55906 47997, 55907 48001, 55904 48005, 55904 48007, 55909 48004, 55912 48002, 55917 48003, 55913 47998, 55908 48002, 55912 48007, 55916 48004, 55920 48004, 55916 48004, 55921 48004, 55923 48007, 55923 48011, 55926 48011, 55921 48014, 55924 48009, 55929 48013, 55930 48012, 55930 48012, 55932 48016, 55927 48016, 55927 48020, 54927 48018, 54924 48022, 54924 44022, 54928 44017, 54931 44016, 54934 44020, 55934 44021, 55937 44021, 55938 44024, 55939 44026, 55938 44024, 55941 44019, 55946 44022, 55947 44026, 55949 44027, 55952 44028, 55955 44024, 55958 44027, 53869 43923, 53873 43925, 52873 43925, 53873 43927, 53878 43927, 53883 43927, 53882 43931, 53884 43935, 53888 43940, 53886 43941, 53881 43938, 53881 43941, 53879 43943, 53880 43942, 53881 43946, 53882 43951, 53883 43952, 53886 45952, 53886 45953, 53884 45957, 53885 45958, 53880 45960, 53882 45957, 53887 45962, 53887 45962, 53888 45961, 53888 48961, 53888 48966, 53893 48966, 53894 48968, 53899 48969, 49899 48966, 49904 48969, 49908 48971, 49904 48971, 49906 48975, 49903 48971, 49906 48974, 54906 48975, 54906 48975, 54906 48979, 54911 48983, 54909 48979, 54912 48979, 54908 48975, 54911 48977, 54913 48979, 54917 48982, 54922 48982, 54925 48985, 54920 48988, 54923 48988, 56923 48988, 56928 48990, 56926 48985, 56931 48984, 56934 48983, 56934 48981, 56938 48983, 56939 48985, 56939 48986, 61939 48988, 61939 48984, 61936 51984, 61937 51985, 61937 51988, 61937 51988, 61933 51990, 5331 23399, 5333 23399, 5335 23394, 5339 23396, 5342 23399, 5347 27399, 5347 27401, 5352 27402, 5357 27403, 5358 27406, 6358 27409, 6362 27411, 6363 27410, 6366 27406, 6368 26406, 6373 26406, 6373 26406, 6374 26409, 6372 26409, 6377 26410, 6382 26415, 6387 26417, 6389 26418, 6390 26423, 6392 26423, 6393 26428, 6395 30428, 6392 30433, 6392 30436, 6392 30434, 6396 30438, 6396 30441, 6396 30445, 6398 30446, 6400 30443, 6401 30440, 6406 30439, 6407 30439, 6402 30439, 6407 30444, 6406 30447, 6407 30451, 6411 30451, 6413 30451, 6414 30452, 6419 30450, 6423 30454, 6420 30452, 6419 30448, 6420 30453, 6422 30455, 6427 30460, 6428 30460, 6427 30462, 6428 30462, 6428 34462, 6429 34463, 6434 39463, 6436 39466, 6436 39471, 6441 39474, 6445 39471, 6446 39472, 6451 39477, 6453 39480, 6454 39485, 6454 39483, 6454 39480, 8454 39480, 8458 39482, 8462 39484, 10462 39486, 10457 39486, 10458 39488, 10462 39488, 10465 39488, 10470 39490, 10475 39486, 10477 39488, 10477 39490, 10478 39492, 10479 39496, 10477 39498, 10482 39503, 10478 39505, 10481 39510, 10482 39514, 10477 39512, 10482 39517, 10483 39520, 10483 39520, 10487 39525, 10489 39526, 10492 39527, 10492 39524, 10495 39524, 10498 44524, 10493 44523, 10493 44528, 10494 44524, 10499 44529, 10501 44529, 10504 44531, 10502 44535, 10504 44539, 10508 44539, 10513 44536, 13513 44540, 13515 44537, 13512 44539, 13509 44544, 13513 44547, 13517 44552, 13519 44553, 13524 44554, 13527 42554, 13522 42555, 13524 42557, 13527 42556, 13531 42561, 13531 42562, 13526 42563, 13527 42563, 13527 42566, 13522 42568, 13525 42571, 15525 42573, 15525 42576, 15526 42581, 15531 42581, 15532 42586, 15534 42588, 15534 42592, 15533 42591, 15533 42596, 15532 42591, 15532 42587, 15535 42587, 15538 47587, 15534 47587, 15537 47591, 15536 47594, 15538 47598, 11538 47594, 11535 47594, 11531 47594, 11535 47596, 11535 47596, 11535 47597, 11539 47602, 11540 47607, 11540 47607, 11540 47609, 11543 47613, 11546 47617, 14546 47618, 14541 47614, 14539 47614, 14539 47618, 14537 50618, 14539 50623, 14541 50623, 14542 50627, 14540 50627, 14539 50623, 25601 26544, 25601 26545, 25601 26548, 25596 26546, 25601 26547, 25598 26548, 25599 26547, 25600 26547, 25595 26548, 25590 26546, 25595 26549, 25597 26548, 25598 26548, 25601 26545, 25596 26548, 25594 26553, 25595 26552, 25599 26553, 25598 26554, 25596 26555, 25592 26554, 25596 26558, 25599 26554, 25600 26556, 25595 26559, 25600 22559, 25601 22561, 25606 22563, 25607 22562, 25608 22566, 25607 22563, 25607 22568, 30607 22573, 30612 22575, 30612 22579, 30611 22579, 30611 22580, 30611 22585, 30607 22585, 30612 22587, 30612 22588, 30615 22583, 30615 22585, 30618 22581, 30621 22581, 30623 22584, 30623 22589, 30628 22594, 30630 22597, 30631 22602, 30628 22607, 30630 22610, 30631 22611, 30631 22608, 30629 22610, 30634 22612, 30635 22612, 30638 22616, 30643 17616, 30644 17618, 30649 17618, 30653 17619, 30656 17614, 30657 17611, 30660 17615, 30655 17614, 30656 17610, 30656 17611, 30661 17610, 30662 17615, 30660 17620, 30661 17620, 30666 17623, 30667 17625, 30667 17624, 30669 17625, 30673 17628, 30675 17628, 30675 17628, 30680 17631, 30677 17636, 30677 17639, 30680 17644, 30683 17647, 30688 17643, 30693 17645, 30698 19645, 30701 19644, 30702 19644, 30698 19649, 30700 19647, 30701 19649, 30704 19650, 30705 19653, 30701 19655, 30706 19652, 30708 19656, 30711 19657, 30711 19659, 30711 19659, 30714 19661, 30710 19662, 30707 19664, 30702 19666, 30703 19667, 30708 19668, 30713 19667, 30709 19671, 30706 19674, 30710 19676, 30711 19677, 30713 19677, 30713 19678, 30715 19682, 30720 19686, 30725 20686, 30723 20690, 30727 20695, 30728 20697, 30731 20699, 30730 20694, 30732 20696, 30735 20698, 30738 20696, 30738 20695, 30742 20698, 30743 20699, 30743 20701, 30748 20704, 30749 20706, 30752 20705, 30753 20702, 30755 24702, 30751 24705, 30750 24707, 30748 24708, 30749 29708, 30749 29709, 30751 29711, 30754 29716, 30759 29716, 30762 34716, 30762 34720, 30765 34720, 30761 34717, 30761 34721, 30765 34721, 30760 34721, 30759 34725, 30762 34730, 30760 34730, 30765 34731, 30765 34731, 30766 34731, 30761 34733, 30761 34736, 30764 34738, 30759 34739, 30763 34740, 30761 34740, 30764 34742, 30759 34737, 30762 34739, 30764 34741, 30762 34740, 30767 34737, 32767 34741, 32770 34741, 32767 34744, 32767 34746, 32770 34751, 32774 34755, 32774 34756, 32779 34753, 32784 34755, 32785 33755, 32785 33750, 36785 33753, 36785 33758, 36788 33760, 36789 33759, 36789 33762, 36793 33758, 36798 33758, 36803 33760, 36803 33762, 36803 33766, 36804 33769, 36804 33769, 36808 33774, 33808 33776, 33808 33781, 33811 33781, 33816 33784, 33816 33789, 33820 33786, 33823 33788, 33828 33785, 33824 33785, 33826 33787, 33824 33788, 33828 33791, 33825 33796, 33829 33799, 33830 33802, 33831 33803, 33835 33805, 33835 33805, 33838 33809, 33841 33813, 33844 33809, 33849 33814, 33847 32814, 33849 32812, 33851 32816, 33853 32819, 33851 32822, 33851 32826, 33849 32826, 33849 32830, 33852 32835, 33856 32840, 33859 32837, 33858 32832, 33861 32833, 33862 32836, 33859 32838, 33859 32834, 33857 32834, 33859 32834, 33857 32838, 33861 32833, 33861 32837, 33864 32840, 33866 32841, 33866 32843, 33868 32841, 33871 32839, 33874 32844, 33876 37844, 33881 37849, 33883 37854, 33883 37859, 33888 37860, 33893 37864, 33898 37864, 33895 37867, 33896 38867, 33898 38863, 28898 38868, 28901 39868, 33901 39873, 33898 39875, 33900 39879, 33904 39877, 33904 39879, 33909 39883, 33914 39888, 33910 39891, 33910 39892, 33907 39894, 33911 39899, 33913 39900, 33910 39904, 33914 39905, 33917 39906, 33917 39906, 33917 39906, 33912 39911, 33912 39908, 33916 39907, 33914 39910, 33918 39913, 33922 39913, 33924 39916, 33925 39920, 33930 39920, 33933 39922, 33934 39923, 33937 39919, 33938 39916, 33936 39913, 35936 39918, 35933 39919, 35937 39921, 35941 39924, 35941 39919, 35942 39915, 35946 39920, 35946 39915, 35946 39912, 35947 39908, 35947 39912, 35947 39916, 35952 39919, 35957 39921, 38957 39920, 38962 39925, 38964 39924, 38964 39924, 38969 39926, 38969 39928, 38972 39932, 38977 39932, 38975 39932, 38979 39935, 38982 39938, 38986 39940, 38984 39943, 38985 39946, 38987 39947, 38989 39949, 38994 41949, 38990 41954, 38991 41958, 38994 41962, 38994 41966, 38994 41969, 38995 41974, 38999 41974, 38999 41974, 38996 41978, 38996 41983, 38999 41983, 39001 41986, 38996 41984, 39000 41989, 39000 41988, 5336 23410, 5332 23410, 5327 23407, 9327 23408, 12327 23412, 12327 23412, 12324 23410, 13324 23415, 13327 23420, 13328 23416, 13324 23418, 13329 23423, 13330 23426, 13331 23429, 13335 23426, 13339 23428, 23493 35553, 23492 35548, 23496 35550, 23501 35552, 23497 35553, 21497 35557, 21492 35560, 21494 35562, 21494 35560, 21496 35563, 21496 35568, 21496 35570, 21501 35570, 21504 35566, 21504 35571, 17504 35572, 17508 35577, 17509 35578, 17513 35582, 17514 35587, 17515 35592, 18515 35595, 18516 35596, 18517 35598, 18515 35600, 16515 35605, 16515 37605, 16515 37606, 16513 37608, 16515 37613, 16516 37615, 16520 37620, 16524 34620, 16526 34617, 16530 34619, 16530 34624, 16535 34628, 16537 34631, 16540 34632, 16541 34634, 16541 34635, 16544 34632, 16544 34637, 16546 34642, 16549 38642, 16549 38644, 16545 38649, 16545 38644, 16542 38644, 16545 38644, 16544 38645, 16548 38650, 16543 38653, 16543 38649, 18543 38652, 18546 38652, 18546 38657, 18546 38660, 18551 38655, 18549 38655, 18552 38660, 18549 38662, 23549 38667, 23546 38668, 23550 38672, 23550 38674, 28550 38676, 28551 38673, 28551 38677, 28547 38673, 28551 38674, 28556 38674, 28559 38678, 28562 38673, 28564 38678, 28564 38673, 28563 38673, 28566 38675, 28571 38675, 38781 44703, 38782 44699, 38780 44702, 38785 44704, 38787 44704, 38783 44705, 38784 44700, 38788 44695, 38791 44696, 38796 44696, 38801 44692, 38801 44697, 38805 44701, 38810 44701, 38808 44701, 38808 44704, 38805 44706, 38805 44710, 38804 44711, 38809 48711, 38810 48711, 38808 48711, 38812 48716, 38812 48713, 38812 48715, 38812 48715, 38808 48711, 38804 48714, 38805 48710, 38807 48715, 38812 48715, 38807 48713, 38811 48714, 38811 48714, 38816 48711, 38817 48707, 38818 48707, 38818 48708, 38822 48708, 38824 48713, 38822 48714, 38820 48718, 38824 48720, 38824 48723, 38829 48726, 38830 48731, 38834 48729, 38832 48734, 38833 48730, 38834 48728, 38831 48732, 8433 35536, 8433 35541, 4433 35536, 4436 35541, 4440 35541, 4441 35537, 4445 35539, 4444 35534, 4447 35531, 4451 35531, 4455 35534, 4460 35534, 4461 39534, 4462 39535, 4463 39535, 4466 39535, 4470 39535, 4472 39538, 4467 39538, 4467 39536, 4471 39536, 4473 39541, 4468 39542, 4472 39543, 4475 39544, 4478 39544, 4482 39547, 4487 39552, 4485 39550, 4486 39551, 4486 39553, 4486 39555, 4488 39557, 4488 39558, 4489 39555, 4485 39557, 4488 39558, 4492 39560, 4495 39561, 4500 39565, 4496 39566, -4747 22349, -4750 22349, -4746 22352, -4742 22355, -4738 22360, -4739 22362, -4737 22365, -4732 22363, -4728 25363, -4728 25364, -4723 25364, -4725 25364, -4725 25365, -6725 25364, -6727 25369, -6728 25369, -6725 25369, -6729 25368, -6728 27368, -6725 27370, -6721 27371, -3721 27367, -3717 27372, -3718 27375, -3716 27370, -3715 27373, -3714 27373, -3712 27376, -3709 27374, -3710 27375, -3710 27374, -3708 27379, -3706 27381, -3705 27386, -3704 27389, -3704 27393, -3703 32393, -3702 32396, -3702 32396, -3697 32395, -3697 32399, -3692 32403, -3692 32404, -3693 32408, -3693 32412, -3691 32414, -3691 32414, -3695 32414, -3690 32417, -3689 32422, -3684 32424, -3681 32429, -3679 32424, -3676 32428, -3671 32428, -3674 32431, -3671 32430, -3669 32430, -3674 33430, -3676 33432, -3674 33432, -3677 33432, -3677 33437, -3675 33438, -3674 33442, -3679 33444, 1321 33448, 1323 33445, 1327 33448, 1331 33443, 1328 33448, 1328 33443, 1329 33443, 1329 33444, 1334 33448, 1335 33453, 1340 33457, 1340 33454, 1345 33454, 1349 33458, 1348 33461, 1348 33459, 1344 33463, 1343 33466, 1348 33466, 1349 33467, 1345 33467, 1346 33466, 1350 33461, 1349 33464, 1354 33468, 1358 33472, 1363 33473, 1365 33472, 1367 33473, 1370 33476, 1371 33479, -2629 33482, -2631 33487, -2627 33490, -2630 34490, -2626 36490, -2623 36492, -2619 36492, -2622 36492, -2620 36496, -2622 36495, -2627 36495, -2625 36500, -2621 36503, -2626 36506, -2629 36510, -2624 36510, -2620 36510, -2620 36513, -2617 36518, -2622 36516, -2619 36514, -2617 36514, -2617 36512, -2615 36516, -2613 36516, -2613 36517, -2613 36515, -2613 36510, -2610 36511, -2607 36515, -2604 37515, -2604 37512, -2608 37509, -2605 37512, -2600 37516, -2597 37516, -2593 37514, -2595 37515, -2590 37519, -2595 37518, -2590 37523, -2590 37528, -2590 37530, -2592 37525, -2592 37520, -2589 36520, -2586 36521, -2587 36517, -2584 36518, -2582 36518, -2581 36520, -2577 36518, -2576 36522, -2576 35522, -2573 35523, -2575 35523, -2576 35528, -2576 35533, -2576 35536, -2576 35538, -2578 35541, -2582 35545, -2584 35546, -2585 35548, -2583 35544, -2583 35548, -2582 35547, -2578 35552, -2574 35554, -2569 35557, -2565 35559, -2563 35564, -2558 35564, -2555 35568, -2551 35568, -5551 36568, -5546 36568, -5542 36569, -5545 36569, -5543 36574, -5540 36569, -5541 36570, -5541 36572, -5541 36574, -5538 36579, -5535 36581, -5533 36585, -5530 36584, -5526 36579, -5524 38579, -5524 38580, -5524 38575, -5520 38575, -5516 38580, -5512 42580, -5508 42585, -5510 42587, -5510 42586, -5505 42586, -5508 42589, -2508 42593, -2509 42596, -2506 42598, -2504 42601, -2501 42602, -2501 42607, -2496 42612, -2499 42615, -2498 42620, -2500 42617, -2500 42620, -4500 42620, -4500 42624, -4500 42626, -4504 42623, -4507 42625, -4509 42628, -4513 42629, -4508 42629, -4505 42632, -4500 42628, -4499 42633, -4503 45633, -4501 45634, -4497 45635, -4494 45634, -4495 45632, -4493 45634, -4492 46634, -4489 46638, -4485 46633, -4481 46635, 21338 40536, 21343 40537, 21348 40538, 21348 40540, 21347 40540, 21348 40540, 21347 40540, 21346 40542, 21349 40547, 21350 40547, 21353 40544, 21353 40546, 21350 40549, 21353 40550, 21354 40550, 21355 40550, 21360 40550, 21361 40549, 21361 40554, 21359 40559, 21364 40564, 21366 40559, 21365 40559, 21366 40564, 25366 40568, 25367 40570, 25370 40570, 25373 45570, 25374 45571, 25374 45566, 25378 45568, 25383 42568, 25387 42564, 25391 42568, 25391 42572, 25395 42576, 25392 42576, 28392 42573, 28391 42574, 28387 42578, 28388 42580, 28391 42581, 31391 42582, 31387 42586, 31389 42586, 31392 42582, 31393 42583, 31394 42580, 29394 42584, 29398 42586, 29400 43586, 29404 43588, 29408 43589, 29409 43591, 29413 43596, 29415 43598, 29416 43599, 25416 43604, 25414 43599, 25417 43603, 25422 43606, 25420 43608, 25425 43603, 25428 43603, 25431 43606, 25436 42606, 25431 42608, 25434 42604, 25437 42609, 25438 47609, 25442 50609, 25443 50614, 25441 50618, 25446 50621, 25449 50625, 25446 50628, 25446 50630, 25447 50631, 25452 50636, 25452 50632, 25453 50634, 25453 50636, 25456 50637, 25460 50641, 25464 50645, 25465 50644, 25465 51644, 25469 51648, 25471 51653, 25475 51654, 25476 51657, 25477 51658, 26477 51662, 26477 51666, 26476 51669, 26478 51669, 26483 51665, 26485 55665, 26487 55668, 30487 55671, 30487 55674, 30491 55675, 30491 55672, 30493 55674, 30494 55674, 30495 55679, 30499 55679, 30503 55675, 30505 55680, 30502 55681, 30500 55676, 30496 55679, 30501 55680, 30502 55680, 30507 55685, 30503 55688, 30498 55689, 30502 55689, 30504 55691, 30508 55696, 30509 55697, 30508 55696, 30513 55697, 30518 55698, 30516 55703, 30516 55705, 30514 55705, 34514 55709, 34518 55712, 34522 55708, 34520 56708, 34521 56708, 34522 56710, 34519 56710, 34517 56705, 34521 59705, 34524 59710, 34524 59712, 34524 59717, 34528 59719, 34530 59721, 34535 59716, 34540 59719, 34540 59721, 34543 59721, 34548 59724, 34550 59725, 34554 63725, 34549 63730, 34551 63732, 34556 63730, 34558 63730, 34559 63725, 34558 63729, 34563 63734, 34560 63734, 37560 63729, 37563 63733, 37567 63728, 37571 63724, 37575 63722, 37580 63726, 37579 63722, 37581 63724, 37581 63726, 37582 63723, 37582 63724, 37581 63728, 37576 63729, 37576 63731, 37578 63729, 37583 63733, 37585 63736, 37588 63736, 37592 63741, 37594 63738, 37599 63735, 37602 63734, 37598 63735, 37598 63737, 37602 63737, 37603 63739, 37598 63739, 37593 63736, 37598 63737, 37603 63742, 37604 63737, 37601 63742, 37596 63744, 37600 63748, 37605 63749, 37607 63751, 37609 63756, 37609 63760, 37605 63761, 37605 63765, 37606 63765, 37610 63762, 37611 63766, 37606 63768, 37606 63768, 41606 63769, 41602 63765, 41601 63765, 41602 63770, 41598 63770, 41601 63770, 41603 63774, 41606 63772, 41610 63772, 41613 63776, 41616 63771, 41611 63767, 41614 63769, 41617 63764, 38617 63768, 38617 63772, 38620 63772, 35620 63773, 35620 63778, 35619 63779, 35620 63780, 35615 63779, 35617 63784, 35614 63786, 35615 63783, 35616 63779, 35620 63778, 35621 63780, 35626 63782, 35626 63784, 35631 63789, 35631 63784, 35628 63785, 35626 63786, 35631 63788, 35636 63791, 35640 63786, 35636 63787, 35636 63782, 35635 63781, 35640 63786, 35643 63790, 35646 63795, 35650 63797, 35649 63797, 35651 63801, 35655 63805, 35656 63808, 35656 63808, 35658 63808, 35657 63810, 35660 63814, 35660 63809, 35664 63809, 35659 67809, 35660 67812, 35662 67815, 35666 67812, 35662 67807, 35660 67807, 35663 67807, 35665 67812, 35668 67814, 35672 67818, 35671 67817, 35671 67820, 37671 67824, 37666 67824, 2277 13367, 2280 16367, 2276 16367, 2277 16366, 2281 16366, 2284 16366, 2289 16370, 2286 16370, 4286 16370, 4288 16375, 4292 16379, 4296 18379, 4297 18381, 9297 18385, 9298 18385, 9301 18386, 9305 18383, 9307 19383, 9310 19379, 8310 19384, 8314 19384, 38748 37655, 38751 37656, 38756 37657, 38759 37660, 38755 37665, 38755 37665, 38760 37667, 38765 37668, 38765 42668, 38770 42670, 38767 42672, 38772 42668, 38769 42663, 38770 42663, 38775 42658, 38773 42663, 38777 42665, 41777 42667, 41780 42669, 41783 42673, 41784 42671, 41781 42673, 41786 42676, 41783 42676, 41785 42676, 41782 42676, 41785 42679, 41786 42679, 41790 42680, 41794 42681, 41794 42679, 41795 42684, 41795 42680, 41798 42685, 41803 42689, 41806 42688, 41808 42689, 41806 42694, 41804 42696, 41807 42700, 41802 42701, 41804 42702, 41806 42704, 41811 42708, 41815 42709, 36815 42712, 36815 42708, 36812 42707, 36813 42709, 40813 42710, 40817 46710, 40818 46712, 40822 46712, 40820 46716, 40824 46721, 40827 46724, 40831 46728, 40829 46731, 40833 46731, 40835 46735, 40831 46737, 40832 46737, 36832 46742, 36832 46745, 36836 46748, 36833 46753, 36828 46752, 36824 46752, 36826 46755, 36821 46759, 36825 46762, 36825 46766, 36826 46770, 36824 46773, 36828 46776, 36833 46778, 36830 42778, 36835 42780, 36835 42781, 36840 42786)'))); UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; alter table t1 drop index `si`; -set global innodb_purge_run_now=on; +connection purge_control; +COMMIT; +disconnect purge_control; +connection default; set global innodb_fast_shutdown = 0; -# restart drop table t1; diff --git a/mysql-test/suite/innodb_gis/r/rtree_purge.result b/mysql-test/suite/innodb_gis/r/rtree_purge.result index 3d8b226af71..c3e879674dd 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_purge.result +++ b/mysql-test/suite/innodb_gis/r/rtree_purge.result @@ -19,5 +19,6 @@ set n:=n+1; until n >= i end repeat; end| call p(200); +InnoDB 0 transactions not purged drop procedure p; drop table t; diff --git a/mysql-test/suite/innodb_gis/r/rtree_undo.result b/mysql-test/suite/innodb_gis/r/rtree_undo.result index 94c1d3f0982..12e052ccb9a 100644 --- a/mysql-test/suite/innodb_gis/r/rtree_undo.result +++ b/mysql-test/suite/innodb_gis/r/rtree_undo.result @@ -1,3 +1,5 @@ +connect con1,localhost,root,,; +connection default; CREATE TABLE t1 ( p INT NOT NULL AUTO_INCREMENT, g LINESTRING NOT NULL, @@ -12,17 +14,21 @@ DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ROLLBACK; +connection con1; # disable purge CREATE TABLE t0 (a INT) ENGINE=InnoDB; BEGIN; SELECT * FROM t0; a +connection default; DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +connection con1; # enable purge COMMIT; +connection default; DELETE FROM t1 WHERE p = 2; # wait for purge to process the update_undo records. CREATE TABLE t2 ( @@ -57,17 +63,21 @@ DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ROLLBACK; +connection con1; # disable purge CREATE TABLE t0 (a INT) ENGINE=InnoDB; BEGIN; SELECT * FROM t0; a +connection default; DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +connection con1; # enable purge COMMIT; +connection default; DELETE FROM t1 WHERE p = 2; # wait for purge to process the update_undo records. CREATE TABLE t2 ( @@ -103,17 +113,21 @@ DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ROLLBACK; +connection con1; # disable purge CREATE TABLE t0 (a INT) ENGINE=InnoDB; BEGIN; SELECT * FROM t0; a +connection default; DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ALTER TABLE t1 DROP INDEX spatial_idx, DROP INDEX prefix_idx; +connection con1; # enable purge COMMIT; +connection default; DELETE FROM t1 WHERE p = 2; # wait for purge to process the update_undo records. CREATE TABLE t2 ( @@ -148,17 +162,21 @@ DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ROLLBACK; +connection con1; # disable purge CREATE TABLE t0 (a INT) ENGINE=InnoDB; BEGIN; SELECT * FROM t0; a +connection default; DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ALTER TABLE t1 ADD SPATIAL INDEX spatial_idx (g); +connection con1; # enable purge COMMIT; +connection default; DELETE FROM t1 WHERE p = 2; # wait for purge to process the update_undo records. CREATE TABLE t2 ( @@ -193,17 +211,21 @@ DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ROLLBACK; +connection con1; # disable purge CREATE TABLE t0 (a INT) ENGINE=InnoDB; BEGIN; SELECT * FROM t0; a +connection default; DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ALTER TABLE t1 ADD INDEX prefix_idx (g(767)); +connection con1; # enable purge COMMIT; +connection default; DELETE FROM t1 WHERE p = 2; # wait for purge to process the update_undo records. CREATE TABLE t2 ( @@ -239,17 +261,21 @@ DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ROLLBACK; +connection con1; # disable purge CREATE TABLE t0 (a INT) ENGINE=InnoDB; BEGIN; SELECT * FROM t0; a +connection default; DELETE FROM t1 WHERE p = 3; UPDATE t1 SET g = ST_linefromtext('linestring(448 -689,453 -684,451 -679,453 -677,458 -681,463 -681,468 -678,470 -676,470 -678,468 -675,472 -675,472 -675,474 -674,479 -676,477 -675,473 -676,475 1324,479 1319,484 1322,483 1323,486 1323,491 1328,492 1325,496 1325,498 1325,501 1330,498 1331,500 1331,504 1330,508 1329,512 1332,513 1337,518 1339,518 1339,513 1344,513 1344,512 1346,514 1351,515 1353,519 1358,518 1362,522 1365,525 1360,526 1362,527 1362,528 1367,525 1371,528 1366,532 1369,536 1374,539 1377,543 1379,539 1381,541 1382,543 1383,546 1388,549 1393,554 1393,554 1395,554 1392,550 1394,550 1392,546 1394,549 1397,550 1393,549 1394,554 1390,554 1391,549 1396,551 1396,547 1400,547 1402,551 1407,554 1412,554 1415,558 1418,463 -681,465 -677,465 -675,470 -670,470 -665,470 -660,470 -659,473 -656,476 -656,481 -655,482 -652,486 -654,486 -652,486 -648,491 -646,490 -651,494 -646,493 -644,493 -644,490 -644,491 2356,495 2359,495 2364,500 2359,503 5359,504 5364,509 5368,504 5367,499 5368,498 5371,498 5369,500 5370,504 5370,508 5370,511 5370,507 5374,508 5378,511 5382,507 5387,509 5389,512 5388,515 5393,520 5396,517 5397,517 5402,515 5404,520 5402,521 5405,525 5405,526 5408,530 7408,535 7413,533 7415,529 7412,532 7416,4532 7416,4534 7421,4533 7417,4536 7413,4536 7418,4540 3418,4545 3418,4549 3415,4551 3419,4554 3421,4559 3423,4559 3426,4557 3424,4561 3428,4558 3428,4563 3431,4565 3435,4569 3439,4569 3439,4569 3444,4567 3444,4572 3446,4577 3447,4581 3444,4581 3448,4584 3448,4579 3447,4580 3450,4583 3449,4583 3453,4587 3455,4588 3458,4593 3463,4598 3465,4601 3468,4598 3464,4598 3460,4593 5460,4595 5461,4600 5464,4600 5465,4601 5466,4606 5466,4608 5466,4605 5464,4608 5467,4607 5468,4609 5465,4614 5461,4618 5463,4621 5467,4623 5470,4622 5470,4622 5470,4625 6470,4627 6471,4627 6472,4627 6473,6627 6474,6625 6474,6628 6477,6633 6481,6633 6480,6637 6475,7637 6479,7638 6482,7643 6487,7644 6492,7647 6492,7648 6495,7646 6498,7650 6499,7646 6494,7644 6499,7644 6497,7644 6499,7647 6502,7649 6504,7650 6501,7647 6503,7649 6504,7650 6508,7651 6503,7652 6508,7655 6508,7650 6511,7655 6515,7658 6513,7663 6513,7665 6514,7669 6512,7667 6510,7664 6510,472 -675,477 -670,479 -666,482 -663,484 -668,484 -666,485 -664,481 -664,479 -659,482 -659,484 -658,483 -659,488 2341,493 2339,489 2338,491 2342,491 2346,494 2346,490 2348,493 2348,498 2349,498 2350,499 2349,502 2350,503 2348,506 2348,506 2348,507 2353,507 2355,504 2359,504 2364,504 2361,499 2365,502 2360,502 2358,503 2357,504 2353,504 2357,500 2356,497 2355,498 2355,500 2359,502 2361,505 2364,508 2364,506 2368,506 2370,504 2373,499 2373,496 2372,493 2377,497 2380,495 2383,496 7383,493 7386,497 7391,494 7387,495 7389,498 7392,498 7392,495 7395,493 7398,498 7401,498 7403,503 7400,498 8400,501 8401,503 8401,503 8401,501 10401,496 10396,491 10401,492 10399,493 10403,496 10403,491 10403,493 10407,489 10410,493 10407,489 10403,498 7403,497 7399,496 7403,500 7405,500 7407,503 7411,508 7415,511 7415,511 7420,515 7420,520 7423,523 7423,520 7427,523 7427,523 7427,522 7432,525 4432,527 4434,530 4437,534 4441,529 4446,529 4441,534 4436,537 4436,535 4437,532 4437,534 4432,535 4429,538 4430,542 4427,542 4431,538 4431,541 4431,541 4433,543 4433,545 4432,549 4428,552 4426,556 4427,557 4423,560 4427,561 4428,558 4430,559 4434,559 4432,561 4434,561 4437,563 4435,559 4430,561 4435,4561 4437,4566 4441,4568 4446,4568 4450,4569 4455,4565 4458,4561 4463,4561 9463,4564 9463,4565 9461,9565 9463,9560 9467,9560 9466,9555 9469,9555 9471,9559 9469,9557 9473,9553 9478,9555 9480,9557 9481,9557 9481,9557 9483,9562 9487,9558 9487,9558 9490,9561 9493,9562 9493,9557 9493,9560 9496,9555 9501,9553 9503,9553 9506,9557 9510,9558 9511,9561 9514,9563 9512,9568 9514,9567 9514,9567 13514,9570 13517,9566 13521,9571 13521,9571 13526,9573 13521,9571 13521,9576 10521,9580 10526,9582 10525,9584 10528,9584 10531,9584 10533,9589 10533,9588 10537,9588 10541,9589 10542,9593 10544,9595 10540,9597 10541,9600 10545,9601 15545,9603 15549,9605 15553,9601 15558,9601 15553,9605 15551,9605 15550,9605 15554,9607 15556,9605 15556,9604 15561,9607 15559,9603 15559,9603 15562,9604 15563,9608 15566,9612 15570,9617 15565,9622 15568,9627 15566,9628 15564,9629 15564,9633 15569,9636 15569,9634 15571,9634 15572,9636 15574,9634 15570,9629 15570,9631 15567,9629 15570,9626 15574,9626 15575,498 7401,502 7401,506 7397,506 7395,502 7398,497 7401,502 7402,505 7397,508 7400,504 7404,3504 7409,3505 7405,3508 7410,3511 7413,3511 7416,3511 7419,3511 7419,3513 7421,3517 7424,3519 7426,3520 11426,3523 11421,3527 11418,3530 11415,3530 11416,3533 11418,7533 11415,7531 11415,7531 11417,7536 11420,7541 11424,7543 11425,7543 11427,7543 11429,7540 11429,7542 11425,7541 11420,7542 11421,7542 11422,7540 11424,7540 11423,7543 11422,7546 11426,7550 11431,7553 11436,7555 16436,7553 16438,7558 16438,7559 16438,7560 16439,7565 16437,7560 16435,7563 16435,7566 16440,7566 16444,7564 16447,7559 16443,7561 16443,7566 16448,7570 16451,7574 16456,7578 16459,12578 16459,12578 20459,12577 20456,12581 20454,12585 20456,12585 20456,12585 20456,12583 20456,12579 20459,12580 20461,12580 20462,12580 20460,12585 20465,12586 20467,12590 20470,12590 20470,12589 20471,12584 20471,12589 20471,9589 20472,9594 20472,9595 20472,9596 20477,9598 20482,9603 20480,9608 20484,9613 20484,9610 20486,9608 20488,9608 20489,9610 20489,9614 20486,9619 20481,9620 20481,9618 21481,9621 21483,9626 21483,9628 21485,9623 21487,9622 21490,9626 21493,9621 21495,9626 21498,9622 21499,9624 21504,9625 21499,9629 21501,9633 21498,9637 21495,9639 21498,9644 21501,9557 9481,9560 9485,9561 9490,9563 9488,9560 9486,9558 9488,9561 9492,9563 9495,9567 9492,9567 9488,9564 9490,9559 9495,9559 9498,9557 9502,9562 9506,9564 9509,9569 9512,9569 9516,9569 9518,9569 9515,9571 9513,9571 9512,9573 9513,9578 9516,9581 9516,9585 11516,9585 11521,9590 10521,9586 10524,9589 10529,9589 10527,9589 10527,9594 10532,9594 10534,9598 10536,9598 10540,9600 10542,9604 10538,9607 10538,9609 10543,9613 10538,9613 10533,9613 10537,9610 10537,9614 10542,9609 10542,9610 10543,9610 10548,9611 10553,9616 7553,9620 7553,9621 7557,9618 7559,9618 7554,9622 7557,9622 7561,9622 7556,9622 7560,9619 7560,9620 7565,9622 7563,9627 7566,9630 7570,9630 7571,9632 7573,9637 7576,9639 7578,9640 7576,9640 7579,9640 7575,9642 7570,9646 7570,9651 7574,9653 7577,9652 7572,9653 7576,9653 7576,9651 7581,9656 7585,9660 7586,9659 7591,9657 7594,9661 7598,9664 7602,9668 12602,9673 12604,9676 12606,9679 12602,9682 12605,9677 12610,9674 12606,9674 12601,9674 12603,9672 9603,9668 9605,9671 9606,9668 9611,9668 9606,9671 9611,9675 9615,9677 9620,9678 9622,9679 9624,9684 9626,9685 9627,9685 9622,9685 9626,9689 9628,9694 9633,9699 9637,9699 9637,9704 9636,9708 9637,9709 9638,9707 9639,9705 9642,9707 9647,9710 9649,9711 9653,9716 9649,9716 9648,9720 9650,9721 9648,9723 9648,9726 4648,12726 4653,12731 4655,12734 4660,12730 4661,12733 4664,12733 4665,12735 4670,12737 4674,12741 4674,12738 4675,12740 4675,12737 4675,12742 4678,12743 4681,12746 4677,12751 4675,559 4430,563 4430,565 4435,566 4440,561 4445,562 4447,564 4450,561 4453,563 4453,561 4458,561 4458,562 4453,566 4454,571 4458,571 4460,574 4461,574 4464,579 4466,579 4470,582 4468,586 4470,590 4468,593 4468,594 4470,596 4474,591 4475,591 4480,594 4482,597 4486,593 4486,595 4486,598 4490,600 4492,3600 4497,3598 4497,3598 4494,3599 4493,3600 4497,3600 4494,3604 4498,3604 5498,3600 5497,3602 5493,3602 10493,8602 10498,8606 10494,8605 10495,8606 10496,8605 10500,8605 10500,8603 10499,8601 10502,8602 10505,8603 10501,8608 10503,8608 10508,8609 10503,8610 10505,8613 10504,8615 10506,8616 10508,8612 10513,8613 10517,8615 10520,8617 10521,8621 10524,8624 10524,8624 10524,8624 10519,8625 10514,8626 10519,502 7402,503 7399,506 7404,543 1379,548 1379,550 1380,553 1379,558 1376,556 1376,558 1372,559 1372,560 1377,565 1374,568 1375,568 1379,572 1382,570 1384,575 1386,576 1389,576 1394,579 1398,583 1403,586 1401,586 1401,591 1400,593 1402,598 1407,601 1412,546 1394,550 1396,553 1396,555 1394,4584 3448,4585 3450,4583 3450,4588 3451,4590 3449,4595 3449,4599 3454,4603 454,5603 458,5604 458,5605 453,5610 457,5614 459,5619 463,5621 466,5618 466,5623 465,5627 466,5625 471,5626 476,5630 479,5635 484,9635 488,9639 488,9641 483,9644 484,9649 484,5649 488,5649 492,5651 497,5656 497,5661 499,5665 504,5666 500,5666 497,5666 499,5666 499,5666 501,5670 502,5670 504,5670 507,5673 502,5677 506,4677 507,4682 509,4682 511,3682 510,3679 514,3683 510,3686 515,3684 518,3686 522,3689 527,3690 527,3688 529,3690 533,3692 530,3691 532,3695 529,3696 529,3701 533,3701 535,3699 540,9610 10543,9612 10545,9615 10548,9617 10548,9619 10550,9624 10548,9627 10549,9625 10553,10625 10553,10626 10555,500 7407,500 7407,500 7411,505 7413,505 7411,502 7415,504 7415,508 7411,511 7411,506 7412,506 7410,3506 7411,3507 7415,3509 7417,3511 7417,3513 7418,3516 7422,3518 7422,3518 7426,3513 7430,3515 7435,3520 7435,3521 7437,3526 9437,3526 9434,6526 9437,6526 9438,6526 9438,6527 9441,6528 9439,6523 9441,6518 9445,6522 9446,6526 9447,6529 9451,6529 9455,6530 9459,6532 9457,3532 9460,3536 9461,3537 9466,3541 9466,3544 9466,3546 9468,3549 9467,3553 9470,3551 9470,3551 9474,3552 9473,3547 9473,3547 9473,3547 9476,3552 9481,3553 9486,3555 9490,3556 9491,3559 9495,3560 9493,3563 9494,3563 9494,3565 9495,3565 10495,3568 10496,3573 10501,3574 10501,3576 10502,3578 10503,3578 10504,3580 10508,7580 10505,7578 10508,7578 10511,7578 10508,7581 10508,7582 10511,7577 10510,7577 10514,7573 10516,7578 10520,7580 10525,7581 10530,7585 10532,7590 10535,7594 10540,12594 10540,12591 10545,12595 10548,12595 10543,12597 10547,12597 10542,12595 10545,12595 10546,12600 10550,12605 10550,12606 10546,12604 10548,12605 12548,12605 12546,12607 12548,7607 12552,7611 12557,7608 12557,7608 12553,7611 12553,7610 15553,7608 15550,7610 15551,7607 14551,7607 14556,7606 14561,7602 14561,7602 14566,7601 14565,7606 14565,7605 14570,7608 14568,7609 14571,7613 14572,7614 14572,7616 14574,7613 14573,7615 14570,7618 14570,7615 14574,7617 14575,7614 14578,7616 14582,7617 14584,7617 14584,7618 14589,7622 14590,7619 14592,7624 14593,7628 14596,7632 14601,7627 14601,7629 14603,7629 14603,7630 14608,7631 14611,7626 14611,7628 14611,7628 14616,7624 14617,7619 14618,7624 14618,7626 16618,10626 16620,10624 16620,10629 16619,10633 16624,10636 16624,10638 16624,10643 16624,7643 16625,7643 16630,7643 16625,7647 16629,7648 16628,7649 16633,7650 16633,7650 16634,7645 16635,7646 16632,7642 16635,7643 16635,7643 16630,7638 16634,7640 21634,7645 21633,7650 21634,7651 21639,7652 21641,7655 21636,7651 21640,7654 21635,7655 21637,7660 21640,7656 21643,7661 21644,7663 21645,7667 21642,7669 21644,7674 21645,7674 21649,7677 21647,7672 22647,7672 22650,7667 22650,7667 22647,7671 22646,7672 22648,7673 22651,11673 22653,11672 22654,11670 22652,11671 22656,11673 22656,11674 22654,11678 22658,11678 22656,11675 22659,11680 22659,11685 22664,11687 22659,11687 22664,11687 22664,11692 22669,11696 22673,11701 22678,11696 22683,11696 22687,11691 22688,11695 22683,11691 22688,11696 22691,11695 22691,11700 22695,11702 22693,11705 22696,11710 22699,15710 22700,15712 22704,15707 22708,15712 22708,15715 22708,15720 22709,15725 22712,15723 22714,15724 22719,15727 22718,15727 22718,15731 22713,15730 22715,15734 22717,18734 22722,18729 22724,18725 22728,18729 22732,18733 22734,18736 22730,18740 22733,18740 22735,18742 22731,18741 22732,18744 22736,18749 22735,18754 22739,18754 22741,18756 22745,18758 22746,18760 22750,18764 22751,18764 22753,18764 22754,18767 22750,18767 22753,18767 22756,18772 22761,18777 22757,22777 22757,22780 22760,22776 22758,22776 22760,22772 22760,22775 22760,22777 22762,22774 22759,22775 22764,22772 22764,22767 22766,22768 22771,22771 22771,9589 10527,9593 10528,9598 10533,9600 10534,9597 10534,11597 10535,11602 10539,11603 10544,11598 10543,11601 10543,11605 10544,11609 10545,11611 10542,11615 10540,11615 10542,11616 10544,11619 10544,11621 10544,11623 10542,11619 10544,11620 10549,11616 10549,11618 10550,11619 10552,11622 10555,11622 10556,11623 10556,11621 10556,11625 10561,11625 10564,11625 10566,11628 10563,11630 10567,11628 10572,11626 10575,11628 10575,11632 11575,11636 11576,11638 11577,11638 11578,11638 11581,11639 11579,11643 11574,11646 11573,11650 11574,11647 11579,11648 11580,11653 11581,9571 9513,9571 9516,9571 9516,9574 9521,9572 9525,9573 9528,9573 9529,9578 9531,9583 9526,9581 9531,9576 9535,9578 9533,9583 9535,9583 9539,9587 9544,9590 14544,9595 14544,9598 14545,6598 14549,6598 14551,6599 14552,11599 14556,11602 14558,11598 14558,11598 14561,11602 14565,11603 14565,11603 14564,11603 14568,11604 14573,11605 14568,11607 14568,11607 14570,11607 14572,11607 14567,11611 14572,11611 14571,11607 14571,11609 14569,11605 14569,11606 14570,11606 14573,11607 14577,11610 14578,11609 16578,11609 16582,11607 16579,11605 16581,11606 16576,11605 11576,11608 11578,11610 11583,13610 11583,13614 11578,13616 11582,13617 11587,13617 11583,13621 11585,13626 11589,13621 11589,13621 11591,15621 11591,15625 11591,15630 11595,15631 11596,15634 11598,15638 11603,15642 11608,15643 11612,15642 11614,15646 16614,15648 16610,15648 16614,15648 16614,15647 16614,15652 16611,15654 16616,15655 16611,15651 16612,15655 16615,15659 16617,18659 16616,18660 16611,18660 16616,18664 16621,18668 16626,9673 12604,9674 12605,9676 12605,9679 12605,9682 12606,9680 12606,9680 12609,9681 12612,9684 12616,9688 12620,9691 12624,9686 12621,9686 12625,9686 12630,9684 12634,9686 12634,9687 12639,9686 12637,9683 12634,9685 12632,9689 12632,9689 12629,9692 12629,9692 12632,9695 12636,9693 12641,9692 12645,9692 16645,9694 16646,9698 16650,9698 16651,9693 16651,9693 16652,9693 16655,9692 16652,9693 16655,9689 16658,9689 16658,9692 16661,9696 16665,9698 14665,9701 14668,9702 14664,9703 14663,9702 14667,9707 14667,9711 14672,9716 14673,9719 14677,11719 14673,11720 14674,11721 14672,11725 14672,11729 14667,10729 18667,10732 18667,10727 18669,10730 18665,10732 18670,10737 18665,10737 18670,10742 18674,9742 18674,9741 18675,9742 18676,9746 18678,9751 18677,11751 18679,11751 18684,11753 18687,11757 18692,11757 18690,11761 18691,11761 18692,11766 18697,11769 18701,11771 18696,11774 18697,11774 18701,8613 10517,8611 10522,8611 10522,8616 10521,8619 10523,8622 10521,8623 10518,8623 10518,8624 10518,8624 10521,8629 10523,8633 10518,8635 10514,8640 10514,8642 10514,8646 10514,8647 10517,8644 13517,8649 13518,8653 13522,12653 13522,12653 13526,12657 18526,12653 18527,12657 18532,12660 18535,12656 18537,12660 18539,12658 18537,13658 18541,13657 18545,13657 18547,13660 18551,13665 18554,13665 18556,13665 18559,13665 18556,13668 18560,13672 18564,13672 18566,13676 18568,13676 18568,16676 18568,16681 18568,16678 18568,16682 18573,16681 18577,16686 18575,16686 18571,16686 18576,16684 18578,16684 18578,16681 18581,16684 18584,16683 18586,16687 18581,16682 18583,16677 18582,16676 18583,16681 18585,16679 14585,16677 14590,16682 14591,16686 14587,16691 14587,16696 14585,16696 14583,16697 14587,16702 14589,16704 14594,16699 14594,16704 14594,16704 14599,16705 14604,16708 14608,16713 15608,16717 15613,16721 15618,16721 15623,16724 15628,19724 15630,19726 15627,19729 15628,19725 15626,19720 15631,19724 15635,19728 15634,19729 15632,19730 15630,19733 15633,19734 15634,19736 15636,19741 15634,19739 15634,19744 15634,19749 15630,21749 15633,21747 15637,21749 15641,21749 15641,21745 15645,21748 15650,21749 15655,21751 15660,21753 15660,21755 15656,21752 15658,21751 15658,21753 15658,21754 15661,21754 15665,21754 15667,21757 15668,21753 16668,21753 16670,21757 16673,21759 16670,21756 16670,21760 16673,21757 16676,21761 16680,21765 16685,21768 16686,21769 16690,21769 16688,21769 16686,21766 16686,21768 16688,21773 16687,21778 16690,21781 16690,21780 16694,21780 16693,24780 16695,24777 16700,24782 16702,24787 16701,24787 16697,24787 16700,24792 16704,24787 16701,24788 16701,24789 16706,24792 16706,24797 16706,24800 16710,24805 16711,24805 16715,24810 16710,24809 16714,24813 16717,24817 16718,24817 16720,24819 16722,24815 16725,24812 16727,24811 16727,24814 16730,24819 16726,24821 16729,24826 16731,24830 16736,23830 16741,23826 16746,23827 16747,23829 16749,23833 16752,23835 11752,27835 11757,27837 11756,27834 11756,27835 11757,27838 11759,27833 11763,27834 11766,27839 11770,27844 11770,27849 11772,27849 11773,27849 11773,27854 11777,7581 10530,7582 10533,7581 10529,7583 10530,7584 10529,7584 10533,7582 10535,7586 10535,7589 10530,7592 10526,7592 10529,7589 10525,7592 10528,7596 10524,7600 10529,7602 10530,7599 10530,7594 10531,7598 10526,7601 10531,7605 10535,7609 10539,7612 10544,7610 10544,7612 10540,7608 10541,7610 15541,7613 15546,7617 15548,7618 15547,7620 15544,7620 15546,7621 15547,7624 15551,7628 15554,7631 15558,7631 15553,7636 15556,7637 15558,7637 15554,7641 15556,7644 15556,7648 15559,7651 15560,7647 15563,7650 15564,7650 15559,7652 15561,7650 15562,7651 15562,7651 15567,7655 15568,7653 15569,2653 15573,2657 15577,2662 15579,2663 15582,2663 15587,2665 15589,2669 15589,2669 15587,2673 15591,2673 15595,2677 15597,2677 15599,2680 15601,2683 15606,2687 15606,2683 15609,2688 15606,2692 15607,2693 15607,2698 15610,2698 15611,7698 15613,7702 15616,7704 15618,7699 19618,7703 19620,7698 19624,7698 19624,7701 19627,7699 19628,7704 19624,7708 19622,7712 19617,7714 19615,7710 19612,7715 20612,3715 24612,3720 28612,3724 28610,3727 28610,3728 28608,3725 28603,3729 28605,3733 28604,3734 28603,3737 32603,3739 32606,3740 32609,3739 32613,3738 32613,3735 32615,3739 31615,3739 31610,3743 31606,6743 31601,6743 31603,8743 31601,8743 31605,8748 35605,8748 35610,8752 35615,8751 35615,8752 35620,8755 35620,8760 35620,8765 35624,8760 35627,8764 35626,8761 35631,8763 35635,8767 35636,8767 35632,8767 35635,8771 35630,8775 35631,8778 35632,8775 35632,3775 35633,3775 35637,3774 35639,3772 35641,8772 35645,8772 35645,8773 35648,8768 35651,8764 35651,8769 40651,8764 40653,8767 40653,8770 40654,8771 40657,8775 40658,8777 40663,8779 40666,8783 40670,8783 40674,8787 40675,8789 40670,8789 40674,8792 40672,8795 40675,8796 40672,8800 40676,8800 40676,8800 40679,498 7392,503 7390,504 7390,507 7395,509 7395,509 7397,514 7400,6529 9451,6529 9451,6524 9451,6527 9452,6527 11452,6527 11456,6528 11457,6529 11458,6531 11461,6535 11463,6535 11467,6530 11472,6532 11472,10532 11473,10533 11473,10537 11476,10540 11473,10540 11473,10544 11474,10544 11474,10544 11472,10544 11470,10539 11475,10539 11478,10542 12478,10545 12483,10546 12488,10547 12492,10552 12493,10552 12490,10556 12490,10558 12493,10560 12495,10555 12496,10557 12491,10556 12491,10556 12490,10553 12494,10558 12497,10559 12502,10564 12505,21753 16670,21754 16672,26754 16674,26757 16676,26761 16679,26756 16682,26761 16683,26763 16684,26766 16689,26771 16692,28771 16687,28774 16687,28776 16692,28777 16695,28781 16695,28785 16690,28789 16691,28786 16688,28789 16690,28792 16688,28793 16687,28795 16690,28793 16695,28791 16692,28793 16695,28790 16696,28790 16700,28792 16700,28793 16701,28794 16701,28794 13701,28796 12701,28799 12701,28799 12706,28800 12701,28801 12705,28803 12708,28807 12708,28808 15708,28810 15712,28811 15709,28813 15709,28813 11709,28817 11709,7618 14589,7620 14587,7625 14589,7626 14584,7631 14586,7632 14588,7637 14589,7642 14592,536 1374,540 5374,542 5378,542 5383,-2458 5388,-2457 5388,-2455 5393,-2452 5393,-2452 5391,-2448 5389,-2448 5390,-2449 5393,-2445 5388,-2441 5392,-2436 5397,-2432 5397,-2430 5397,-3430 5399,-3429 5404,-3430 5405,-3427 5407,-3422 5409,-3421 5411,-3421 5411,-3421 5407,-3417 5410,-3418 5410,-3422 2410,-3417 2414,-3416 2418,-3412 3418,-3407 3422,-3407 3426,-3406 3429,-3404 3433,-3403 3435,-3398 3439,-2398 3441,-2399 3442,-2397 3446,-2395 3447,-2394 3443,-2398 3445,-2398 3443,-2393 3446,-2391 3450,-2387 3451,-2390 3455,-2385 3457,-2383 3457,-2382 3462,-2379 3467,-2384 3467,-2383 3467,-2381 3470,-2383 3471,-2385 3474,-2383 3479,-2383 3481,-2383 3479,-2382 3484,-2380 3489,-2385 3487,-2384 3490,-2384 3490,-2383 3492,-2383 3495,-2378 3499,-2377 3495,-2378 3498,-2375 3500,-2375 3505,-2373 3503,-2373 3505,-2374 3505,-2374 3506,-2369 3511,-2364 3516,-2361 3516,-2356 3520,-2354 3524,-2353 3529,-2356 3533,-2351 3538,-2354 3542,-2349 3545,-2349 3547,-2347 3550,-2352 3547,-2355 3551,-2353 3556,-2353 3556,-2349 3554,-2352 3553,-2351 3558,-2348 3554,-2346 3556,-2344 3559,-2347 -441,-2352 -437,-2348 -440,-2345 -435,-2343 -440,-2343 -436,-2339 -432,-2339 -431,-2337 -429,-2337 -434,-2341 -431,-2345 -427,-2349 -426,-2350 -422,-2348 -418,-2344 -415,-2349 -415,-2345 -413,-2345 3587,-2344 3583,-2344 3580,-2339 5580,-2335 5583,-2336 5582,-2331 5587,-2330 5582,-2329 5582,-2337 -434,-2333 -433,-2330 -2433,-2327 -2435,-2331 -2433,-2328 -2433,-2328 -2429,-2325 -2429,-2320 -2428,2680 -2428,2684 -2424,2685 576,2685 579,2682 582,2684 584,2679 584,2674 585,2671 587,2673 583,2673 581,2677 581,2680 580,2681 584,2684 580,2681 582,2685 585,2690 583,690 587,691 584,694 584,694 585,692 583,694 584,693 588,28793 16695,28791 16694,28793 16698,28797 16703,28798 16707,28797 16712,28797 16715,28795 16717,28799 16712,28795 16710,28800 16707,28805 16705,28807 16702,28802 16705,28803 16701,28805 16703,28803 16698,28803 16700,28805 16704,28809 16699,28812 16702,28808 16703,28813 16700,28817 16703,28819 16704,28816 16709,28812 16708,28809 16708,28809 16707,28814 16709,28812 16712,28807 16717,28807 16717,28809 16717,28807 16717,28811 16717,28814 16722,28815 16719,28819 16719,28819 16724,28819 16726,28814 16727,28814 16722,28817 16726,28820 16730,28821 16730,28816 16733,28821 16737,28823 16741,28818 16741,28822 16744,28819 16747,28815 16748,31815 16748,31819 16748,31817 16746,31818 16749,31819 16747,31817 16748,31820 16746,31816 18746,31820 18746,31815 18742,31815 18744,31818 18740,31819 18735,31824 18735,31829 18738,31834 18742,31837 18745,31837 18748,31842 18749,31847 18749,31851 18749,31854 18750,31854 18749,31852 18752,31847 18754,31850 18758,31855 22758,31857 22760,31861 22759,31859 22761,31856 22764,31856 22768,31856 22768,31856 22770,31858 22765,31863 22766,31862 22770,31860 22772,31856 22776,31861 22775,31866 22780,31870 22780,31871 22782,31871 22779,31866 22781,31870 22781,31870 22786,31873 22786,31877 25786,31877 25791,31877 25796,31880 25800,31882 25804,31885 25809,31885 25812,31886 25815,31888 25815,31890 25820,31890 25821,31889 25821,31885 25817,31889 25814,31887 25815,31890 25819,31892 25820,31896 25816,31897 25817,31902 25818,31904 25823,31908 25825,31910 25828,31914 25825,31909 25825,31912 25829,31907 25829,31911 25834,31912 25838,31911 25837,31914 25837,31918 25836,31918 25831,31914 25831,31912 25826,32912 25830,32915 25833,32911 26833,32912 26834,32915 26839,32913 26839,32915 26835,32917 26837,32922 26832,32924 26834,32926 26835,32921 26840,33921 26835,33923 26836,33927 26837,33925 26833,33926 26836,33931 26837,33929 26837,33932 26842,33934 26842,33935 26847,33940 26850,33935 26848,33931 28848,33929 28852,33925 28849,33927 28849,33929 28852,33927 28850,33929 28854,33931 28854,33935 28854,28935 28854,28935 28849,28938 28854,28942 28855,28944 28860,28942 28861,28941 28863,28942 28860,28942 28856,28947 28858,28951 28857,28953 28861,28953 28860,28956 28863,28957 31863,28957 31867,28960 31869,28962 31869,28964 31872,28965 31877,28969 31881,28965 31882,28967 31886,28969 31888,28964 31892,28960 31895,28961 31893,28966 31896,28967 31901,28963 31903,28961 31908,28964 31908,28964 31904,28960 31904,28961 31905,28960 31905,28965 31906,28966 31909,28967 28909,28967 28909,28970 28910,28966 28914,28965 28918,28966 28918,9626 21498,9621 21498,9622 21501,9618 21504,9621 21505,9624 24505,9622 24505,9625 24508,9626 24511,9631 24516,7631 24512,7631 24507,7632 24506,7635 24504,7638 24507,7636 24502,7639 24507,7644 24508,7648 24512,7648 24512,7650 24512,7651 24514,7655 24517,7659 27517,10659 27520,10661 27524,10664 27523,10666 27528,10666 27523,10665 27524,10667 27529,9667 27534,9670 27534,9668 27534,9667 27533,9670 27533,9670 27538,9670 27540,9675 27538,9679 27538,9683 27543,9680 27538,9682 27540,9685 27545,9683 27546,9683 27547,9678 27548,9680 27548,9684 27549,9685 27545,9690 27546,9690 27548,9692 27550,9697 27553,9698 27557,9702 27553,9702 27548,9702 27549,9706 27551,9701 27551,9701 27551,9697 27546,9696 27549,9697 27553,9699 27557,9698 27558,9696 27560,9701 27556,9705 27552,32912 25830,32913 25829,32916 25830,36916 25828,36916 25831,36916 25835,39916 25837,39911 25842,39913 30842,39910 30844,39910 30845,39908 30848,39911 30852,39913 30856,39918 30857,493 10403,498 10406,498 10406,493 10406,497 10404,493 10409,493 10414,497 10416,496 10418,499 10423,500 10427,505 10429,510 10429,515 10431,515 10433,515 10433,512 10434,5666 500,5666 500,5668 505,5669 509,8669 2509,9669 2505,9672 2505,9675 2509,9670 2510,14670 2513,14675 2512,14671 2512,14673 2513,14671 2517,14674 2515,14679 2520,14676 2524,17676 2519,17677 2520,17678 2523,10558 12497,13558 12492,13558 12490,13560 12494,13561 12499,13563 12503,13568 12508,13572 12512,13572 15512,13573 15515,13569 15518,13566 15522,13571 15522,13572 15522,13575 15527,13576 15532,13573 15534,13575 15535,13572 15538,13574 15541,13571 15546,13571 15541,13568 15541,11605 16581,11608 16576,11613 16575,11612 16577,7612 16581,7614 16582,7617 16587,7616 16591,7617 19591,7619 19595,7620 19598,7624 19598,7625 19599,7624 19595,7625 14595,7627 14597,7626 14599,7628 14604,7628 14605,7633 14610,7632 14615,7632 14620,7631 14621,7631 14621,7631 14621,7627 14621,7632 15621,7635 15626,7636 15627,7637 15631,7633 15636,7635 15636,7631 15631,7631 15631,7634 18631,7630 18632,7629 18633,7632 18630,7633 18631,7638 18632,7638 18632,7638 18633,7633 18638,7637 18642,7639 18639,7639 18641,7643 18643,7647 20643,7648 20647,7643 20643,7648 20640,7649 20645,7650 20641,7650 20642,7650 20645,5650 20646,5654 20646,5654 20643,5651 20645,5648 20645,5653 20650,5653 20650,5654 20653,5655 20655,5659 20660,5664 20664,5668 20669,5668 20672,5670 20677,5675 20677,5678 20677,5680 20678,5680 20680,5679 20680,5682 20683,5681 20681,5682 20682,5685 20682,5685 20687,5685 20691,5685 20694,5685 20696,5685 20698,5686 20697,5688 20698,5688 20697,5688 20696,5689 20696,5694 20701,5695 20700,5697 20704,5697 20708,5694 20708,5694 20708,5694 20713,5691 20713,1691 20713,1689 23713,1694 23714,1696 23714,593 1402,593 1406,595 1410,598 1413,603 1418,602 1422,601 1422,602 1418,606 1423,607 1424,603 1429,605 1433,609 1429,614 1429,610 1429,610 1429,614 1429,610 3429,612 3425,616 3429,620 3429,624 3432,628 3436,628 3436,628 3441,632 3441,628 3445,626 445,631 449,631 453,630 455,626 -1545,630 -1542,630 -1538,630 -1542,630 -1541,633 -1536,631 -1534,626 -1536,630 -1535,630 -1532,635 1468,637 1471,642 1476,642 1477,642 1478,643 1481,643 4481,638 7481,638 7483,643 7486,645 7484,9668 27534,9669 27537,9671 27538,9672 27539,9673 27544,9674 27544,9673 27546,9671 27546,9667 27542,9666 27546,9667 27543,9672 27544,9675 27548,9676 27546,9676 27541,9681 27538,9681 27540,9686 27544,9686 27547,9690 27544,9687 27545,9691 27549,9693 24549,9694 24546,9692 24548,9697 24553,9694 24555,9695 24560,9696 24555,9700 24551,9704 24547,9703 24549,9705 24551,9705 24554,9705 24554,9705 24557,9707 24561,9706 24557,9711 24562,9715 24566,9720 24568,9717 24569,9720 24573,9725 24573,9726 24575,9729 24577,9734 24575,9735 24578,9735 24582,9731 24583,9726 24586,9727 24586,9728 24589,9733 24592,9734 28592,9734 28592,13734 28594,13737 28595,13740 28595,13744 28598,13739 28600,13742 28601,13744 28597,13742 28602,13744 28602,13744 28598,13745 28603,13744 28608,13749 28609,13749 28609,13754 28606,13758 28610,13759 28609,13760 23609,13761 23611,13763 23616,13768 23618,13769 24618,13768 24617,13773 24613,13773 24613,13778 24617,13776 24620,13778 24619,13779 24620,13781 24625,13785 24625,13785 24622,16785 24617,16786 24617,16790 24617,16794 24622,16795 24626,16798 24630,16796 24631,16796 24636,16799 24638,16804 24637,16808 24637,16809 24632,16814 24627,16809 24627,16814 24632,16818 24628,16816 24627,16820 24622,16820 24627,16824 24632,16823 24637,16824 24642,16826 24644,16824 24648,16826 24648,16826 24652,16829 24652,16829 24656,16828 24651,16832 24653,16827 24648,16828 24645,16828 24647,16831 24645,16832 24649,16835 24653,16839 24656,16839 24654,16840 24659,16841 24658,16845 27658,16845 27658,16840 27659,16837 27659,19837 27654,19841 27654,19836 27657,19839 27659,19839 32659,19839 32659,19839 32664,19840 32668,19842 32671,19847 32671,19851 32673,19856 29673,19856 29670,19858 29675,19860 29676,19865 29677,19868 29677,19868 29674,19872 29675,19872 29674,19874 29669,19876 29667,19876 29670,19878 29675,19883 29675,19883 29675,19879 29676,19879 29673,19880 29674,19880 29679,19876 29676,19876 29677,19879 29673,19880 29677,19879 29678,19881 29681,19882 29683,19882 29681,19887 29681,19888 29681,19891 29684,19896 29688,14896 29689,14896 29693,14899 30693,14903 30698,14908 25698,14910 25698,14911 25698,14914 25699,14910 25695,14910 25696,14914 25697,14917 25692,14921 27692,14925 28692,14920 28694,14924 28698,14924 28699,11924 28697,11928 28692,11932 28687,11937 28691,11941 28694,11940 28699,11944 28701,11940 28701,11940 28701,11943 28699,11945 28703,11947 28706,11951 28711,11953 28714,11956 28709,11961 28708,11966 28703,11969 28705,11967 28709,11967 28714,11964 28719,11969 28719,14969 28720,14970 28717,14973 28714,14976 32714,14976 32711,14977 32711,14980 32709,14984 32709,14987 32711,14988 32715,14993 32719,14994 34719,14994 34721,12994 34724,12994 34726,12998 34727,13000 34729,13002 34729,17002 34732,16998 34736,16999 34735,17000 34740,16999 32740,17001 32745,17001 32741,17005 32746,17006 32751,17010 33751,17008 33754,17013 33758,17013 33760,17010 33759,17010 33759,17009 33762,17013 33766,17017 33766,17020 33762,17015 33766,17019 33762,17022 33762,17017 33766,17014 33762,17018 33767,17019 33764,17021 33764,17023 33764,17019 33764,17022 33760,17024 33758,17029 33759,17033 33760,17028 33764,17023 33764,17028 33769,17031 33774,17034 33778,17029 33780,17034 33783,17030 33785,17032 33781,17035 33776,17038 33775,17040 33775,17041 33778,17045 33778,17049 31778,17050 31782,17052 31780,17054 31781,17051 31783,17053 31783,17049 31779,17050 31779,21050 31782,21053 31783,21054 31778,21056 31781,22056 31786,22052 31783,22050 31786,31882 25804,31887 25800,31887 25801,9610 10543,9612 10548,9614 10553,9614 10558,9614 10553,9616 10556,9620 8556,9623 8554,9628 8559,9630 8564,9630 8568,9628 8566,9628 8570,9630 8574,9634 8574,9634 8570,9635 8569,9635 8566,9632 8568,9637 8571,9638 8572,9639 8568,9643 8568,9646 8572,9646 8570,9651 8575,9650 8578,9653 8581,9654 8583,9653 8586,9655 13586,7655 13586,7660 13591,4660 13590,4663 13590,4666 13592,4671 13597,4673 13596,4678 13599,4682 13600,4685 13601,4683 13603,4685 18603,4683 18604,4685 18606,4690 18608,4690 23608,4693 23606,4693 23606,4697 23603,4702 23608,4704 23613,4704 23615,4709 23614,4708 23615,4711 23619,4711 23619,4713 23622,4713 23626,4711 23630,4715 23631,4712 23635,4714 23640,4718 23640,4719 23642,4721 23640,4721 23639,4726 23644,4730 23648,4725 27648,4723 27648,4727 27651,4731 27654,4733 27656,4737 27657,4742 27660,4745 27661,4750 27660,4751 27664,4754 27659,4759 27659,4755 27664,4757 27665,4752 27665,4754 27667,4750 27670,4750 27674,4753 27678,4753 27682,4758 27682,4758 27683,4760 27679,4762 27679,4764 27682,4769 27678,4773 32678,4773 32675,4771 32675,4767 32679,4772 32684,4775 32684,4778 32684,4775 35684,4775 35679,4775 35680,4779 35683,4779 35683,4784 35683,4789 35680,4790 35685,4791 35687,4791 35688,4792 35683,4792 35688,4792 35688,4797 35690,4799 35693,4803 35692,4803 35694,4803 35695,4808 35695,4812 35698,4816 35702,4815 35706,4811 35711,4811 35708,4813 35710,4813 35710,4814 35714,4815 35718,4820 35722,4816 35719,4819 35719,4824 35722,4826 35719,4830 35724,4832 35728,4835 35725,4840 35726,4840 35729,4840 35733,4840 35733,4841 35732,4844 35728,4848 35730,4849 35733,4849 35734,4849 35736,4847 35737,4847 35738,4843 34738,4846 34739,9846 37739,9850 37743,9853 37745,9857 37749,9852 37752,9852 37751,9852 37748,9852 37751,9851 37753,9848 37756,9843 37759,9841 37759,9840 37764,9837 37767,9842 37764,9845 37764,9840 37765,9842 37770,9842 37774,9846 37775,9851 37778,9854 37783,9854 37779,8854 37783,8851 37787,8856 37791,8859 37794,8860 37793,8855 37794,8857 37798,8859 37797,8860 37797,8860 37802,8861 37804,8863 37804,8863 37805,8865 37808,8866 37811,8866 37811,8862 37811,8859 37811,8864 37816,8864 37816,8867 37817,8872 37819,8867 37822,8871 37819,8875 37817,8876 37819,8876 37822,8871 37818,8873 37823,8877 37822,8879 37820,8880 37824,8881 37826,8884 37825,8887 37827,8884 37829,6637 6475,6637 6471,6635 6469,6640 6474,6641 6478,11641 6476,11644 6471,11639 6467,11638 6464,11642 6464,11646 6459,11647 6462,550 1394,551 1395,552 1399,548 1401,552 1400,547 1405,551 1406,556 1407,558 1410,558 1411,560 1413,565 1418,561 1423,-2378 3499,-2378 3502,-2378 3504,-2374 3501,-2371 3505,-2367 3507,4607 5468,4611 5471,4614 5472,4619 8472,4621 8473,4624 8477,4629 8474,4633 8476,4635 8478,4638 8475,4640 3475,4642 3479,4645 5479,4645 5482,4644 5486,4641 5486,4639 5488,4635 5491,4631 5488,8631 5485,8635 4485,8630 4488,8628 4488,8630 4486,8635 7486,8640 7482,8641 8482,8642 8483,8643 8483,8643 8483,8640 8488,8641 8489,8638 8487,8641 8491,500 5370,502 5368,504 5369,504 5371,506 5375,505 5376,509 5381,509 5381,504 5380,505 5375,509 5379,513 5382,513 5382,515 5382,517 5379,3517 5381,3519 5381,3520 5384,3523 5387,3521 5388,3521 5390,3520 5385,3519 5380,4519 5383,4524 5387,4523 5392,4525 5389,4530 5384,4525 5384,4526 5386,4531 5390,4531 5387,4530 5389,4534 5388,4538 5391,4541 5386,4542 5390,7542 5393,7547 5398,7548 5399,7547 5397,7543 5401,7544 5405,7545 5403,7545 5408,7546 5409,7550 5414,3550 5416,3550 5417,3548 5417,3543 5417,3543 5412,3548 5412,548 5412,552 10412,555 10414,557 10410,560 10411,563 10416,2563 10418,2564 10422,2559 10426,2555 10423,2560 10421,2563 10418,2565 10419,2569 10421,2573 10421,2573 12421,2572 12425,2571 12428,2576 12428,2581 12433,2583 12435,2581 12434,2576 12439,2581 12442,2581 12443,2581 12438,2579 12442,2575 12447,2573 12445,2577 12445,2582 12441,2587 12436,2589 16436,2590 16433,2586 16437,2586 16439,2588 16434,2589 16436,2590 16433,2593 16434,2590 16432,2593 16432,2590 16437,2594 16439,2599 16442,2600 16447,2605 16450,2605 16454,2604 16451,2608 16447,2612 16442,2613 16446,2618 16451,2623 16455,2626 16457,2629 16457,2630 16460,2630 16460,2632 16464,2636 16464,2639 16467,2638 16471,2643 16476,2643 16479,2645 16484,2645 16481,2649 16482,2652 16480,2648 16476,2649 16476,2649 16481,2644 16485,6644 16488,6647 16488,6647 20488,6647 20493,6652 20497,6656 20498,6661 20503,6656 20507,6656 20511,6656 20512,7540 11429,9674 12603,11674 12599,11675 12594,11674 12599,11678 12601,11681 12603,13681 12603,13684 12603,13684 12603,13686 12603,13689 12603,13693 12605,13695 12601,13695 12603,13697 12602,13701 15602,13703 15603,13704 15601,13706 15597,13711 15598,13711 15603,13715 15603,13714 15600,13713 15598,13717 15603,13722 15605,13726 15607,13727 15612,13727 15612,13731 15614,13733 15616,13728 15616,13730 15617,13734 15614,13736 15617,13739 15614,13739 15617,13739 15617,13741 15619,13746 15624,13742 15624,13742 15626,13746 15626,13750 15623,13749 15621,13754 15626,12754 15627,12750 15627,12753 15624,12754 15624,12758 15629,12759 15624,12761 15627,12764 15632,12765 15637,12768 15635,12772 15640,12769 15636,12772 15634,12773 15634,12772 15634,12775 15635,12772 15640,12774 15641,12777 15641,12779 15646,12780 15642,12776 15640,12780 15640,12779 15638,12784 15642,12789 15643,12787 15644,12788 15649,12791 15649,12789 15648,12787 15648,12791 15650,7791 15655,7795 15655,7798 15658,7802 15659,7803 15655,7804 15654,2804 15652,2808 15648,2806 15652,2805 15652,2806 15657,2801 15657,2801 15658,2801 15655,2803 15654,2808 15658,2804 15653,2803 15656,2807 15656,2812 15658,2814 15657,2818 15658,2818 15660,2822 18660,2825 18664,2829 18668,2833 18663,2832 18668,2832 18668,2834 18671,2836 18672,2839 18677,2843 18680,2848 18675,2851 18677,2854 18681,2859 18685,2864 18690,2868 18694,2873 21694,2877 21694,2879 21693,2881 21693,2882 21696,2885 21697,2883 21701,2887 21702,2887 21702,2887 21697,6887 21701,6892 21702,6888 21707,3576 10502,3578 10506,3582 10508,3585 10508,3590 10512,3592 11512,3593 11514,3598 11514,3602 11514,3599 11515,3599 11516,3601 11520,3601 11519,3599 11522,3599 11519,3601 11517,3600 11515,3600 11517,3596 11519,3600 11521,3603 11525,3606 11528,3607 11532,3608 11536,3606 11541,3605 11541,3605 11542,3609 11537,3613 11538,3609 11538,3605 11538,3605 11542,3609 11546,3613 11541,3613 11546,3612 11547,3611 11551,3614 11548,3610 11550,3611 11555,3611 11559,3615 11559,3618 11563,3621 11564,3618 11567,3620 6567,3624 6567,3627 6570,3623 6572,3619 6576,3616 6577,3611 6578,3612 6579,3609 6578,3610 6582,3613 6586,3614 6586,3619 6584,3622 8584,3617 8582,3622 8587,3622 8592,3624 8592,3627 8587,3628 13587,3629 13589,3631 13594,3636 13589,3636 13590,3637 13587,3637 13591,3641 13596,3641 13597,3645 13602,3640 13601,3640 13602,3640 13606,3644 13606,3644 13609,3639 13612,3639 13612,3644 13610,3649 13615,3654 13618,3659 13618,3662 13618,3666 13620,3661 13625,3660 13630,3660 13634,3662 13635,3659 13637,3663 13638,3666 13638,3669 13635,6669 13635,6671 13631,6672 13631,6669 13631,6667 13629,6663 13629,6663 13627,6663 13627,6667 13630,6671 13630,6671 13630,6673 15630,6674 15631,6679 15632,6682 15629,6685 15629,6686 15631,6691 15633,11691 15630,11689 15629,11693 15632,11693 15627,11698 15627,11695 15626,11697 15629,14697 15628,14701 15631,14705 15632,14700 15632,17700 15635,17705 15640,17700 15642,17701 15638,17703 15640,17708 15641,17712 16641,17716 21641,17716 21645,17721 21645,17720 21650,17720 21653,17720 21653,17722 21653,17718 21654,17721 21657,17723 21657,17724 21657,17720 21659,17723 21663,17725 21660,17725 21661,17723 21661,17727 21665,17727 21665,17731 21669,17729 21671,17731 21671,17727 21671,17727 21667,17726 21670,17722 21671,17727 21671,17732 21671,17737 21671,17739 21674,17741 21676,17746 21680,17750 21683,17745 21681,17745 21678,17750 21679,17753 21681,17758 21677,17760 21682,17764 21681,17763 21681,17763 21684,17766 21680,17768 21684,17764 21688,17769 21691,17771 21695,17773 21691,17776 21690,17777 21695,17781 21695,17784 21695,17784 21695,17786 21699,14786 21695,14786 21692,14786 21690,14788 21691,14788 21696,14793 21698,14798 21701,14796 21699,14800 21702,14796 21704,14800 26704,14805 26699,14810 26700,14810 26698,14814 24698,14814 24702,14814 24705,14815 24700,14819 24703,14822 24705,14826 24710,14831 24709,14833 28709,14835 28710,14838 28708,14839 28708,14842 28709,14847 28713,14843 28714,14847 28712,14850 28717,14847 28713,14851 28711,14854 28706,14853 28702,14848 28697,14852 28702,14857 28706,14857 28710,14858 27710,14861 27711,14864 27714,17864 27715,17864 27716,17864 27713,17869 27715,17870 27719,17871 27720,17869 27720,17872 27724,17871 27729,17873 27729,17875 27733,17877 28733,17881 28730,17881 28727,17884 28728,17886 28733,17886 28734,17891 28735,19891 28735,19892 28731,19896 28732,19891 28736,19895 28740,19898 28737,22898 28738,22898 26738,22898 26733,22899 26738,22900 26738,22901 26742,22901 26744,22896 26744,22899 26746,22901 26751,22899 26754,22904 26756,22906 26761,22909 26761,22914 26766,22915 26765,22918 26768,22913 26768,22915 26763,22920 26763,22917 26764,22921 26765,22922 26769,22918 26764,22920 26765,22919 26768,26919 26771,26922 26774,26927 26779,26924 26778,26924 26780,26920 26782,26924 26787,26922 26788,26925 26792,26927 26787,26928 26790,26933 26794,26933 26795,26936 26795,26939 26800,26939 26798,26936 26798,26939 26795,26937 26795,26937 26793,26937 28793,26939 28791,26940 28793,26937 28796,26937 28797,26935 28798,26930 28798,26934 28802,26934 28807,26936 28811,26940 28812,26937 28815,26939 28814,26934 28812,26938 28817,26942 28822,26943 28822,26948 28822,26952 28824,26953 28824,26953 28829,26950 28834,26954 28839,26954 28839,26949 29839,21949 32839,21951 32838,21951 32843,21951 32844,21951 32849,21951 32854,21953 32854,24953 32852,24953 32851,24957 32853,24962 32854,24963 32849,24967 32847,24970 32849,24966 32849,24967 32852,24963 32856,24965 32860,24968 32861,24971 32860,24974 32860,24978 32863,24980 32859,24981 32864,24981 32868,24983 32866,24988 32866,24988 32869,24991 32874,24992 32878,24992 32881,24992 32877,24988 32880,24991 36880,24991 36883,24991 36885,24992 36889,24996 36894,24995 36894,24998 36894,24999 41894,25004 41899,25006 41900,25010 41905,25005 41909,25007 41912,25008 41916,25009 41919,25011 41917,25016 41919,25017 41916,25014 41919,25015 41919,25017 41919,25018 41924,25023 41927,25026 41928,25026 41929,25021 41926,25020 41926,25023 41928,25019 41933,25018 41932,638 7483,639 7484,640 7482,644 7484,646 7486,651 7486,554 1390,549 1391,547 1392,551 1397,3551 1394,3553 6394,3550 6399,3554 6399,3553 6403,3553 6400,3550 6403,3554 6398,3555 6402,3559 6403,3564 6405,3564 6410,3560 6412,3565 6412,3564 6407,3567 6407,3572 6410,3576 6412,3578 6413,3580 6414,11674 22654,11679 22654,11679 22654,11679 22656,11684 22658,11689 22661,11694 23661,11697 23658,11697 23661,11698 23664,11700 23667,11695 28667,11698 28671,11699 28672,11704 28675,12704 28671,12708 28669,12710 28673,12707 28678,12708 28678,12710 28677,12710 28677,12712 28675,12713 28679,12715 28676,12715 28680,12719 28681,12724 28678,12728 28673,12733 28676,12733 28673,12734 28673,12739 28677,12743 28679,12744 27679,12741 27680,12741 27680,12740 27682,12741 27678,12740 27680,7740 27684,7743 27686,7738 27683,7740 27683,7740 27686,7736 27690,7736 27693,7739 27691,7735 27686,7739 27686,7737 27686,7737 27688,7732 27689,7732 27689,7731 27684,7736 27689,7741 27692,7739 27697,7740 27702,7738 27703,7741 27706,7746 27704,2626 16457,2627 16460,2623 16461,2618 16461,2620 20461,2622 20457,2623 20457,2628 20457,2632 20462,2629 20462,2630 20462,2628 20457,2633 20460,2632 20460,2637 20460,2639 20457,2639 20457,2639 20461,2641 20460,2646 20460,2651 20461,2650 20461,2651 20464,2656 20460,2660 20463,2665 20464,2667 20464,2668 21464,2671 21468,2676 21471,2673 21476,2590 16437,2591 16434,2596 16436,4596 16438,4600 16439,4600 16439,4601 16439,4599 16435,4599 16440,4597 16441,4598 16446,4598 16447,4595 16445,4590 16447,4594 16447,4595 16447,4598 16447,4598 16449,4596 16451,4598 14451,4596 14456,4598 14457,4594 14452,4598 14457,5598 14457,5598 14458,2598 14463,2600 14463,2603 14464,2598 14465,2595 14470,2590 14467,2594 14470,2595 14471,2598 14473,2598 14473,2599 14473,1599 14474,1599 14472,1600 14467,1599 14470,1601 14468,1599 14463,1601 14461,1601 14461,1601 14466,1602 14468,1606 14473,1602 14473,1600 14475,1595 14478,1599 14479,1596 14479,1596 14484,1596 14488,1601 14489,1604 18489,1606 18492,1604 18492,1605 18496,1605 18496,1608 18501,1603 18498,1608 18500,1612 18497,1608 18492,1604 18494,1609 18497,1609 18499,1606 18499,1608 18501,1610 18503,1606 18499,1610 18500,1614 18501,1617 18497,1620 18498,1616 18501,1614 18496,1615 18500,1617 18497,1619 18498,1617 18501,1622 18506,1622 20506,1625 20506,1625 20509,1627 20513,1631 20514,1633 20519,1637 20520,1639 20525,1643 24525,1638 24520,1642 24520,1647 24525,1650 24529,1654 24530,1657 24533,1656 24538,1659 24542,1659 24545,1662 24550,1666 24551,1666 24552,1666 24557,1666 24562,1666 24565,1669 24568,1672 24569,1672 24569,1676 24566,1676 24570,1678 24565,1676 24567,1673 24567,1674 24572,1679 24577,1679 24578,1683 24581,1684 24586,1688 24590,1690 27590,1685 27594,1688 27594,1683 27594,1686 27597,1688 27600,1692 27599,1696 27600,1695 27604,1695 27609,1698 27610,1701 27610,1705 27609,1706 27605,1709 27600,1714 27600,1716 27602,1717 27601,1712 27597,1714 30597,1711 30600,1713 30600,1713 30604,1714 30604,1716 30602,1713 30605,1710 30606,1713 30609,1709 30607,1713 30604,1714 30609,1717 30609,1717 30613,1721 30615,2721 30620,2718 30623,4718 30628,4723 30624,4727 30619,4728 30618,4728 30615,4728 30619,4729 30618,4731 30622,4731 30625,4734 30625,4734 30630,4735 30627,4736 30631,4735 30636,4730 30641,4727 30641,4729 30646,4731 30650,4736 30651,4740 30648,4737 30648,4738 30647,4741 30649,5741 30646,5744 30648,5745 30651,10745 30651,13745 30653,13749 30651,13754 30652,13754 30657,13754 30657,13758 30653,13761 30656,13766 30655,13768 30659,13769 30662,13771 30659,13771 30661,13771 30665,13768 30670,13768 30667,13772 30670,13776 30672,13775 30672,13777 30675,13780 30679,13783 30677,13784 30678,13784 30674,13788 30674,13788 30678,13784 30678,13787 30683,13792 30683,13791 30679,13794 30679,13795 30682,13795 30686,13798 30691,13803 30692,13807 30694,13810 30694,13810 30692,13813 30694,13813 30689,13816 30689,13820 30689,13822 30692,13826 30696,13822 30701,13827 30704,13832 30707,13832 30707,13828 30707,13831 30712,13831 30709,13834 30706,12834 30707,12839 30703,12843 30707,12843 30703,12843 30706,12848 30710,12849 30715,12853 30713,12853 30716,12852 30718,12849 30721,12849 30719,12852 30719,12853 30714,12856 30712,12856 30714,12857 30719,12862 30720,12865 25720,12863 25723,12864 25724,12868 25729,12869 25731,12868 25736,12869 25739,12865 25737,12863 25739,12866 25743,12862 25747,12867 25747,12867 25748,12867 25748,12870 25748,12866 25748,12869 25749,12869 25751,12874 25754,12875 25758,12877 25761,12878 25763,21745 15645,21749 15645,21753 15646,21753 15648,21758 15652,21754 15654,21759 15654,21762 15658,21766 15663,21761 15663,21761 15665,21758 15666,21761 15668,21763 15666,21765 15662,21770 15666,21773 15671,12742 4678,12743 4682,12740 4687,12745 4692,12745 4688,12748 4689,12748 4692,12752 4696,12754 4697,12754 4700,12758 4703,12758 4703,12762 4704,12762 4709,12762 4711,12760 4713,12760 4717,12764 4713,12767 4712,12767 4712,12768 4715,12767 4720,12770 4716,12770 4712,2569 10421,2572 10423,2576 10424,2579 10428,2580 10423,2582 10424,2578 10422,2577 10426,2577 10428,2580 10433,2580 10433,2581 10432,2580 10435,2584 10435,2588 10439,2587 10444,2592 10445,2589 10446,2591 10447,2594 10446,2597 10445,2599 10440,2602 10443,2603 10443,2605 10444,2605 10449,2607 10449,2602 7449,2605 7449,2608 12449,2605 16449,2605 17449,2605 17450,2608 17454,2612 17459,2607 17459,2608 17456,2613 17457,2617 17459,6617 17462,6621 17467,6621 17468,6626 17464,6622 17465,6622 17465,6623 17469,6623 17466,6623 17467,6627 17466,6623 17466,6626 17463,6622 17468,6625 17464,6627 17468,6625 17463,6626 18463,6624 18463,6625 18464,6623 18468,6623 18469,6626 18470,6621 18466,6621 18467,6622 18467,6625 18464,6630 18468,6628 18469,6631 18472,6627 18477,6628 21477,6631 21481,6627 21486,6628 21490,6632 21494,6637 21496,6640 21491,6643 21491,6648 21490,1648 21492,1650 21489,1650 21487,1654 21488,1653 21489,1653 21492,1650 21493,1655 21493,1650 21493,1651 21490,1651 21490,1649 21493,1645 21498,1649 21494,1652 21495,1654 21500,1655 21495,1658 21492,1663 21496,1666 21500,1666 19500,1664 19504,1668 19508,1668 19512,1666 19516,1669 19518,1669 19518,1674 19520,1674 19525,1676 19525,1679 19526,1679 19526,1681 19526,1686 19526,1691 19529,1689 19529,1688 19529,1685 19524,1690 19528,1693 19531,1693 19531,1698 20531,1699 20536,1703 20538,1703 20538,1706 20541,1701 20545,1702 20550,1704 20547,1705 20544,1710 20548,1710 20551,1713 20555,1712 20559,1714 20562,1714 20563,1714 20565,1712 20567,1711 20570,1706 20571,1708 20571,1708 22571,6708 18571,6712 18571,6715 18573,6710 18577,6711 18579,6711 18579,6716 18578,6721 18580,6721 18582,6726 18587,6731 18588,6736 18587,6734 18587,6736 18590,6739 18594,6744 18597,6744 18602,6746 18606,6749 18606,6750 18609,6750 18610,6753 18605,6755 18610,6759 18613,6759 18613,6759 18617,6763 20617,6767 20621,6771 20625,6773 20628,6769 20629,4769 20633,5769 20635,5769 20637,5770 20640,5772 20643,5772 20646,5772 20644,5776 20641,5779 20643,5784 20642,5786 25642,5786 25645,5791 25647,3791 25651,3791 25652,3794 25648,3793 25644,3791 30644,3796 30649,3796 30654,3800 30655,3800 30657,3797 30657,3797 30659,3800 30661,3803 30661,3803 30657,3800 30652,3801 30652,3802 30653,3807 30654,3809 30657,3804 30656,3801 30657,3803 30657,3803 30658,3804 30663,4804 30663,4809 30665,9809 30665,9809 30669,9812 30673,9816 30676,9816 30676,9816 30677,9818 30682,9818 30683,9817 30687,9813 30692,9817 30692,9814 30693,9816 30693,9818 30697,9818 30699,9818 30696,9816 30694,9811 30694,9812 30694,9816 30697,9821 30700,9824 30702,9827 30707,9827 25707,9827 25711,9828 25709,9823 25713,9827 25712,9830 25714,9827 25712,9832 25717,9836 25719,9836 25722,11836 25725,11838 25727,14838 29727,14835 29728,14838 29724,14843 29724,19843 29724,19846 29728,19847 29732,19851 29737,19855 29738,19858 29735,19853 29735,19853 29737,19852 29739,19850 29744,19850 29744,19854 29747,19859 29752,19861 29750,19864 29751,19869 29752,19864 29756,19865 29757,19868 29758,19868 29758,19871 29763,19874 29764,19877 29766,19879 29763,19880 29763,19881 29765,19886 29765,19881 29765,19881 29768,19880 29773,19875 29775,19879 29776,19883 29776,19887 29781,19890 29784,19890 29789,19892 29784,19897 29785,19893 29785,22893 29787,22895 29792,22895 29788,22895 29789,22895 29793,22900 29793,25900 29790,25901 29794,25902 29794,25905 29794,25907 29798,25912 29799,25910 29804,25915 29809,25918 29807,25917 29808,25921 29808,25925 29812,25926 29816,25926 29819,25921 29821,25926 30821,25929 30823,25933 30822,25935 30823,25937 30818,25937 30818,25939 30819,25939 30824,25941 30819,25943 30823,25946 30824,25946 30829,25947 30829,25947 30830,25952 30833,25953 30831,25954 30836,25959 30836,25964 30836,25961 30836,25965 30837,25964 30835,29964 30839,29968 30842,31968 30847,31967 30844,31972 30844,31972 30840,31977 30839,31982 30842,31987 30844,31987 25844,31984 25848,31987 25848,31992 25845,31993 25846,31997 25846,31997 25849,31996 25851,31995 25855,32000 25858,31995 25859,31996 25856,31997 25858,31999 25858,31998 25858,32001 25859,32003 25863,32002 25866,32003 25867,32008 25867,32011 25870,32014 25875,32013 25874,34013 25873,34013 25876,34011 25878,34011 25880,34012 25885,34016 27885,34011 27884,39011 27888,39008 27884,39011 27879,39011 27876,39011 27880,39014 27879,39013 27879,39014 27879,39015 27882,39019 27886,39020 27888,39020 27893,39025 27895,39030 27896,39030 27896,39031 27892,39036 22892,39039 22894,39038 27894,39043 27895,39048 27900,39044 27905,39046 27907,39041 27910,39044 27910,39043 27915,-2382 3462,-2377 3465,-2373 3468,-2371 3469,1629 3470,1632 3472,1630 3469,5630 3473,5635 3474,5638 3474,5639 3469,5643 3473,5643 3473,5639 3477,5639 3477,5639 3480,5642 3479,5644 3481,5649 3480,2649 3485,2649 3485,2650 3489,2653 3491,506 5375,510 5380,513 5382,518 5384,522 5387,521 5384,524 5385,525 5382,523 5384,527 5384,527 5386,4527 5391,4528 5393,4533 2393,4534 2389,4537 2393,4538 2395,4541 2400,4543 2404,4544 2405,4548 3405,4553 3410,4556 3406,4561 3406,4558 3410,4559 3410,4558 3408,4558 3413,4563 3413,4561 3418,4563 3423,4565 3426,4565 3428,4570 3432,4570 3433,4574 3437,4579 3439,4583 3443,4578 3444,4582 3447,4583 3447,4585 3443,4590 3448,4586 3448,4588 3449,5588 3449,5589 3454,5593 3456,5591 3457,5591 3458,7591 3461,7594 3457,7596 3459,7591 3458,7590 3460,7593 3460,7593 3463,7590 3464,7586 3466,7581 3467,7580 3466,7580 3466,7585 3470,7585 3472,7589 3468,7589 3471,7594 3474,7599 3474,7600 3471,7603 3471,7606 3471,7606 3472,7606 3474,7606 3479,7609 3482,7612 6482,7614 6485,11614 6481,11619 6486,11624 6486,11621 6489,11623 6491,11628 6491,8628 6496,8632 6498,8629 6502,8632 6502,8627 6505,8631 6506,8633 6502,8633 6507,8631 6512,8631 6512,8626 6514,8621 6515,8620 6513,8615 6514,8611 6519,8612 6522,8613 6522,8616 6522,8611 6519,8614 6519,8615 6521,8618 6525,8623 6526,8628 6521,8631 6517,8634 6520,8634 6525,8637 6526,8636 6528,8640 6533,8643 6534,8643 6531,8642 6532,8643 6535,8643 6535,8640 6531,8641 6531,8641 6534,8644 6537,8647 6541,8648 6536,8649 6537,8649 6542,8644 6546,8644 6546,13644 6548,13642 6549,13638 6548,13636 6549,11636 6549,11636 6554,11633 6554,11636 6554,11641 7554,11642 7558,11641 7553,11643 7556,11644 7556,11639 7556,11641 7558,11641 7559,11641 7563,11638 7560,11639 7564,11642 7569,12642 7574,7642 7576,7642 7574,7643 7577,7645 7577,7650 7576,7645 7576,7648 7576,7650 7581,7651 7576,7654 7581,7658 7581,7661 7583,7662 7584,7664 7586,7661 7586,7662 7589,7666 7585,7669 7585,7670 7585,7670 7587,7670 7587,7670 7591,7667 7595,7672 7595,7677 7600,7679 7597,7684 5597,7682 5600,7685 5601,7688 5601,7691 5604,7696 5605,7700 5607,7703 5602,7704 5602,7701 5606,7702 5607,7706 5609,7710 5614,7713 5610,7716 5615,7717 5616,7719 5621,7724 5621,7724 5618,3724 5623,3722 5625,3725 5626,3730 5628,3727 5633,3727 5636,3729 5638,6729 5639,6732 5642,8732 5644,8732 5649,8729 5650,8734 5645,8736 5644,8739 5644,8741 5645,8745 5650,8743 5652,8739 5651,8744 5652,8744 5653,8745 5649,8748 5651,8749 5652,8750 5655,8753 5660,8753 5662,8755 5660,8757 5657,8758 5654,8762 5659,8760 5660,8761 5664,8765 5669,8768 5669,8768 5669,8769 5673,8769 5678,8772 5678,8769 5683,8774 5683,8776 5687,8777 7687,8779 7691,10779 7686,10779 7686,10780 7686,15780 7690,15781 7695,15779 7699,15783 7702,15788 7705,15791 7705,15786 7709,15788 7707,15793 7710,17793 7711,17794 7712,17799 7713,17800 10713,17802 10713,17802 10715,17803 10715,17808 10716,17811 10717,17811 14717,17811 14722,17811 14722,17815 14725,17819 14726,17820 14727,17822 14727,17817 14731,17818 14731,17818 14729,17820 19729,17818 19725,17822 19728,17818 19723,17821 19720,17821 19725,17824 19725,17821 19728,17821 19725,17825 19725,17830 19725,17834 19729,17836 19730,17837 19730,17841 19725,17844 19730,17849 19734,17853 19734,17856 19737,17858 19732,17858 19732,17863 19732,17868 19733,17873 19735,17874 19740,17878 19742,17883 19742,17879 19747,551 1397,551 1398,552 1401,553 1401,553 1398,552 1398,555 1402,556 1406,557 1409,558 1413,558 1416,558 1418,558 1420,563 1421,566 3421,568 3421,570 3426,572 3429,5572 3433,5576 3433,5579 3436,5579 3441,5583 3444,5580 3445,5585 3450,5589 3453,5593 3454,5597 3459,610 1429,612 1431,607 1430,607 1430,609 1426,605 1425,607 1425,602 1420,604 1423,-2378 3502,-2377 3503,-2378 3507,-2373 3508,-2375 3512,-2370 3516,-2373 3517,-2369 3514,-2370 3517,-2367 3519,-2366 3524,-2366 3529,-2362 3534,-2365 3536,-2370 3534,-2370 3531,-2366 3528,-2370 3532,-2366 3535,-2361 3533,-2361 3537,-2361 3540,-2358 3541,-3358 3543,-3355 3544,-3355 3542,-3355 3541,-3352 3546,-3348 3548,-3350 3551,-3346 3553,-3347 3553,-3342 3548,-3337 3548,-3338 3547,-3338 3547,-3334 3552,-3333 3552,-3332 3550,-3331 3550,-3329 3550,-3326 3552,-3325 3554,-3320 3556,-3315 3560,-3313 3565,-3312 3560,-3315 3563,-3315 3559,-3318 3564,-3321 4564,-3321 4569,-3317 4568,-3312 4573,-3311 4576,-3311 4575,-3308 4571,-3304 4572,-3299 4576,701 4580,703 4582,708 4582,711 4583,715 4587,716 4591,721 4587,717 4590,715 4594,715 4594,719 4598,719 4600,720 4604,717 4606,718 8606,722 8604,726 8600,727 8605,731 8609,731 8609,733 8611,738 8611,739 8612,734 12612,734 12617,730 12622,729 12622,732 12625,-268 12627,-263 12627,-264 12625,-261 12622,-260 12622,-265 12625,-264 12622,-264 12624,736 12622,733 12623,734 12626,730 12628,731 12632,732 12637,730 12637,733 12634,732 12635,732 12635,734 12635,733 12636,731 12639,734 12639,733 12642,734 14642,736 14646,739 14651,743 14654,-2257 14651,-2252 14651,-2252 19651,-2249 19656,-2249 19653,-2245 19650,-2248 19651,-2243 19656,-2241 19661,-2238 19664,-7238 19668,-7236 19666,-7231 19661,-7231 19666,-7227 19671,-9227 19672,-9223 19676,-7223 19675,-7223 19677,-7218 19677,-7219 19677,-7216 19673,-7214 19677,-7210 19674,-7206 19671,-7205 19673,-7203 19677,-7206 19680,-7202 19680,-7197 19685,-7197 19686,-7196 16686,-7201 16687,-7201 12687,-7198 12682,-7198 12682,-7193 12682,2673 15591,2673 15594,2673 15597,2671 15599,2666 15601,2670 15606,2669 15607,2670 15607,2673 15602,2670 15604,2671 15601,2672 15602,2667 15600,2672 15602,2675 15598,2675 15600,2678 15600,2677 15602,2673 17602,2678 17602,2677 18602,2681 18606,2682 18611,2685 18616,2686 18612,2688 18611,2686 18615,2686 18612,2687 18609,2688 18608,2688 18609,2688 18613,2693 18615,2693 18620,2691 18620,2696 18620,2698 18619,2695 18622,2700 18625,2704 22625,2709 25625,2709 25626,2710 25628,2710 25629,2714 25625,2715 25625,2713 25627,2714 25630,2718 25635,2723 30635,2723 30639,2726 30634,2727 30637,2728 30639,2732 30639,-1268 30642,-1266 30646,-1269 30643,-1269 30642,-1271 30642,-1269 30643,-1269 30645,-1269 30648,-1267 30647,-1265 30644,-1269 30648,-1268 30644,-1269 30644,-1269 30642,-1266 30641,3734 30637,3739 30640,3743 30641,3748 30646,3753 30650,3751 30653,3751 30652,3756 30647,3757 30648,3759 30653,3761 30656,3762 30655,3762 30653,3763 30650,3766 30652,3770 30657,3770 30657,3770 30653,3773 30650,3776 30650,3778 30650,3774 30655,3775 30657,3776 30660,3781 30662,3785 30665,3790 30670,5790 30672,5794 30675,5798 30680,5803 30675,5802 30673,5801 30677,5803 30679,5808 30677,5805 34677,5810 34677,5811 34682,5812 34684,5816 39684,5816 39687,5814 39690,5810 39695,5811 39696,5816 39700,5821 39705,5824 39707,5826 39711,5828 39708,5829 39709,5834 39712,5838 39715,5839 39718,5840 39720,5839 39722,5839 39722,5835 42722,5833 44722,5829 44722,5828 44722,5833 44724,5835 44727,5835 44731,2835 44729,3835 44731,3836 44736,3841 44739,3839 44736,3839 44736,3836 44736,3837 44737,3841 44737,3842 44733,3840 44735,3843 44730,3842 44732,6842 44734,6841 44735,6846 44737,6848 44737,6851 44740,6850 45740,6853 45741,6853 45741,6848 45743,6852 45744,6857 45746,6855 45747,6853 45750,6857 45754,6859 45752,6863 45751,6861 45751,6861 45748,6858 45752,6861 45750,6858 45750,6862 45750,6862 45753,6864 45757,6861 45762,6864 45762,6867 45761,6872 45763,6877 45758,6882 45761,6883 47761,6886 47761,6888 47762,6893 47767,6897 48767,6897 48772,6902 48771,6903 48773,6904 48773,6904 48777,6899 52777,6899 52777,6903 52773,6903 52773,7903 52773,7908 52771,7903 52772,7904 52774,7899 52776,7895 52776,7895 52781,7894 52778,7898 52783,7902 52785,7906 52790,7907 52792,11907 52797,11908 52801,11911 52800,11916 52804,11911 52806,11913 52808,11913 52805,11913 52809,11909 52812,11911 52812,11908 52815,11913 52817,11917 52820,11918 52820,11922 52825,11926 52823,11931 52827,11931 52826,11934 52823,11936 52818,11938 52819,11940 52823,11943 52828,11938 52833,11940 52835,11944 52832,11941 52831,11936 52831,11936 52833,11934 52836,11938 52839,11940 52840,11943 52840,11943 52841,11945 52844,16945 52844,16942 52839,18942 52838,18945 49838,18950 49841,18950 49844,18951 49845,21951 49847,21956 49848,21961 49846,21961 49851,23961 49852,23961 49856,23966 49860,23969 49865,23965 49866,23970 49862,23975 49859,23975 49859,23978 44859,23979 44862,23981 44862,23984 44867,23980 44871,23983 44875,23988 44875,23992 44877,27992 44878,27989 44881,27985 44886,27986 44888,27984 44888,29984 44889,29984 44889,29985 44893,29990 44888,29994 44892,29997 44896,30001 44895,30002 44900,30003 44904,30004 44907,30008 44904,30009 44904,30010 44905,30010 44908,30007 44908,30011 44905,30014 44908,30016 44909,30021 44912,30023 44913,30025 44912,30024 44910,30022 44914,30026 44912,30025 44912,30029 44912,30029 44915,30033 44920,30038 44924,30043 44926,30047 44928,30043 44930,30047 44932,30050 44934,30050 48934,30046 48935,30051 48935,30051 48935,30055 51935,30054 51931,1610 18503,1614 18504,1616 18504,1619 20504,1619 20504,1619 20505,1620 20509,1620 20511,1618 20511,1619 20508,2619 20511,2615 20516,2612 20515,2612 20515,2617 20512,2622 20515,2617 22515,2620 22516,2622 22519,2626 22522,2624 22522,2619 22524,2623 22519,2621 22519,2622 22516,2620 22512,2622 22517,2622 22522,2626 22522,2630 22522,-370 22526,-1370 22531,-1375 22531,-1371 22527,-1366 22527,-1362 22531,-1361 22528,-1362 22524,-1367 22528,-1367 22530,-1367 22533,-1367 22535,-1363 22540,-1363 22536,-1363 22539,-1358 22541,-1358 22541,-1355 22543,-1355 22538,-1355 22541,-1356 22544,-1357 22548,-1354 22553,-1353 22557,-1353 22561,-1355 22562,-1352 22566,-1351 22568,-1349 22569,-1347 22568,-1346 22566,-1351 22565,-1347 22566,-1348 22567,-1351 22569,-1346 22565,-5346 22567,-3313 3565,-3311 4565,-3308 4568,-3304 4571,-3307 4572,-3307 4573,-3303 4573,-3304 4578,-3300 4578,-3301 4578,-3301 4583,-3301 4581,-3297 4585,-3295 4580,-3295 4575,-3295 4573,-3293 4575,-3290 4580,-3285 4580,-3284 4582,-3284 4581,-3280 4580,-3285 4579,-3285 4579,-3284 4584,-3288 4588,-3286 4588,-3283 4584,-3279 4584,-3278 4588,-3279 4588,-3274 4586,-3270 4589,-3270 4590,-3268 4587,-3270 4591,-3267 5591,-3265 5591,-3261 5592,-3259 5593,-3259 5590,-3258 5595,-3256 5599,-3253 5601,-3252 5600,-3252 5603,-3252 5603,-3255 5601,-3250 5600,-3247 5605,-3242 5606,-3241 5608,-3243 5612,-3242 5612,-3245 5614,-3242 5619,-3243 5623,-2243 10623,-2242 10626,-2247 10626,-2247 10630,-2244 10634,-2248 10639,-2248 10636,-2248 10641,-2244 10646,11598 14558,11594 14563,11596 14568,11597 14569,11600 18569,11601 18570,11599 18566,11602 18568,11607 18567,11611 18572,11614 18573,11612 18569,11615 18570,11614 18573,11617 18577,11621 18577,11617 18574,11615 18579,11619 18583,11615 18587,11615 18587,11620 18588,11621 18589,11617 18593,11620 18597,11622 18599,11626 18603,11621 18603,11625 18607,11628 18611,11630 18614,11630 18619,11633 18616,11633 18616,11635 18614,11634 18613,11636 18609,11638 18607,11642 18612,11641 18615,11646 18615,11648 18619,11652 18621,11654 18622,11653 18617,11648 18619,11650 18614,11646 18617,11648 18613,11648 18618,11650 18615,11647 18617,11649 18621,11653 18621,11656 18624,11656 18628,11659 18628,11660 18624,11662 18624,11662 18620,11663 18620,14663 18621,14665 18616,14662 18611,14662 18607,14665 18607,14670 18607,14674 17607,14676 17610,19676 17608,19681 17613,19681 17613,19686 17611,19687 17612,22687 17612,22684 17608,22682 17607,22686 17610,22690 17611,22692 17612,22690 17617,22693 17622,22696 17622,22698 17625,22703 17627,22699 17629,22698 17629,22702 17634,22705 17630,22707 17634,22708 17634,22710 17639,22712 17639,22713 17635,22712 17639,22715 17644,22720 17644,22720 17646,22723 17644,22723 17644,22728 17643,22729 17646,22725 17651,22725 17652,22725 17647,22730 17647,22733 17647,22734 17647,22733 17651,22737 17653,22737 17657,22735 17660,22738 17658,22742 17662,22747 17667,22752 17671,22751 17672,22749 17677,22751 17677,22753 17681,22754 17677,22759 17674,22763 17674,22768 17677,22773 17673,22774 17676,22774 17679,17774 16679,17772 16679,17770 16675,17772 16676,17771 16676,17770 16679,17775 16684,17774 16685,17776 16685,17780 16687,17781 16688,17786 16689,17790 16689,17793 16688,17797 16684,17800 16684,17799 16689,21799 16691,21799 16688,21804 16689,21804 16687,21804 16687,21808 16685,21809 16689,21813 16693,21813 16696,21817 16698,21817 16699,21819 16694,21824 16699,21824 16701,21827 16705,21823 16702,21825 16702,21827 16702,21827 16702,21828 16705,21832 16707,21835 16710,21838 16712,21841 16712,21839 19712,24839 19714,24838 19719,24838 19722,24833 19722,24831 21722,24832 21727,24829 21729,24832 21730,24837 21732,24838 21736,24842 21740,24842 21740,24844 21740,24846 21740,24848 21741,24851 21736,24851 21732,24852 21737,24849 21741,24847 21742,24845 21743,24849 21744,24852 21742,24856 21744,24860 21745,24860 21745,24864 21749,24864 21754,24865 21759,24865 21760,24870 21764,24871 21762,24871 21762,24876 21767,24881 21769,24883 21768,24883 21769,24886 21766,24886 21767,24891 21770,24894 21772,24894 21772,24899 21777,24902 21781,24897 21786,24894 21787,24895 21790,24899 21791,24899 21795,24903 21798,24903 21801,24905 21804,24906 21806,24910 21808,25910 17808,25905 17812,25906 17813,28906 17813,28906 17813,28911 17817,28912 17812,28916 17813,33916 17818,33916 17818,33916 17820,33912 17820,33915 17823,33915 17826,33910 17826,33914 17829,33910 17833,33910 17836,33913 17837,33918 17841,33923 17840,33920 17840,33919 17842,33922 17838,33925 17835,33923 17836,33920 17838,33916 17840,33917 17845,33912 17850,33912 21850,33916 21846,33917 21841,33918 21844,33922 21844,33923 21844,33927 21844,33928 21849,33933 21850,33937 21851,33937 21853,33940 21855,33939 21858,33944 21855,33945 24855,33946 24858,33950 24860,33951 24864,33952 24861,33957 24864,33959 24867,33954 24865,33959 24867,33963 24867,33961 24867,33963 24871,34963 24874,34967 24874,34967 24874,34969 24870,34965 24875,34965 25875,34969 25880,34974 25883,34972 25883,34973 25885,34976 25889,34979 25890,34981 25894,34984 25897,34989 25899,34986 25900,34990 25901,34990 25901,34993 25902,34996 25902,35000 25903,35001 25906,35006 25909,35007 29909,35009 29905,35008 29906,35008 29908,35012 29908,31012 29911,31017 29906,31017 29908,21054 31778,21054 31775,21059 31780,21057 31780,21059 31783,21059 31781,21064 29781,21065 29786,21070 29787,21074 29787,21079 29792,21082 29792,21083 29791,21085 29793,21086 29794,21086 29794,21088 29797,21085 29797,21085 29800,21083 29804,21088 29808,21088 29804,552 1401,554 1401,555 1404,555 1404,559 1409,561 1410,561 1412,561 1413,557 1414,561 1419,564 1417,565 1420,568 1421,573 1425,578 1426,583 1430,584 1432,587 1433,588 1433,592 1437,592 1438,592 1442,591 1444,596 1444,597 1449,592 1449,502 2350,503 2352,505 2349,508 2349,508 2350,506 2350,506 2353,511 2357,511 2359,511 2361,508 2362,512 3362,517 3365,4517 3366,4518 3366,4513 3367,4512 3370,4509 3365,4510 3370,4510 3371,4513 3371,4513 3374,4517 3373,4517 3375,4514 3375,4515 3374,4516 3378,4516 3383,4516 3387,516 3392,516 3393,521 3394,521 -1606,522 -1601,518 -1601,519 -1603,521 -1598,526 -1603,528 -1603,527 -1601,527 -1600,523 -1603,526 -1601,529 -1598,532 -1594,531 -1590,531 -1594,527 -1595,532 -1591,536 -1586,539 3414,541 3419,546 3419,551 3422,551 3427,553 3429,558 3432,557 3433,558 3438,559 3442,560 3445,556 3448,555 3446,559 3446,560 3442,560 3439,561 3442,563 3443,564 3448,562 3448,5562 3453,5560 3454,5563 3454,5565 3456,5562 3457,5557 3456,5557 -544,5558 -543,5561 -538,5562 -535,5563 -533,5563 -530,5568 -525,5568 -523,5572 -518,5567 -514,5571 -516,5571 -514,5571 -514,5572 -510,5575 -512,5578 -512,5579 -508,5581 -506,5584 -503,5579 -502,5581 -505,10581 -505,10583 -500,12583 -499,12587 -498,12587 -499,12588 -497,12589 -502,12589 -500,12594 -498,12592 -498,12595 -498,12600 -496,12604 -494,12609 2506,12611 5506,12614 5511,12615 5516,12617 5518,12620 5522,12620 5519,12623 5521,12621 5524,12626 5526,12625 5531,12625 5531,12627 5532,12632 5531,12635 5536,12636 7536,12641 7540,12642 7540,12647 7543,11909 52812,11911 52817,11912 52817,11917 52814,11918 52819,11920 52819,11923 52823,11928 52818,11924 52813,11928 52812,11929 54812,11931 54813,11927 54813,11929 54818,11929 54822,11931 54823,11935 54824,11931 54828,11931 54833,11930 54830,11931 54832,11935 54835,11939 54830,11942 54827,11942 54828,11943 54828,11946 54825,11943 54826,11948 54829,11952 54824,11952 54828,11954 54830,11955 54830,11953 54835,11958 59835,11959 59838,11960 59836,11965 59840,11965 59843,11970 59840,11974 59840,11971 59842,11975 59847,11976 59848,11981 59848,11986 59853,11987 63853,11992 63854,11993 65854,11995 65850,11998 65852,12003 65856,12000 65859,12002 65859,12006 65854,12011 65855,12013 65856,12017 65861,12022 65861,12022 65856,12022 65857,8022 65859,8026 65862,8030 65863,8026 65865,8030 65866,8026 65871,8026 65871,3026 65869,3021 65870,3023 65875,3028 65876,3033 65878,3038 65874,3039 65878,3039 65882,3043 65880,3044 65880,3043 65884,3043 65888,3047 65889,3047 65890,3047 65890,3047 63890,3043 63892,3046 63896,3041 63895,3039 63898,3034 63900,3035 63901,3032 63903,3034 63906,3036 63906,3034 63908,3034 63913,3036 63911,3037 63916,3039 63911,3041 63913,3045 63915,3047 63915,3045 63917,3046 63921,3046 63921,3049 63920,3053 63923,3050 63927,3055 63930,3058 63933,3058 63932,3058 63934,3053 63931,3054 63933,3058 63936,3063 63940,3063 63939,-937 63940,-940 63944,-938 63945,-938 63946,-934 63948,-935 63945,-932 63948,-928 63950,-927 63954,-922 67954,-918 67951,-917 67956,-915 67960,-914 67965,-912 67967,-914 67971,-914 67971,-918 67976,-916 67973,-911 67973,-909 67978,-906 67981,-903 67982,-900 67982,-899 67978,-895 67981,-892 67985,-890 67987,-885 67982,-884 67984,-883 67984,-880 67985,-879 67985,-874 67981,-871 67981,-871 67986,-868 67986,-868 67981,-865 67979,-864 70979,-859 70984,-856 70985,-856 70990,-855 70991,-857 70989,-859 70991,-856 70986,-854 70991,-849 70994,-849 70997,-852 71002,-851 71007,-851 71009,-850 71009,-846 71011,-843 71011,-842 71011,-839 71011,-837 71016,-837 71016,-833 71018,-835 71022,2165 71022,2166 71018,7166 71017,7163 71017,7164 71018,7162 71016,7166 71013,7166 71013,7171 71010,7175 71010,7173 71012,7176 71017,7174 71021,11174 71021,11171 66021,11176 66021,11181 66018,11181 66023,11186 66022,11182 66027,11184 63027,11186 63031,11187 63033,11191 63034,11188 63031,11189 63036,11184 63037,11185 63038,11187 66038,11187 66038,11189 66038,11191 66038,11189 66034,11192 66036,11197 66037,12197 66041,12200 66044,12203 66042,12206 66046,12204 66046,12205 66048,12209 66048,12212 66043,12216 66040,12213 66043,12218 63043,12223 63038,12227 63033,12227 63038,12231 63040,12233 63040,12235 63045,12235 63045,12230 63044,12235 68044,12237 68044,12235 68049,12231 68045,12226 68050,12229 68052,12234 68052,12231 68056,12236 68059,12236 68062,12241 70062,12241 70063,12244 70063,12245 70068,12247 70068,12248 70071,12251 70071,12252 70071,12251 70073,12248 70075,12253 70080,12256 70084,12257 70088,12256 70088,12256 70089,12251 70089,17251 70090,17247 70090,17249 70091,17249 70088,17252 70084,17256 70085,17260 70086,16260 70084,16261 70083,16256 70079,16257 70076,16258 70072,16258 70077,16262 70081,16260 70084,16263 70087,16263 70088,16267 70090,16267 70093,16267 70097,16267 70100,16267 70101,16270 70103,16270 70105,16270 70108,16274 70110,16274 70113,16275 70115,16277 70115,16273 70115,16274 70120,16279 70117,16284 70117,16288 69117,16287 69121,16287 69123,16288 69119,16288 69122,16292 69125,16292 69122,16290 69125,16288 69125,16290 69126,16295 69122,3037 63916,3042 63920,3047 63925,3048 63928,3053 63928,3056 63931,3056 63930,3052 63932,3051 63935,3056 63938,3055 63935,3059 63932,3059 63937,3061 63942,3065 63945,3069 63942,6069 63940,6064 63945,6067 63948,6067 63947,6068 63951,10068 63953,10072 63953,10071 63951,10071 63956,10071 63958,10075 63958,10079 63953,10082 63958,10084 63959,10086 63959,10090 63960,10094 63955,10099 63955,10101 63956,10099 63952,10099 63949,10103 63953,10106 63956,10108 63956,10109 63956,10114 63959,10118 63959,10120 63960,10122 63963,10122 63968,10125 63969,10125 64969,10130 64971,10130 64973,10134 64974,10134 64979,10139 64984,10139 64987,10142 64988,10137 64992,10140 64995,10141 65995,10142 65999,10145 66000,10142 66002,10145 66002,10144 66004,10149 66002,10153 66007,8153 66007,8155 66011,8155 66011,8155 66011,8156 66011,9156 66013,9158 66014,9160 66014,9165 66017,9169 66022,9170 66023,9170 66023,9170 66028,9171 66031,9175 66033,9175 66033,9173 66035,9177 66034,9177 66039,9177 66044,9177 66044,9173 66044,9171 66044,9174 66046,9177 66050,9177 66047,9180 66051,9180 66055,9184 66055,9184 66051,9187 66056,9184 66057,9187 66053,9187 66055,9192 66056,9195 66061,9195 66066,9195 66071,9200 66076,9195 66075,9200 66080,9200 66080,9202 66076,9204 66079,9202 66079,9198 66079,11198 66083,11199 66087,11199 66088,11204 66088,11206 66089,11206 66093,11211 66088,11211 66091,11206 71091,11205 71090,11207 71094,11207 71098,11211 71102,11210 71103,11211 71107,11212 71107,11216 71105,11216 71108,11216 71113,11217 71108,11220 71113,11217 71113,11217 72113,11218 72115,11220 72117,11220 72121,11221 72124,11225 72120,11229 72117,11226 72118,11230 72122,11230 72123,11232 72127,11236 72132,11241 72133,11246 72135,11250 72139,11247 72141,11252 72141,11256 72143,11259 75143,11258 75146,11261 75151,11265 75149,11269 75153,11270 75158,11273 75160,11274 75165,11270 75166,11270 75166,11274 75165,11279 75167,11283 75170,11286 75166,11285 75168,11282 75165,6282 75163,6283 75167,6288 75170,6293 75175,6290 75178,6292 75179,6292 75182,6293 75181,31996 25856,31998 25856,32003 25857,32007 25862,32007 25857,32009 25857,32010 25858,32015 25854,32014 25857,32019 25857,32021 25852,32024 25852,32024 25854,32026 25851,32028 25855,32032 25855,32028 25858,32031 25860,32031 25863,32026 25867,32029 25868,32029 25869,32034 25872,32035 25875,32040 25878,32042 25883,32043 25881,32045 25885,32048 25884,32052 25881,32056 25878,32056 25874,32059 25878,32063 25882,32066 25885,32067 25885,32070 25885,37070 25885,37072 25889,37075 25890,37075 25885,37080 25890,37080 25892,37084 25888,37086 25893,37090 25898,37091 25895,37096 25897,37101 25902,37096 25905,37101 25906,37101 25909,37102 25914,37100 25914,37104 25914,37109 25917,37111 25919,37111 25924,37113 25925,37118 25923,37122 25927,37123 25929,17800 10713,17805 10708,17808 10711,17813 10715,17813 13715,17808 13719,17804 13714,17807 13717,17808 13722,17810 13724,17811 13728,17816 13730,17820 13733,17822 13736,17823 13736,17824 13740,17824 13745,18767 22750,18768 22754,18773 22754,18775 22757,18779 22760,18784 22763,18781 22767,18776 22767,18776 22769,18778 22772,18774 22773,18770 22774,18774 22776,18774 22777,18770 22781,18771 26781,18768 26785,18770 26787,18775 26787,18770 26789,18773 26793,18778 26795,18783 26796,18785 26799,18785 26801,18789 26798,18794 26799,18794 26801,18789 26803,18793 26806,18795 31806,18791 31810,18794 31814,18797 31817,18802 31813,18806 31815,18806 31819,18810 31824,18807 31828,18812 31830,18813 31826,18815 31828,18816 31829,18821 31831,18821 31833,18822 31836,18822 31838,18826 31841,18828 31846,5666 501,5668 506,5669 1506,5672 1508,5674 1512,7674 1512,7679 1513,7679 1512,7684 1513,7689 1511,7686 1515,7691 1520,7689 520,7689 521,7690 524,7695 520,4695 521,4696 526,4698 526,4699 531,4702 531,4699 535,4702 538,4698 540,4699 4540,4702 4537,4707 4540,4707 4537,4709 4537,4711 4542,4713 4542,4718 4544,4720 4549,4716 4553,4717 4556,4722 4561,4726 4562,4726 4563,4731 4564,4735 4565,4735 4570,4733 4572,9733 4574,9736 4577,9736 577,9737 572,9737 569,9742 570,9747 575,9747 580,9748 1580,9747 1585,9747 1588,9747 1588,9747 1592,9747 1592,9751 1592,9754 1593,9751 1595,9756 1599,11756 1603,11759 1607,11756 1610,11754 1613,11749 1613,11750 4613,11749 2613,11746 2610,11749 2608,11752 2611,11754 2607,11759 2612,11762 2612,11763 2612,11764 2613,11765 2613,11760 2615,11757 2620,11752 2623,11748 2627,11748 2631,11751 2632,11751 2633,11754 2635,11758 2639,11758 2643,11760 2646,11763 2646,11767 2649,11762 2652,11760 2652,11756 2656,11752 4656,11749 4659,11754 4662,11759 4666,11764 4670,11761 4666,11756 4669,11756 4670,11761 4671,11762 4673,11765 4678,11768 4680,11768 7680,12768 7677,12771 7680,12771 7683,12776 7683,12777 7688,12779 7688,12779 7684,12781 7679,13781 7682,13781 7684,13776 7684,13779 7685,13784 7685,13787 7689,13784 7689,13787 7689,13791 7685,13791 7686,13787 7691,13788 7696,13790 7693,13790 7696,13791 6696,13796 6698,13798 6695,13797 6698,13799 6701,13799 6704,13803 6709,13804 6705,13799 6708,13804 6703,13807 6705,13807 6708,13809 6710,13812 6714,13814 6716,13817 6718,13819 6722,13821 6717,13826 6718,13828 6717,13828 6721,13831 6721,13831 6720,13834 6715,13837 6712,13837 6713,13842 6715,13847 6715,13847 6714,13847 6709,13848 6712,13852 6714,13854 6719,13857 6723,13859 6726,13861 6730,13859 6731,13855 6731,13855 6731,13856 6728,13857 6730,13862 6731,13865 6731,13863 6729,13868 6729,13866 11729,13867 11732,13871 11732,13873 11737,13872 11741,13870 11745,13874 11744,13871 11748,13870 11753,13871 11757,13871 14757,13875 14759,13878 14760,13881 14760,13879 10760,13875 10765,13879 10767,13880 10770,13876 10775,13880 10776,13880 10776,13882 10776,13883 14776,13888 14779,13888 14779,13893 14779,13898 17779,13903 17784,13898 17788,13894 17788,13896 17788,13900 21788,13903 21784,18903 21789,18899 21789,18900 21793,18901 21794,18905 21795,18908 21792,18913 21794,13913 21796,13911 21798,13916 21799,13916 21799,13918 21804,13916 21800,13912 21799,13915 21794,13916 21797,13921 21799,13916 21802,13918 21806,13919 21810,13921 21813,13924 21817,13927 21814,13932 21816,13934 21811,13936 21811,13934 21814,18934 21816,18929 21816,18934 21815,18933 21817,18932 21822,18936 21819,18938 16819,18933 16822,18933 16822,18937 16822,18937 16827,18940 16827,18945 16830,18947 16829,18950 19829,18949 19829,18949 19829,18946 19825,18947 19828,18946 19829,18943 19829,18943 19824,14943 19829,14939 19830,14942 19831,14946 19835,14946 22835,14942 22836,14946 22831,14950 22832,14952 22835,14947 22840,14951 22844,14951 22845,14947 22850,14948 22851,14951 22849,14956 22852,14957 22852,14957 22857,14962 22857,14965 22859,14970 22860,14968 22862,14972 22864,14977 22866,14974 22870,14975 20870,14976 20870,14979 20873,14984 20869,14989 20871,14993 20874,14993 20877,14994 20878,14995 20878,14997 20883,14998 20879,15001 20884,15001 20884,15003 20889,15006 20884,15009 20885,15009 20883,15007 20880,15011 20876,15008 20877,15009 20873,15010 20875,15009 20875,10009 20876,10012 20871,10013 21871,10017 21872,10012 21873,10010 21874,10008 21871,10012 21870,10013 21874,11607 14571,11608 14575,11612 15575,11613 15576,11613 15577,11618 15578,11622 15581,11624 15585,11627 18585,11631 18587,11634 18590,11634 18586,11634 18586,11636 18591,11635 18591,11636 18596,11636 18592,13636 18593,13640 18595,13642 18600,13641 18600,13641 18604,13642 18607,13643 18611,13648 18611,13651 18613,13655 18615,13656 18620,13651 18618,13651 18616,13654 18611,13651 18616,18651 18620,18656 18620,18661 18621,18657 18625,18661 18627,18663 18628,18666 18633,18661 18637,18665 18639,18665 18639,18667 18641,18669 18641,22669 18642,22673 18644,22676 18648,22681 18649,22682 18649,22682 18646,19682 18646,19684 18646,19685 20646,19690 20646,19690 20643,19686 20643,19686 20643,19690 20647,19690 20647,19689 20652,19692 20653,19692 20656,19697 20661,19698 20662,19703 20666,19707 20669,19707 20673,19708 20674,19709 20675,19709 20677,19710 20674,19715 20675,19717 20673,19721 20673,19720 20677,19718 20677,19716 20680,19718 20681,19718 20685,19722 20688,19725 20688,19729 20685,19728 20687,19728 20690,19732 20691,19735 20691,19739 20691,19744 20696,16744 20693,16746 20695,16748 20695,16748 20691,16746 20696,16750 20699,16755 20704,16755 20709,16760 20710,16763 20711,16763 20711,16765 20707,16767 20705,16771 20706,16771 20708,16775 20706,9653 7576,9654 7577,9659 7576,9659 7572,9655 7575,9660 7579,9660 7579,9660 7583,9661 7588,9663 7591,9666 7590,9662 7592,9665 7593,9669 7594,9668 80000)') WHERE p = 1; UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; ALTER TABLE t1 DROP INDEX spatial_idx, DROP INDEX prefix_idx; +connection con1; # enable purge COMMIT; +connection default; DELETE FROM t1 WHERE p = 2; # wait for purge to process the update_undo records. CREATE TABLE t2 ( @@ -270,3 +296,4 @@ SPATIAL KEY (g6) DROP TABLE t2; DROP TABLE t1; DROP TABLE t0; +disconnect con1; diff --git a/mysql-test/suite/innodb_gis/r/types.result b/mysql-test/suite/innodb_gis/r/types.result index 1bd160a3752..ac1802085d6 100644 --- a/mysql-test/suite/innodb_gis/r/types.result +++ b/mysql-test/suite/innodb_gis/r/types.result @@ -1,4 +1,6 @@ SET SESSION debug="+d,row_print_geometry_data"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead CREATE TABLE t_wl6455 ( i INT, g GEOMETRY NOT NULL) ENGINE=InnoDB; SHOW CREATE TABLE t_wl6455; Table Create Table @@ -24,7 +26,7 @@ SELECT ST_AsText(g) FROM t_wl6455; ST_AsText(g) POINT(1 1) POINT(2 2) -MULTIPOINT((0 0),(20 20),(60 60)) +MULTIPOINT(0 0,20 20,60 60) LINESTRING(1 1,4 4) LINESTRING(2 2,5 5) MULTILINESTRING((1 1,2 2,3 3),(4 4,5 5)) @@ -33,10 +35,8 @@ MULTIPOLYGON(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))) GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3)) CREATE INDEX i_p ON t_wl6455 (g(10)); EXPLAIN SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(2,2); -id select_type table partitions type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t_wl6455 NULL ref i_p i_p 12 const # 100.00 Using where -Warnings: -Note 1003 /* select#1 */ select st_astext(`test`.`t_wl6455`.`g`) AS `ST_AsText(g)` from `test`.`t_wl6455` where (`test`.`t_wl6455`.`g` = (point(2,2))) +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t_wl6455 ref i_p i_p 12 const 2 # SELECT ST_AsText(g) FROM t_wl6455 WHERE g = POINT(2,2); ST_AsText(g) POINT(2 2) @@ -61,7 +61,7 @@ SELECT ST_AsText(g) FROM t_wl6455; ST_AsText(g) POINT(1 1) POINT(2 2) -MULTIPOINT((0 0),(20 20),(60 60)) +MULTIPOINT(0 0,20 20,60 60) LINESTRING(1 1,4 4) LINESTRING(2 2,5 5) MULTILINESTRING((1 1,2 2,3 3),(4 4,5 5)) diff --git a/mysql-test/suite/innodb_gis/t/bug16236208.test b/mysql-test/suite/innodb_gis/t/bug16236208.test index 5f51c414fed..ef2da6f2ab1 100644 --- a/mysql-test/suite/innodb_gis/t/bug16236208.test +++ b/mysql-test/suite/innodb_gis/t/bug16236208.test @@ -5,6 +5,7 @@ --source include/have_geometry.inc --source include/not_embedded.inc +--source include/have_innodb.inc --disable_warnings DROP TABLE IF EXISTS linestring; diff --git a/mysql-test/suite/innodb_gis/t/bug17057168.test b/mysql-test/suite/innodb_gis/t/bug17057168.test index 70191d313fc..5ca2c8b035f 100644 --- a/mysql-test/suite/innodb_gis/t/bug17057168.test +++ b/mysql-test/suite/innodb_gis/t/bug17057168.test @@ -5,6 +5,7 @@ --source include/have_geometry.inc --source include/not_embedded.inc --source include/no_valgrind_without_big.inc +--source include/have_innodb.inc CREATE DATABASE geotest; use geotest; diff --git a/mysql-test/suite/innodb_gis/t/geometry.test b/mysql-test/suite/innodb_gis/t/geometry.test index e59e0147f79..6450e82e2e4 100644 --- a/mysql-test/suite/innodb_gis/t/geometry.test +++ b/mysql-test/suite/innodb_gis/t/geometry.test @@ -11,7 +11,7 @@ --source include/have_geometry.inc --source include/not_embedded.inc --source include/have_debug.inc ---source include/have_innodb_zip.inc +--source include/have_innodb.inc SET default_storage_engine=InnoDB; SET innodb_strict_mode=OFF; diff --git a/mysql-test/suite/innodb_gis/t/gis_split_inf.test b/mysql-test/suite/innodb_gis/t/gis_split_inf.test index f3f9a6ae982..7988ce58f4f 100644 --- a/mysql-test/suite/innodb_gis/t/gis_split_inf.test +++ b/mysql-test/suite/innodb_gis/t/gis_split_inf.test @@ -4,20 +4,20 @@ create table t1(a geometrycollection not null,spatial key(a))engine=innodb; ---error ER_GIS_INVALID_DATA +--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-14,98), point(-14,98)), linestring(point(-97,64), point(-70,99), point(-97,64)), linestring(point(143851215403059150000000000000000000000.000000,13040009882500140000000000000000000000.000000), point(-73,85), point(-88,-29)))), multipolygon(polygon(linestring(point(41,95), point(4294967298,2050)), linestring(point(-61,85), point(-75,93), point(14,-2), point(1,84), point(-61,85)), linestring(point(-62,52), point(39,5), point(-18,12), point(-62,52))), polygon(linestring(point(-77,1), point(66,61), point(-77,1)), linestring(point(18446744073709551615,1125899906842622), point(-72,49), point(24,-66), point(82,73), point(68,22))), polygon(linestring(point(1048576,17179869181), point(-18,95), point(-90,-3), point(-33,82), point(20,-85)), linestring(point(-43,-97), point(-7,-3), point(39,-82), point(-65,-58), point(-43,-97)), linestring(point(44,-34), point(-69,58), point(44,-34)), linestring(point(57,-13), point(-17,74), point(57,-13)), linestring(point(3,71), point(-58,81), point(3,71)), linestring(point(9,25), point(77,-71), point(8388607,67108864), point(46,46), point(9,25)), linestring(point(98,-82), point(98,-82))))) ) ; insert into t1(a) values( geometrycollection(multilinestring(linestring(point(39,-60), point(-62,-11), point(-24,35), point(54,1)), linestring(point(-4,69), point(-22,-64), point(1.694824e+308,5.688896e+307), point(-33,-58), point(-64,-80), point(-15,-44), point(40,54)), linestring(point(-86,-54), point(11,41), point(-46,-38), point(-21,-8), point(10,70), point(-81,22), point(-46,-100)), linestring(point(-30,-48), point(50,58), point(-53,92), point(10,41), point(-46,-8)), linestring(point(-65,34), point(-92,93), point(-33,-74), point(75,-28)), linestring(point(25,-55), point(22,-10), point(-42,0), point(-86,-59), point(2,-37), point(63,-44), point(-55,-22)), linestring(point(28,0), point(-94,99), point(-32,-86)), linestring(point(9,-12), point(16,9), point(80,-73)), linestring(point(6,-55), point(83,-4)), linestring(point(-15,21), point(144115188075855876,16777212), point(-85,-31), point(-90,-50)), linestring(point(-33,33), point(21,90), point(-89,32)), linestring(point(16,24), point(73,-13), point(25,-48), point(71,52), point(-54,-78), point(-84,59), point(53,29)), linestring(point(-15,-81), point(83,43), point(-71,33), point(-8,0), point(84,-54), point(-35,38), point(-10,-50)), linestring(point(38,-50), point(20,-2), point(-57,-92)), linestring(point(5,-93), point(231601833467477080000000000000000000000.000000,51914987457169239000000000000000000000.000000), point(-94,62))), point(2,0)) ) ; insert into t1(a) values( geometrycollection(multilinestring(linestring(point(80,-15), point(65,-57), point(-59,16), point(22,-67)), linestring(point(20,-55), point(-38,-64), point(19,-53), point(-63,-36), point(56,-37)), linestring(point(27,-8), point(-85,-75), point(4398046511106,2251799813685245)), linestring(point(45,32), point(-79,46))), multilinestring(linestring(point(8,-4), point(40,-38), point(100,95), point(5,-80), point(82,88)), linestring(point(-14,30), point(-94,51), point(-16,-29), point(37,-97), point(-26,92)), linestring(point(32,34), point(83,-23), point(-55,57), point(-15,90), point(32,-50), point(-20,-73), point(77,28)), linestring(point(4,88), point(87,74), point(-67,-58)), linestring(point(5.660747e+307,6.385657e+307), point(-58,-15), point(1.172095e+308,1.448533e+308)), linestring(point(-21,-37), point(-52,79), point(-16,-76), point(-65,-94), point(36,7), point(37,74), point(100,-57)), linestring(point(-23,-82), point(-73,23), point(18,-34)), linestring(point(20,-51), point(93,62), point(-65,84)), linestring(point(-48,31), point(-69,-96)), linestring(point(-5,78), point(10,-99), point(36,-33)), linestring(point(-84,55), point(96,1), point(-98,-29), point(-15,81), point(-27,-6), point(58,-32), point(54,-16)), linestring(point(2,5), point(2199023255553,8192)), linestring(point(12,-78), point(-97,-83)), linestring(point(-74,79), point(35,-56), point(50,95)), linestring(point(28,16), point(-39,-40), point(48,-3)), linestring(point(2199023255550,-65539), point(62,-25), point(94,-62)), linestring(point(-74,83), point(-18,75), point(91,17), point(-11,-48), point(30,100)), linestring(point(57,-13), point(88,-45)), linestring(point(20,-64), point(-37,13), point(20,35))), point(-3,-4)) ) ; ---error ER_GIS_INVALID_DATA +--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-34,19), point(-25,92), point(61921390294166805000000000000000000000.000000,319674749161701840000000000000000000000.000000), point(56,50), point(-34,19)), linestring(point(-26,-58), point(99,-50), point(34,-20), point(-26,-58)), linestring(point(-42,45), point(-63,-7), point(5,-89), point(-97,36), point(-42,45)), linestring(point(94,11), point(-71,4), point(94,11)), linestring(point(16,25), point(4,-33), point(-45,-33), point(-64,-77), point(16,25)), linestring(point(19,45), point(36,45), point(-83,-96), point(19,45)), linestring(point(85,-31), point(-87,52), point(85,-31))), polygon(linestring(point(55,-88), point(63,-12), point(55,-88)), linestring(point(-49,10), point(-49,10)), linestring(point(-51,-32), point(-51,-32)))), multipolygon(polygon(linestring(point(-21,-8), point(66,-58), point(100,-27), point(-21,-8)), linestring(point(-29,-13), point(-29,-13))), polygon(linestring(point(91307574660224730000000000000000000000.000000,101214152547755520000000000000000000000.000000), point(89,64), point(77,87), point(66,29), point(-71,-53)), linestring(point(38,-78), point(-43,-90), point(37,20), point(81,65), point(38,-78))), polygon(linestring(point(51,0), point(-62,8), point(-11,22), point(51,0)), linestring(point(-4,-44), point(6,82), point(-19,-90), point(131,32)))), point(-4,-7)) ) ; insert into t1(a) values( geometrycollection(point(10,9), linestring(point(2305843009213693955,-1125899906842621), point(78,15)), multipoint(point(-1,3), point(4,-6))) ) ; ---error ER_GIS_INVALID_DATA +--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR insert into t1(a) values( geometrycollection(polygon(linestring(point(0,13), point(-12,5), point(0,13)), linestring(point(11,-2), point(6,6), point(20,-14), point(-3,-10), point(1.330588e+308,2.666476e+307)), linestring(point(16382,67), point(7,4)), linestring(point(2,7), point(-14,15), point(2,7)), linestring(point(-14,12), point(-8,-8), point(-17,-2), point(-14,12)), linestring(point(-20,-10), point(-8,-13), point(-19,-17), point(13,-3), point(-20,-10)), linestring(point(-5,13), point(7,-9), point(6,8), point(-5,13))), linestring(point(-87,19), point(-64,51), point(-16,12)), multipoint(point(-1,-10), point(2,-10), point(3.670354e+307,2.501459e+307))) ) ; ---error ER_GIS_INVALID_DATA +--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR insert into t1(a) values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) ) ; insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(15,84), point(39,-92), point(-99,19)), multilinestring(linestring(point(63,10), point(-47,95), point(10,-49), point(16,-65), point(-98,40), point(25,44), point(-55,-92)), linestring(point(5.266810e+307,6.648813e+307), point(47,33), point(-15,-13), point(-92,-58), point(36,73)), linestring(point(77,-56), point(-53,-10), point(-28,76), point(-51,6), point(51,-31), point(-95,81), point(92,26)), linestring(point(-91,7), point(58,53)), linestring(point(18,5), point(18,40), point(71,89), point(7.898707e+307,1.202585e+308), point(53,100)), linestring(point(-60,-18), point(-10,-31), point(-6,-25), point(-57,-95), point(16,77)))) ) ; ---error ER_GIS_INVALID_DATA +--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ; insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ; diff --git a/mysql-test/suite/innodb_gis/t/kill_server.test b/mysql-test/suite/innodb_gis/t/kill_server.test index 7a7c3e310b8..9b6469606ca 100644 --- a/mysql-test/suite/innodb_gis/t/kill_server.test +++ b/mysql-test/suite/innodb_gis/t/kill_server.test @@ -49,7 +49,8 @@ truncate table t1; # Test crash recovery. # # -call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); + +call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds"); # Test rtree enlarge recovery. START TRANSACTION; diff --git a/mysql-test/suite/innodb_gis/t/point_basic.test b/mysql-test/suite/innodb_gis/t/point_basic.test index c6a2a673c19..1c0d229802b 100644 --- a/mysql-test/suite/innodb_gis/t/point_basic.test +++ b/mysql-test/suite/innodb_gis/t/point_basic.test @@ -772,16 +772,25 @@ ALTER TABLE child ADD SPATIAL INDEX idx2(p ASC); SHOW CREATE TABLE parent; SHOW CREATE TABLE child; ---error ER_CANNOT_ADD_FOREIGN +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANT_CREATE_TABLE ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +show warnings; ALTER TABLE parent DROP INDEX idx1; ---error ER_CANNOT_ADD_FOREIGN +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANNOT_ADD_FOREIGN,ER_CANT_CREATE_TABLE ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +show warnings; ALTER TABLE child DROP INDEX idx2; ---error ER_CANNOT_ADD_FOREIGN +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANNOT_ADD_FOREIGN,ER_CANT_CREATE_TABLE ALTER TABLE child ADD FOREIGN KEY(p) REFERENCES parent(p); +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +show warnings; DROP TABLE child, parent; diff --git a/mysql-test/suite/innodb_gis/t/row_format.test b/mysql-test/suite/innodb_gis/t/row_format.test index 2f588c95996..23c08dae5e6 100644 --- a/mysql-test/suite/innodb_gis/t/row_format.test +++ b/mysql-test/suite/innodb_gis/t/row_format.test @@ -1,6 +1,6 @@ --source include/not_embedded.inc --source include/have_innodb.inc ---source include/have_innodb_zip.inc +--source include/innodb_page_size_small.inc # Test the redundant format LET $file_per_table='off'; diff --git a/mysql-test/suite/innodb_gis/t/rtree_compress2.test b/mysql-test/suite/innodb_gis/t/rtree_compress2.test index a83701416ac..5956fc9a774 100644 --- a/mysql-test/suite/innodb_gis/t/rtree_compress2.test +++ b/mysql-test/suite/innodb_gis/t/rtree_compress2.test @@ -39,7 +39,7 @@ truncate table t1; # Test crash recovery. # # -call mtr.add_suppression("InnoDB: page [0-9]+ in the doublewrite buffer is not within space bounds.*"); +call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds"); # Test rtree enlarge recovery. START TRANSACTION; diff --git a/mysql-test/suite/innodb_gis/t/rtree_drop_index.test b/mysql-test/suite/innodb_gis/t/rtree_drop_index.test index 66dd4e41700..ac23ebb66e4 100644 --- a/mysql-test/suite/innodb_gis/t/rtree_drop_index.test +++ b/mysql-test/suite/innodb_gis/t/rtree_drop_index.test @@ -6,7 +6,10 @@ --echo # Bug #21899444 INNODB: ASSERT FAILURE (COL->ORD_PART) --echo # IN DICT_COL_GET_SPATIAL_STATUS() -set global innodb_purge_stop_now = on; +connect purge_control,localhost,root; +START TRANSACTION WITH CONSISTENT SNAPSHOT; +connection default; + CREATE TABLE t1 ( p INT NOT NULL AUTO_INCREMENT, g LINESTRING NOT NULL, @@ -19,7 +22,12 @@ INSERT INTO t1(g) VALUES (ST_linefromtext(concat('linestring','(20 110, 21 110, UPDATE t1 SET g = ST_linefromtext('linestring(-5 -576,0 -576,0 -571,0 -571,5 -568,6 -564,6 -565,6 -563)') WHERE p = 2; alter table t1 drop index `si`; -set global innodb_purge_run_now=on; + +connection purge_control; +COMMIT; +disconnect purge_control; +connection default; + set global innodb_fast_shutdown = 0; --source include/restart_mysqld.inc drop table t1; diff --git a/mysql-test/suite/innodb_gis/t/rtree_old.test b/mysql-test/suite/innodb_gis/t/rtree_old.test index 6dafa7870bb..0c793488bf3 100644 --- a/mysql-test/suite/innodb_gis/t/rtree_old.test +++ b/mysql-test/suite/innodb_gis/t/rtree_old.test @@ -1,6 +1,7 @@ # This is a testcase ported from mysql-test/t/gis-rtree.test -- source include/have_geometry.inc +-- source include/have_innodb.inc # # test of rtree (using with spatial data) diff --git a/mysql-test/suite/innodb_gis/t/rtree_purge.test b/mysql-test/suite/innodb_gis/t/rtree_purge.test index 98652c58f19..86a1ecb88da 100644 --- a/mysql-test/suite/innodb_gis/t/rtree_purge.test +++ b/mysql-test/suite/innodb_gis/t/rtree_purge.test @@ -45,7 +45,7 @@ delimiter ;| call p(200); ---source include/wait_innodb_all_purged.inc +--source include/wait_all_purged.inc # Clean up. drop procedure p; From 909cdafd35c05b56e47d2c791149a5dd85621870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 25 Oct 2017 09:06:45 +0300 Subject: [PATCH 095/128] MDEV-13496 Use "mariabackup" rather than "xtrabackup" in console output Replace the remaining "xtrabackup:" references in the code. --- extra/mariabackup/fil_cur.cc | 18 +++++++++--------- extra/mariabackup/write_filt.cc | 4 ++-- extra/mariabackup/xtrabackup.cc | 23 +++++++++++------------ 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/extra/mariabackup/fil_cur.cc b/extra/mariabackup/fil_cur.cc index 820d8e10c29..54700ce6837 100644 --- a/extra/mariabackup/fil_cur.cc +++ b/extra/mariabackup/fil_cur.cc @@ -1,5 +1,5 @@ /****************************************************** -XtraBackup: hot backup tool for InnoDB +MariaBackup: hot backup tool for InnoDB (c) 2009-2013 Percona LLC and/or its affiliates. Originally Created 3/3/2009 Yasufumi Kinoshita Written by Alexey Kopytov, Aleksandr Kuzminsky, Stewart Smith, Vadim Tkachenko, @@ -173,7 +173,7 @@ xb_fil_cur_open( /* The following call prints an error message */ os_file_get_last_error(TRUE); - msg("[%02u] xtrabackup: error: cannot open " + msg("[%02u] mariabackup: error: cannot open " "tablespace %s\n", thread_n, cursor->abs_path); @@ -202,7 +202,7 @@ xb_fil_cur_open( cursor->file = node->handle; if (stat(cursor->abs_path, &cursor->statinfo)) { - msg("[%02u] xtrabackup: error: cannot stat %s\n", + msg("[%02u] mariabackup: error: cannot stat %s\n", thread_n, cursor->abs_path); xb_fil_cur_close(cursor); @@ -229,7 +229,7 @@ xb_fil_cur_open( msg("[%02u] %s is compressed with page size = " "%lu bytes\n", thread_n, node->name, page_size); if (page_size_shift < 10 || page_size_shift > 14) { - msg("[%02u] xtrabackup: Error: Invalid " + msg("[%02u] mariabackup: Error: Invalid " "page size: %lu.\n", thread_n, page_size); ut_error; } @@ -300,9 +300,9 @@ xb_fil_cur_read( offset + to_read == cursor->statinfo.st_size) { if (to_read < (ib_int64_t) cursor->page_size) { - msg("[%02u] xtrabackup: Warning: junk at the end of " + msg("[%02u] mariabackup: Warning: junk at the end of " "%s:\n", cursor->thread_n, cursor->abs_path); - msg("[%02u] xtrabackup: Warning: offset = %llu, " + msg("[%02u] mariabackup: Warning: offset = %llu, " "to_read = %llu\n", cursor->thread_n, (unsigned long long) offset, @@ -356,13 +356,13 @@ read_retry: page_no < (ib_int64_t) FSP_EXTENT_SIZE * 3) { /* skip doublewrite buffer pages */ xb_a(cursor->page_size == UNIV_PAGE_SIZE); - msg("[%02u] xtrabackup: " + msg("[%02u] mariabackup: " "Page %lu is a doublewrite buffer page, " "skipping.\n", cursor->thread_n, page_no); } else { retry_count--; if (retry_count == 0) { - msg("[%02u] xtrabackup: " + msg("[%02u] mariabackup: " "Error: failed to read page after " "10 retries. File %s seems to be " "corrupted.\n", cursor->thread_n, @@ -370,7 +370,7 @@ read_retry: ret = XB_FIL_CUR_ERROR; break; } - msg("[%02u] xtrabackup: " + msg("[%02u] mariabackup: " "Database page corruption detected at page " "%lu, retrying...\n", cursor->thread_n, page_no); diff --git a/extra/mariabackup/write_filt.cc b/extra/mariabackup/write_filt.cc index 97529fb1726..77c8b9bcc6b 100644 --- a/extra/mariabackup/write_filt.cc +++ b/extra/mariabackup/write_filt.cc @@ -1,5 +1,5 @@ /****************************************************** -XtraBackup: hot backup tool for InnoDB +MariaBackup: hot backup tool for InnoDB (c) 2009-2013 Percona LLC and/or its affiliates. Originally Created 3/3/2009 Yasufumi Kinoshita Written by Alexey Kopytov, Aleksandr Kuzminsky, Stewart Smith, Vadim Tkachenko, @@ -88,7 +88,7 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name, info.zip_size = cursor->zip_size; info.space_id = cursor->space_id; if (!xb_write_delta_metadata(meta_name, &info)) { - msg("[%02u] xtrabackup: Error: " + msg("[%02u] mariabackup: Error: " "failed to write meta info for %s\n", cursor->thread_n, cursor->rel_path); return(FALSE); diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 49467f6f327..2f9761eb0ec 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -1,5 +1,5 @@ /****************************************************** -XtraBackup: hot backup tool for InnoDB +MariaBackup: hot backup tool for InnoDB (c) 2009-2017 Percona LLC and/or its affiliates Originally Created 3/3/2009 Yasufumi Kinoshita Written by Alexey Kopytov, Aleksandr Kuzminsky, Stewart Smith, Vadim Tkachenko, @@ -2370,14 +2370,14 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n) if (write_filter->init != NULL && !write_filter->init(&write_filt_ctxt, dst_name, &cursor)) { - msg("[%02u] xtrabackup: error: " + msg("[%02u] mariabackup: error: " "failed to initialize page write filter.\n", thread_n); goto error; } dstfile = ds_open(ds_data, dst_name, &cursor.statinfo); if (dstfile == NULL) { - msg("[%02u] xtrabackup: error: " + msg("[%02u] mariabackup: error: " "cannot open the destination stream for %s\n", thread_n, dst_name); goto error; @@ -2427,7 +2427,7 @@ error: if (write_filter && write_filter->deinit) { write_filter->deinit(&write_filt_ctxt);; } - msg("[%02u] xtrabackup: Error: " + msg("[%02u] mariabackup: Error: " "xtrabackup_copy_datafile() failed.\n", thread_n); return(TRUE); /*ERROR*/ @@ -2439,10 +2439,10 @@ skip: if (write_filter && write_filter->deinit) { write_filter->deinit(&write_filt_ctxt); } - msg("[%02u] xtrabackup: Warning: We assume the " + msg("[%02u] mariabackup: Warning: We assume the " "table was dropped during xtrabackup execution " "and ignore the file.\n", thread_n); - msg("[%02u] xtrabackup: Warning: skipping tablespace %s.\n", + msg("[%02u] mariabackup: Warning: skipping tablespace %s.\n", thread_n, node_name); return(FALSE); } @@ -2916,7 +2916,7 @@ data_copy_thread_func( /* copy the datafile */ if(xtrabackup_copy_datafile(node, num)) { - msg("[%02u] xtrabackup: Error: " + msg("[%02u] mariabackup: Error: " "failed to copy datafile.\n", num); exit(EXIT_FAILURE); } @@ -4276,7 +4276,7 @@ retry: &success,0); if (!success) { os_file_get_last_error(TRUE); - msg(" xtrabackup: Fatal error: cannot find %s.\n", + msg("mariabackup: Fatal error: cannot find %s.\n", src_path); goto error; @@ -4290,7 +4290,7 @@ retry: if ( ut_memcmp(log_buf + LOG_FILE_WAS_CREATED_BY_HOT_BACKUP, (byte*)"xtrabkup", (sizeof "xtrabkup") - 1) == 0) { - msg(" xtrabackup: 'ib_logfile0' seems to be " + msg("mariabackup: 'ib_logfile0' seems to be " "'xtrabackup_logfile'. will retry.\n"); os_file_close(src_file); @@ -4305,8 +4305,7 @@ retry: goto retry; } - msg(" xtrabackup: Fatal error: cannot find %s.\n", - src_path); + msg("mariabackup: Fatal error: cannot find %s.\n", src_path); os_file_close(src_file); src_file = XB_FILE_UNDEFINED; @@ -6467,7 +6466,7 @@ int main(int argc, char **argv) if ((!xtrabackup_print_param) && (!xtrabackup_prepare) && (strcmp(mysql_data_home, "./") == 0)) { if (!xtrabackup_print_param) usage(); - msg("\nxtrabackup: Error: Please set parameter 'datadir'\n"); + msg("\nmariabackup: Error: Please set parameter 'datadir'\n"); exit(EXIT_FAILURE); } From a02551b0ba220cb138cf3e9cddd82539620c6432 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Wed, 25 Oct 2017 10:10:18 +0000 Subject: [PATCH 096/128] Windows- "my_safe_kill dump" will now also dump child processes This is necessary to analyze hangs on buildbot, because they also happen when mysqltest executes external programs. --- .../lib/My/SafeProcess/safe_kill_win.cc | 136 ++++++++++-------- 1 file changed, 73 insertions(+), 63 deletions(-) diff --git a/mysql-test/lib/My/SafeProcess/safe_kill_win.cc b/mysql-test/lib/My/SafeProcess/safe_kill_win.cc index 37442b2108c..bb884cba11e 100644 --- a/mysql-test/lib/My/SafeProcess/safe_kill_win.cc +++ b/mysql-test/lib/My/SafeProcess/safe_kill_win.cc @@ -28,92 +28,91 @@ #include #include #include +#include -static DWORD find_child(DWORD pid) + +static std::vector find_children(DWORD pid) { HANDLE h= NULL; PROCESSENTRY32 pe={ 0 }; - DWORD child_pid = 0; + std::vector children; + pe.dwSize = sizeof(PROCESSENTRY32); h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(h == INVALID_HANDLE_VALUE) - return 0; + return children; for (BOOL ret = Process32First(h, &pe); ret; ret = Process32Next(h, &pe)) { if (pe.th32ParentProcessID == pid) - { - child_pid = pe.th32ProcessID; - break; - } + children.push_back(pe.th32ProcessID); } CloseHandle(h); - return (child_pid); + return children; } -static int create_dump(DWORD pid) +void dump_single_process(DWORD pid) { + HANDLE file = 0; + HANDLE process= 0; + DWORD size= MAX_PATH; char path[MAX_PATH]; char working_dir[MAX_PATH]; - int ret= -1; - HANDLE process= INVALID_HANDLE_VALUE; - HANDLE file= INVALID_HANDLE_VALUE; - char *p; + char tmpname[MAX_PATH]; - for(;;) + process= OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid); + if (!process) { - process= OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, (DWORD)pid); - if (!process) - { - fprintf(stderr,"safe_kill : cannot open process pid=%u to create dump, last error %u\n", - pid, GetLastError()); - goto exit; - } - - DWORD size= MAX_PATH; - if (QueryFullProcessImageName(process, 0, path, &size) == 0) - { - fprintf(stderr,"safe_kill : cannot read process path for pid %u, last error %u\n", - pid, GetLastError()); - goto exit; - } - const char *filename= strrchr(path, '\\'); - if (filename) - { - filename++; - // We are not interested in my_safe_process.exe, - // since it is only used to start up other programs. - // We're interested however in my_safe_processes' child. - if (strcmp(filename, "my_safe_process.exe") == 0) - { - pid= find_child(pid); - if (!pid) - { - fprintf(stderr,"safe_kill : can't find child process for safe_process.exe\n"); - goto exit; - } - CloseHandle(process); - } - else - break; - } + fprintf(stderr, "safe_kill : cannot open process pid=%u to create dump, last error %u\n", + pid, GetLastError()); + goto exit; } - if ((p= strrchr(path, '.')) == 0) - p= path + strlen(path); + if (QueryFullProcessImageName(process, 0, path, &size) == 0) + { + fprintf(stderr, "safe_kill : cannot read process path for pid %u, last error %u\n", + pid, GetLastError()); + goto exit; + } + + char *filename= strrchr(path, '\\'); + if (filename) + { + filename++; + // We are not interested in dump of some proceses (my_safe_process.exe,cmd.exe) + // since they are only used to start up other programs. + // We're interested however in their children; + const char *exclude_programs[] = {"my_safe_process.exe","cmd.exe", 0}; + for(size_t i=0; exclude_programs[i]; i++) + if (_stricmp(filename, exclude_programs[i]) == 0) + goto exit; + } + else + filename= path; + + // Add .dmp extension + char *p; + if ((p= strrchr(filename, '.')) == 0) + p= filename + strlen(filename); strncpy(p, ".dmp", path + MAX_PATH - p); - /* Create dump in current directory.*/ - const char *filename= strrchr(path, '\\'); - if (filename == 0) - filename= path; - else - filename++; + // Íf file with this name exist, generate unique name with .dmp extension + if (GetFileAttributes(filename) != INVALID_FILE_ATTRIBUTES) + { + if (!GetTempFileName(".", filename, 0, tmpname)) + { + fprintf(stderr, "GetTempFileName failed, last error %u", GetLastError()); + goto exit; + } + strncat(tmpname, ".dmp", sizeof(tmpname)); + filename= tmpname; + } + if (!GetCurrentDirectory(MAX_PATH, working_dir)) { - fprintf(stderr, "GetCurrentDirectory failed, last error %u",GetLastError()); + fprintf(stderr, "GetCurrentDirectory failed, last error %u", GetLastError()); goto exit; } @@ -122,28 +121,39 @@ static int create_dump(DWORD pid) if (file == INVALID_HANDLE_VALUE) { - fprintf(stderr,"safe_kill : CreateFile() failed for file %s, working dir %s, last error = %u\n", + fprintf(stderr, "safe_kill : CreateFile() failed for file %s, working dir %s, last error = %u\n", filename, working_dir, GetLastError()); goto exit; } - if (!MiniDumpWriteDump(process, pid, file, MiniDumpNormal, 0,0,0)) + if (!MiniDumpWriteDump(process, pid, file, MiniDumpNormal, 0, 0, 0)) { fprintf(stderr, "Failed to write minidump to %s, working dir %s, last error %u\n", filename, working_dir, GetLastError()); goto exit; } - ret= 0; fprintf(stderr, "Minidump written to %s, directory %s\n", filename, working_dir); exit: - if(process!= 0 && process != INVALID_HANDLE_VALUE) + if (process != 0 && process != INVALID_HANDLE_VALUE) CloseHandle(process); if (file != 0 && file != INVALID_HANDLE_VALUE) CloseHandle(file); - return ret; +} + + +static int create_dump(DWORD pid, int recursion_depth= 5) +{ + if (recursion_depth < 0) + return 0; + + dump_single_process(pid); + std::vector children= find_children(pid); + for(size_t i=0; i < children.size(); i++) + create_dump(children[i], recursion_depth -1); + return 0; } From fc7b9af2675d086a9c0d9f1d8c11ebc6e7cd82cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 25 Oct 2017 16:21:52 +0300 Subject: [PATCH 097/128] Remove comments to removed parameters MariaDB did not import the Oracle Bug #23481444 (commit 6ca4f693c1ce472e2b1bf7392607c2d1124b4293) from MySQL. Initially, the code changes were disabled, and later removed. Let us remove the last remaining references. --- storage/innobase/row/row0sel.cc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index a47594e3977..f14424dd252 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -2,6 +2,7 @@ Copyright (c) 1997, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. +Copyright (c) 2015, 2017, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -2757,8 +2758,6 @@ row_sel_field_store_in_mysql_format_func( @param[in] field_no templ->rec_field_no or templ->clust_rec_field_no or templ->icp_rec_field_no - or sec field no if clust_templ_for_sec - is TRUE @param[in] templ row template */ static MY_ATTRIBUTE((warn_unused_result)) @@ -2911,10 +2910,6 @@ be needed in the query. @param[in] rec_clust TRUE if the rec in the clustered index @param[in] index index of rec @param[in] offsets array returned by rec_get_offsets(rec) -@param[in] clust_templ_for_sec TRUE if rec belongs to secondary index - but the prebuilt->template is in - clustered index format and it is - used only for end range comparison @return TRUE on success, FALSE if not all columns could be retrieved */ static MY_ATTRIBUTE((warn_unused_result)) ibool From 4ef64e01a7a6ff8b6b7b2a1c1b7725c24b339aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 25 Oct 2017 21:35:33 +0300 Subject: [PATCH 098/128] 5.6.38 --- storage/innobase/dict/dict0stats_bg.cc | 2 +- storage/innobase/fts/fts0fts.cc | 84 +++++++++++++++++++---- storage/innobase/fts/fts0opt.cc | 11 +-- storage/innobase/fts/fts0que.cc | 7 +- storage/innobase/handler/ha_innodb.cc | 2 +- storage/innobase/handler/handler0alter.cc | 51 +++++++++++++- storage/innobase/include/dict0dict.ic | 23 ++++++- storage/innobase/include/dict0mem.h | 4 +- storage/innobase/include/dict0stats_bg.h | 4 +- storage/innobase/row/row0mysql.cc | 13 +++- storage/innobase/row/row0sel.cc | 33 +++++++-- 11 files changed, 192 insertions(+), 42 deletions(-) diff --git a/storage/innobase/dict/dict0stats_bg.cc b/storage/innobase/dict/dict0stats_bg.cc index 975c8a50803..bc8fbe6ece4 100644 --- a/storage/innobase/dict/dict0stats_bg.cc +++ b/storage/innobase/dict/dict0stats_bg.cc @@ -195,7 +195,7 @@ dict_stats_wait_bg_to_stop_using_table( unlocking/locking the data dict */ { while (!dict_stats_stop_bg(table)) { - DICT_STATS_BG_YIELD(trx); + DICT_BG_YIELD(trx); } } diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index a0f0fab5566..a29e046eb84 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2011, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -25,6 +25,7 @@ Full Text Search interface #include "row0mysql.h" #include "row0upd.h" #include "dict0types.h" +#include "dict0stats_bg.h" #include "row0sel.h" #include "fts0fts.h" @@ -867,18 +868,37 @@ fts_drop_index( err = fts_drop_index_tables(trx, index); - fts_free(table); - + for(;;) { + bool retry = false; + if (index->index_fts_syncing) { + retry = true; + } + if (!retry){ + fts_free(table); + break; + } + DICT_BG_YIELD(trx); + } return(err); } - current_doc_id = table->fts->cache->next_doc_id; - first_doc_id = table->fts->cache->first_doc_id; - fts_cache_clear(table->fts->cache); - fts_cache_destroy(table->fts->cache); - table->fts->cache = fts_cache_create(table); - table->fts->cache->next_doc_id = current_doc_id; - table->fts->cache->first_doc_id = first_doc_id; + for(;;) { + bool retry = false; + if (index->index_fts_syncing) { + retry = true; + } + if (!retry){ + current_doc_id = table->fts->cache->next_doc_id; + first_doc_id = table->fts->cache->first_doc_id; + fts_cache_clear(table->fts->cache); + fts_cache_destroy(table->fts->cache); + table->fts->cache = fts_cache_create(table); + table->fts->cache->next_doc_id = current_doc_id; + table->fts->cache->first_doc_id = first_doc_id; + break; + } + DICT_BG_YIELD(trx); + } } else { fts_cache_t* cache = table->fts->cache; fts_index_cache_t* index_cache; @@ -888,9 +908,17 @@ fts_drop_index( index_cache = fts_find_index_cache(cache, index); if (index_cache != NULL) { - if (index_cache->words) { - fts_words_free(index_cache->words); - rbt_free(index_cache->words); + for(;;) { + bool retry = false; + if (index->index_fts_syncing) { + retry = true; + } + if (!retry && index_cache->words) { + fts_words_free(index_cache->words); + rbt_free(index_cache->words); + break; + } + DICT_BG_YIELD(trx); } ib_vector_remove(cache->indexes, *(void**) index_cache); @@ -4611,10 +4639,16 @@ begin_sync: index_cache = static_cast( ib_vector_get(cache->indexes, i)); - if (index_cache->index->to_be_dropped) { + if (index_cache->index->to_be_dropped + || index_cache->index->table->to_be_dropped) { continue; } + index_cache->index->index_fts_syncing = true; + DBUG_EXECUTE_IF("fts_instrument_sync_sleep_drop_waits", + os_thread_sleep(10000000); + ); + error = fts_sync_index(sync, index_cache); if (error != DB_SUCCESS && !sync->interrupted) { @@ -4647,11 +4681,33 @@ begin_sync: end_sync: if (error == DB_SUCCESS && !sync->interrupted) { error = fts_sync_commit(sync); + if (error == DB_SUCCESS) { + for (i = 0; i < ib_vector_size(cache->indexes); ++i) { + fts_index_cache_t* index_cache; + index_cache = static_cast( + ib_vector_get(cache->indexes, i)); + if (index_cache->index->index_fts_syncing) { + index_cache->index->index_fts_syncing + = false; + } + } + } } else { fts_sync_rollback(sync); } rw_lock_x_lock(&cache->lock); + /* Clear fts syncing flags of any indexes incase sync is + interrupeted */ + for (i = 0; i < ib_vector_size(cache->indexes); ++i) { + fts_index_cache_t* index_cache; + index_cache = static_cast( + ib_vector_get(cache->indexes, i)); + if (index_cache->index->index_fts_syncing == true) { + index_cache->index->index_fts_syncing = false; + } + } + sync->interrupted = false; sync->in_progress = false; os_event_set(sync->event); diff --git a/storage/innobase/fts/fts0opt.cc b/storage/innobase/fts/fts0opt.cc index 19098dc00ef..0a9728abe1d 100644 --- a/storage/innobase/fts/fts0opt.cc +++ b/storage/innobase/fts/fts0opt.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2007, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -2970,13 +2970,6 @@ fts_optimize_sync_table( { dict_table_t* table = NULL; - /* Prevent DROP INDEX etc. from running when we are syncing - cache in background. */ - if (!rw_lock_s_lock_nowait(&dict_operation_lock, __FILE__, __LINE__)) { - /* Exit when fail to get dict operation lock. */ - return; - } - table = dict_table_open_on_id(table_id, FALSE, DICT_TABLE_OP_NORMAL); if (table) { @@ -2986,8 +2979,6 @@ fts_optimize_sync_table( dict_table_close(table, FALSE, FALSE); } - - rw_lock_s_unlock(&dict_operation_lock); } /**********************************************************************//** diff --git a/storage/innobase/fts/fts0que.cc b/storage/innobase/fts/fts0que.cc index 2c44a21a8f2..fd1199ac434 100644 --- a/storage/innobase/fts/fts0que.cc +++ b/storage/innobase/fts/fts0que.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2007, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -3632,6 +3632,11 @@ fts_query_free( fts_doc_ids_free(query->deleted); } + if (query->intersection) { + fts_query_free_doc_ids(query, query->intersection); + query->intersection = NULL; + } + if (query->doc_ids) { fts_query_free_doc_ids(query, query->doc_ids); } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 0c02c6808ff..142f1b94a1e 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -15834,7 +15834,7 @@ buffer_pool_load_now( const void* save) /*!< in: immediate result from check function */ { - if (*(my_bool*) save) { + if (*(my_bool*) save && !srv_read_only_mode) { buf_load_start(); } } diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index e772208ed72..437d38e29de 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2005, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -5607,7 +5607,47 @@ ha_innobase::commit_inplace_alter_table( break; } - DICT_STATS_BG_YIELD(trx); + DICT_BG_YIELD(trx); + } + + /* Make a concurrent Drop fts Index to wait until sync of that + fts index is happening in the background */ + for (;;) { + bool retry = false; + + for (inplace_alter_handler_ctx** pctx = ctx_array; + *pctx; pctx++) { + int count =0; + ha_innobase_inplace_ctx* ctx + = static_cast(*pctx); + DBUG_ASSERT(new_clustered == ctx->need_rebuild()); + + if (dict_fts_index_syncing(ctx->old_table)) { + count++; + if (count == 100) { + fprintf(stderr, + "Drop index waiting for background sync" + "to finish\n"); + } + retry = true; + } + + if (new_clustered && dict_fts_index_syncing(ctx->new_table)) { + count++; + if (count == 100) { + fprintf(stderr, + "Drop index waiting for background sync" + "to finish\n"); + } + retry = true; + } + } + + if (!retry) { + break; + } + + DICT_BG_YIELD(trx); } /* Apply the changes to the data dictionary tables, for all @@ -5923,8 +5963,13 @@ foreign_fail: ut_d(dict_table_check_for_dup_indexes( ctx->new_table, CHECK_ABORTED_OK)); - ut_a(fts_check_cached_index(ctx->new_table)); +#ifdef UNIV_DEBUG + if (!(ctx->new_table->fts != NULL + && ctx->new_table->fts->cache->sync->in_progress)) { + ut_a(fts_check_cached_index(ctx->new_table)); + } +#endif if (new_clustered) { /* Since the table has been rebuilt, we remove all persistent statistics corresponding to the diff --git a/storage/innobase/include/dict0dict.ic b/storage/innobase/include/dict0dict.ic index 6fc6098f3d9..9a53dae10ab 100644 --- a/storage/innobase/include/dict0dict.ic +++ b/storage/innobase/include/dict0dict.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -909,6 +909,27 @@ dict_table_x_lock_indexes( } } +/*********************************************************************//** +Returns true if the particular FTS index in the table is still syncing +in the background, false otherwise. +@param [in] table Table containing FTS index +@return True if sync of fts index is still going in the background */ +UNIV_INLINE +bool +dict_fts_index_syncing( + dict_table_t* table) +{ + dict_index_t* index; + + for (index = dict_table_get_first_index(table); + index != NULL; + index = dict_table_get_next_index(index)) { + if (index->index_fts_syncing) { + return(true); + } + } + return(false); +} /*********************************************************************//** Release the exclusive locks on all index tree. */ UNIV_INLINE diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h index 4b49976642d..1f66bc02b5e 100644 --- a/storage/innobase/include/dict0mem.h +++ b/storage/innobase/include/dict0mem.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. This program is free software; you can redistribute it and/or modify it under @@ -606,6 +606,8 @@ struct dict_index_t{ dict_sys->mutex. Other changes are protected by index->lock. */ dict_field_t* fields; /*!< array of field descriptions */ + bool index_fts_syncing;/*!< Whether the fts index is + still syncing in the background */ #ifndef UNIV_HOTBACKUP UT_LIST_NODE_T(dict_index_t) indexes;/*!< list of indexes of the table */ diff --git a/storage/innobase/include/dict0stats_bg.h b/storage/innobase/include/dict0stats_bg.h index 82cd2b468b9..bf77cd125fb 100644 --- a/storage/innobase/include/dict0stats_bg.h +++ b/storage/innobase/include/dict0stats_bg.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2012, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -59,7 +59,7 @@ dict_stats_recalc_pool_del( /** Yield the data dictionary latch when waiting for the background thread to stop accessing a table. @param trx transaction holding the data dictionary locks */ -#define DICT_STATS_BG_YIELD(trx) do { \ +#define DICT_BG_YIELD(trx) do { \ row_mysql_unlock_data_dictionary(trx); \ os_thread_sleep(250000); \ row_mysql_lock_data_dictionary(trx); \ diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index 09c20911ec9..8d2d9e1c76b 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2000, 2017, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -56,6 +56,7 @@ Created 9/17/2000 Heikki Tuuri #include "log0log.h" #include "btr0sea.h" #include "fil0fil.h" +#include "srv0srv.h" #include "ibuf0ibuf.h" #include "fts0fts.h" #include "fts0types.h" @@ -3870,6 +3871,16 @@ row_drop_table_for_mysql( ut_ad(!table->fts->add_wq); ut_ad(lock_trx_has_sys_table_locks(trx) == 0); + for (;;) { + bool retry = false; + if (dict_fts_index_syncing(table)) { + retry = true; + } + if (!retry) { + break; + } + DICT_BG_YIELD(trx); + } row_mysql_unlock_data_dictionary(trx); fts_optimize_remove_table(table); row_mysql_lock_data_dictionary(trx); diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index f321e0ba94a..bd311a99b77 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -2964,8 +2964,8 @@ row_sel_store_mysql_rec( const ulint* offsets, bool clust_templ_for_sec) { - ulint i; - std::vector template_col; + ulint i; + std::vector template_col; ut_ad(rec_clust || index == prebuilt->index); ut_ad(!rec_clust || dict_index_is_clust(index)); @@ -2976,13 +2976,24 @@ row_sel_store_mysql_rec( } if (clust_templ_for_sec) { - /* Store all clustered index field of + /* Store all clustered index column of secondary index record. */ for (i = 0; i < dict_index_get_n_fields( prebuilt->index); i++) { ulint sec_field = dict_index_get_nth_field_pos( index, prebuilt->index, i); - template_col.push_back(sec_field); + + if (sec_field == ULINT_UNDEFINED) { + template_col.push_back(NULL); + continue; + } + + const dict_field_t* field = + dict_index_get_nth_field(index, sec_field); + const dict_col_t* col = + dict_field_get_col(field); + + template_col.push_back(col); } } @@ -3000,9 +3011,13 @@ row_sel_store_mysql_rec( == 0); if (clust_templ_for_sec) { - std::vector::iterator it; + std::vector::iterator it; + const dict_field_t* field = + dict_index_get_nth_field(index, field_no); + const dict_col_t* col = dict_field_get_col( + field); it = std::find(template_col.begin(), - template_col.end(), field_no); + template_col.end(), col); if (it == template_col.end()) { continue; @@ -4345,6 +4360,10 @@ rec_loop: if (page_rec_is_supremum(rec)) { + DBUG_EXECUTE_IF("compare_end_range", + if (end_loop < 100) { + end_loop = 100; + }); /** Compare the last record of the page with end range passed to InnoDB when there is no ICP and number of loops in row_search_for_mysql for rows found but not @@ -4385,7 +4404,7 @@ rec_loop: /** In case of prebuilt->fetch, set the error in prebuilt->end_range. */ - if (prebuilt->n_fetch_cached > 0) { + if (next_buf != NULL) { prebuilt->end_range = true; } From 98470fc800fb03cecc101b53e0f2d0bfe653cb7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 25 Oct 2017 22:04:17 +0300 Subject: [PATCH 099/128] 5.6.38 --- storage/perfschema/pfs.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/storage/perfschema/pfs.cc b/storage/perfschema/pfs.cc index 18c58294b5c..b8848d108ff 100644 --- a/storage/perfschema/pfs.cc +++ b/storage/perfschema/pfs.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. 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 @@ -41,6 +41,7 @@ #include "sp_head.h" #include "pfs_digest.h" +using std::min; /** @page PAGE_PERFORMANCE_SCHEMA The Performance Schema main page MySQL PERFORMANCE_SCHEMA implementation. @@ -2018,7 +2019,8 @@ static void set_thread_account_v1(const char *user, int user_len, DBUG_ASSERT((uint) user_len <= sizeof(pfs->m_username)); DBUG_ASSERT((host != NULL) || (host_len == 0)); DBUG_ASSERT(host_len >= 0); - DBUG_ASSERT((uint) host_len <= sizeof(pfs->m_hostname)); + + host_len= min(host_len, sizeof(pfs->m_hostname)); if (unlikely(pfs == NULL)) return; From 230350872c1aa9d2613e6f20305f2cebdce03097 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 26 Oct 2017 00:04:42 +0200 Subject: [PATCH 100/128] update C/C --- libmariadb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmariadb b/libmariadb index 931450c3f87..7e53ab36981 160000 --- a/libmariadb +++ b/libmariadb @@ -1 +1 @@ -Subproject commit 931450c3f8793f2653f6292847cbc005b30ed3b6 +Subproject commit 7e53ab369815590ff92913b581d43eb7786f2fe2 From e99c7c8334f842a6515a3116fe2cafd59266a40e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 25 Oct 2017 19:12:08 +0200 Subject: [PATCH 101/128] MDEV-13836 mariadb_config & mysql_config output differ compile C/C with system zlib, when the server uses system zlib --- cmake/mariadb_connector_c.cmake | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cmake/mariadb_connector_c.cmake b/cmake/mariadb_connector_c.cmake index 6773314313b..fe2bcfa4a1f 100644 --- a/cmake/mariadb_connector_c.cmake +++ b/cmake/mariadb_connector_c.cmake @@ -7,10 +7,8 @@ ENDIF() SET(CONC_WITH_SIGNCODE ${SIGNCODE}) SET(SIGN_OPTIONS ${SIGNTOOL_PARAMETERS}) -IF(TARGET zlib) - GET_PROPERTY(ZLIB_LIBRARY_LOCATION TARGET zlib PROPERTY LOCATION) -ELSE() - SET(ZLIB_LIBRARY_LOCATION ${ZLIB_LIBRARY}) +IF(NOT TARGET zlib) + SET(CONC_WITH_EXTERNAL_ZLIB ON) ENDIF() IF(SSL_DEFINES MATCHES "YASSL") From 91dc18dcf57d1c762c0395396eccc1726a1d5bcd Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 26 Oct 2017 16:40:21 +1100 Subject: [PATCH 102/128] innodb: remove recv_sys_mem_free - unused Signed-off-by: Daniel Black --- storage/innobase/log/log0recv.cc | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index fd0940b08df..0e21682a7e2 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -452,35 +452,6 @@ recv_sys_close() recv_spaces.clear(); } -/********************************************************//** -Frees the recovery system memory. */ -void -recv_sys_mem_free(void) -/*===================*/ -{ - if (recv_sys != NULL) { - if (recv_sys->addr_hash != NULL) { - hash_table_free(recv_sys->addr_hash); - } - - if (recv_sys->heap != NULL) { - mem_heap_free(recv_sys->heap); - } - - if (recv_sys->flush_start != NULL) { - os_event_destroy(recv_sys->flush_start); - } - - if (recv_sys->flush_end != NULL) { - os_event_destroy(recv_sys->flush_end); - } - - ut_free(recv_sys->buf); - ut_free(recv_sys); - recv_sys = NULL; - } -} - /************************************************************ Reset the state of the recovery system variables. */ void From cfb33617481878ddf684d7a9567e7368aac76681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Oct 2017 11:02:19 +0300 Subject: [PATCH 103/128] MDEV-12569 InnoDB suggests filing bugs at MySQL bug tracker Replace all references in InnoDB and XtraDB error log messages to bugs.mysql.com with references to https://jira.mariadb.org/. --- storage/innobase/btr/btr0btr.c | 2 +- storage/innobase/dict/dict0load.c | 2 +- storage/innobase/ibuf/ibuf0ibuf.c | 12 ++++++------ storage/innobase/include/mtr0log.ic | 2 +- storage/innobase/lock/lock0lock.c | 4 ++-- storage/innobase/row/row0ins.c | 2 +- storage/innobase/row/row0sel.c | 2 +- storage/innobase/row/row0umod.c | 2 +- storage/innobase/row/row0upd.c | 2 +- storage/innobase/srv/srv0srv.c | 2 +- storage/innobase/trx/trx0purge.c | 2 +- storage/innobase/trx/trx0rec.c | 6 +++--- storage/innobase/ut/ut0dbg.c | 2 +- storage/xtradb/btr/btr0btr.c | 2 +- storage/xtradb/dict/dict0load.c | 2 +- storage/xtradb/ibuf/ibuf0ibuf.c | 12 ++++++------ storage/xtradb/include/mtr0log.ic | 2 +- storage/xtradb/lock/lock0lock.c | 4 ++-- storage/xtradb/row/row0ins.c | 2 +- storage/xtradb/row/row0sel.c | 2 +- storage/xtradb/row/row0umod.c | 2 +- storage/xtradb/row/row0upd.c | 2 +- storage/xtradb/srv/srv0srv.c | 2 +- storage/xtradb/trx/trx0purge.c | 2 +- storage/xtradb/trx/trx0rec.c | 6 +++--- storage/xtradb/ut/ut0dbg.c | 2 +- 26 files changed, 42 insertions(+), 42 deletions(-) diff --git a/storage/innobase/btr/btr0btr.c b/storage/innobase/btr/btr0btr.c index 58d816559d4..0cfc5bfb1c4 100644 --- a/storage/innobase/btr/btr0btr.c +++ b/storage/innobase/btr/btr0btr.c @@ -1716,7 +1716,7 @@ btr_page_reorganize_low( "InnoDB: Error: page old max ins size %lu" " new max ins size %lu\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned long) data_size1, (unsigned long) data_size2, (unsigned long) max_ins_size1, (unsigned long) max_ins_size2); diff --git a/storage/innobase/dict/dict0load.c b/storage/innobase/dict/dict0load.c index 07910328952..4ee5f4809c4 100644 --- a/storage/innobase/dict/dict0load.c +++ b/storage/innobase/dict/dict0load.c @@ -1948,7 +1948,7 @@ err_exit: "InnoDB: and recreate the foreign key table" " or the referenced table.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Latest foreign key error printout:\n%s\n", dict_foreign_err_buf); diff --git a/storage/innobase/ibuf/ibuf0ibuf.c b/storage/innobase/ibuf/ibuf0ibuf.c index eee5402daa7..aa944455077 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.c +++ b/storage/innobase/ibuf/ibuf0ibuf.c @@ -3904,7 +3904,7 @@ ibuf_insert_to_index_page_low( (ulong) zip_size, (ulong) old_bits); fputs("InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); DBUG_RETURN(NULL); } @@ -3969,7 +3969,7 @@ dump: " Please run CHECK TABLE on\n" "InnoDB: your tables.\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com!\n", stderr); + " https://jira.mariadb.org/\n", stderr); DBUG_VOID_RETURN; } @@ -4142,7 +4142,7 @@ ibuf_set_del_mark( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4206,7 +4206,7 @@ ibuf_delete( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4277,7 +4277,7 @@ ibuf_restore_pos( } else { fprintf(stderr, "InnoDB: ERROR: Submit the output to" - " http://bugs.mysql.com\n" + " https://jira.mariadb.org/\n" "InnoDB: ibuf cursor restoration fails!\n" "InnoDB: ibuf record inserted to page %lu:%lu\n", (ulong) space, (ulong) page_no); @@ -4601,7 +4601,7 @@ ibuf_merge_or_delete_for_page( "InnoDB: to determine if they are corrupt" " after this.\n\n" "InnoDB: Please submit a detailed bug report" - " to http://bugs.mysql.com\n\n", + " to https://jira.mariadb.org/\n\n", (ulong) page_no, (ulong) fil_page_get_type(block->frame)); diff --git a/storage/innobase/include/mtr0log.ic b/storage/innobase/include/mtr0log.ic index ebb94c1f257..2f60193c799 100644 --- a/storage/innobase/include/mtr0log.ic +++ b/storage/innobase/include/mtr0log.ic @@ -214,7 +214,7 @@ mlog_write_initial_log_record_fast( "%d on page %lu of space %lu in the " "doublewrite buffer, continuing anyway.\n" "Please post a bug report to " - "bugs.mysql.com.\n", + "https://jira.mariadb.org/\n", type, offset, space); ut_ad(0); } diff --git a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c index 559b3687b79..6a3ca383ade 100644 --- a/storage/innobase/lock/lock0lock.c +++ b/storage/innobase/lock/lock0lock.c @@ -1799,7 +1799,7 @@ lock_rec_enqueue_waiting( dict_index_name_print(stderr, trx, index); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } @@ -3899,7 +3899,7 @@ lock_table_enqueue_waiting( ut_print_name(stderr, trx, TRUE, table->name); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/innobase/row/row0ins.c b/storage/innobase/row/row0ins.c index 5bdaf4b722b..ec3815ed8cd 100644 --- a/storage/innobase/row/row0ins.c +++ b/storage/innobase/row/row0ins.c @@ -956,7 +956,7 @@ row_ins_foreign_check_on_constraint( rec_print(stderr, clust_rec, clust_index); fputs("\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n", stderr); + " https://jira.mariadb.org/\n", stderr); ut_ad(0); err = DB_SUCCESS; diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index f5f8153e116..d697fef3f52 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -2964,7 +2964,7 @@ row_sel_get_clust_rec_for_mysql( fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/innobase/row/row0umod.c b/storage/innobase/row/row0umod.c index 69831fee8ac..44509d67c7b 100644 --- a/storage/innobase/row/row0umod.c +++ b/storage/innobase/row/row0umod.c @@ -492,7 +492,7 @@ row_undo_mod_del_unmark_sec_and_undo_update( trx_print(stderr, trx, 0); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); break; case ROW_FOUND: diff --git a/storage/innobase/row/row0upd.c b/storage/innobase/row/row0upd.c index 4b23165cc59..25fe6f09c4e 100644 --- a/storage/innobase/row/row0upd.c +++ b/storage/innobase/row/row0upd.c @@ -1615,7 +1615,7 @@ row_upd_sec_index_entry( fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); break; case ROW_FOUND: diff --git a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c index d5b0208382f..e52134f803f 100644 --- a/storage/innobase/srv/srv0srv.c +++ b/storage/innobase/srv/srv0srv.c @@ -2480,7 +2480,7 @@ loop: " was greater\n" "InnoDB: than the new log sequence number %llu!\n" "InnoDB: Please submit a bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", old_lsn, new_lsn); ut_ad(0); } diff --git a/storage/innobase/trx/trx0purge.c b/storage/innobase/trx/trx0purge.c index 0b3f389964b..59f8cd52afa 100644 --- a/storage/innobase/trx/trx0purge.c +++ b/storage/innobase/trx/trx0purge.c @@ -739,7 +739,7 @@ trx_purge_rseg_get_next_history_log( "InnoDB: but its length is still" " reported as %lu! Make a detailed bug\n" "InnoDB: report, and submit it" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (ulong) trx_sys->rseg_history_len); ut_ad(0); } diff --git a/storage/innobase/trx/trx0rec.c b/storage/innobase/trx/trx0rec.c index cc209bbc213..94e22d688ca 100644 --- a/storage/innobase/trx/trx0rec.c +++ b/storage/innobase/trx/trx0rec.c @@ -1019,7 +1019,7 @@ trx_undo_update_rec_get_update( fprintf(stderr, "\n" "InnoDB: but index has only %lu fields\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Run also CHECK TABLE ", (ulong) dict_index_get_n_fields(index)); ut_print_name(stderr, trx, TRUE, index->table_name); @@ -1533,7 +1533,7 @@ trx_undo_prev_version_build( fprintf(stderr, "InnoDB: Error: trying to access" " update undo rec for non-clustered index %s\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n" + " https://jira.mariadb.org/\n" "InnoDB: index record ", index->name); rec_print(stderr, index_rec, index); fputs("\n" @@ -1610,7 +1610,7 @@ trx_undo_prev_version_build( "InnoDB: but the table id in the" " undo record is wrong\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Run also CHECK TABLE %s\n", index->table_name, index->table_name); } diff --git a/storage/innobase/ut/ut0dbg.c b/storage/innobase/ut/ut0dbg.c index c37b37ab606..8c77723bd73 100644 --- a/storage/innobase/ut/ut0dbg.c +++ b/storage/innobase/ut/ut0dbg.c @@ -63,7 +63,7 @@ ut_dbg_assertion_failed( fputs("InnoDB: We intentionally generate a memory trap.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com.\n" + " to https://jira.mariadb.org/\n" "InnoDB: If you get repeated assertion failures" " or crashes, even\n" "InnoDB: immediately after the mysqld startup, there may be\n" diff --git a/storage/xtradb/btr/btr0btr.c b/storage/xtradb/btr/btr0btr.c index 76c2d9cd8ae..e21f03c731d 100644 --- a/storage/xtradb/btr/btr0btr.c +++ b/storage/xtradb/btr/btr0btr.c @@ -1758,7 +1758,7 @@ btr_page_reorganize_low( "InnoDB: Error: page old max ins size %lu" " new max ins size %lu\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned long) data_size1, (unsigned long) data_size2, (unsigned long) max_ins_size1, (unsigned long) max_ins_size2); diff --git a/storage/xtradb/dict/dict0load.c b/storage/xtradb/dict/dict0load.c index 5184746e48e..3582e2cf085 100644 --- a/storage/xtradb/dict/dict0load.c +++ b/storage/xtradb/dict/dict0load.c @@ -2021,7 +2021,7 @@ err_exit: "InnoDB: and recreate the foreign key table" " or the referenced table.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Latest foreign key error printout:\n%s\n", dict_foreign_err_buf); diff --git a/storage/xtradb/ibuf/ibuf0ibuf.c b/storage/xtradb/ibuf/ibuf0ibuf.c index 7811b6ba19e..6afcbd7b378 100644 --- a/storage/xtradb/ibuf/ibuf0ibuf.c +++ b/storage/xtradb/ibuf/ibuf0ibuf.c @@ -3952,7 +3952,7 @@ ibuf_insert_to_index_page_low( (ulong) zip_size, (ulong) old_bits); fputs("InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); DBUG_RETURN(NULL); } @@ -4017,7 +4017,7 @@ dump: " Please run CHECK TABLE on\n" "InnoDB: your tables.\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com!\n", stderr); + " https://jira.mariadb.org/\n", stderr); DBUG_VOID_RETURN; } @@ -4190,7 +4190,7 @@ ibuf_set_del_mark( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4254,7 +4254,7 @@ ibuf_delete( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4325,7 +4325,7 @@ ibuf_restore_pos( } else { fprintf(stderr, "InnoDB: ERROR: Submit the output to" - " http://bugs.mysql.com\n" + " https://jira.mariadb.org/\n" "InnoDB: ibuf cursor restoration fails!\n" "InnoDB: ibuf record inserted to page %lu:%lu\n", (ulong) space, (ulong) page_no); @@ -4649,7 +4649,7 @@ ibuf_merge_or_delete_for_page( "InnoDB: to determine if they are corrupt" " after this.\n\n" "InnoDB: Please submit a detailed bug report" - " to http://bugs.mysql.com\n\n", + " to https://jira.mariadb.org/\n\n", (ulong) page_no, (ulong) fil_page_get_type(block->frame)); diff --git a/storage/xtradb/include/mtr0log.ic b/storage/xtradb/include/mtr0log.ic index 5ef3f915b94..3458d4903c9 100644 --- a/storage/xtradb/include/mtr0log.ic +++ b/storage/xtradb/include/mtr0log.ic @@ -215,7 +215,7 @@ mlog_write_initial_log_record_fast( "%d on page %lu of space %lu in the " "doublewrite buffer, continuing anyway.\n" "Please post a bug report to " - "bugs.mysql.com.\n", + "https://jira.mariadb.org/\n", type, offset, space); ut_ad(0); } diff --git a/storage/xtradb/lock/lock0lock.c b/storage/xtradb/lock/lock0lock.c index 4d7587af288..6e574eb282e 100644 --- a/storage/xtradb/lock/lock0lock.c +++ b/storage/xtradb/lock/lock0lock.c @@ -1803,7 +1803,7 @@ lock_rec_enqueue_waiting( dict_index_name_print(stderr, trx, index); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } @@ -3914,7 +3914,7 @@ lock_table_enqueue_waiting( ut_print_name(stderr, trx, TRUE, table->name); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/xtradb/row/row0ins.c b/storage/xtradb/row/row0ins.c index 6de9a95a694..e6c92080e41 100644 --- a/storage/xtradb/row/row0ins.c +++ b/storage/xtradb/row/row0ins.c @@ -957,7 +957,7 @@ row_ins_foreign_check_on_constraint( rec_print(stderr, clust_rec, clust_index); fputs("\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n", stderr); + " https://jira.mariadb.org/\n", stderr); ut_ad(0); err = DB_SUCCESS; diff --git a/storage/xtradb/row/row0sel.c b/storage/xtradb/row/row0sel.c index 3b2568c6834..69b364600b2 100644 --- a/storage/xtradb/row/row0sel.c +++ b/storage/xtradb/row/row0sel.c @@ -2999,7 +2999,7 @@ row_sel_get_clust_rec_for_mysql( fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/xtradb/row/row0umod.c b/storage/xtradb/row/row0umod.c index 69831fee8ac..44509d67c7b 100644 --- a/storage/xtradb/row/row0umod.c +++ b/storage/xtradb/row/row0umod.c @@ -492,7 +492,7 @@ row_undo_mod_del_unmark_sec_and_undo_update( trx_print(stderr, trx, 0); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); break; case ROW_FOUND: diff --git a/storage/xtradb/row/row0upd.c b/storage/xtradb/row/row0upd.c index 64ae0e3f1d0..c5c2ca5ee8a 100644 --- a/storage/xtradb/row/row0upd.c +++ b/storage/xtradb/row/row0upd.c @@ -1635,7 +1635,7 @@ row_upd_sec_index_entry( fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); break; case ROW_FOUND: diff --git a/storage/xtradb/srv/srv0srv.c b/storage/xtradb/srv/srv0srv.c index 6d7327c187f..8d6b4ba6e60 100644 --- a/storage/xtradb/srv/srv0srv.c +++ b/storage/xtradb/srv/srv0srv.c @@ -2957,7 +2957,7 @@ loop: " was greater\n" "InnoDB: than the new log sequence number %llu!\n" "InnoDB: Please submit a bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", old_lsn, new_lsn); ut_ad(0); } diff --git a/storage/xtradb/trx/trx0purge.c b/storage/xtradb/trx/trx0purge.c index d343a73c9d8..bc094df0364 100644 --- a/storage/xtradb/trx/trx0purge.c +++ b/storage/xtradb/trx/trx0purge.c @@ -747,7 +747,7 @@ trx_purge_rseg_get_next_history_log( "InnoDB: but its length is still" " reported as %lu! Make a detailed bug\n" "InnoDB: report, and submit it" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (ulong) trx_sys->rseg_history_len); ut_ad(0); } diff --git a/storage/xtradb/trx/trx0rec.c b/storage/xtradb/trx/trx0rec.c index fc38f81c594..f3f1d9a2d96 100644 --- a/storage/xtradb/trx/trx0rec.c +++ b/storage/xtradb/trx/trx0rec.c @@ -1032,7 +1032,7 @@ trx_undo_update_rec_get_update( fprintf(stderr, "\n" "InnoDB: but index has only %lu fields\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Run also CHECK TABLE ", (ulong) dict_index_get_n_fields(index)); ut_print_name(stderr, trx, TRUE, index->table_name); @@ -1546,7 +1546,7 @@ trx_undo_prev_version_build( fprintf(stderr, "InnoDB: Error: trying to access" " update undo rec for non-clustered index %s\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n" + " https://jira.mariadb.org/\n" "InnoDB: index record ", index->name); rec_print(stderr, index_rec, index); fputs("\n" @@ -1623,7 +1623,7 @@ trx_undo_prev_version_build( "InnoDB: but the table id in the" " undo record is wrong\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Run also CHECK TABLE %s\n", index->table_name, index->table_name); } diff --git a/storage/xtradb/ut/ut0dbg.c b/storage/xtradb/ut/ut0dbg.c index c37b37ab606..8c77723bd73 100644 --- a/storage/xtradb/ut/ut0dbg.c +++ b/storage/xtradb/ut/ut0dbg.c @@ -63,7 +63,7 @@ ut_dbg_assertion_failed( fputs("InnoDB: We intentionally generate a memory trap.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com.\n" + " to https://jira.mariadb.org/\n" "InnoDB: If you get repeated assertion failures" " or crashes, even\n" "InnoDB: immediately after the mysqld startup, there may be\n" From c9ee5d99606616e7c25bd1177cd21756359eca98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 25 Oct 2017 23:40:54 +0300 Subject: [PATCH 104/128] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit c07064d31a4d7ee0533fec144648d93873c0dd17 Author: Olivier Bertrand Date: Wed Oct 18 00:11:00 2017 +0200 - Update version number modified: storage/connect/ha_connect.cc - Include MONGO in all Java enabled distributions Mongo will be enabled only for 10.2 and 10.3 modified: storage/connect/CMakeLists.txt - Change JDBC_SUPPORT to JAVA_SUPPORT which also replaces MONGO_SUPPORT MONGO_SUPPORT is now just used to enable the MONGO table type modified: storage/connect/filter.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/mongo.cpp modified: storage/connect/mycat.cc modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Move MakeSelector function from FILTER to mongo.cpp modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/cmgoconn.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/mongo.cpp - Do mongo_init only on first use of the MongoDB C Driver This will permit to delay load the mongo lib on Windows modified: storage/connect/cmgoconn.cpp modified: storage/connect/cmgoconn.h modified: storage/connect/ha_connect.cc - Replace NEW_VAR by a test on MYSQL_VERSION_ID modified: storage/connect/ha_connect.cc - Suppress enable_mongo session variable modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc - Make some function headers identical in .h and .cc file (replacing const char* by PCSZ) modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - Change a parameter type from uchar* to const uchar* (for ScanRecord and CheckRecord) modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - Changes on LIKE and NOT LIKE does not fix a bug yet modified: storage/connect/ha_connect.cc - Suppress PIVOT_SUPPORT (PIVOT type is unconditionnal) modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc - Change the strz function from inline to static modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - export the JavaConn class and the MgoColumns and IsNum functions modified: storage/connect/javaconn.h modified: storage/connect/json.h modified: storage/connect/mongo.h - Fix MDEV-13924 modified: storage/connect/jdbconn.cpp - Make a temporary fix for the compiler bug in CalculateArray modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp - Typo modified: storage/connect/jdbccat.h modified: storage/connect/reldef.h modified: storage/connect/tabext.h modified: storage/connect/tabjmg.cpp modified: storage/connect/tabxml.h modified: storage/connect/valblk.h modified: storage/connect/value.h modified: storage/connect/xtable.h - Fix a bug in MONGO tests by changing 'MONGO' to $TYPE modified: storage/connect/mysql-test/connect/t/mongo_test.inc - Record test results to reflect all changes modified: storage/connect/mysql-test/connect/r/json_java_2.result modified: storage/connect/mysql-test/connect/r/json_java_3.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_java_2.result modified: storage/connect/mysql-test/connect/r/mongo_java_3.result commit 3da90fd112e7d5ee6f0bd9c3fc3eeb4529b30e93 Author: Olivier Bertrand Date: Wed Oct 11 12:21:56 2017 +0200 Fix MDEV-13924 modified: storage/connect/jdbconn.cpp commit 2566e67da80f291414f02c7dd6a8ca3557161d26 Author: Olivier Bertrand Date: Mon Sep 11 16:38:41 2017 +0200 Enable MONGO for the C driver. Modified: modified: storage/connect/CMakeLists.txt commit 27ae11db830c5d62bbf8b8b13cab976b74efe7dd Author: Olivier Bertrand Date: Tue Sep 5 19:52:04 2017 +0200 - Update version number modified: storage/connect/ha_connect.cc - Regard columns with binary charset as string (was binary) modified: storage/connect/ha_connect.cc modified: storage/connect/tabmysql.cpp modified: storage/connect/tabutil.cpp - Support length 0 for CHAR and VARCHAR modified: storage/connect/ha_connect.cc modified: storage/connect/reldef.cpp modified: storage/connect/value.cpp - Add ACCEPT option for void columns in discovery modified: storage/connect/tabjson.cpp - Update some tests because of above change modified: storage/connect/mysql-test/connect/r/json_java_2.result modified: storage/connect/mysql-test/connect/r/json_java_3.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_java_2.result modified: storage/connect/mysql-test/connect/r/mongo_java_3.result modified: storage/connect/mysql-test/connect/r/odbc_oracle.result modified: storage/connect/mysql-test/connect/r/updelx.result modified: storage/connect/mysql-test/connect/t/mongo_test.inc commit f6ee6cd1d42d861fa50fea8d9a7079347b7ddfd6 Author: Olivier Bertrand Date: Sat Sep 2 16:06:10 2017 +0200 - Fix MongoDB C Driver adding for CMAKE. Requires MongoDB C Driver version 1.7 now available modified: storage/connect/CMakeLists.txt - Add more trace to tbl_thread.test (to debug failure) modified: storage/connect/mysql-test/connect/r/tbl_thread.result modified: storage/connect/mysql-test/connect/t/tbl_thread.test commit dbef1242c41fcfde56471cb41cbf98c83224a8a3 Author: Olivier Bertrand Date: Thu Aug 31 12:19:07 2017 +0200 - Import common version of CONNECT used with all MariaDB versions modified: storage/connect/CMakeLists.txt modified: storage/connect/JavaWrappers.jar modified: storage/connect/array.cpp modified: storage/connect/connect.cc modified: storage/connect/filamvct.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/jdbccat.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mycat.cc modified: storage/connect/mycat.h modified: storage/connect/myconn.cpp modified: storage/connect/mysql-test/connect/disabled.def modified: storage/connect/mysql-test/connect/r/alter_xml.result modified: storage/connect/mysql-test/connect/r/drop-open-error.result modified: storage/connect/mysql-test/connect/r/infoschema-9739.result modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/r/json.result modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/r/json_udf_bin.result modified: storage/connect/mysql-test/connect/r/mysql_exec.result modified: storage/connect/mysql-test/connect/r/mysql_new.result modified: storage/connect/mysql-test/connect/r/tbl.result modified: storage/connect/mysql-test/connect/r/unsigned.result modified: storage/connect/mysql-test/connect/r/upd.result modified: storage/connect/mysql-test/connect/r/updelx.result modified: storage/connect/mysql-test/connect/r/xml.result modified: storage/connect/mysql-test/connect/r/xml_grant.result modified: storage/connect/mysql-test/connect/r/xml_html.result modified: storage/connect/mysql-test/connect/r/xml_mdev5261.result modified: storage/connect/mysql-test/connect/r/xml_mult.result modified: storage/connect/mysql-test/connect/r/xml_zip.result modified: storage/connect/mysql-test/connect/r/zip.result modified: storage/connect/mysql-test/connect/t/alter_xml.test modified: storage/connect/mysql-test/connect/t/drop-open-error.test modified: storage/connect/mysql-test/connect/t/infoschema-9739.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test modified: storage/connect/mysql-test/connect/t/json.test modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/mysql-test/connect/t/json_udf.test modified: storage/connect/mysql-test/connect/t/json_udf2.inc modified: storage/connect/mysql-test/connect/t/json_udf_bin.test modified: storage/connect/mysql-test/connect/t/mysql_exec.test modified: storage/connect/mysql-test/connect/t/mysql_new.test modified: storage/connect/mysql-test/connect/t/tbl.test modified: storage/connect/mysql-test/connect/t/unsigned.test modified: storage/connect/mysql-test/connect/t/upd.test modified: storage/connect/mysql-test/connect/t/xml.test modified: storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/mysql-test/connect/t/xml_html.test modified: storage/connect/mysql-test/connect/t/xml_mdev5261.test modified: storage/connect/mysql-test/connect/t/xml_mult.test modified: storage/connect/mysql-test/connect/t/xml_zip.test modified: storage/connect/mysql-test/connect/t/zip.test modified: storage/connect/myutil.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/odbconn.h modified: storage/connect/os.h modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/table.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabtbl.cpp modified: storage/connect/tabtbl.h modified: storage/connect/tabxml.cpp modified: storage/connect/user_connect.cc modified: storage/connect/valblk.cpp modified: storage/connect/valblk.h modified: storage/connect/value.cpp commit 7f557db749a424a8df10e17fb8f322ff70eac1a2 Author: Olivier Bertrand Date: Sun Aug 27 01:11:10 2017 +0200 Fix MDEV-13621 modified: storage/connect/ha_connect.cc commit ed77b56787870fccfab4dffb17424592cfb2c5fa Author: Olivier Bertrand Date: Sun Aug 20 15:06:34 2017 +0200 - Fix MDEV-12422 by implementing a fake virtual "check" function. modified: storage/connect/ha_connect.h commit dab7553a07e1d3cc447dbd79cd7a6cc6062c9cb1 Author: Olivier Bertrand Date: Sun Aug 13 16:21:30 2017 +0200 Fix MDEV-13503 Modified: storage/connect/jdbconn.cpp commit f02ce8ada52cc0a9e52478578517c032bcd442c7 Author: Olivier Bertrand Date: Wed Aug 9 18:43:28 2017 +0200 - Fix MDEV-13463 unescape table name during detection of table structure modified: storage/connect/myconn.cpp - Fix test failures modified: storage/connect/mysql-test/connect/r/mysql.result modified: storage/connect/mysql-test/connect/r/mysql_new.result modified: storage/connect/tabjson.cpp commit f4d9214ad508722ed1f2dd885a22fd28f12debfd Author: Olivier Bertrand Date: Tue Aug 8 15:59:20 2017 +0200 - Fix bug returning pointer to a stack string in JVALUE::GetString modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp - Fix a compiler bug happening on some configuration and platforms in JSNX::CalculateArray modified: storage/connect/jsonudf.cpp - Set default Schema as current directory This fix several bugs like: Fail to make JSON catalog tables Fail to use zipped file made by a file LOAD modified: storage/connect/reldef.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Change the way column Jpath is retrieved modified: storage/connect/colblk.h modified: storage/connect/filter.cpp modified: storage/connect/filter.h - Fix failing ODBC test by enabling nullable for catalog tables + pval[n]->SetNullable(true); modified: storage/connect/mysql-test/connect/r/odbc_oracle.result modified: storage/connect/odbconn.cpp commit fe22a0669e63fbda098f6dcc97dd0f2f44587797 Author: Olivier Bertrand Date: Sat Jul 22 18:40:20 2017 +0200 -- Fix GetUser that can cause memory leak when xp is modified. The old xp must be poped or is never freed. Add usrmut mutex to protect all multi-user storage handling. Use compatible parmut mutex instead of parsec on Windows. modified: storage/connect/ha_connect.cc modified: storage/connect/plgdbutl.cpp modified: storage/connect/user_connect.cc commit a7f1acddafd301435872e71503f31dd3fc027a80 Author: Olivier Bertrand Date: Wed Jul 19 17:51:35 2017 +0200 Parenthesize set null in SetValue_pval. Modified /storage/connect/value.cpp commit 4715a589560f824db756c9f607ea99f05f967a61 Author: Olivier Bertrand Date: Wed Jul 19 00:19:03 2017 +0200 -- Check whether USERBLK still exists in PlugExit modified: storage/connect/connect.cc modified: storage/connect/plugutil.cpp modified: storage/connect/jsonudf.cpp -- Update result from json_udf test modified: storage/connect/mysql-test/connect/r/json_udf.result commit c8918e1a7b6f781738a840578923e6c56cbe3861 Author: Olivier Bertrand Date: Tue Jul 18 13:33:49 2017 +0200 -- Trace Sarea allocation and freeing modified: storage/connect/connect.cc modified: storage/connect/plugutil.cpp modified: storage/connect/user_connect.cc -- Null Json values where not mark as null in JSNX::SetJsonValue This was added in TYPE_NULL (declared as TYPE_VOID) modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp -- Null JValues are ignored in JSNX::CalculateArray Also done in tabjson.cpp for JSONCOL::CalculateArray modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp -- Null JSON values now represented by connect_json_null session variable modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp -- JVALUE has size = 1 modified: storage/connect/json.h -- Fix by vuvova because Debian compilation failure. modified: storage/connect/value.cpp commit 5b4e72c17a9fce81a959f1809958179b5f4774ba Author: Olivier Bertrand Date: Tue Jul 4 19:16:38 2017 +0200 - Fix MDEV-13239 Suppress the restriction about no blanks around , and = in the OPTION_LIST. modified: storage/connect/ha_connect.cc commit 0747149d5fc6110f01168bfba2511aff5d774f8f Author: Olivier Bertrand Date: Fri Jun 30 18:15:24 2017 +0200 - tdbp not initialized when catched exception in CntGetTDB (connect.cc line 188) modified: storage/connect/connect.h - CheckCleanup should sometimes doing cleanup on pure info Sometimes MariaDB loops on info to get the size of all tables in a database. This can sometimes fail by exhausted memory. CheckCleanup now have a force boolean parameter (defaulting to false) modified: storage/connect/ha_connect.cc modified: storage/connect/user_connect.cc modified: storage/connect/user_connect.h Change the copyright of some source files modified: storage/connect/connect.cc modified: storage/connect/connect.h modified: storage/connect/engmsg.h modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/msgid.h modified: storage/connect/mycat.cc modified: storage/connect/mycat.h modified: storage/connect/os.h modified: storage/connect/osutil.c modified: storage/connect/osutil.h modified: storage/connect/user_connect.cc modified: storage/connect/user_connect.h commit 48bc288c676f72203ec7ca3e619e8c1fed2c7248 Author: Olivier Bertrand Date: Sun Jun 11 17:17:11 2017 +0200 Fix unhandled exception: Force type int for ENUMs. Replace remaining longjmp. modified: storage/connect/array.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filter.cpp modified: storage/connect/jdbconn.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabvir.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/value.cpp modified: storage/connect/xobject.cpp commit 01af518ebbc8416df759918587b5ae7ace9d97ae Author: Olivier Bertrand Date: Thu Jun 8 18:14:33 2017 +0200 Fix MDEV-12973: Blank columns querying SQL Server Added support of NCHAR, NVARCHAR an ROWID JDBC types. modified: storage/connect/jdbconn.cpp commit b7ea5496f24e96f97ce3d76416e65b01a87e32b5 Author: Olivier Bertrand Date: Tue Jun 6 17:26:51 2017 +0200 Fix MDEV-12969. Crash during inserting binary value in Connect table. Seems due to making an index on unsigned integer that triggers an un-handled THROW. modified: storage/connect/tabdos.cpp modified: storage/connect/xindex.cpp commit 79d1ccb481f8bfc2a6208c0831f4310488be619f Author: Olivier Bertrand Date: Thu Jun 1 10:10:39 2017 +0200 Protect Info function against NULL g pointer modified: storage/connect/ha_connect.cc Update failing test modified: storage/connect/mysql-test/connect/r/drop-open-error.result modified: storage/connect/mysql-test/connect/t/drop-open-error.test commit 65bc45636ac3489a0d9776d00c8d42365c4581a4 Author: Olivier Bertrand Date: Sun May 28 00:56:15 2017 +0200 restore last version commit 1387a3a28fb1649cf77b119364044b5170997a78 Author: Olivier Bertrand Date: Sun May 28 00:53:14 2017 +0200 new version commit e720e502133704020c8a5b24b440fbc791f3bb31 Author: Olivier Bertrand Date: Tue May 23 22:59:44 2017 +0200 Fix bug: Discovery of JSON table fails in DEBUG mode when NO MONGO support. (tdb->Uri is uninitialized) modified: storage/connect/tabjson.cpp commit 37235293b0c412d2793b300523496de3751e8b3f Author: Olivier Bertrand Date: Tue May 23 14:48:49 2017 +0200 Fix gcc compiler warnings reported by Sergei modified: storage/connect/array.cpp modified: storage/connect/array.h modified: storage/connect/blkfil.cpp modified: storage/connect/blkfil.h modified: storage/connect/block.h modified: storage/connect/colblk.cpp modified: storage/connect/colblk.h modified: storage/connect/csort.h modified: storage/connect/filamvct.cpp modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/global.h modified: storage/connect/json.h modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabcol.cpp modified: storage/connect/tabcol.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabjson.cpp modified: storage/connect/table.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabsys.h modified: storage/connect/tabxml.h modified: storage/connect/value.cpp modified: storage/connect/value.h modified: storage/connect/xindex.cpp modified: storage/connect/xindex.h modified: storage/connect/xobject.cpp modified: storage/connect/xobject.h modified: storage/connect/xtable.h Set values as nullable when retrieving catalog info modified: storage/connect/jdbconn.cpp modified: storage/connect/mysql-test/connect/r/odbc_oracle.result modified: storage/connect/odbconn.cpp Change format of Jpath modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/mysql-test/connect/r/json.result modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/r/json_udf_bin.result modified: storage/connect/mysql-test/connect/r/zip.result modified: storage/connect/mysql-test/connect/t/json.test modified: storage/connect/mysql-test/connect/t/json_udf.test modified: storage/connect/mysql-test/connect/t/json_udf_bin.test modified: storage/connect/mysql-test/connect/t/zip.test modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/tabmgo.cpp Change null representation from ??? to modified: storage/connect/json.cpp Change the name of UDF that are equal to a native JSON function name modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/mysql-test/connect/t/json_udf2.inc Fix bug in making JSON project info modified: storage/connect/mongofam.cpp Fix COMPUTE when one argument is null modified: storage/connect/value.cpp Value is null only when nullable modified: storage/connect/value.h commit 8f66819611fdc1339fddda1ba701746b8a61f9c2 Author: Olivier Bertrand Date: Fri May 12 11:52:03 2017 +0200 Fix column types wrongly set to TYPE_STRING in JSONColumns when the column contains NULL values. modified: storage/connect/tabjson.cpp MDEV-12651: change error code to ER_ILLEGAL_HA in rnd_pos. modified: storage/connect/ha_connect.cc commit ea7081bfa2a0a53958c1a9e8f57c2b758ac97c4d Author: Olivier Bertrand Date: Thu May 11 17:23:02 2017 +0200 Fix wrong value of JSON column When null and the column is NOT NULL the value was not reset. modified: storage/connect/tabjson.cpp commit 2195f5dc02b0979e700b76c33b9e4cbc42492bbf Author: Olivier Bertrand Date: Thu May 11 10:35:14 2017 +0200 Fix converting bstr_t string to set error message modified: storage/connect/domdoc.cpp Fix MDEV-12768: -Wformat-overflow compile warnings modified: storage/connect/global.h modified: storage/connect/jsonudf.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/tabvct.cpp Typo (in external_lock) modified: storage/connect/ha_connect.cc Remove some warnings modified: storage/connect/odbconn.cpp modified: storage/connect/tabmysql.cpp Add MEM_RESERVE flag to virtualAlloc modified: storage/connect/plgdbutl.cpp Fix MDEV-12573: Accept=1 may show incorrect value for NULL column in CONNECT TBL modified: storage/connect/tabutil.cpp Fix wrong setting of key size when greater than 2G modified: storage/connect/xindex.cpp commit 9d6677b5eac399ada32ffd282e2028a4e253035a Author: Olivier Bertrand Date: Mon May 8 14:46:15 2017 +0200 _Null_terminated_ not recognized by gcc commit 40a56581b0ec2ec8d80ac472a969ca7a68e30695 Author: Olivier Bertrand Date: Mon May 8 12:42:12 2017 +0200 Fixing MDEV-12149: compile errors on Windows with /Zc:strictStrings Introduce typedef PCSZ and replace PSZ by it where it matters All done on CONNECT but compile still fails because of an included system file modified: storage/connect/array.cpp modified: storage/connect/catalog.h modified: storage/connect/colblk.cpp modified: storage/connect/colblk.h modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamdbf.cpp modified: storage/connect/filamdbf.h modified: storage/connect/filamfix.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filamvct.h modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/libdoc.cpp modified: storage/connect/macutil.cpp modified: storage/connect/myconn.cpp modified: storage/connect/myutil.cpp modified: storage/connect/myutil.h modified: storage/connect/odbconn.cpp modified: storage/connect/odbconn.h modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/plugutil.cpp modified: storage/connect/preparse.h modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfix.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabjson.cpp modified: storage/connect/table.cpp modified: storage/connect/tabmac.cpp modified: storage/connect/tabmgo.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabpivot.cpp modified: storage/connect/tabpivot.h modified: storage/connect/tabsys.cpp modified: storage/connect/tabsys.h modified: storage/connect/tabutil.cpp modified: storage/connect/tabutil.h modified: storage/connect/tabvir.cpp modified: storage/connect/tabvir.h modified: storage/connect/tabxml.cpp modified: storage/connect/tabxml.h modified: storage/connect/tabzip.cpp modified: storage/connect/tabzip.h modified: storage/connect/valblk.cpp modified: storage/connect/valblk.h modified: storage/connect/value.cpp modified: storage/connect/value.h modified: storage/connect/xindex.cpp modified: storage/connect/xobject.cpp modified: storage/connect/xobject.h modified: storage/connect/xtable.h commit e7d91cd78310948c51ee67c532dca1c6a32fc677 Author: Olivier Bertrand Date: Sat May 6 23:43:02 2017 +0200 Prepare fixing MDEV-12149 compile errors on Windows with /Zc:strictStrings Introduce typedef PCSZ and replace PSZ by it where it matters modified: storage/connect/colblk.h modified: storage/connect/connect.cc modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamdbf.cpp modified: storage/connect/filamdbf.h modified: storage/connect/filamtxt.h modified: storage/connect/filamvct.cpp modified: storage/connect/filamvct.h modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/jdbccat.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/odbccat.h modified: storage/connect/odbconn.cpp modified: storage/connect/odbconn.h modified: storage/connect/os.h modified: storage/connect/plgdbsem.h modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.h modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabfix.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/tabmgo.h modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabsys.h modified: storage/connect/tabwmi.cpp modified: storage/connect/tabwmi.h modified: storage/connect/tabxml.cpp modified: storage/connect/tabxml.h modified: storage/connect/tabzip.h modified: storage/connect/xobject.cpp modified: storage/connect/xobject.h modified: storage/connect/xtable.h commit d75d61cd6f505119f11ddaf42b6de087c8cbbdc8 Author: Olivier Bertrand Date: Fri May 5 23:56:16 2017 +0200 Fix MDEV-12603 Insert replaces values in ZIP file modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h Fix MDEV-12686 Handle null in json Fix MDEV-12688 Insert does not handle type TINYINT modified: storage/connect/json.cpp modified: storage/connect/tabjson.cpp commit fd166e03773ed729ac952647deb32458cc835790 Author: Olivier Bertrand Date: Thu May 4 18:49:00 2017 +0200 Fix MDEV-12653 Cannot add index for ZIP CONNECT table modified: storage/connect/filamzip.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/tabdos.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/xindex.cpp commit ce3c7cd97284fb3edf4e0de6797678d5a54d0702 Author: Olivier Bertrand Date: Wed May 3 10:39:32 2017 +0200 Handle error return from SetPath commit 2d85b10060c5ea63dc61561407a6f784db8841ef Author: Olivier Bertrand Date: Wed May 3 09:10:26 2017 +0200 Fix gcc compile error. modified: storage/connect/tabmul.cpp commit cd337a3730828e3287b0b291430940209bc52594 Author: Olivier Bertrand Date: Wed May 3 01:06:00 2017 +0200 Fix MDEV-12587 MariaDB CONNECT DIR Type - Subfolder Option: SELECT Query Never Ends modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h Work on MDEV-12667 Crash when using JSON tables modified: storage/connect/tabmgo.cpp modified: storage/connect/connect.cc modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp Work on MONGO and MGO types modified: storage/connect/mongofam.cpp modified: storage/connect/tabmgo.cpp modified: storage/connect/tabmgo.h Change Base offset for DIR tables on Linux modified: storage/connect/reldef.cpp Typo modified: storage/connect/catalog.h modified: storage/connect/mycat.cc modified: storage/connect/mycat.h Disable all json tests modified: storage/connect/mysql-test/connect/disabled.def commit 2f9db4ef705414cd84eef9ee78626779aff76678 Author: Olivier Bertrand Date: Sat Apr 29 23:33:10 2017 +0200 Fix MDEV-12631 valgrind warning for zipped tables modified: storage/connect/filamzip.cpp Add to STRING a member for testing OOM condition modified: storage/connect/xtable.h Work on MONGO type and add some of its features to JSON MGO tables modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/ha_connect.cc modified: storage/connect/mongofam.cpp modified: storage/connect/mongofam.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/tabmgo.cpp modified: storage/connect/tabmgo.h commit b6135bb51e924892f0fc5ebf13e9f5c0980e059d Author: Olivier Bertrand Date: Wed Apr 26 18:38:32 2017 +0200 Continue working on MONGO tables modified: storage/connect/tabmgo.cpp modified: storage/connect/tabmgo.h Add Trc to STRING allowing to test for truncation (ex oom) modified: storage/connect/ha_connect.cc modified: storage/connect/tabext.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/xobject.cpp modified: storage/connect/xobject.h commit 36206acc2f71db897d037b4b8fe7257012327439 Author: Olivier Bertrand Date: Tue Apr 25 10:58:34 2017 +0200 Work on new MONGO table type Handle discovery, insert, update and delete Add support for Pipeline modified: storage/connect/tabmgo.cpp modified: storage/connect/tabmgo.h Handle double call to CondPush Cond moved to TDB modified: storage/connect/ha_connect.cc modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/table.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/xtable.h Add building Mongo selector to FILTER modified: storage/connect/filter.cpp modified: storage/connect/filter.h Change Print function of values (needed by FILTER) modified: storage/connect/value.cpp modified: storage/connect/value.h Fix crash when dbname is null forJSON MGO tables modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h Fix MDEV-12520: Decimal values can be truncated for JDBC tables modified: storage/connect/jdbconn.cpp Fix bug. Date value was null when retrieved from a json expanded array. modified: storage/connect/tabjson.cpp commit 0149f9c2a192b7603619a57c3ff71463258b1121 Author: Olivier Bertrand Date: Mon Apr 17 10:44:51 2017 +0200 Add MONGO table type new file: storage/connect/tabmgo.cpp new file: storage/connect/tabmgo.h modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc modified: storage/connect/plgdbsem.h Fix crash when dbname is null forJSON MGO tables modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h commit 95af77b1f734a30742d1671e3223d5454d238809 Author: Olivier Bertrand Date: Fri Apr 14 12:58:47 2017 +0200 Comment out in CMakeLists.txt commit ff704368c050e61e0fe1cdc08bccc3aec09dddd5 Author: Olivier Bertrand Date: Thu Apr 13 23:52:39 2017 +0200 Add mongoDB access to json tables. Finalize replacement of longjmp by throw. modified: storage/connect/CMakeLists.txt modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filter.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/tabmul.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabsys.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabvir.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp modified: storage/connect/xobject.cpp commit 9262ae65fc66a19f40e53568dd22ea1666c2d4fb Author: Olivier Bertrand Date: Thu Apr 13 21:30:33 2017 +0200 Add mongoDB access to json tables. Filalize replacement oflongjmp by throw. modified: storage/connect/CMakeLists.txt modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filter.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/tabmul.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabsys.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabvir.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp modified: storage/connect/xobject.cpp commit 2c16792995d98fe2c98eb6c6575ba30b3653ca25 Author: Olivier Bertrand Date: Thu Apr 6 19:45:19 2017 +0200 Fix bug. Date value was null when retrieved from a json expanded array. modified: storage/connect/tabjson.cpp Assume timestamp is in milliseconds when it is a big integer that is multiple of 1000. modified: storage/connect/value.cpp commit fcfcd99e64256ecff7a6ec35aefdb0d35cfd25c0 Merge: 332c6176903 64a37f6cab0 Author: Olivier Bertrand Date: Thu Apr 6 00:44:53 2017 +0200 Commit resolved files commit 332c617690357047dfc125defb7a6a5bf104e319 Author: Olivier Bertrand Date: Wed Apr 5 10:22:58 2017 +0200 Export TDBJSN class so it can be used by EOM tables modified: storage/connect/filamtxt.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h commit 64a37f6cab054213aeadd9708acc66cbd8f239e7 Merge: 85239bdfebd a7bb9e8fdbd Author: Jan Lindström Date: Wed Apr 5 09:43:36 2017 +0300 Merge pull request #352 from grooverdan/10.1-xtradb-fil_crypt_rotate_page xtradb: fil_crypt_rotate_page, space_id should be compared to TRX_SYS_SPACE commit a7bb9e8fdbdd5a3a01910117ef54c0fe09374de2 Author: Daniel Black Date: Wed Apr 5 16:29:08 2017 +1000 xtradb: fil_crypt_rotate_page, space_id should be compared to TRX_SYS_SPACE not space like 9a218f4fb871c1169dd6015a3be9d965929dbd1f fil_crypt_rotate_page - space_id should be compared to TRX_SYS_SPACE not space Signed-off-by: Daniel Black commit 85239bdfebd60de2798c79271a057cfde16e5f00 Merge: 9505c968393 9a218f4fb87 Author: Jan Lindström Date: Wed Apr 5 08:40:47 2017 +0300 Merge pull request #350 from grooverdan/10.1-TRX_SYS_PAGE_NO fil_crypt_rotate_page - space_id should be compared to TRX_SYS_SPACE not space commit 9a218f4fb871c1169dd6015a3be9d965929dbd1f Author: Daniel Black Date: Tue Apr 4 15:47:21 2017 +1000 fil_crypt_rotate_page - space_id should be compared to TRX_SYS_SPACE not space Fixes compile error that highlights problem: /source/storage/innobase/fil/fil0crypt.cc: In function 'void fil_crypt_rotate_page(const key_state_t*, rotate_thread_t*)': /source/storage/innobase/fil/fil0crypt.cc:1770:15: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if (space == TRX_SYS_SPACE && offset == TRX_SYS_PAGE_NO) { Signed-off-by: Daniel Black commit 9505c9683930290c1e028043940ae8512a6ca040 Author: Marko Mäkelä Date: Mon Apr 3 19:36:54 2017 +0300 MDEV-12428 SIGSEGV in buf_page_decrypt_after_read() during DDL Also, some MDEV-11738/MDEV-11581 post-push fixes. In MariaDB 10.1, there is no fil_space_t::is_being_truncated field, and the predicates fil_space_t::stop_new_ops and fil_space_t::is_stopping() are interchangeable. I requested the fil_space_t::is_stopping() to be added in the review, but some added checks for fil_space_t::stop_new_ops were not replaced with calls to fil_space_t::is_stopping(). buf_page_decrypt_after_read(): In this low-level I/O operation, we must look up the tablespace if it exists, even though future I/O operations have been blocked on it due to a pending DDL operation, such as DROP TABLE or TRUNCATE TABLE or other table-rebuilding operations (ALTER, OPTIMIZE). Pass a parameter to fil_space_acquire_low() telling that we are performing a low-level I/O operation and the fil_space_t::is_stopping() status should be ignored. commit ac8218a0be280ac834904e5579554d9ea3f92aeb Author: Sergei Golubchik Date: Fri Mar 31 17:40:42 2017 +0200 fix Ninja builds for AWS SDK specify BUILD_BYPRODUCTS, ninja needs it commit 31896aa6e21fd112b929350156b2995b4033506d Author: Sergei Golubchik Date: Fri Mar 31 15:25:35 2017 +0200 put all aws_key_management plugin files into plugin/aws_key_management that is, download AWS SDK there, not into the builddir root. and .gitignore them all. commit 9de7386f6f029985e65e02a1d98240f6808020aa Author: Vladislav Vaintroub Date: Fri Mar 31 16:01:37 2017 +0000 AWS KMS plugin : Fix building in case AWS C++ SDK was preinstalled into non-standard compiler/linker path (e.g vcpkg on Windows). Also fix linking with static preinstalled aws c++ sdk libraries commit a00517ac9707ffd51c092f5af5d198c5ee789bb4 Author: Sergei Golubchik Date: Tue Mar 28 19:34:51 2017 +0200 restore the correct linking of ed25519 plugin * add a clarifying comment * apply /wd4244 /wd4146 to ref10 source files, not to the library commit 9ab9a28b5d9ff7fd175ae64b0d9e3c984dfb0abf Author: Sergei Golubchik Date: Mon Mar 27 11:04:06 2017 +0200 disable innodb snappy for release builds commit c56b896c17f7f4992ef871c51673b059a70795d4 Author: Jan Lindström Date: Tue Mar 28 12:28:09 2017 +0300 Fix test failure on debug_key_management test. commit 8bd1f06c5adb748ccab11f75262b7b0f1f5b92d0 Author: Olivier Bertrand Date: Mon Mar 27 15:51:39 2017 +0200 Return to original version of jdbc.test commit efe99828739e4e570aeb7e6a370dbef0b1c33605 Author: Olivier Bertrand Date: Mon Mar 27 15:40:07 2017 +0200 Fix crash when a line is not ended by \n. modified: storage/connect/filamap.cpp Add specifying a password when reading zipped tables. modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h Try Vaintroub suggestion modified: storage/connect/mysql-test/connect/t/jdbc.test commit ba298b1f022aa5e1247d07a97325c0a09bdd1dc2 Merge: 716188f1d40 c51fc679f50 Author: Marko Mäkelä Date: Fri Mar 24 18:20:09 2017 +0200 Merge 10.0 into 10.1 commit 716188f1d407acf8181966396d6c0923716f4546 Author: Vladislav Vaintroub Date: Fri Mar 24 10:02:31 2017 +0100 Fix some warnings on Windows compilation - silence warnings in ed25519 reference implementation - fix signed/unsigned warning in popular header item_func.h commit d7c35a999203c98e772241f1c7858253dd96ac89 Author: Vladislav Vaintroub Date: Thu Mar 23 19:28:36 2017 +0000 Fix compiler error commit e5b67a46bcb75a751f5906f19694971bc803d67c Author: Vladislav Vaintroub Date: Thu Mar 23 11:48:56 2017 +0000 MDEV-12345 Performance : replace calls to clock() inside trx_start_low() by THD::start_utime commit 09a2107b1b2f5567b8a50afec9e54a33284c6233 Merge: bbf0c9d4c35 0d622bed4f1 Author: Sergei Golubchik Date: Tue Mar 21 19:20:44 2017 +0100 Merge branch '10.0' into 10.1 commit bbf0c9d4c35034c8634cd9607712d94fac089127 Author: Sergei Golubchik Date: Thu Mar 16 09:07:20 2017 +0100 cleanup: pfs_upgrade* tests commit 386ef08704de7b8070823e5519a530dad259fe11 Author: Sergei Golubchik Date: Mon Mar 13 10:54:08 2017 +0100 MDEV-12233 main.mysql_upgrade_noengine fails in buildbot on ppc64le verify that tests don't leave mysql_upgrade_info in datadir commit cf1ca7473604d640ad3f20d1ec89d293b9748c73 Author: Olivier Bertrand Date: Sat Mar 18 12:42:46 2017 +0100 Typo commit d9b7433c98e6001b32d4489125a3366c79be14b1 Author: Olivier Bertrand Date: Sat Mar 18 10:40:51 2017 +0100 Fix MDEV-12220: add MODE_READX to permissible index read modified: storage/connect/connect.cc commit 932a4401f092f6fac1ad4242cc1923dffa56f9cf Author: Olivier Bertrand Date: Fri Mar 17 19:00:30 2017 +0100 Fix MDEV-12220: Crash when doing UPDATE or DELETE on an external table (ODBC, JDBC, MYSQL) with a WHERE clause on an indexed column. Also fix a bugs in TDBEXT::MakeCommand (use of uninitialised Quote) Add in this function the eventual Schema (database) prefixing. modified: storage/connect/connect.cc modified: storage/connect/tabext.cpp commit b1ec35b90303446d2f1a5810455bcafbc091f928 Author: Jan Lindström Date: Thu Mar 16 17:30:13 2017 +0200 Add assertions when key rotation list is used. commit c333cae652491998c34526ab0b5bfc3ecb2fe474 Author: =Ian Gilfillan Date: Thu Mar 16 13:35:36 2017 +0200 MDEV-11964 Add more stub missing man pages commit 854359ffc519292470d29ebcbfe9416968b56da0 Author: Vladislav Vaintroub Date: Tue Mar 14 20:44:25 2017 +0000 Fix AWS KMS plugin's compile error Do not include base64.h, it was recently removed. commit 50eb40a2a8aa3af6cc271f6028f4d6d74301d030 Author: Jan Lindström Date: Tue Mar 14 12:56:01 2017 +0200 MDEV-11738: Mariadb uses 100% of several of my 8 cpus doing nothing MDEV-11581: Mariadb starts InnoDB encryption threads when key has not changed or data scrubbing turned off Background: Key rotation is based on background threads (innodb-encryption-threads) periodically going through all tablespaces on fil_system. For each tablespace current used key version is compared to max key age (innodb-encryption-rotate-key-age). This process naturally takes CPU. Similarly, in same time need for scrubbing is investigated. Currently, key rotation is fully supported on Amazon AWS key management plugin only but InnoDB does not have knowledge what key management plugin is used. This patch re-purposes innodb-encryption-rotate-key-age=0 to disable key rotation and background data scrubbing. All new tables are added to special list for key rotation and key rotation is based on sending a event to background encryption threads instead of using periodic checking (i.e. timeout). fil0fil.cc: Added functions fil_space_acquire_low() to acquire a tablespace when it could be dropped concurrently. This function is used from fil_space_acquire() or fil_space_acquire_silent() that will not print any messages if we try to acquire space that does not exist. fil_space_release() to release a acquired tablespace. fil_space_next() to iterate tablespaces in fil_system using fil_space_acquire() and fil_space_release(). Similarly, fil_space_keyrotation_next() to iterate new list fil_system->rotation_list where new tables. are added if key rotation is disabled. Removed unnecessary functions fil_get_first_space_safe() fil_get_next_space_safe() fil_node_open_file(): After page 0 is read read also crypt_info if it is not yet read. btr_scrub_lock_dict_func() buf_page_check_corrupt() buf_page_encrypt_before_write() buf_merge_or_delete_for_page() lock_print_info_all_transactions() row_fts_psort_info_init() row_truncate_table_for_mysql() row_drop_table_for_mysql() Use fil_space_acquire()/release() to access fil_space_t. buf_page_decrypt_after_read(): Use fil_space_get_crypt_data() because at this point we might not yet have read page 0. fil0crypt.cc/fil0fil.h: Lot of changes. Pass fil_space_t* directly to functions needing it and store fil_space_t* to rotation state. Use fil_space_acquire()/release() when iterating tablespaces and removed unnecessary is_closing from fil_crypt_t. Use fil_space_t::is_stopping() to detect when access to tablespace should be stopped. Removed unnecessary fil_space_get_crypt_data(). fil_space_create(): Inform key rotation that there could be something to do if key rotation is disabled and new table with encryption enabled is created. Remove unnecessary functions fil_get_first_space_safe() and fil_get_next_space_safe(). fil_space_acquire() and fil_space_release() are used instead. Moved fil_space_get_crypt_data() and fil_space_set_crypt_data() to fil0crypt.cc. fsp_header_init(): Acquire fil_space_t*, write crypt_data and release space. check_table_options() Renamed FIL_SPACE_ENCRYPTION_* TO FIL_ENCRYPTION_* i_s.cc: Added ROTATING_OR_FLUSHING field to information_schema.innodb_tablespace_encryption to show current status of key rotation. commit a2f34809e55c492af9a23d43840133f01528df7b Author: Daniel Bartholomew Date: Tue Mar 14 09:56:05 2017 -0400 bump the VERSION commit 98be67266dc2f331e64ed5d875154fc6352f262a Author: Vladislav Vaintroub Date: Mon Mar 13 23:13:24 2017 +0000 Fix truncation of affected rows and insert id in select_insert::send_ok_packet commit 9dc10d5851ab4ff38d81e68858de56fbb1d6743d Merge: 68be011cf2e 032678ad184 Author: Marko Mäkelä Date: Mon Mar 13 19:17:34 2017 +0200 Merge 10.0 into 10.1 commit 68be011cf2ec96a622db857fe9c418380d106d0d Author: Elena Stepanova Date: Sat Mar 11 20:59:52 2017 +0200 Updated list of unstable tests for 10.1.22 commit 20338443197590beb943e8e1eed17cf95d2a51e0 Author: Sergei Golubchik Date: Sat Mar 11 12:42:55 2017 +0100 test failures in buildbot commit e5f5457b6fdada826fca23e17b6925e2f9634a03 Author: Olivier Bertrand Date: Sat Mar 11 14:10:34 2017 +0100 Also order the result of multiple=1 table, otherwise being different on Linux and Windows causing the test to fail. modified: storage/connect/mysql-test/connect/r/mul_new.result modified: storage/connect/mysql-test/connect/t/mul_new.test commit f0ec34002a98eeb669cb254eaba6a3d678a58cc1 Author: iangilfillan Date: Fri Feb 10 13:26:55 2017 +0200 Correct FSF address commit 2a0ae1c90acc6332606144719764cb5fc730bf3b Author: Sergei Golubchik Date: Tue Mar 7 19:21:42 2017 +0100 MDEV-11965 -Werror should not appear in released tarballs commit 5d40ed864eb91314c894c713cd0d3d03c62ec8c5 Author: Sergei Golubchik Date: Tue Mar 7 19:17:37 2017 +0100 MDEV-11752 Unsafe strmov - function definition in include/m_string.h assert that strmov() cannot be used on overlapping strings. (because strpcpy cannot) commit e0a03ca30aa6f91daf7ea519a57d85e54dc49927 Author: Sergei Golubchik Date: Mon Mar 6 01:27:34 2017 +0100 ed25519 plugin: simplify the api various ed25519/ref10 api simplifications for our specific use case commit 7120118a5e97477778715ebdc8e4fba548a6dc87 Author: Sergei Golubchik Date: Sun Mar 5 16:18:16 2017 +0100 MDEV-12160 Modern alternative to the SHA1 authentication plugin ED25519 authentication plugin commit 269ab56f8b4056ec63e712ba305761dd835ea10e Author: Sergei Golubchik Date: Mon Mar 6 22:42:00 2017 +0100 small plugin API related fixes * define MYSQL_DYNAMIC_PLUGIN only for server plugins * don't typedef my_bool in mysql.h if plugin.h has already done it * fix the include guard in plugin.h commit 227f63db3b0b9a1ce29c37f1c104ba5d204d0392 Author: Sergei Golubchik Date: Mon Mar 6 19:37:48 2017 +0100 cleanup: sort various lists of services commit 0877eff4012ab1184112814a3492d23bf266f848 Author: Sergei Golubchik Date: Mon Mar 6 19:34:22 2017 +0100 thd_rnd service commit 6305533de2fd38d43c149d4d7c847f65d68205c7 Author: Sergei Golubchik Date: Mon Mar 6 17:32:18 2017 +0100 Auth Plugin API: add THD to MYSQL_SERVER_AUTH_INFO so that auth plugins could use various thd services commit 051851b9a673e38d12612ea92d8a8913b8f0ca45 Author: Sergei Golubchik Date: Mon Mar 6 17:05:03 2017 +0100 base64 service commit 70a2efde0352052fce5a44481055542e0b050048 Author: Sergei Golubchik Date: Mon Mar 6 15:31:25 2017 +0100 remove old API for SHA2 commit d6a7aece0826e0c115eb21912527c77596c1305e Author: Sergei Golubchik Date: Mon Mar 6 13:06:03 2017 +0100 my_sha2 service commit bd1139ad2722cf8717cd1aaac4431f369d39562f Author: Sergei Golubchik Date: Mon Mar 6 12:45:36 2017 +0100 cleanup: generalize my_sha1.cc move most of the code into my_sha.ic, making it independent from the actual SHAx variant. commit 6cddd12ad6eeea82b1087574e5dd5cb9accd7641 Author: Sergei Golubchik Date: Sun Mar 5 15:50:32 2017 +0100 make sql_udf.cc to shorten dlerror() messages just as sql_plugin.cc does commit 2b1bbac5fa881b8e135dbad3e0ff6b9e2763e24d Author: Sergei Golubchik Date: Sun Mar 5 20:51:31 2017 +0100 cleanup: remove a duplicate file commit aa51b559abec01eca9f5a7628e4fe0a106ee8e52 Author: Sergei Golubchik Date: Mon Mar 6 15:07:46 2017 +0100 typo fixed commit 0633d0e2ed606a7fe51d0cbf08c60c5a7d5572f6 Author: Sergei Golubchik Date: Wed Mar 8 14:54:12 2017 +0100 don't show 'performance_schema_%_classes_lost' variables in tests because FLUSH STATUS does not reset them, so their values are affected by previously run tests since the last server restart. commit 3d06f0f72cbabe833036f920e9452cd6ef46e5aa Author: Sergei Golubchik Date: Sat Mar 4 17:17:00 2017 +0100 MDEV-11942 BLACKHOLE is no longer active in 10.1 by default, mysql_upgrade not handling the situation fix the patch. add tests commit c372388e4862938037f98b6e4936bc61872354dd Author: Hartmut Holzgraefe Date: Tue Feb 7 22:56:28 2017 +0100 make mysql_upgrade try to install missing storage engine plugins (MDEV-11942) commit 8f1ca5e311bda92d4e901aae8ec5c47597d0f934 Author: Sergei Golubchik Date: Fri Mar 3 15:27:19 2017 +0100 MDEV-11943 I_S.TABLES inconsistencies with tables with unknown storage engine Try harder to show the table's engine. If the table's engine is not loaded, the table won't open. But we can still read the engine name from frm as a string. commit 48b1d175345caa3c644597044751906a04106b91 Author: Sergei Golubchik Date: Thu Mar 2 15:36:18 2017 +0100 MDEV-11943 I_S.TABLES inconsistencies with tables with unknown storage engine Make SELECT FROM I_S.TABLES behave identically independently from whether require opening the table in engine or can be filled with only opening the frm. In particular, fill_schema_table_from_frm() should not silently skip frms with unknown engine, but should fill the I_S.TABLES row with NULLs just like fill_schema_table_by_open() does. commit 25c32c89f14cba402a42a61a8a371ce515610899 Author: Sergei Golubchik Date: Thu Mar 2 14:04:14 2017 +0100 trivial cleanup commit 8eb66bc382295003e5da5ff50365d62def30f52d Author: Sergei Golubchik Date: Thu Mar 2 20:59:29 2017 +0100 cleanup: change dd_frm_type() to return the engine name, not legacy_db_type this simplifies the code and avoids unnecessary conversions back and forth. and it works even if the engine is not installed. commit 1c8d2121ab0e9ca0d8a8fccdd85da1072ef30815 Author: Sergei Golubchik Date: Thu Mar 2 06:53:07 2017 +0100 don't do vio_description(NULL) this fixes the crash of innodb.innodb-blob --ps-protocol commit 5fa04aae9ec94428a68ef4f6f681564111933c11 Author: Sergei Golubchik Date: Wed Mar 1 23:52:35 2017 +0100 MDEV-11842 Fail to insert on a table where a field has no default has_no_default_value() should only fail the insert in the strict mode. Additionally, don't check for "all fields are given values" twice, it'll produce duplicate warnings. commit b6a1d6538b4d2001be20fe0d8f470874c744f0a2 Author: Sergei Golubchik Date: Fri Mar 10 16:25:01 2017 +0100 compiler warnings commit 2d573a6c5a471ec187b9bdc4db6503dad9639650 Author: Olivier Bertrand Date: Fri Mar 10 17:53:36 2017 +0100 CONNECT Storage Engine: Support of ENUM and SET column types for MYSQL tables. modified: storage/connect/myconn.cpp modified: storage/connect/myutil.cpp Order the result of multiple=3 table, otherwise being different on Linux and Windows causing the test to fail. modified: storage/connect/mysql-test/connect/r/mul_new.result modified: storage/connect/mysql-test/connect/t/mul_new.test commit 0094b6581df1530821608327df50b8479e1dc0f8 Merge: 814d0507604 1d47bd61d55 Author: Marko Mäkelä Date: Fri Mar 10 15:16:13 2017 +0200 Merge 10.0 into 10.1 commit 814d0507604192d1da18eb2e30529e5559ce140e Author: VicenÈ›iu Ciorbaru Date: Fri Mar 10 14:07:22 2017 +0200 MDEV-12215: main.repair_symlink-5543 fails in buildbot If openat is present on the system and it tries to open a symlink with O_NOFOLLOW, we get errno 40. If openat is not present on the system, we use the alternative open call, with slightly different logic. IF the symlink doesn't point to a valid file, we get errno 20. This test uses an invalid symlink on the table t1.MYD. commit 18de8296182f42cdf663573949a82950b72af8fc Author: iangilfillan Date: Thu Mar 9 13:18:40 2017 +0200 MDEV-11964 Add missing stub manpages commit bf6cadf923d2e7756e037898dd3b9384dd1fc807 Author: Olivier Bertrand Date: Fri Mar 10 00:28:26 2017 +0100 CONNECT Storage Engine: The last commited changes have brought important additions to CONNECT. 1 - Replacement of setjmp/longjump's by try/catch/throw 2 - Support of multiple tables in subdirectories 3 - Support translating ENUM to VARCHAR for MYSQL tables. 4 - Tables based on ZIP files Support ENUM data type for MYSQL tables. modified: storage/connect/myconn.cpp modified: storage/connect/myutil.cpp Fix typo causing the test to fail on Linux. modified: storage/connect/mysql-test/connect/r/mul_new.result modified: storage/connect/mysql-test/connect/t/mul_new.test commit cdc7a69ea2decf1e8f36dbaa12591abaedf05a35 Author: Olivier Bertrand Date: Thu Mar 9 16:28:11 2017 +0100 CONNECT DIR tables: fix retrieving file date values under Windows. modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h commit 07d89fa59c1734b5a963943dcb93ade0c4e92e48 Author: VicenÈ›iu Ciorbaru Date: Thu Mar 9 16:52:57 2017 +0200 Remove leftover merge conflict marker commit 5aacb861f2e84e1f45d72bf34fdaffa0904a9f5b Author: Marko Mäkelä Date: Thu Mar 9 14:45:52 2017 +0200 WSREP: Use TRX_ID_FMT for trx_id_t in messages. commit b28adb6a62661b60f80c7c1b6237b74fb7cdcee2 Author: Marko Mäkelä Date: Thu Mar 9 15:09:44 2017 +0200 Fix an error introduced in the previous commit. fil_parse_write_crypt_data(): Correct the comparison operator. This was broken in commit 498f4a825b29a37cb27f1c76741987de8c510d06 which removed a signed/unsigned mismatch in these comparisons. commit 498f4a825b29a37cb27f1c76741987de8c510d06 Author: Marko Mäkelä Date: Thu Mar 9 08:54:07 2017 +0200 Fix InnoDB/XtraDB compilation warnings on 32-bit builds. commit ad0c218a440575fa6fb6634aca7a08448a4360e0 Merge: bb4ef470c24 9fe92a9770a Author: Marko Mäkelä Date: Wed Mar 8 19:44:22 2017 +0200 Merge 10.0 into 10.1 Also, implement MDEV-11027 a little differently from 5.5 and 10.0: recv_apply_hashed_log_recs(): Change the return type back to void (DB_SUCCESS was always returned). Report progress also via systemd using sd_notifyf(). commit 95667ae2945a6f8891ed7b49bff8b9fa19d7d1a1 Author: Olivier Bertrand Date: Wed Mar 8 23:30:24 2017 +0100 Fix errors in function TDBSDR::FindInDir. Comment out PSYSTEMTIME stp not used in DIRCOL::ReadColumn causing a compile error won Linux? modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h commit bb4ef470c24cdbcedba3dd3dcda3b3d88b6fb491 Author: iangilfillan Date: Wed Mar 8 17:35:55 2017 +0200 Minor wording fix in mysqladmin man page commit fc8cf004292a91fda07db33c740dd460a3965d3e Author: Olivier Bertrand Date: Wed Mar 8 11:12:36 2017 +0100 Implement sub-directory search for multiple tables. This is specifies by MULTIPLE=3 when creating the table. modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h added: storage/connect/mysql-test/connect/r/mul_new.result added: storage/connect/mysql-test/connect/t/mul_new.test Update version date modified: storage/connect/ha_connect.cc commit 19629ebf813ef7825eb86a46045ebccdfd484d9a Author: Sergey Vojtovich Date: Tue Mar 7 15:06:01 2017 +0400 MDEV-10646 - System Unit File After network-online Bind to an address even if it is not yet configured. commit fa137476ff14a42c25f221585066d36124755f0a Author: Sergey Vojtovich Date: Fri Mar 3 12:33:24 2017 +0400 MDEV-11941 - Lintian complains about executable bits Revoked executable bit from files that are not supposed to be executed directly. Removed interpreted from files that are not supposed to be executed directly. Added interpreter to files that are supposed to be executed directly. commit aeff61ee5857f2351030c604f62dc7628543209a Author: Alexey Botchkov Date: Tue Mar 7 17:27:27 2017 +0400 MDEV-12064 Bug#18411494 WRONG COMPARSION ON BIG DECIMAL VALUES. Test results updated. commit ea31755760537723ded855794c16dd31c3db08c6 Author: Christian Hesse Date: Thu Jan 5 12:07:26 2017 +0100 properly set paths in systemd unit files Use variables in systemd unit file templetes to properly set paths in final systemd unit files. commit dbd1d7ea8e96a2b4cff89ec889494700d634b3a3 Author: Jean Weisbuch Date: Mon Jan 23 11:58:41 2017 +0100 Updated innotop on debian/additions from 1.7.1 to 1.11.4 commit 7be541f281225aae8e04bff4210b67688be080bc Author: klemens Date: Sun Feb 26 16:49:47 2017 +0100 spelling fixes commit e823023e4bb48b0db9ee91477076fc20db704769 Author: Tor Didriksen Date: Tue Apr 21 08:32:31 2015 +0200 Bug#18411494 WRONG COMPARSION ON BIG DECIMAL VALUES Problem: integer literals may be converted to floats for comparison with decimal data. If the integers are large, we may lose precision, and give wrong results. Fix: for or we override the compare_type chosen by item_cmp_type(), and do comparison as decimal rather than float. (cherry picked from commit https://github.com/mysql/mysql-server/commit/1cf3489ba42df1f29c1f3e269443254087505166 and edited by Johannes Weißl ) commit 68d632bc5a1437282dde5460b7a0d3d887fd5483 Author: Marko Mäkelä Date: Mon Mar 6 10:02:01 2017 +0200 Replace some functions with macros. This is a non-functional change. On a related note, the calls fil_system_enter() and fil_system_exit() are often used in an unsafe manner. The fix of MDEV-11738 should introduce fil_space_acquire() and remove potential race conditions. commit c4471352db3af549e37f26cfb0a38f14afed9989 Author: Olivier Bertrand Date: Sun Mar 5 23:54:54 2017 +0100 Fix MDEV-12142 crash when creating CSV table Was an unprepared longjmp (now throw) Also fix a wrong calculation of To_Line sometimes causing a crash because of buffer overflow. modified: storage/connect/tabdos.cpp Fix a wrong setting of USER for JDBC tables in connect_assisted_discovery. Update jdbc_new.test after that fix, which changed errors. modified: storage/connect/ha_connect.cc modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/t/jdbc_new.test Make using try/catch/throw the default option modified: storage/connect/CMakeLists.txt Typo modified: storage/connect/xindex.cpp commit e52bf147144c237b87dbf5226115833c68b2f543 Author: Olivier Bertrand Date: Sun Mar 5 19:43:17 2017 +0100 Replace setjmp-longjmp's by try_catch-throw modified: storage/connect/CMakeLists.txt modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filter.cpp modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/osutil.c modified: storage/connect/plgdbutl.cpp deleted: storage/connect/plugutil.c added: storage/connect/plugutil.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabpivot.cpp modified: storage/connect/tabsys.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabvir.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp modified: storage/connect/xobject.cpp commit adc91387e3add6d9c850b7c2a44760deaceb3638 Merge: bc28b305e53 29c776cfd1e Author: Marko Mäkelä Date: Fri Mar 3 13:27:12 2017 +0200 Merge 10.0 into 10.1 commit bc28b305e538774eae4152b300cd323e9a724393 Author: Daniel Black Date: Mon Feb 20 11:36:33 2017 +1100 Remove warning: unused variable 'volatile_var' [-Wunused-variable] This occured in gcc-6.2.1. The variable wasn't used so was no need to be volatile either. Signed-off-by: Daniel Black commit 88b5eedef2b1f235346adf9aeca05c4ebab9921c Merge: ad2e38153cb e2d6760d8ae Author: Jan Lindström Date: Thu Mar 2 08:29:52 2017 +0200 Merge pull request #312 from grooverdan/10.0-MDEV-10515-stat_tables_par-test-fix MDEV-10515: Correct stat_tables_par test results commit 180fe61c1ac85e0eda0ba5dfb19e9f52d281f1cc Author: Olivier Bertrand Date: Wed Mar 1 12:17:25 2017 +0100 Update version number and date modified: storage/connect/ha_connect.cc Add conditional SE exception support modified: storage/connect/json.cpp modified: storage/connect/plgdbutl.cpp Change %p in %x in some sprintf functions. This to avoid some compiler warnings. modified: storage/connect/tabwmi.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/value.h Add JavaWrappers.jar to the class path modified: storage/connect/jdbconn.cpp Fix wrong declare (char *buf[256]; --> char buf[256];) modified: storage/connect/xindex.cpp commit ad2e38153cbd9491f746b881b716808666bfde70 Author: Vladislav Vaintroub Date: Wed Mar 1 10:07:54 2017 +0000 AWS key management plugin: Fix search for system installed AWS SDK libs commit 62cd105689f3bb0f6b9b67ba256ff2c0bd41d484 Author: Olivier Bertrand Date: Fri Feb 24 23:15:28 2017 +0100 Fix crashing when joining two JDBC tables.. Was in close (the virtual machine could have been detached. modified: storage/connect/jdbconn.cpp commit 7f7673033e20a9f7aaf4c22f77560d824104524d Author: Marko Mäkelä Date: Wed Feb 22 19:55:54 2017 +0200 Remove an unused variable. commit ec4cf111c0d8599c63c486dd96b180d5e7cff8ea Author: Marko Mäkelä Date: Wed Feb 22 17:17:00 2017 +0200 MDEV-11520 after-merge fix for 10.1: Use sparse files. If page_compression (introduced in MariaDB Server 10.1) is enabled, the logical action is to not preallocate space to the data files, but to only logically extend the files with zeroes. fil_create_new_single_table_tablespace(): Create smaller files for ROW_FORMAT=COMPRESSED tables, but adhere to the minimum file size of 4*innodb_page_size. fil_space_extend_must_retry(), os_file_set_size(): On Windows, use SetFileInformationByHandle() and FILE_END_OF_FILE_INFO, which depends on bumping _WIN32_WINNT to 0x0600. FIXME: The files are not yet set up as sparse, so this will currently end up physically extending (preallocating) the files, wasting storage for unused pages. os_file_set_size(): Add the parameter "bool sparse=false" to declare that the file is to be extended logically, instead of being preallocated. The only caller with sparse=true is fil_create_new_single_table_tablespace(). (The system tablespace cannot be created with page_compression.) fil_space_extend_must_retry(), os_file_set_size(): Outside Windows, use ftruncate() to extend files that are supposed to be sparse. On systems where ftruncate() is limited to files less than 4GiB (if there are any), fil_space_extend_must_retry() retains the old logic of physically extending the file. commit e1e920bf63550304eccee057edc568479ecf79ac Merge: 3c47ed48490 a0ce92ddc7d Author: Marko Mäkelä Date: Wed Feb 22 15:53:05 2017 +0200 Merge 10.0 into 10.1 commit 3c47ed48490f0bab1996beab5b22f386451f0d88 Merge: ba4d0a1b351 13493078e9a Author: Marko Mäkelä Date: Mon Feb 20 14:02:40 2017 +0200 Merge 10.0 into 10.1 commit ba4d0a1b351ad3b8ddeea4b137bca4befe32e8c1 Author: Sergey Vojtovich Date: Fri Feb 17 12:47:09 2017 +0400 There's no systemd socket activation support yet commit 32170cafad643403985754f6d7a41e8927f4a6cf Author: Marko Mäkelä Date: Thu Feb 16 11:12:24 2017 +0200 MDEV-12075 innodb_use_fallocate does not work in MariaDB Server 10.1.21 fil_space_extend_must_retry(): When innodb_use_fallocate=ON, initialize pages_added = size - space->size so that posix_fallocate() will actually attempt to extend the file, instead of keeping the same size. This is a regression from MDEV-11556 which refactored the InnoDB data file extension. commit e2d6760d8ae624da7a9470768fa5894a81c3d237 Author: Daniel Black Date: Thu Feb 16 16:42:25 2017 +1100 MDEV-10515: Correct stat_tables_par test results Test results are distorted by a small rounding error during an intermediate stage of calculating the result. By using the SQL ROUND function we stablise tests. Signed-off-by: Daniel Black commit 403ef9918fbf25d6bcdf288db93adf9b2b210da8 Author: Olivier Bertrand Date: Wed Feb 15 00:30:00 2017 +0100 Fix gcc compile error on friend declaration. "friend TDBEXT" must specified as "friend class TDBEXT" modified: storage/connect/tabext.h commit 6aa144f8d6a2db902829ac902f0f39cb7b8b9fba Author: Olivier Bertrand Date: Tue Feb 14 21:15:26 2017 +0100 Fix gcc compile error on strlwr. modified: storage/connect/tabext.cpp commit 41b4ef434835d31b471f8ef55a34391f8eafa9eb Author: Olivier Bertrand Date: Tue Feb 14 15:38:07 2017 +0100 Add the tabext.cpp and tabext.h files in the source list. modified: storage/connect/CMakeLists.txt commit 5c2c68d45419deb67049e56e7cdf6ea34812e48c Author: Olivier Bertrand Date: Tue Feb 14 12:20:20 2017 +0100 This is a major update concerning many source files. Fix MDEV-12035. modified: storage/connect/jsonudf.cpp Working on MDEV-11832: Srcdef performance enhancement This require to mark place holders into srcdef to indicate where to insert the where/having clauses that are retrieved in push_cond. However this also make necessary to handle aliases in the srcdef. This was the opportunity to base all external tables on common classes called EXTDEF, TABEXT and EXTCOL. modified: storage/connect/array.cpp modified: storage/connect/array.h modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filamdbf.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/mycat.cc modified: storage/connect/myconn.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/plgdbsem.h modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfix.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/table.cpp modified: storage/connect/tabmac.cpp modified: storage/connect/tabmac.h modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/taboccur.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabpivot.cpp modified: storage/connect/tabpivot.h modified: storage/connect/tabsys.cpp modified: storage/connect/tabsys.h modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp modified: storage/connect/tabutil.h modified: storage/connect/tabvct.cpp modified: storage/connect/tabvct.h modified: storage/connect/tabvir.cpp modified: storage/connect/tabwmi.cpp modified: storage/connect/tabxcl.cpp modified: storage/connect/tabxcl.h modified: storage/connect/tabxml.cpp modified: storage/connect/tabxml.h modified: storage/connect/xindex.cpp modified: storage/connect/xindex.h modified: storage/connect/xobject.h modified: storage/connect/xtable.h added: storage/connect/tabext.cpp added: storage/connect/tabext.h commit 74a5638a1d5de35f5f377aaae6a5d5266e4d05a6 Author: Nirbhay Choubey Date: Mon Feb 13 18:40:24 2017 -0500 MDEV-11530: wsrep_info.plugin fails sporadically in buildbot Add the warning to the global_suppressions list. commit 66822f164ff197c564df12a4c384e37dab630ee3 Author: Elena Stepanova Date: Sat Feb 11 01:14:06 2017 +0200 Follow-up to MDEV-10731 - fix the broken test commit de9963b786d439a8b769f1b19e7384724616d115 Author: Jan Lindström Date: Fri Feb 10 17:41:35 2017 +0200 After reivew fixes. commit 41cd80fe065f3887db9f2d4f50729204ad13ba0f Author: Jan Lindström Date: Fri Feb 10 16:05:37 2017 +0200 After review fixes. commit c2b217e2434e5a2903e85705f915f3c55ec2342c Author: Varun Gupta Date: Thu Feb 9 22:23:26 2017 +0530 MDEV-10731: Wrong NULL match results in "Subquery returns more than 1 row" (error code 1242) NOT NULL predicate was not added to tables in case of an update query having a subquery. commit 99b2de92c6214ddd73eba35c935f490eedf87a26 Author: Marko Mäkelä Date: Thu Feb 9 09:36:10 2017 +0200 Post-push fix for MDEV-11623: Remove an unused variable. commit ef065dbbc2dd93ccf7db7ba677e70890a4a49aa6 Merge: 03400676084 6011fb6daa5 Author: Marko Mäkelä Date: Thu Feb 9 08:51:52 2017 +0200 Merge 10.0 into 10.1 commit 0340067608432503d335f9d9f4e8ef7da5d9d13f Author: Jan Lindström Date: Tue Feb 7 20:08:07 2017 +0200 After review fixes for MDEV-11759. buf_page_is_checksum_valid_crc32() buf_page_is_checksum_valid_innodb() buf_page_is_checksum_valid_none(): Use ULINTPF instead of %lu and %u for ib_uint32_t fil_space_verify_crypt_checksum(): Check that page is really empty if checksum and LSN are zero. fil_space_verify_crypt_checksum(): Correct the comment to be more agurate. buf0buf.h: Remove unnecessary is_corrupt variable from buf_page_t structure. commit 9017a05d878c44d219f2870126651230c99349a1 Merge: 981534b1ddb d831e4c22a0 Author: Marko Mäkelä Date: Wed Feb 8 17:30:25 2017 +0200 Merge 10.0 into 10.1 commit 981534b1ddb65bcde29de2151ee9076a976d07bf Author: Marko Mäkelä Date: Wed Feb 8 11:40:09 2017 +0200 Remove unnecessary have_debug.inc, not_valgrind.inc Use include/kill_and_restart_mysqld.inc instead of triggering DBUG_SUICIDE() with debug instrumentation. In this way, more tests can be run with --valgrind or on non-debug servers. commit cbdc389ec9cd9bac3f8fc8f4aea81669a629260f Author: Marko Mäkelä Date: Wed Feb 8 11:35:35 2017 +0200 MDEV-12022 InnoDB wrongly ignores the end of an .ibd file InnoDB can wrongly ignore the end of data files when using innodb_page_size=32k or innodb_page_size=64k. These page sizes use an allocation extent size of 2 or 4 megabytes, not 1 megabyte. This issue does not affect MariaDB Server 10.2, which is using the correct WL#5757 code from MySQL 5.7. That said, it does not make sense to ignore the tail of data files. The next time the data file needs to be extended, it would be extended to a multiple of the extent size, once the size exceeds one extent. commit 06a7923f4f531c19e5811954b40c46a77610793a Author: Marko Mäkelä Date: Wed Feb 8 10:06:18 2017 +0200 Remove some more error log spam. Do not effectively set DEBUG_DBUG='d' by setting DEBUG_DBUG='-d,...'. Instead, restore the saved value of DEBUG_DBUG. Also, split the test innodb_fts.innodb_fts_misc_debug into innodb_fts.crash_recovery and innodb_fts.misc_debug, and enable these tests for --valgrind, the latter test for --embedded, and the former tests for the non-debug server. commit 257eea3dacbacbf7eabeed6d1b5d8efd6b9bc977 Author: Marko Mäkelä Date: Tue Feb 7 16:09:24 2017 +0200 Remove some error log spam by not effectively setting DEBUG_DBUG='d'. Thanks to Sergei Golubchik for this suggestion. commit 2e67e66c3a5107c0df21b56f387a896cdd2ec4e4 Merge: 6da2adfaa20 f1627045701 Author: Marko Mäkelä Date: Wed Feb 8 08:53:34 2017 +0200 Merge 10.0 into 10.1 commit 6da2adfaa203fd9f76a32fa314b3c14f11ecddc1 Author: Nirbhay Choubey Date: Tue Feb 7 13:54:46 2017 -0500 MDEV-12005: GET_LOCK: Fractional part of timeout is ignored In order to include the fractional part, convert lock_wait_timeout (in secs) to nanoseconds before calculating the absolute time for timeout. commit 5c7111cb7c9692b8762c9c66ccae4bf9afcdba35 Author: Jan Lindström Date: Tue Feb 7 14:32:09 2017 +0200 Add suppression for page corruption caused by error injection. commit e53dfb24be73a204b4ee8efee6c07e1b13200052 Author: Jan Lindström Date: Mon Feb 6 10:55:23 2017 +0200 MDEV-11707: Fix incorrect memset() for structures containing dynamic class GenericPolicy >'; vtable Instead using mem_heap_alloc and memset, use mem_heap_zalloc directly. commit ddf2fac73381b84114d31c178d9207afc27bfa4d Author: Jan Lindström Date: Mon Feb 6 10:47:55 2017 +0200 MDEV-11759: Encryption code in MariaDB 10.1/10.2 causes compatibility problems Pages that are encrypted contain post encryption checksum on different location that normal checksum fields. Therefore, we should before decryption check this checksum to avoid unencrypting corrupted pages. After decryption we can use traditional checksum check to detect if page is corrupted or unencryption was done using incorrect key. Pages that are page compressed do not contain any checksum, here we need to fist unencrypt, decompress and finally use tradional checksum check to detect page corruption or that we used incorrect key in unencryption. buf0buf.cc: buf_page_is_corrupted() mofified so that compressed pages are skipped. buf0buf.h, buf_block_init(), buf_page_init_low(): removed unnecessary page_encrypted, page_compressed, stored_checksum, valculated_checksum fields from buf_page_t buf_page_get_gen(): use new buf_page_check_corrupt() function to detect corrupted pages. buf_page_check_corrupt(): If page was not yet decrypted check if post encryption checksum still matches. If page is not anymore encrypted, use buf_page_is_corrupted() traditional checksum method. If page is detected as corrupted and it is not encrypted we print corruption message to error log. If page is still encrypted or it was encrypted and now corrupted, we will print message that page is encrypted to error log. buf_page_io_complete(): use new buf_page_check_corrupt() function to detect corrupted pages. buf_page_decrypt_after_read(): Verify post encryption checksum before tring to decrypt. fil0crypt.cc: fil_encrypt_buf() verify post encryption checksum and ind fil_space_decrypt() return true if we really decrypted the page. fil_space_verify_crypt_checksum(): rewrite to use the method used when calculating post encryption checksum. We also check if post encryption checksum matches that traditional checksum check does not match. fil0fil.ic: Add missed page type encrypted and page compressed to fil_get_page_type_name() Note that this change does not yet fix innochecksum tool, that will be done in separate MDEV. Fix test failures caused by buf page corruption injection. commit bc4686f0f4d17dc57dd727c9f5390caa3022bdca Author: Nirbhay Choubey Date: Mon Jan 30 14:50:58 2017 -0500 Minor test improvement commit cd8482c19e325355006adc8fc5591998be46e288 Author: Nirbhay Choubey Date: Mon Jan 30 14:49:44 2017 -0500 MDEV-11945: Fix description for "max_statement_time" in --help max_statement_time also applies to non-SELECT queries. commit aa9db4c162e9fa7560abb1bf8012233f30980e04 Author: Nirbhay Choubey Date: Sun Jan 29 13:21:38 2017 -0500 MDEV-11817: Altering a table with more rows than .. .. wsrep_max_ws_rows causes cluster to break when running Galera cluster in TOI mode Problem: While copying records to temporary table during ALTER TABLE, if there are more than wsrep_max_wsrep_rows records, the command fails. Fix: Since, the temporary table records are not placed into the binary log, wsrep_affected_rows must not be incremented. Added a test. commit 17cc6198479d83bd4f88e9fff197b0b342dca5d9 Author: Jan Lindström Date: Tue Jan 31 15:42:52 2017 +0200 MDEV-11671: Duplicated [NOTE] output for changed innodb_page_size Remove duplicated output and change output level to info. commit 41997d148dc1999c202f14e82e172c1ff57c7ead Author: Sachin Setiya Date: Fri Jan 27 11:15:45 2017 +0530 MDEV-10812 WSREP causes responses being sent to protocol commands that must not send a response Problem:- When using wsrep (w/ galera) and issuing commands that can cause deadlocks, deadlock exception errors are sent in responses to commands such as close prepared statement and close connection which, by spec, must not send a response. Solution:- In dispatch_command, we will handle COM_QUIT and COM_STMT_CLOSE commands even in case of error. Patch Credit:- Jaka MoÄnik commit bb1e8e43672ecf47e99970b5b96f65d101bae752 Author: Sachin Setiya Date: Tue Jan 31 10:02:37 2017 +0530 Mdev-4774- Fix tests cases commit 1ebfeceeb23d2446bf2eb617a88c74360fc22a32 Merge: f1f8ebc325d 4e82aaab2f6 Author: Marko Mäkelä Date: Fri Jan 27 16:14:20 2017 +0200 Merge 10.0 into 10.1 (test-only changes) Adjust the 10.1 tests innodb.doublewrite and innodb.101_compatibility in the same way. commit f1f8ebc325d2b91991ee0de8488f482dc81bbf27 Merge: 6fbfb4c83c0 afb461587c0 Author: Marko Mäkelä Date: Thu Jan 26 23:40:11 2017 +0200 Merge 10.0 into 10.1 commit 6fbfb4c83c01fef445185b473d4dc1e0cc78db0a Merge: 4113f1a7b77 ee3febae044 Author: Marko Mäkelä Date: Thu Jan 26 16:19:29 2017 +0200 Merge pull request #298 from iangilfillan/10.1 Minor typo commit ee3febae044e8258c1a33d5ef08ff4eb55c3d0f5 Author: iangilfillan Date: Thu Jan 26 13:51:03 2017 +0200 Minor typo commit 4113f1a7b774014cbe92923564bce876a370a170 Merge: 86ca1357b06 9394bc06d83 Author: Sergei Petrunia Date: Thu Jan 26 02:57:12 2017 +0300 Merge branch 'grooverdan-10.1-MDEV-11866-ANALYZE-FORMAT=JSON-volatility-normalise' into 10.1 commit 9394bc06d832e6637afc9dba75f53f1ad7307bea Merge: 86ca1357b06 10b1f4dd093 Author: Sergei Petrunia Date: Thu Jan 26 02:56:49 2017 +0300 Merge branch '10.1-MDEV-11866-ANALYZE-FORMAT=JSON-volatility-normalise' of git://github.com/grooverdan/mariadb-server into grooverdan-10.1-MDEV-11866-ANALYZE-FORMAT=JSON-volatility-normalise commit 86ca1357b0637f76be4184b76cbe4b32080c10de Author: Sachin Setiya Date: Tue Jan 24 19:26:16 2017 +0530 Revert "MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of the recently used table" This reverts commit 15f46d517435f3570e2c788349637a06d818a619. commit 15f46d517435f3570e2c788349637a06d818a619 Author: Sachin Setiya Date: Mon Jan 23 22:27:42 2017 +0530 MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of the recently used table When RBR is used, add the db name to db Field and table name to Status Field of the "SHOW FULL PROCESSLIST" command for SQL thread. commit 10b1f4dd093cb2b21aa9ed09dc453bc52d028b3d Author: Daniel Black Date: Mon Jan 23 13:32:57 2017 +1100 MDEV-11866: ANALYZE FORMAT=JSON not predicatable for r_total_time_ms/r_buffer_size [0-9]*[.]?[0-9]* wasn't a sufficient regex to cover the %lg used in Json_writer::add_double. Exponent formats where missed. Here we normalize all the replace_regex expressions for ANALYZE FORMAT=JSON into one include file. Signed-off-by: Daniel Black commit b7b4c332c0869676ef69276ddaef4ac4521cb04f Author: Jan Lindström Date: Sun Jan 22 08:44:04 2017 +0200 MDEV-11614: Syslog messages: "InnoDB: Log sequence number at the start 759654123 and the end 0 do not match." For page compressed and encrypted tables log sequence number at end is not stored, thus disable this message for them. commit 213fc700b64a38d64efceef2a2ef8de9748a8ce5 Author: Varun Gupta Date: Sat Jan 21 00:56:33 2017 +0530 MDEV-10232: Scalar result of subquery changes after adding an outer select stmt In a subquery, we don't have to maintain order Added a fix such that order is considered when there is a limit clause. commit 8a4d605500ae487d3dc515305662769645bb092f Author: Jan Lindström Date: Thu Jan 19 12:20:54 2017 +0200 MDEV-11838: Innodb-encryption-algorithm default should be != none Change default to zlib, this has effect only if user has explicitly requested page compression and then user naturally expects that pages are really compressed if they can be compressed. commit dc557ca817f18e27ab46342865a510898f76822e Author: Jan Lindström Date: Thu Jan 19 08:19:08 2017 +0200 MDEV-11835: InnoDB: Failing assertion: free_slot != NULL on restarting server with encryption and read-only buf0buf.cc: Temporary slots used in encryption was calculated by read_threads * write_threads. However, in read-only mode write_threads is zero. Correct way is to calculate (read_threads + write_threads) * max pending IO requests. commit a14638581b4c8ef175e68dccff07967d819b3b7e Author: Daniel Bartholomew Date: Wed Jan 18 08:39:18 2017 -0500 bump the VERSION commit f7d030489d2980c9deb733925515099ec256f6d2 Merge: f797ea7124e 6728aae3b34 Author: Sergei Golubchik Date: Tue Jan 17 20:17:35 2017 +0100 Merge branch '10.0' into 10.1 commit f797ea7124e906fd3abf311d66101a21dce2d27d Author: Sergei Golubchik Date: Mon Jan 16 18:47:53 2017 +0100 MDEV-11601 Out-of-bounds string access in create_schema_table() in Item_partition_func_safe_string(THD *thd, const char *name_arg, uint length, CHARSET_INFO *cs= NULL), the 'name_arg' is the value of the string constant and 'length' is the length of this constant, so length == strlen(name_arg). commit ef8003eb9a23007ac5d606530dcdcc3ea2f0c039 Author: Sergei Golubchik Date: Mon Jan 16 18:23:02 2017 +0100 MDEV-11698 Old Bug possibly not fixed; BEFORE INSERT Trigger on NOT NULL check_that_all_fields_are_given_values() relied on write_set, but was run too early, before triggers updated write_set. also, when triggers are present, fields might get values conditionally, so we need to check that all fields are given values for every row. commit e79e840607adff6f2e55d4c889ae055d07bdabf5 Author: Sergei Golubchik Date: Tue Jan 17 14:09:38 2017 +0100 selinux fixes for 10.0->10.1 merge 1. don't put generated files into ${CMAKE_CURRENT_SOURCE_DIR} 2. policy file name must match the module name (Fedora 24 requirement) commit 736afe868094b9aa24211c3772fb3b297d62d8fc Author: Kristian Nielsen Date: Fri Jan 13 11:25:38 2017 +0100 mysql_install_db enhancements to facilitate Debian bug#848616 fix In Debian, the default install is made more secure by omitting the anonymous user and by making the root account authenticate by unix socket authentication instead of the default password-less root. However, Debian hard-codes this change in mysql_install_db, which breaks that program for other users. This commit instead implements new general options for mysql_install_db that can be used by anyone to similarly perform a more secure install: --skip-auth-anonymous-user: omits the anonymous user. --auth-root-authentication-method=normal: Keeps the existing behaviour with a password-less root account. Currently on by default. --auth-root-socket-user=USER --auth-root-authentication-method=socket: creates the MariaDB root user with the name USER (defaults to 'root') and using unix socket authentication. This way, only that user has MariaDB root access after install. The idea with --auth-root-authentication-method=normal is that applications that need this behaviour can give that option explicitly. Then eventually we could make --auth-root-authentication-method=socket the default, giving a more secure default installation. Note that it is perfectly possible to do a secure install with --auth-root-authentication-method=normal. For example, installing a private server just for local access by a single OS-level user, by using --skip-networking and putting the connection socket in a location without public access. So it is important to preserve this API for backwards compatibility. commit 719e81132d071ade354b887fe80cd2daabc045e7 Merge: 30a9ac4250e 3e589d4b8ed Author: Kristian Nielsen Date: Tue Jan 17 17:11:28 2017 +0100 Merge branch '10.0' into 10.1 commit 30a9ac4250e1b19754dd0ae43705108cc9de2ab0 Author: Alexey Botchkov Date: Tue Jan 17 15:32:41 2017 +0400 MDEV-10956 Strict Password Validation Breaks Replication. strict_password_validation variable now has no effect in the slave thread. commit 9fa0d2fe98c22038ecb59599076d87a0c7eebdff Author: Olivier Bertrand Date: Tue Jan 17 10:42:41 2017 +0100 Replace bios.json CRLF by LF to avoid test failing on Linux. modified: storage/connect/mysql-test/connect/r/zip.result modified: storage/connect/mysql-test/connect/std_data/bios.json commit 3953c55978d43e3f9d28fe8c247ef8a0edc89d66 Merge: 1e192e901cc 03497129371 Author: VicenÈ›iu Ciorbaru Date: Tue Jan 17 04:17:26 2017 +0200 Merge remote-tracking branch 'origin/10.1' into 10.1 commit 1e192e901ccf34454967cc3f62a71432c50f2c88 Author: VicenÈ›iu Ciorbaru Date: Tue Jan 17 02:35:16 2017 +0200 Post merge review fixes * Remove duplicate lines from tests * Use thd instead of current_thd * Remove extra wsrep_binlog_format_names * Correctly merge union patch from 5.5 wrt duplicate rows. * Correctly merge SELinux changes into 10.1 commit d807e41511c92a1497f8550fdee6557eb856218a Author: VicenÈ›iu Ciorbaru Date: Tue Jan 17 00:37:20 2017 +0200 Post merge fix sysvars_innodb for xtradb commit 286819aef2312e7d8cc40cf50b9815f6f1af92bf Author: Olivier Bertrand Date: Mon Jan 16 22:42:56 2017 +0100 Fix gcc errors and warnings. modified: storage/connect/filamzip.cpp Remove unused variables in connect_assisted_discovery modified: storage/connect/ha_connect.cc commit b1bd990e450105d9bf2bf4862f36b22cbe91aeb1 Author: Olivier Bertrand Date: Mon Jan 16 18:57:35 2017 +0100 Add #include #include to avoid compile error on Linux. modified: storage/connect/filamzip.cpp commit c7446daeb6c512802d05cfdcf6b7e92a9ef94066 Author: Olivier Bertrand Date: Mon Jan 16 18:03:09 2017 +0100 Add #include #include #include #include to avoid compile error on Linux. modified: storage/connect/filamzip.cpp commit 03497129371fe2c16d847b7e83a5eeecab9c34a2 Author: Marko Mäkelä Date: Mon Jan 16 18:26:14 2017 +0200 MDEV-11623 follow-up: Adjust one more test. The function fsp_flags_try_adjust(), which is called on startup, is incrementing the Innodb_pages0_read counts for every affected file. Adjust the result of encryption.innodb_lotoftables accordingly. commit 0cb9369b3788b9c23b729f2fa3dea7ce206f4c8d Author: Olivier Bertrand Date: Mon Jan 16 17:18:54 2017 +0100 Add #include to avoid compile error on Linux. modified: storage/connect/filamzip.cpp Remove unused file deleted: storage/connect/JdbcInterface.jar commit 707cd98592fc13d40ee750097993a85fae93245c Author: Olivier Bertrand Date: Mon Jan 16 15:13:40 2017 +0100 Fix info cardinality for catalog tables. Was returning 0, which caused an assert error when retreiving records. modified: storage/connect/connect.cc modified: storage/connect/xtable.h Add the create and insert possibility to zipped tables modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/ha_connect.c modified: storage/connect/plgdbutl.cpp modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/tabzip.cpp modified: storage/connect/tabzip.h Fix skipping header record for mulentries zipped CSV tabled modified: storage/connect/filamap.cpp Accept M (memo) column type for DBF tables Fix miscalculation of Blksize when LRECL was replaced by DBF LRECL modified: storage/connect/filamdbf.cpp Change the names of GZ compress classes (not to be confused with ZIP) modified: storage/connect/filamgz.cpp modified: storage/connect/filamgz.h add trace in PlugSetPath modified: storage/connect/plugutil.c Add tests fir ZIP added: storage/connect/mysql-test/connect/r/xml_zip.result added: storage/connect/mysql-test/connect/r/zip.result added: storage/connect/mysql-test/connect/std_data/bios.json added: storage/connect/mysql-test/connect/std_data/xsample2.xml added: storage/connect/mysql-test/connect/t/have_zip.inc added: storage/connect/mysql-test/connect/t/xml_zip.test added: storage/connect/mysql-test/connect/t/zip.test commit 6560e9c3a86383cb3af1333987abd39aae6af8b2 Author: VicenÈ›iu Ciorbaru Date: Mon Jan 16 12:50:12 2017 +0200 MDEV-11711: ArmHF EXPLAIN JSON garbage longlong values printed Make sure printing with snprintf uses the correct typed parameters. commit eddbae422bd3430f684d5cd287ca522467040c34 Author: VicenÈ›iu Ciorbaru Date: Mon Jan 16 12:49:22 2017 +0200 MDEV-11712: ArmHF EXPLAIN JSON garbage longlong values printed Make sure printing with snprintf uses the correct typed parameters. commit 7b44c31be8d45bbb7f903ed8d3e426516cfaecfb Merge: 5ac71d4464f 7e3f3deb41a Author: VicenÈ›iu Ciorbaru Date: Mon Jan 16 12:18:21 2017 +0200 Merge remote-tracking branch 'origin/10.1' into 10.1 Extra merge due to more extra commits during merge process commit 7e3f3deb41a875778a540718abd8f90278e4cb67 Author: Marko Mäkelä Date: Mon Jan 16 09:15:56 2017 +0200 MDEV-11623 follow-up: Adjust tests. innodb.doublewrite: Similar to what was done to innodb.101_compatibility, add an explicit $_ parameter to the Perl unpack function. Also, fix some diagnostic messages in the Perl code. innodb.innodb-wl5522-debug: Adjust for the changed error codes and messages on fault injection. commit 5ac71d4464f556f26c81172cb0fef679389beda8 Merge: 8e15768731c 5fc1ba604e2 Author: VicenÈ›iu Ciorbaru Date: Mon Jan 16 04:53:57 2017 +0200 Merge remote-tracking branch '10.0-galera' into 10.1 commit 8e15768731c52b6bbb29d7bfe27bdd71c025a3a3 Merge: ebb8c9fb26f 66744f4540c Author: VicenÈ›iu Ciorbaru Date: Mon Jan 16 03:18:14 2017 +0200 Merge branch '10.0' into 10.1 commit 3a91dec1243773627d08965e7e258571a7844deb Author: Elena Stepanova Date: Mon Jan 16 02:36:31 2017 +0200 101_compatibility test fails on CentOS 5 Apparently, in older versions of Perl unpack does not have a logic for using $_ as a default value for the second argument. Fixed by specifying it explicitly commit 34c89d01d285f4e08de2bbb940e30cabffdf1548 Author: Elena Stepanova Date: Mon Jan 16 01:27:26 2017 +0200 Updated list of unstable tests for 10.1.21 commit ab1e6fefd869242d962cb91a006f37bb9ad534a7 Author: Marko Mäkelä Date: Sat Jan 14 00:13:16 2017 +0200 MDEV-11623 MariaDB 10.1 fails to start datadir created with MariaDB 10.0/MySQL 5.6 using innodb-page-size!=16K The storage format of FSP_SPACE_FLAGS was accidentally broken already in MariaDB 10.1.0. This fix is bringing the format in line with other MySQL and MariaDB release series. Please refer to the comments that were added to fsp0fsp.h for details. This is an INCOMPATIBLE CHANGE that affects users of page_compression and non-default innodb_page_size. Upgrading to this release will correct the flags in the data files. If you want to downgrade to earlier MariaDB 10.1.x, please refer to the test innodb.101_compatibility how to reset the FSP_SPACE_FLAGS in the files. NOTE: MariaDB 10.1.0 to 10.1.20 can misinterpret uncompressed data files with innodb_page_size=4k or 64k as compressed innodb_page_size=16k files, and then probably fail when trying to access the pages. See the comments in the function fsp_flags_convert_from_101() for detailed analysis. Move PAGE_COMPRESSION to FSP_SPACE_FLAGS bit position 16. In this way, compressed innodb_page_size=16k tablespaces will not be mistaken for uncompressed ones by MariaDB 10.1.0 to 10.1.20. Derive PAGE_COMPRESSION_LEVEL, ATOMIC_WRITES and DATA_DIR from the dict_table_t::flags when the table is available, in fil_space_for_table_exists_in_mem() or fil_open_single_table_tablespace(). During crash recovery, fil_load_single_table_tablespace() will use innodb_compression_level for the PAGE_COMPRESSION_LEVEL. FSP_FLAGS_MEM_MASK: A bitmap of the memory-only fil_space_t::flags that are not to be written to FSP_SPACE_FLAGS. Currently, these will include PAGE_COMPRESSION_LEVEL, ATOMIC_WRITES and DATA_DIR. Introduce the macro FSP_FLAGS_PAGE_SSIZE(). We only support one innodb_page_size for the whole instance. When creating a dummy tablespace for the redo log, use fil_space_t::flags=0. The flags are never written to the redo log files. Remove many FSP_FLAGS_SET_ macros. dict_tf_verify_flags(): Remove. This is basically only duplicating the logic of dict_tf_to_fsp_flags(), used in a debug assertion. fil_space_t::mark: Remove. This flag was not used for anything. fil_space_for_table_exists_in_mem(): Remove the unnecessary parameter mark_space, and add a parameter for table flags. Check that fil_space_t::flags match the table flags, and adjust the (memory-only) flags based on the table flags. fil_node_open_file(): Remove some redundant or unreachable conditions, do not use stderr for output, and avoid unnecessary server aborts. fil_user_tablespace_restore_page(): Convert the flags, so that the correct page_size will be used when restoring a page from the doublewrite buffer. fil_space_get_page_compressed(), fsp_flags_is_page_compressed(): Remove. It suffices to have fil_space_is_page_compressed(). FSP_FLAGS_WIDTH_DATA_DIR, FSP_FLAGS_WIDTH_PAGE_COMPRESSION_LEVEL, FSP_FLAGS_WIDTH_ATOMIC_WRITES: Remove, because these flags do not exist in the FSP_SPACE_FLAGS but only in memory. fsp_flags_try_adjust(): New function, to adjust the FSP_SPACE_FLAGS in page 0. Called by fil_open_single_table_tablespace(), fil_space_for_table_exists_in_mem(), innobase_start_or_create_for_mysql() except if --innodb-read-only is active. fsp_flags_is_valid(ulint): Reimplement from the scratch, with accurate comments. Do not display any details of detected inconsistencies, because the output could be confusing when dealing with MariaDB 10.1.x data files. fsp_flags_convert_from_101(ulint): Convert flags from buggy MariaDB 10.1.x format, or return ULINT_UNDEFINED if the flags cannot be in MariaDB 10.1.x format. fsp_flags_match(): Check the flags when probing files. Implemented based on fsp_flags_is_valid() and fsp_flags_convert_from_101(). dict_check_tablespaces_and_store_max_id(): Do not access the page after committing the mini-transaction. IMPORT TABLESPACE fixes: AbstractCallback::init(): Convert the flags. FetchIndexRootPages::operator(): Check that the tablespace flags match the table flags. Do not attempt to convert tablespace flags to table flags, because the conversion would necessarily be lossy. PageConverter::update_header(): Write back the correct flags. This takes care of the flags in IMPORT TABLESPACE. commit a9d00db15559749e54fd9d55cf0ff90f83604e17 Author: Marko Mäkelä Date: Sun Jan 15 14:20:16 2017 +0200 MDEV-11799 InnoDB can abort if the doublewrite buffer contains a bad and a good copy Clean up the InnoDB doublewrite buffer code. buf_dblwr_init_or_load_pages(): Do not add empty pages to the buffer. buf_dblwr_process(): Do consider changes to pages that are all zero. Do not abort when finding a corrupted copy of a page in the doublewrite buffer, because there could be multiple copies in the doublewrite buffer, and only one of them needs to be good. commit 9b99d9bebd32b0280e7c7514c7fe65531316ad98 Author: Marko Mäkelä Date: Sat Jan 14 17:52:33 2017 +0200 MDEV-8139: Disable a randomly failing test until the code is fixed. commit 5dfab33c4ec54082daf034da99c4a796410fe4f3 Author: Sergei Golubchik Date: Thu Jan 12 00:33:21 2017 +0100 MDEV-11551 Server crashes in Field::is_real_null sometimes table->s->stored_fields is less than table->s->null_fields commit 7e2f9d092dd1fb6b0fa1a8fdd5d1f3af68b56f45 Author: Sergei Golubchik Date: Mon Dec 12 01:01:56 2016 +0100 max_session_mem_used server variable commit ab3388c3c44caecbec9974f54a2f30dd06237eee Author: Sergei Golubchik Date: Mon Dec 12 01:00:45 2016 +0100 bugfix: mutex order violation in embedded safe_mutex: Found wrong usage of mutex 'LOCK_thread_count' and 'LOCK_status' Mutex currently locked (in reverse order): LOCK_status sql/sql_class.h line 3873 LOCK_thread_count libmysqld/lib_sql.cc line 432 commit 1282eb694c9fb18cac6bace643b4ce275a6a5689 Author: Sergei Golubchik Date: Sun Dec 11 17:16:15 2016 +0100 cleanup: make malloc_size_cb_func always defined commit 5fc1ba604e27b7d9eaa2977ef5b0c180f6f62565 Author: Nirbhay Choubey Date: Fri Jan 13 13:57:17 2017 -0500 Fix for post-merge build failure. commit ee8b5c305a2334d06fe999b2db441d0436f9f423 Merge: 11544334a27 4f533846780 Author: Nirbhay Choubey Date: Fri Jan 13 13:53:59 2017 -0500 Merge tag 'mariadb-10.0.29' into 10.0-galera commit ebb8c9fb26f86cff8c0d81bd2415f415cef952bb Author: Alexander Barkov Date: Thu Jan 12 15:16:45 2017 +0400 MDEV-11030 Assertion `precision > 0' failed in decimal_bin_size Fixing Item::decimal_precision() to return at least one digit. This fixes the problem reported in MDEV. Also, fixing Item_func_signed::fix_length_and_dec() to reserve space for at least one digit (plus one character for an optional sign). This is needed to have CONVERT(expr,SIGNED) and CONVERT(expr,UNSIGNED) create correct string fields when they appear in string context, e.g.: CREATE TABLE t1 AS SELECT CONCAT(CONVERT('',SIGNED)); commit 2dc5d8bb7e087a340edb989c045070b808e0da57 Author: Marko Mäkelä Date: Thu Jan 12 12:33:46 2017 +0200 Improve an MDEV-9011 test of innodb_encrypt_log. Test crash recovery from an encrypted redo log with innodb_encrypt_log=0. Previously, we did a clean shutdown, so only the log checkpoint information would have been read from the redo log. With this change, we will be reading and applying encrypted redo log records. include/start_mysqld.inc: Observe $restart_parameters. encryption.innodb-log-encrypt: Remove some unnecessary statements, and instead of restarting the server and concurrently accessing the files while the server is running, kill the server, check the files, and finally start up the server. innodb.log_data_file_size: Use start_mysqld.inc with $restart_parameters. commit 4507f1e5d4fbfc2a638417683fc71d1768729cac Author: Marko Mäkelä Date: Wed Jan 11 14:26:30 2017 +0200 Remove an excessive copyright message. commit 5b5bce81e6829677792fc1940691def8602f8dcd Merge: 5044dae239d 833fda8f1a0 Author: Marko Mäkelä Date: Wed Jan 11 14:19:06 2017 +0200 Merge 10.0 into 10.1 commit 5044dae239d094582879792de7a762d3428223ce Merge: 4b05d60e62e 78e6fafcaa9 Author: Marko Mäkelä Date: Tue Jan 10 14:30:11 2017 +0200 Merge 10.0 into 10.1 commit 4b05d60e62ef6e21d5329a9667813df890034ff0 Author: Marko Mäkelä Date: Mon Jan 9 09:15:21 2017 +0200 Make encryption.innodb_lotoftables more robust. Perform a slow shutdown at the start of the test, and create all InnoDB tables with STATS_PERSISTENT=0, so that any I/O related to background tasks (change buffer merge, purge, persistent statistics) should be eliminated. commit 59ea6456c31e47dd0a2f65c28f6fb97d09f6ee7e Author: Marko Mäkelä Date: Mon Jan 9 09:12:32 2017 +0200 Minor cleanup of innodb.innodb-change-buffer-recovery This should be a non-functional change. I was unable to repeat MDEV-11626 innodb.innodb-change-buffer-recovery fails for xtradb and cannot determine the reason for the failure without having access to the files. The repeatability of MDEV-11626 should not be affected by these changes. commit 384f4d1e36cf2ba8791b15c83ac601b98f3270c0 Author: Marko Mäkelä Date: Sat Jan 7 15:27:59 2017 +0200 Post-push fix for MDEV-11556: Make the debug variable UINT. Sometimes innodb_data_file_size_debug was reported as INT UNSIGNED instead of BIGINT UNSIGNED. Make it uint instead of ulong to get a more deterministic result. commit 8049d2e9d98388296c86854d1291aa69afc78f44 Merge: fb5ee7d6d04 f0c19b6a57b Author: Marko Mäkelä Date: Thu Jan 5 20:32:15 2017 +0200 Merge 10.0 into 10.1 commit fb5ee7d6d043b01fabc59f09d70d532e843add60 Author: Marko Mäkelä Date: Thu Jan 5 19:01:14 2017 +0200 Plug a memory leak in buf_dblwr_process(). commit 758af98ff7c47cc1fb5debdc138312fa389d528f Author: Marko Mäkelä Date: Thu Jan 5 10:42:19 2017 +0200 Post-push fix for Part 1 of MDEV-8139 Fix scrubbing tests In the backport of Bug#24450908 UNDO LOG EXISTS AFTER SLOW SHUTDOWN from MySQL 5.7 to the MySQL 5.6 based MariaDB Server 10.1, we must use a mutex when HAVE_ATOMIC_BUILTINS is not defined. Also, correct a function comment. In MySQL 5.6 and MariaDB Server 10.1, also temporary InnoDB tables are redo-logged. commit ffb38c9771bc7248482dc6a3d2f26ca10fe09a9b Author: Marko Mäkelä Date: Wed Jan 4 20:49:13 2017 +0200 MDEV-8139 Fix scrubbing tests encryption.innodb_scrub: Clean up. Make it also cover ROW_FORMAT=COMPRESSED, removing the need for encryption.innodb_scrub_compressed. Add a FIXME comment saying that we should create a secondary index, to demonstrate that also undo log pages get scrubbed. Currently that is not working! Also clean up encryption.innodb_scrub_background, but keep it disabled, because the background scrubbing does not work reliably. Fix both tests so that if something is not scrubbed, the test will be aborted, so that the data files will be preserved. Allow the tests to run on Windows as well. commit 719321e78e69249e796a907c17400dac14ef0921 Author: Marko Mäkelä Date: Wed Jan 4 18:43:32 2017 +0200 MDEV-11638 Encryption causes race conditions in InnoDB shutdown InnoDB shutdown failed to properly take fil_crypt_thread() into account. The encryption threads were signalled to shut down together with other non-critical tasks. This could be much too early in case of slow shutdown, which could need minutes to complete the purge. Furthermore, InnoDB failed to wait for the fil_crypt_thread() to actually exit before proceeding to the final steps of shutdown, causing the race conditions. Furthermore, the log_scrub_thread() was shut down way too early. Also it should remain until the SRV_SHUTDOWN_FLUSH_PHASE. fil_crypt_threads_end(): Remove. This would cause the threads to be terminated way too early. srv_buf_dump_thread_active, srv_dict_stats_thread_active, lock_sys->timeout_thread_active, log_scrub_thread_active, srv_monitor_active, srv_error_monitor_active: Remove a race condition between startup and shutdown, by setting these in the startup thread that creates threads, not in each created thread. In this way, once the flag is cleared, it will remain cleared during shutdown. srv_n_fil_crypt_threads_started, fil_crypt_threads_event: Declare in global rather than static scope. log_scrub_event, srv_log_scrub_thread_active, log_scrub_thread(): Declare in static rather than global scope. Let these be created by log_init() and freed by log_shutdown(). rotate_thread_t::should_shutdown(): Do not shut down before the SRV_SHUTDOWN_FLUSH_PHASE. srv_any_background_threads_are_active(): Remove. These checks now exist in logs_empty_and_mark_files_at_shutdown(). logs_empty_and_mark_files_at_shutdown(): Shut down the threads in the proper order. Keep fil_crypt_thread() and log_scrub_thread() alive until SRV_SHUTDOWN_FLUSH_PHASE, and check that they actually terminate. commit 0f8e17af92cd0126aadf283e25edcd64872b2ea3 Author: Marko Mäkelä Date: Wed Jan 4 18:16:37 2017 +0200 Part 1 of MDEV-8139 Fix scrubbing tests Port a bug fix from MySQL 5.7, so that all undo log pages will be freed during a slow shutdown. We cannot scrub pages that are left allocated. commit 173e171c6fb55f064eea278c76fbb28e2b1c757b Author: Thirunarayanan Balathandayuthapani Date: Fri Sep 9 18:01:27 2016 +0530 Bug #24450908 UNDO LOG EXISTS AFTER SLOW SHUTDOWN Problem: ======== 1) cached undo segment is not removed from rollback segment history (RSEG_HISTORY) during slow shutdown. In other words, If the segment is not completely free, we are failing to remove an entry from the history list. While starting the server, we traverse all rollback segment slots history list and make it as list of undo logs to be purged in purge queue. In that case, purge queue will never be empty after slow shutdown. 2) Freeing of undo log segment is linked with removing undo log header from history. Fix: ==== 1) Have separate logic of removing the undo log header from history list from rollback segment slots and remove it from rollback segment history even though it is not completely free. Reviewed-by: Debarun Banerjee Reviewed-by: Marko Mäkelä RB:13672 commit 0c1de94db669ef494bdbbec0bbdc51f6df73668d Merge: ba8198a34cf 80d5d1452a4 Author: Marko Mäkelä Date: Wed Jan 4 13:56:11 2017 +0200 Merge 10.0 into 10.1 commit ba8198a34cf651cce8a1f59f61ba7f31dbe41579 Author: Marko Mäkelä Date: Tue Jan 3 15:44:44 2017 +0200 Post-fix for MDEV-11688 fil_crypt_threads_end() tries to create threads fil_crypt_threads_cleanup(): Do nothing if nothing was initialized. commit fc779252aec56e01c5924d80378cafc8b6ec80b5 Author: Marko Mäkelä Date: Tue Jan 3 13:18:47 2017 +0200 MDEV-11688 fil_crypt_threads_end() tries to create threads after aborted InnoDB startup This bug was repeatable by starting MariaDB 10.2 with an invalid option, such as --innodb-flush-method=foo. It is not repeatable in MariaDB 10.1 in the same way, but the problem exists already there. commit b4616c40be00c5c8a2a73d537d676d8ddb7c84cf Author: Sachin Setiya Date: Tue Jan 3 10:45:55 2017 +0530 MDEV-7955 WSREP() appears on radar in OLTP RO This commit is for optimizing WSREP(thd) macro. #define WSREP(thd) \ (WSREP_ON && wsrep && (thd && thd->variables.wsrep_on)) In this we can safely remove wsrep and thd. We are not removing WSREP_ON because this will change WSREP(thd) behaviour. Patch Credit:- Nirbhay Choubay, Sergey Vojtovich commit d9a1a201aae87a655cdf3e5a344b2265912a94a7 Author: Sachin Setiya Date: Tue Jan 3 10:10:58 2017 +0530 MDEV-11016 wsrep_node_is_ready() check is too strict Problem:- The condition that checks for node readiness is too strict as it does not allow SELECTs even if these selects do not access any tables. For example,if we run SELECT 1; OR SELECT @@max_allowed_packet; Solution:- We need not to report this error when all_tables(lex->query_tables) is NULL: commit 2f5670dc269ce19f14132d54e54060c91cc028e3 Author: Sachin Setiya Date: Tue Dec 27 14:13:32 2016 +0530 MDEV-11636 Extra persistent columns on slave always gets NULL in RBR Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns. commit 8451e09073e8b1a300f177d74a9e3a530776640a Author: Marko Mäkelä Date: Wed Dec 28 12:05:43 2016 +0200 MDEV-11556 InnoDB redo log apply fails to adjust data file sizes fil_space_t::recv_size: New member: recovered tablespace size in pages; 0 if no size change was read from the redo log, or if the size change was implemented. fil_space_set_recv_size(): New function for setting space->recv_size. innodb_data_file_size_debug: A debug parameter for setting the system tablespace size in recovery even when the redo log does not contain any size changes. It is hard to write a small test case that would cause the system tablespace to be extended at the critical moment. recv_parse_log_rec(): Note those tablespaces whose size is being changed by the redo log, by invoking fil_space_set_recv_size(). innobase_init(): Correct an error message, and do not require a larger innodb_buffer_pool_size when starting up with a smaller innodb_page_size. innobase_start_or_create_for_mysql(): Allow startup with any initial size of the ibdata1 file if the autoextend attribute is set. Require the minimum size of fixed-size system tablespaces to be 640 pages, not 10 megabytes. Implement innodb_data_file_size_debug. open_or_create_data_files(): Round the system tablespace size down to pages, not to full megabytes, (Our test truncates the system tablespace to more than 800 pages with innodb_page_size=4k. InnoDB should not imagine that it was truncated to 768 pages and then overwrite good pages in the tablespace.) fil_flush_low(): Refactored from fil_flush(). fil_space_extend_must_retry(): Refactored from fil_extend_space_to_desired_size(). fil_mutex_enter_and_prepare_for_io(): Extend the tablespace if fil_space_set_recv_size() was called. The test case has been successfully run with all the innodb_page_size values 4k, 8k, 16k, 32k, 64k. commit f493e395b0a6679b55d9859f372f6ccd4475f12d Author: Marko Mäkelä Date: Thu Dec 29 15:03:12 2016 +0200 Make the test work with any innodb_page_size. commit 23cc1be270c7304963643947d8e5ab88f4e312ee Author: Oleksandr Byelkin Date: Wed Dec 21 20:11:14 2016 +0100 MDEV-11584: GRANT inside an SP does not work well on 2nd execution Allocate password hash in statment memory commit 283e9cf4cbb34e1325699707068ab72ec3accfff Author: Jan Lindström Date: Wed Dec 28 16:14:28 2016 +0200 MDEV-11656: 'Data structure corruption' IMPORT TABLESPACE doesn't work for encrypted InnoDB tables if space_id changed Problem was that for encryption we use temporary scratch area for reading and writing tablespace pages. But if page was not really decrypted the correct updated page was not moved to scratch area that was then written. This can happen e.g. for page 0 as it is newer encrypted even if encryption is enabled and as we write the contents of old page 0 to tablespace it contained naturally incorrect space_id that is then later noted and error message was written. Updated page with correct space_id was lost. If tablespace is encrypted we use additional temporary scratch area where pages are read for decrypting readptr == crypt_io_buffer != io_buffer. Destination for decryption is a buffer pool block block->frame == dst == io_buffer that is updated. Pages that did not require decryption even when tablespace is marked as encrypted are not copied instead block->frame is set to src == readptr. If tablespace was encrypted we copy updated page to writeptr != io_buffer. This fixes above bug. For encryption we again use temporary scratch area writeptr != io_buffer == dst that is then written to the tablespace (1) For normal tables src == dst == writeptr ut_ad(!encrypted && !page_compressed ? src == dst && dst == writeptr + (i * size):1); (2) For page compressed tables src == dst == writeptr ut_ad(page_compressed && !encrypted ? src == dst && dst == writeptr + (i * size):1); (3) For encrypted tables src != dst != writeptr ut_ad(encrypted ? src != dst && dst != writeptr + (i * size):1); commit d50cf42bc05b1faa5d39c766389ac345e119037e Author: Marko Mäkelä Date: Wed Dec 28 15:54:24 2016 +0200 MDEV-9282 Debian: the Lintian complains about "shlib-calls-exit" in ha_innodb.so Replace all exit() calls in InnoDB with abort() [possibly via ut_a()]. Calling exit() in a multi-threaded program is problematic also for the reason that other threads could see corrupted data structures while some data structures are being cleaned up by atexit() handlers or similar. In the long term, all these calls should be replaced with something that returns an error all the way up the call stack. commit 11544334a277508fb984c0a5bba8faa6b97a2762 Author: Sachin Setiya Date: Tue Dec 27 14:13:32 2016 +0530 MDEV-11636 Extra persistent columns on slave always gets NULL in RBR Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns. commit dc9f5dfcbb8efbc7c1f178313f945981b01d229b Author: Elena Stepanova Date: Tue Dec 27 20:41:32 2016 +0200 Replication tests fail on valgrind due to waiting-related timeouts MTR raises default wait_for_pos_timeout from 300 to 1500 when tests are run with valgrind. The same needs to be done for other replication-related waits commit df21d45fddcde1f1b00d00a17024d5d7e5d19b5d Merge: 00e0acd8142 545c9126963 Author: Olivier Bertrand Date: Sat Dec 24 17:48:21 2016 +0100 Merge branch '10.1' of https://github.com/MariaDB/server into ob-10.1 commit 00e0acd8142318825416af94459e516e84414680 Author: Olivier Bertrand Date: Sat Dec 24 17:48:10 2016 +0100 Changing version number in ha_connect.cc commit 5c0c623577c7d1fe183bb8903d26eaf52a89b88b Author: Olivier Bertrand Date: Fri Dec 23 14:23:46 2016 +0100 Fix some XML table type bugs: - in DOMNODELIST::DropItem if (Listp == NULL || Listp->length <= n) return true; is wrong, should be: if (Listp == NULL || Listp->length < n) return true; - Crash in discovery with libxml2 in XMLColumns because: if (!tdp->Usedom) // nl was destroyed vp->nl = vp->pn->GetChildElements(g); is executed with vp->pn uninitialized. Fixed by adding: vp->pn = node; line 264. -In discovery with libxml2 some columns are not found. Because list was not recovered properly, nodes being modified and not reallocated. Fixed lines 214 and 277. modified: storage/connect/domdoc.cpp modified: storage/connect/tabxml.cpp Add support for zipped table files modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamap.cpp modified: storage/connect/filamap.h modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc modified: storage/connect/libdoc.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabxml.cpp commit 545c9126963b26a093d5c8b6225cc52e360892e0 Author: Marko Mäkelä Date: Thu Dec 22 12:03:36 2016 +0200 Remove an unnecessary comparison. commit 7e02fd1f710e39e3cfccc507f24ceacee76b9439 Author: Marko Mäkelä Date: Thu Dec 22 14:20:47 2016 +0200 MDEV-11630 Call mutex_free() before freeing the mutex list Make some global fil_crypt_ variables static. fil_close(): Call mutex_free(&fil_system->mutex) also in InnoDB, not only in XtraDB. In InnoDB, sync_close() was called before fil_close(). innobase_shutdown_for_mysql(): Call fil_close() before sync_close(), similar to XtraDB shutdown. fil_space_crypt_cleanup(): Call mutex_free() to pair with fil_space_crypt_init(). fil_crypt_threads_cleanup(): Call mutex_free() to pair with fil_crypt_threads_init(). commit 55eb7120a04e23519ff495e7b5be0086f842b78c Author: Jan Lindström Date: Thu Dec 22 14:02:51 2016 +0200 MDEV-11218: encryption.innodb_encryption_discard_import failed in buildbot Try to stabilize test cases. These test behave badly when run in certain order. commit c51c885dee098b09b9eeaef16813dffac95ef994 Author: Monty Date: Wed Dec 21 22:41:07 2016 +0200 Fixed compiler warning commit c33c638f39eb626ca7e77cbdd38eef6aee53f25e Author: Monty Date: Wed Dec 21 22:40:52 2016 +0200 MDEV-7558 analyze_stmt_slow_query_log fails sporadically in buildbot The reason was that the test was reusing the same log file without deleting it between tests. Fixed by creating a new log file as part of the test commit 9e032d6150b39cf36a22e7c1503e06fae9c4016d Author: Sachin Setiya Date: Wed Dec 21 09:34:37 2016 +0530 MDEV-11490 Galera_3nodes test suite does not suppress Warnings. Problem:- While running individual tests of Galera_3nodes , We get warnings like '[Warning] WSREP: Could not open state file for reading: '. And because of this individual tests fails. Solution:- We change suite.pm of Galera_3nodes to supress these warnings. commit be430b80df0cdd4eba32df1570195721dbfd1b39 Author: Sachin Setiya Date: Wed Dec 21 09:34:37 2016 +0530 MDEV-11490 Galera_3nodes test suite does not suppress Warnings. Problem:- While running individual tests of Galera_3nodes , We get warnings like '[Warning] WSREP: Could not open state file for reading: '. And because of this individual tests fails. Solution:- We change suite.pm of Galera_3nodes to supress these warnings. commit 75ab65aecee1db8ea402a834935f433021992cb3 Author: Nirbhay Choubey Date: Tue Dec 20 15:31:02 2016 -0500 Fix failing galera tests. commit 195241e125f58c9cfcb0fd28f5f2bf78e97fe7d9 Author: Marko Mäkelä Date: Tue Dec 20 15:03:56 2016 +0200 Port the test innodb.doublewrite from MySQL 5.7. commit 44da95e5edf6a86846d2ea98247b8cb332ed44fa Merge: 8e198336c20 9f863a15b03 Author: Marko Mäkelä Date: Mon Dec 19 17:15:25 2016 +0200 Merge branch '10.0' into 10.1 commit 8e198336c20a1bbce561dcdd8080dafcfe130233 Author: Daniel Bartholomew Date: Thu Dec 15 10:34:41 2016 -0500 bump the VERSION commit c13b5011629b5ff7b969d648265002e4d1ba94c2 Author: Vladislav Vaintroub Date: Wed Dec 14 19:20:17 2016 +0000 Fix broken cmake -DBUILD_CONFIG=mysql_release on Windows. mysql_release.cmake set WITH_JEMALLOC=static, which makes windows builds fail since there is no jemalloc either static or shared there commit d93bbcad369c723c4ddf81a528576c9872d26d44 Author: Sachin Setiya Date: Wed Dec 14 20:13:36 2016 +0530 MDEV-11479 Improved wsrep_dirty_reads Updated sysvars_wsrep.result file. commit b3d2ac3492c50ffab716e626d745727162a28343 Author: Olivier Bertrand Date: Wed Dec 14 14:37:31 2016 +0100 - MDEV-11295: developing handling files contained in ZIP file. Fix bug using multiple zip files modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp - Add error msg when trying to make discovery on multiple tables modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabxml.cpp commit 8a3fc7c041f3270fb6fde85d19e58b1b7c29581a Author: Olivier Bertrand Date: Wed Dec 14 11:11:22 2016 +0100 - MDEV-11295: developing handling files contained in ZIP file. Enable using multiple zip files modified: storage/connect/filamzip.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/mycat.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp commit 4c1e181ac5eac55c67705ffe29b48a5d832211be Author: Sachin Setiya Date: Wed Dec 14 15:22:04 2016 +0530 MDEV-11479 Improved wsrep_dirty_reads Tasks:- Changes in wsrep_dirty_reads variable 1.) Global + Session scope (Current: session-only) 2.) Can be set using command line. 3.) Allow all commands that do not change data (besides SELECT) 4.) Allow prepared Statements that do not change data 5.) Works with wsrep_sync_wait enabled commit ffdd1e9d888edc4e147c3b316a87468b000f8dd4 Author: Sachin Setiya Date: Wed Dec 14 13:57:05 2016 +0530 Revert "MDEV-11016 wsrep_node_is_ready() check is too strict" This reverts commit 52ea5ad865b4f6b4b37176296a3be0a716c5109a. # Conflicts: # mysql-test/suite/galera/r/galera_var_dirty_reads.result # mysql-test/suite/galera/t/galera_var_dirty_reads.test # sql/sql_parse.cc commit f41bd7e54512d4e283ba909b4c3a700382cf1147 Author: Varun Gupta Date: Tue Dec 13 05:07:02 2016 +0530 MDEV-11060 sql/protocol.cc:532: void Protocol::end_statement(): Assertion `0' failed In file sql/opt_range.cc,when calculate_cond_selectivity_for_table() is called with optimizer_use_condition_selectivity=4 then - thd->no_errors is set to 1 - the original value of thd->no_error is not restored to its original value - this is causing the assertion to fail in the subsequent queries Fixed by restoring the original value of thd->no_errors commit 0c79de2419194f850e92de6ffa48d2e92055ee50 Author: Sachin Setiya Date: Wed Dec 14 09:30:43 2016 +0530 MDEV-11479 Improved wsrep_dirty_reads Tasks:- Changes in wsrep_dirty_reads variable 1.) Global + Session scope (Current: session-only) 2.) Can be set using command line. 3.) Allow all commands that do not change data (besides SELECT) 4.) Allow prepared Statements that do not change data 5.) Works with wsrep_sync_wait enabled commit 25a9a3da346b6d763cf77ce82b82c65f4b1769cb Author: Sachin Setiya Date: Wed Dec 14 08:39:36 2016 +0530 Revert "MDEV-11016 wsrep_node_is_ready() check is too strict" This reverts commit 7ed5563bbee301bf8217080dc78ea6a3e78e23a8. commit 72cc73cea2e7071277b6a88bae0236cabf11788a Author: Jan Lindström Date: Tue Dec 13 11:51:33 2016 +0200 MDEV-10368: get_latest_version() called too often Reduce the number of calls to encryption_get_key_get_latest_version when doing key rotation with two different methods: (1) We need to fetch key information when tablespace not yet have a encryption information, invalid keys are handled now differently (see below). There was extra call to detect if key_id is not found on key rotation. (2) If key_id is not found from encryption plugin, do not try fetching new key_version for it as it will fail anyway. We store return value from encryption_get_key_get_latest_version call and if it returns ENCRYPTION_KEY_VERSION_INVALID there is no need to call it again. commit 67b570af506a42f14a8ae30603d52ca9de68cce5 Author: Nirbhay Choubey Date: Mon Dec 5 20:58:49 2016 -0500 MDEV-10545: Server crashed in my_copy_fix_mb on querying I_S and P_S tables After applying/replaying the transaction, the memory that stored the query string was also wrongly freed. commit 9c88a54c1064ebdcf461e6c524a36ce5cc9370bd Author: Nirbhay Choubey Date: Mon Dec 5 20:07:30 2016 -0500 MDEV-11179: WSREP transaction excceded size limit in Galera cluster ... causes MariaDB to crash On error, the wsrep replication buffer (binlog) is dumped to a file to aid investigations. In order to also include the binlog header, FDLE object is also needed. This object is only available for wsrep- threads. Fix: Instantiate an FDLE object for non-wsrep threads. commit dbb06d2eaba63df0eae921da8a971c664ca18010 Author: Nirbhay Choubey Date: Mon Nov 21 19:44:48 2016 -0500 MDEV-10954: MariaDB Galera: wsrep_sst_common: line 120: which: command not found Add 'which' to REQUIRES list. commit 0e06a8357b4f78e9fb23e75cda2af57e18ed764e Author: Olivier Bertrand Date: Mon Dec 12 00:49:31 2016 +0100 - MDEV-11295: developing handling files contained in ZIP file. A first experimental and limited implementation. Add NOCRYPT preprocessor definition to avoid compiling error modified: storage/connect/CMakeLists.txt commit 5d9ca52219e4a4c92fc4a80ffc09b5075b1e5616 Author: Elena Stepanova Date: Mon Dec 12 00:59:40 2016 +0200 Updated the list of unstable tests after the merge commit 9afa90090a4e33bd6b9f83c35c9b1161401589f1 Author: Olivier Bertrand Date: Sun Dec 11 23:47:15 2016 +0100 - MDEV-11295: developing handling files contained in ZIP file. A first experimental and limited implementation. modified: storage/connect/CMakeLists.txt modified: storage/connect/filamap.cpp new file: storage/connect/filamzip.cpp new file: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc new file: storage/connect/ioapi.c new file: storage/connect/ioapi.h modified: storage/connect/mycat.cc modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h new file: storage/connect/tabzip.cpp new file: storage/connect/tabzip.h new file: storage/connect/unzip.c new file: storage/connect/unzip.h new file: storage/connect/zip.c commit 2f20d297f8ea731d845bb220e680ad10c7a927bc Merge: a629b5172e9 eb4f2e063c3 Author: Sergei Golubchik Date: Sun Dec 11 09:53:42 2016 +0100 Merge branch '10.0' into 10.1 commit a629b5172e96c96c414fca70fffd64c80f2f7e8f Author: Elena Stepanova Date: Sat Dec 10 23:04:41 2016 +0200 Updated the list of unstable tests commit e156ea1b9517dd155f68f8d683704ecf5370346a Author: Nirbhay Choubey Date: Fri Dec 9 12:15:41 2016 -0500 Fix failing tests. commit 83f7151da5259fa07ab2c26600009d53adef50f3 Author: Alexey Botchkov Date: Fri Dec 9 17:13:43 2016 +0400 MDEV-10435 crash with bad stat tables. Functions from sql/statistics.cc don't seem to expect stat tables to fail or to have inadequate structure. Table open errors suppressed and some validity checks added. Invalid tables reported to the server log. commit 870d7589c6c4596b0f1a641add5071469e2c94a7 Author: Elena Stepanova Date: Thu Dec 8 20:49:54 2016 +0200 MDEV-11491 binlog_encryption.rpl_checksum fails sporadically in buildbot The race condition happened if mark_xid_done was considerably delayed, and an extra Binlog_checkpoint event was written into the binary log which was later indicated in an error message. Fixed by ensuring that the event is written before the binary log is rotated to the one which is used in the output. commit 8e702bce66a2fb9ed911800f87e75509ae963e8c Author: Elena Stepanova Date: Thu Dec 8 17:05:01 2016 +0200 MDEV-11504 binlog_encryption.encrypted_master_switch_to_unencrypted fails sporadically in buildbot The reason is a simple race condition. Initially the test was meant to synchronize with master before showing tables, but it turned out that the slave IO thread should fail by this point, and synchronization was removed along with a server bugfix. Now added an intermediate sync instead, to make sure that slave has replicated events before the point of failure commit e1e1fbc501aa61ce48a35583a29582ba8e57c2c3 Merge: 2114aa4ac56 63edd271673 Author: Sergey Vojtovich Date: Wed Dec 7 14:05:04 2016 +0400 Merge pull request #272 from iangilfillan/10.1 Update mysqld_multi man page commit 63edd271673dbd0e6b0d3fffc13f0ab63d5e0631 Author: iangilfillan Date: Wed Dec 7 11:58:40 2016 +0200 Update mysqld_multi man page commit 2114aa4ac56b2819b8aa782125a514144e3c0852 Merge: 74d52ded721 d036be7218f Author: Sergey Vojtovich Date: Wed Dec 7 13:37:16 2016 +0400 Merge pull request #270 from JRonak/MDEV-11354 fixes MDEV-11354 twin include commit 74d52ded721d8d39bfb25d18a0b0b8ea8a7af884 Author: Sergei Golubchik Date: Mon Dec 5 22:29:25 2016 +0100 fix binlog_encryption.binlog_incident test commit 76546a099c24a06ad89238f61435051a4663b112 Author: Sergei Golubchik Date: Mon Dec 5 15:51:24 2016 +0100 MDEV-10382 Using systemd, mariadb doesn't restart on crashes when crashing on a signal, don't exit(), but re-signal it, so that the caller could check WIFSIGNALED() commit 5142cd55f492a2c9a2e308e168c86278765f95c3 Author: Sergei Golubchik Date: Sun Dec 4 21:19:32 2016 +0100 MDEV-11052 mariadb-service-convert does not work after upgrading to 10.1.18 mysqld_safe: don't close stdout and stderr if --dry-run commit b5aa0f437fc595d508b9eb5d36185fd8cbaa62eb Author: Sergei Golubchik Date: Sat Dec 3 20:34:50 2016 +0100 MDEV-11319 mysqlbinlog crashes or fails with out of memory while reading some encrypted binlogs support encrypted binlogs. Not decryption, but at least recognizing that event are encrypted and prining them as such commit 952856c810c7a44678960a455062531279ddf113 Author: Sergei Golubchik Date: Sat Dec 3 20:26:42 2016 +0100 MDEV-11288 Server crashes in Binlog_crypt_data::init trying to feed encrypted log without decryption capabilities commit 55b4579633ec81481823b3dfaa45674db6416a50 Author: Nirbhay Choubey Date: Mon Dec 5 16:28:29 2016 -0500 Fix build failure. commit d036be7218fd9fb8b2233a121281a849bb53d4c0 Author: Ronak Jain Date: Tue Dec 6 02:29:52 2016 +0530 fixes MDEV-11354 twin include commit 611f91605adce17df87acf96b5aede0b73d0fc12 Author: Elena Stepanova Date: Mon Dec 5 20:19:01 2016 +0200 MDEV-9038 Binlog encryption tests - created binlog_encryption test suite and added it to the default list - moved some tests from rpl, binlog and multisource suites to extra so that they could be re-used in different suites - made minor changes in include files commit 9199d727598d60e2e56cebaadb74f4fb042cbcd4 Author: Marko Mäkelä Date: Mon Dec 5 15:25:59 2016 +0200 MDEV-11233 CREATE FULLTEXT INDEX with a token longer than 127 bytes crashes server This bug is the result of merging the Oracle MySQL follow-up fix BUG#22963169 MYSQL CRASHES ON CREATE FULLTEXT INDEX without merging the base bug fix: Bug#79475 Insert a token of 84 4-bytes chars into fts index causes server crash. Unlike the above mentioned fixes in MySQL, our fix will not change the storage format of fulltext indexes in InnoDB or XtraDB when a character encoding with mbmaxlen=2 or mbmaxlen=3 and the length of a word is between 128 and 84*mbmaxlen bytes. The Oracle fix would allocate 2 length bytes for these cases. Compatibility with other MySQL and MariaDB releases is ensured by persisting the used maximum length in the SYS_COLUMNS table in the InnoDB data dictionary. This fix also removes some unnecessary strcmp() calls when checking for the legacy default collation my_charset_latin1 (my_charset_latin1.name=="latin1_swedish_ci"). fts_create_one_index_table(): Store the actual length in bytes. This metadata will be written to the SYS_COLUMNS table. fts_zip_initialize(): Initialize only the first byte of the buffer. Actually the code should not even care about this first byte, because the length is set as 0. FTX_MAX_WORD_LEN: Define as HA_FT_MAXCHARLEN * 4 aka 336 bytes, not as 254 bytes. row_merge_create_fts_sort_index(): Set the actual maximum length of the column in bytes, similar to fts_create_one_index_table(). row_merge_fts_doc_tokenize(): Remove the redundant parameter word_dtype. Use the actual maximum length of the column. Calculate the extra_size in the same way as row_merge_buf_encode() does. commit ead6d0de0280b2e2f5b3f4daedc82d3750a41740 Author: Elena Stepanova Date: Mon Dec 5 03:13:28 2016 +0200 Follow-up for MDEV-9451 - fix XtraDB rdiff files commit b0754ad45e6a7e23b352099ebfe01e4f35cfad79 Author: Elena Stepanova Date: Mon Dec 5 03:11:42 2016 +0200 Follow-up for MDEV-11429 - fix result files for embedded and 32-bit tests commit f1b80d8ef11a8949fcc1c035f5ef0d5fb4382d0a Author: Marko Mäkelä Date: Fri Dec 2 16:25:47 2016 +0200 MDEV-11236 Failing assertion: state == TRX_STATE_NOT_STARTED trx_state_eq(): Add the parameter bool relaxed=false, to allow trx->state==TRX_STATE_NOT_STARTED where a different state is expected, if an error has been reported. trx_release_savepoint_for_mysql(): Pass relaxed=true to trx_state_eq(). That is, allow the transaction to be idle when ROLLBACK TO SAVEPOINT is attempted after an error has been reported to the client. commit 1e7f961d008762946cde5f9473fd418d5950551f Author: Marko Mäkelä Date: Thu Dec 1 14:56:09 2016 +0200 MDEV-9451 innodb_buffer_pool_populate does not seem to work on 10.1.10 Instead of interpreting --innodb-buffer-pool-populate as --innodb-numa-interleave, display warning when the option is set, saying that the option will be removed in MariaDB 10.2.3. commit 97b21a195354e1f00353a2810e18f0c38fc039cb Author: Monty Date: Fri Dec 2 14:02:30 2016 +0200 MDEV-10759 Fix Aria to support 2-byte collation IDs - Used same fix as for MyISAM: High level collation byte stored in unused bit_end position. - Moved language from header to base_info - Removed unused bit_end part in HA_KEY_SEG commit 2996f9aa883d28be3e3156f8cbd4d34ce6797e3c Author: Monty Date: Wed Nov 30 18:36:29 2016 +0200 MDEV-11429 Increase number of max table_open_cache instances Increase max number of possible table_open_cache instances from 512K to 1024K. This only affects user who are trying to set the variable over the old limit. Delete not used test table_open_cache_instances_basic (Need to be added back and rewritten in 10.2) commit c6a72d2c9ca3cd684feec97c4d229287e93ec756 Author: Olivier Bertrand Date: Fri Dec 2 11:29:14 2016 +0100 - MDEV-11366 SIGBUS errors in Connect Storage Engine for ArmHF and MIPS. Fix includes launchpad fix plus more to cover writing BIN tables. modified: storage/connect/tabfix.cpp modified: storage/connect/value.cpp modified: storage/connect/value.h - Typo: Change the name of filamzip to filamgz to prepare future ZIP tables. modified: storage/connect/CMakeLists.txt added: storage/connect/filamgz.cpp added: storage/connect/filamgz.h deleted: storage/connect/filamzip.cpp deleted: storage/connect/filamzip.h modified: storage/connect/plgdbsem.h modified: storage/connect/reldef.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp commit 2fd3af44830e8df9d60f2e8a955f9ed17e744986 Author: sensssz Date: Thu Dec 1 13:45:23 2016 -0500 MDEV-11168: InnoDB: Failing assertion: !other_lock || wsrep_thd_is_BF(lock->trx->mysql_thd, FALSE) || wsrep_thd_is_BF(other_lock->trx->mysql_thd, FALSE) Merged pull request: Fix error in lock_has_higher_priority #266 https://github.com/MariaDB/server/pull/266 Added test case. commit 52ea5ad865b4f6b4b37176296a3be0a716c5109a Author: SachinSetiya Date: Thu Dec 1 11:24:04 2016 +0530 MDEV-11016 wsrep_node_is_ready() check is too strict Problem:- The condition that checks for node readiness is too strict as it does not allow SELECTs even if these selects do not access any tables. For example,if we run SELECT 1; OR SELECT @@max_allowed_packet; Solution:- We need not to report this error when all_tables(lex->query_tables) is NULL: commit dbdef41a59ced64e21cd6c9059ce85496662212b Author: Jan Lindström Date: Tue Nov 29 08:41:45 2016 +0200 MDEV-10686: innodb_zip.innodb_prefix_index_liftedlimit failed with timeout in buildbot Test moved to big_test and not run with valgrind because of timeout. commit 9f31949b6460e7bd27daa8cbcaeb0343836e5352 Author: Jan Lindström Date: Tue Nov 29 08:35:51 2016 +0200 MDEV-10739: encryption.innodb-page_encryption_compression fails with timeout on valgrind Test moved to big_test and not run on valgrind. Test heavy especially on debug builds. commit e493c6bb432a4b83277e22c236a39b82a4859356 Merge: a68d1352b60 3bec0b327c7 Author: Kristian Nielsen Date: Mon Nov 28 09:57:28 2016 +0100 Merge remote-tracking branch 'my/tokudb_optimistic_parallel_replication' into 10.1 commit c82462c054ff01f62609db99ed07e584fcae87c0 Author: Olivier Bertrand Date: Sun Nov 27 14:35:01 2016 +0100 - Fix null pointer java error when connecting to jdbc:drill driver. By setting the context class loader. modified: storage/connect/JavaWrappers.jar modified: storage/connect/JdbcInterface.java modified: storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar commit c2f93a3354b664e7d54dc96b5d94bfc2d6cd8256 Author: Olivier Bertrand Date: Sun Nov 27 14:22:04 2016 +0100 - Fix null pointer java error when connecting to jdbc:drill driver. By setting the context class loader. modified: storage/connect/JavaWrappers.jar modified: storage/connect/JdbcInterface.java commit a68d1352b60bfc3a424fd290a4f5a1beae1bb71e Author: Marko Mäkelä Date: Fri Nov 25 06:28:02 2016 +0200 MDEV-11349 (2/2) Fix some bogus-looking Valgrind warnings buf_block_init(): Initialize buf_page_t::flush_type. For some reason, Valgrind 3.12.0 would seem to flag some bits in adjacent bitfields as uninitialized, even though only the two bits of flush_type were left uninitialized. Initialize the field to get rid of many warnings. buf_page_init_low(): Initialize buf_page_t::old. For some reason, Valgrind 3.12.0 would seem to flag all 32 bits uninitialized when buf_page_init_for_read() invokes buf_LRU_add_block(bpage, TRUE). This would trigger bogus warnings for buf_page_t::freed_page_clock being uninitialized. (The V-bits would later claim that only "old" is initialized in the 32-bit word.) Perhaps recent compilers (GCC 6.2.1 and clang 4.0.0) generate more optimized x86_64 code for bitfield operations, confusing Valgrind? mach_write_to_1(), mach_write_to_2(), mach_write_to_3(): Rewrite the assertions that ensure that the most significant bits are zero. Apparently, clang 4.0.0 would optimize expressions of the form ((n | 0xFF) <= 0x100) to (n <= 0x100). The redundant 0xFF was added in the first place in order to suppress a Valgrind warning. (Valgrind would warn about comparing uninitialized values even in the case when the uninitialized bits do not affect the result of the comparison.) commit 3bec0b327c77456c826040fd4591844d37c58e79 Author: Kristian Nielsen Date: Wed Nov 23 16:45:31 2016 +0100 Parallel replication test case for TokuDB. commit 8da33e3a868e7ab4472823f8f3bfab3d5cd1833e Author: Marko Mäkelä Date: Fri Nov 25 06:09:00 2016 +0200 MDEV-11349 (1/2) Fix some clang 4.0 warnings In InnoDB and XtraDB functions that declare pointer parameters as nonnull, remove nullness checks, because GCC would optimize them away anyway. Use #ifdef instead of #if when checking for a configuration flag. Clang says that left shifts of negative values are undefined. So, use ~0U instead of ~0 in a number of macros. Some functions that were defined as UNIV_INLINE were declared as UNIV_INTERN. Consistently use the same type of linkage. ibuf_merge_or_delete_for_page() could pass bitmap_page=NULL to buf_page_print(), conflicting with the __attribute__((nonnull)). commit 1d8eafbeafbc4a77153d6ceb974dbbeff543e648 Author: Alexander Barkov Date: Thu Nov 24 15:55:55 2016 +0400 Removing the unused function my_bincmp() from strings/ctype-ucs2.c commit 021f78f6956d2f33cfbee3b3a2a20e9c822e0c98 Author: Kristian Nielsen Date: Wed Nov 23 16:44:03 2016 +0100 Use thd_kill_level() over old thd_killed() in TokuDB. commit 660a2928a535e36e5dda846677dce4ba96508cd7 Author: Kristian Nielsen Date: Wed Nov 23 16:46:33 2016 +0100 Fix optimistic parallel replication for TokuDB. Make TokuDB report row lock waits with thd_rpl_deadlock_check(). This allows parallel replication to properly detect conflicts, and kill and retry the offending transaction. commit d145d1b6ee42ffa7f9ca2ce02478a31a09f3fe99 Author: Kristian Nielsen Date: Wed Nov 23 12:29:38 2016 +0100 fix bogus stalls in the lock tree for low concurrency applications Merge into the MariaDB tree the pull request from Rich Prohaska for PerconaFT. These changes are needed to get parallel replication to work with TokuDB. Once the pull request is accepted by Percona and the new upstream version enters MariaDB, this commit can be superseded. Original commit message from Rich Prohaska: 1. Fix the release before wait race The release before wait race occurs when a lock is released by transaction A after transaction B tried to acquire it but before transaction B has a chance to register it's pending lock request. There are several ways to fix this problem, but we want to optimize for the common situation of minimal lock conflicts, which is what the lock acquisition algorithm currently does. Our solution to the release before wait race is for transaction B to retry its lock request after its lock request has been added to the pending lock set. 2. Fix the retry race The retry race occurs in the current lock retry algorithm which assumes that if some transaction is running lock retry, then my transaction does not also need to run it. There is a chance that some pending lock requests will be skipped, but these lock requests will eventually time out. For applications with small numbers of concurrent transactions, timeouts will frequently occur, and the application throughput will be very small. The solution to the retry race is to use a group retry algorithm. All threads run through the retry logic. Sequence numbers are used to group retries into batches such that one transaction can run the retry logic on behalf of several transactions. This amortizes the retry cost. The sequence numbers also ensure that when a transaction releases its locks, all of the pending lock requests that it is blocking are retried. 3. Implement a mechanism to find and kill a pending lock request Tags lock requests with a client id, use the client id as a key into the pending lock requests sets to find a lock request, complete the lock request with a lock timeout error. Copyright (c) 2016, Rich Prohaska All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. commit 57058cb6772ec4205c1b0bade761f5bf65772748 Author: Jan Lindström Date: Tue Nov 22 16:38:36 2016 +0200 MDEV-10377: innodb.innodb_blob_truncate fails in buildbot: Failing assertion: page_type == 34354 || page_type == 37401 || page_type == 17855 || page_type == 2 || page_type == 3 || ... Page type FIL_PAGE_TYPE_ZBLOB2 was missing from assertion. commit ee3c99dfc7703de7f09a40ccdc6e0b65f5e987a7 Merge: af05becb4c7 7ed5563bbee Author: SachinSetiya Date: Tue Nov 22 16:17:05 2016 +0530 Merge branch 'bb-mdev-11016' into 10.1 commit af05becb4c78d843f34328931704d82faaa8f213 Author: Jan Lindström Date: Wed Nov 16 13:52:41 2016 +0200 MDEV-10771: Test innodb_defragment_fill_factor does not work correctly Added more columns to stabilice the test case. commit bccd0b5e0e2a118d31d5eedf2e363273157d7ca9 Merge: cf29e8c55b1 717f212840a Author: Kristian Nielsen Date: Tue Nov 15 13:10:21 2016 +0100 Merge branch 'mdev10863' into 10.1 commit cf29e8c55b1f39234b5e38cee28f0241a23436fd Author: Nirbhay Choubey Date: Mon Nov 14 11:02:57 2016 -0500 wsrep_info plugin: Fix test case commit 558245d54052f037de211ccc402646261a26f047 Author: Olivier Bertrand Date: Mon Nov 14 15:22:22 2016 +0100 - MDEV-11051 place Java classes ApacheInterface and JdbcInterface into single jar file. Try to fix the INSTALL command. modified: storage/connect/CMakeLists.txt - Make some JDBC tests available on Windows modified: storage/connect/mysql-test/connect/t/jdbc.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test added: storage/connect/mysql-test/connect/t/windows.inc commit 163629f32b51ab36af5695a626531443816a17ad Author: Olivier Bertrand Date: Mon Nov 14 11:41:46 2016 +0100 - MDEV-11067 suggested to add configuration support to the Apache wrapper. Try to fix the INSTALL command. modified: storage/connect/CMakeLists.txt commit 0bec832fea5e46f33f513c5e2ba2f1551bc04af5 Author: Olivier Bertrand Date: Mon Nov 14 00:46:45 2016 +0100 - MDEV-11067 suggested to add configuration support to the Apache wrapper. Suppress / from the INSTALL command. modified: storage/connect/CMakeLists.txt commit db926c385ec320db2bf53537e9aa1537d44ac586 Author: Olivier Bertrand Date: Sun Nov 13 23:41:58 2016 +0100 - MDEV-11067 suggested to add configuration support to the Apache wrapper. Directly install a precompiled JavaWrappers.jar file. modified: storage/connect/CMakeLists.txt added: storage/connect/JavaWrappers.jar removed: storage/connect/ApacheInterface.class removed: storage/connect/JdbcInterface.class removed: storage/connect/MariadbInterface.class removed: storage/connect/MysqlInterface.class removed: storage/connect/OracleInterface.class removed: storage/connect/PostgresqlInterface.class commit bc65996b82712b1a72f8bb072a3b8cc36d78ce87 Author: Olivier Bertrand Date: Sun Nov 13 18:39:35 2016 +0100 - Fix MDEV-11267. Insert NULL into JDBC table does not work. Fixed in JDBConn::SetParam and adding java function SetNullParm. modified: storage/connect/jdbconn.cpp modified: storage/connect/JdbcInterface.java modified: storage/connect/mysql-test/connect/disabled.def modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar - MDEV-11067 suggested to add configuration support to the Apache wrapper. Uncommented out to test if it works. modified: storage/connect/CMakeLists.txt added: storage/connect/ApacheInterface.class added: storage/connect/JdbcInterface.class added: storage/connect/MariadbInterface.class added: storage/connect/MysqlInterface.class added: storage/connect/OracleInterface.class added: storage/connect/PostgresqlInterface.class commit 1fee0171bcc9a71eb4f1e503232682e232c0bf6e Author: Jan Lindström Date: Wed Nov 9 15:23:25 2016 +0200 MDEV-10692: InnoDB: Failing assertion: lock->trx->lock.wait_lock == lock When we enter here wait_lock could be already gone i.e. NULL, that should be allowed. commit 6ae3dd6fb4c466e0facb26261349eb9c9debd6e5 Author: Vladislav Vaintroub Date: Wed Nov 9 00:10:45 2016 +0100 AWS Key management plugin does not build on Centos7. Building AWS C++ SDK as external project needs CMake 2.8.12 Centos7 out of the box has 2.8.11, thus the build fails. Fixed check for required CMake version. commit 909e2392b2b31888a8410d6d692fc520243c8497 Author: Daniel Bartholomew Date: Mon Nov 7 10:51:35 2016 -0500 bump the VERSION commit 41e11a8ac6ae62a9320beff451dbd031540c1f7a Author: Daniel Bartholomew Date: Mon Nov 7 10:25:03 2016 -0500 bump the VERSION commit cde0746135a9cfb015d6c487cecdec22b5587238 Author: Olivier Bertrand Date: Sun Nov 6 10:23:18 2016 +0100 - Fix MDEV-11234. Escape quoting character. Should be doubled. Now it is also possible to escape it by a backslash. modified: storage/connect/tabfmt.cpp - Prepare making VEC table type support conditional. VEC tables might be unsupported in future versions modified: storage/connect/CMakeLists.txt modified: storage/connect/mycat.cc modified: storage/connect/reldef.cpp modified: storage/connect/xindex.cpp - MDEV-11067 suggested to add configuration support to the Apache wrapper. Was added but commented out until prooved it is really useful. modified: storage/connect/ApacheInterface.java modified: storage/connect/ha_connect.cc modified: storage/connect/jdbccat.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h - Remove useless members. modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h - New UDF countin. modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h commit 5fda340dc378a8542d55d4734d68fcc918549175 Author: Elena Stepanova Date: Fri Nov 4 14:04:24 2016 +0300 Remove galera suites from default list for now, tests are unstable commit 1ddd1b5d372492edfadd220ddcf30949b0efb02c Author: Elena Stepanova Date: Fri Nov 4 13:41:26 2016 +0300 Add sphinx tests to the list, just in case they are run somewhere commit ee0094d2fd48dac0c6933a7d6ab364bf0c733aa8 Author: Elena Stepanova Date: Fri Nov 4 13:33:28 2016 +0300 MDEV-10985, MDEV-10986 - sphinx tests have not been maintained commit cbfb3f9cb17e85d63a4f3225fe3de9410f1f0d25 Author: Nirbhay Choubey Date: Thu Nov 3 19:30:02 2016 -0400 Move disabled galera tests to galera/disabled.def commit d34cd353449d9902d2dd04e98d6b2d7d4fffa336 Author: Alexander Barkov Date: Thu Nov 3 22:07:31 2016 +0400 Disabling tests mentioned in MDEV-11229 galera.MW-258 galera.galera_as_master fail in buildbot commit f0d8a4d29e3dbd713dc13fb052acd0a96ab47522 Author: Alexander Barkov Date: Thu Nov 3 22:02:24 2016 +0400 MDEV-11219 main.null fails in buldbot and outside with ps-protocol commit c7e1c89070e34e13cb4a3e947021b91fb211959a Author: Nirbhay Choubey Date: Wed Nov 2 21:10:39 2016 -0400 Disable unstable galera_concurrent_ctas test. commit 7971360ffa00e6a024182b1d437a50d174eb4b37 Author: Nirbhay Choubey Date: Wed Nov 2 21:08:44 2016 -0400 Fix a build failure noticed on Yakkety. commit 82780a7c0031af3fe6d8b9bc9f46ace2876c33f6 Author: Elena Stepanova Date: Wed Nov 2 21:20:00 2016 +0300 MDEV-11130 Update the list of unstable tests for 10.1 commit 54d3dc0e93aea78a0dbd66a89f31ed5fa633c582 Author: Nirbhay Choubey Date: Tue Nov 1 17:27:53 2016 -0400 Fix/disable some failing galera tests. commit 7a170205e0dbd7db9047ad1e25fb465b047c6c33 Author: Nirbhay Choubey Date: Wed Oct 26 13:19:00 2016 -0400 MDEV-11152: wsrep_replicate_myisam: SELECT gets replicated using TO Fixed the 'wsrep_replicate_myisam' check to allow only limited set of commands. Added a debug assert to discover such cases. commit 07918b48b8c959e708a6175241d59c739fb63418 Author: Nirbhay Choubey Date: Mon Oct 10 14:02:37 2016 -0400 MDEV-10993: wsrep.mdev_10186 result depends on location of galera library Update test case. commit 3daf89ced99b41ad6144cd1d4236959e641f5592 Author: Nirbhay Choubey Date: Wed Oct 5 04:24:07 2016 -0400 MDEV-10957: Assertion failure when dropping a myisam table with wsrep_replicate_myisam enabled Internal updates to system statistical tables could wrongly trigger an additional total-order replication if wsrep_repli -cate_myisam is enabled. Fixed by adding a check to skip total-order replication for stat tables. Test: galera.galera_var_replicate_myisam_on commit 6dbfe7f399d121dc2a040b21c96777c0a47141fb Author: Nirbhay Choubey Date: Mon Oct 3 12:02:46 2016 -0400 MDEV-10944: GALERA log-slave-updates FAIL after upgrading from 10.1.17 to 10.1.18 thd->variables.option_bits need to be restored after plugin_thdvar_init() during post initialization of wsrep threads. commit fa4fa0ab90e4e49dde955333667cc606838d8fa9 Author: Nirbhay Choubey Date: Fri Sep 30 21:13:03 2016 -0400 Make galera test suites default. commit a52a68cb7da765a807856a8c6f238446f57b8f2a Author: Rik Prohaska Date: Wed Jul 13 16:17:08 2016 -0400 fix the tokudb_analyze_in_background_basic test to run on mariadb. mariadb does additional value checking for boolean system variables commit 110a9f069386302c9caa0b1a451407d6512fdda5 Author: Rik Prohaska Date: Wed Jul 13 15:15:35 2016 -0400 add mtr support files for tokudb_sys_vars tests commit c948559135aed3c48d49e2fdcca31be3ffde1ec1 Author: Rik Prohaska Date: Wed Jul 20 13:43:53 2016 -0400 MDEV-10408 run the tokudb_rpl.rpl_rfr_disable_on_expl_pk_absence test. Add control files. Fixup result file for mariadb commit a98c85bb501e9021c0d8d509b8c040611d4c0c3a Merge: c18054deb2b 7196691b44b Author: Sergei Golubchik Date: Wed Nov 2 13:44:07 2016 +0100 Merge branch '10.0-galera' into 10.1 commit c18054deb2b5cfcf1f13aa71574406f2bafb87c6 Author: Alexander Barkov Date: Wed Nov 2 08:20:15 2016 +0400 MDEV-10347 mysqld got signal 11 commit 7196691b44b65e12cb5cca6f17c8d0f091eb443f Author: Nirbhay Choubey Date: Tue Nov 1 17:20:12 2016 -0400 Fix/disable some failing galera tests. commit 554c60ab0d383e8e6d473294fb86a9db0b0d2b9b Author: Jan Lindström Date: Mon Oct 31 12:44:06 2016 +0200 MDEV-11182: InnoDB: Assertion failure in file buf0buf.cc line 4730 (encryption.create_or_replace fails in buildbot and outside) Analysis: Problem is that page is encrypted but encryption information on page 0 has already being changed. Fix: If page header contains key_version != 0 and even if based on current encryption information tablespace is not encrypted we need to check is page corrupted. If it is not, then we know that page is not encrypted. If page is corrupted, we need to try to decrypt it and then compare the stored and calculated checksums to see is page corrupted or not. commit cb5685a87239d35ff4173192cbc345605bdb1e1a Author: Jan Lindström Date: Mon Oct 31 08:49:36 2016 +0200 MDEV-11184: innodb.innodb-wl5522-debug-zip fails in buildbot on Windows commit 9aa73153db765166712dd45e07da7f274c216a9e Author: Jan Lindström Date: Mon Oct 31 08:48:00 2016 +0200 MDEV-11183: innodb.innodb-wl5522-debug fails in buildbot and outside commit 67e6cfd086e41d8918ae0a6b3077a84880819bc8 Author: Jan Lindström Date: Sun Oct 30 09:16:02 2016 +0200 Add suppression for new InnoDB error log error as this test intentionally produces this error. commit 58b5c40b09b5134913d33752c88cce3003550b7b Author: Jan Lindström Date: Sat Oct 29 12:57:48 2016 +0300 Remove accidentally added directory. commit bb4b8c74702b8e8c6eea14da9a913f6d7cc61302 Author: Jan Lindström Date: Fri Oct 28 13:59:35 2016 +0300 MDEV-9099: Test encryption.innodb_encryption_discard_import fails on buildbot commit de0f77a2a87e0d77df9cd2b079f51e3142db1e22 Author: Jan Lindström Date: Fri Oct 28 09:27:03 2016 +0300 MDEV-11106: Improve error messages when importing tablespaces Add error message when used index_id in index page is not found from configuration file. commit 84ce681969c3cdec095a45517164275989f95477 Author: Jan Lindström Date: Thu Oct 27 15:01:15 2016 +0300 MDEV-10917: Warning suggesting that innodb_page_size is experimental may be inaccurate Removed experimental from message. commit 885577fb10cba63a4a140bd91257a3cd2b402159 Author: Jan Lindström Date: Thu Oct 27 14:51:10 2016 +0300 MDEV-11004: Unable to start (Segfault or os error 2) when encryption key missing Two problems: (1) When pushing warning to sql-layer we need to check that thd != NULL to avoid NULL-pointer reference. (2) At tablespace key rotation if used key_id is not found from encryption plugin tablespace should not be rotated. commit bc323727de312b32e80ae9590e2346414746a594 Author: Jan Lindström Date: Thu Oct 27 08:18:14 2016 +0300 MDEV-10977: [ERROR] InnoDB: Block in space_id 0 in file ibdata1 encrypted. MDEV-10394: Innodb system table space corrupted Analysis: After we have read the page in buf_page_io_complete try to find if the page is encrypted or corrupted. Encryption was determined by reading FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION field from FIL-header as a key_version. However, this field is not always zero even when encryption is not used. Thus, incorrect key_version could lead situation where decryption is tried to page that is not encrypted. Fix: We still read key_version information from FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION field but also check if tablespace has encryption information before trying encrypt the page. commit 5db2195a35c0a2ee7703ab603721b2f0987d2585 Merge: c9ded859a6f eca8c324e9a Author: Nirbhay Choubey Date: Fri Oct 28 15:50:13 2016 -0400 Merge tag 'mariadb-10.0.28' into 10.0-galera commit c1bbedbd4a20a8bd9354296244b6ec6263b29c6b Author: Vladislav Vaintroub Date: Fri Oct 28 20:37:18 2016 +0200 AWS key Management plugin - add plugin variable for the region AWS C++ SDK always defaults region to us-east-1 for clientConfiguration (ignoring config file or env.variable) This patch introduces a plugin variable 'region' to make it usable for master keys created in regions other than 'us-east-1'. commit 7ed5563bbee301bf8217080dc78ea6a3e78e23a8 Author: SachinSetiya Date: Wed Oct 26 14:52:24 2016 +0530 MDEV-11016 wsrep_node_is_ready() check is too strict Problem:- The condition that checks for node readiness is too strict as it does not allow SELECTs even if these selects do not access any tables. For example,if we run SELECT 1; OR SELECT @@max_allowed_packet; Solution:- We need not to report this error when all_tables(lex->query_tables) is NULL: commit ea0ae42d8324f6210b95a38bcf76014ce062d1f3 Merge: 4edd4ad6980 74961760a48 Author: Jan Lindström Date: Wed Oct 26 08:34:04 2016 +0300 Merge pull request #250 from sensssz/10.1-vats A few fixes for VATS in 10.1 commit 74961760a4837d2deb33336329c28cf9ad9b4e9e Author: sensssz Date: Tue Oct 25 18:57:03 2016 -0400 A few fixes for VATS in 10.1 commit 4edd4ad69807c11a2016ac1477805739270a8ee6 Author: Jan Lindström Date: Mon Oct 24 22:25:54 2016 +0300 MDEV-10970: Crash while loading mysqldump backup when InnoDB encryption is enabled Follow-up: Make sure we do not reference NULL-pointer when space is being dropped and does not contain any nodes. commit 021212b525e39d332cddd0b9f1656e2fa8044905 Merge: 1bfa37a79c7 183c02839f0 Author: Jan Lindström Date: Mon Oct 24 21:51:42 2016 +0300 Merge pull request #245 from sensssz/10.1-vats MDEV-11039 - Add new scheduling algorithm for reducing tail latencies commit 1bfa37a79c78998e11c79227089864358d05bb4c Author: Jan Lindström Date: Mon Oct 24 16:55:36 2016 +0300 Add more information if encryption information is already stored for tablespace but page0 is not yet read. commit ec5bd0d3855aa49afc3e356aa18b7edea3b7a18b Author: Jan Lindström Date: Mon Oct 24 09:25:36 2016 +0300 MDEV-10969: innochecksum dumps core for some .ibd files due to floating point exception Check that index has pages before using number of pages in divide operation. commit aea1967cc2851c5c24ca115053a5dbef24368fc5 Merge: ee1d08c1158 9401e6befd6 Author: Jan Lindström Date: Mon Oct 24 09:05:10 2016 +0300 Merge pull request #249 from Cona19/10.1-remove-unnecessary-semicolon Remove unnecessary semicolons commit 9401e6befd6c00ab07a13a5a6b2ff5bb208002b8 Author: Hyeonseok Oh Date: Mon Oct 24 14:58:41 2016 +0900 Remove unnecessary semicolons commit ee1d08c115819e7111ddeccb01ec0534d15fd871 Author: Vladislav Vaintroub Date: Sun Oct 23 00:10:37 2016 +0000 Revert "Prepare XtraDB to be used with xtrabackup." This reverts commit de5646f1a9aaf45f1b43d98623b40c95fb98ebce. commit de5646f1a9aaf45f1b43d98623b40c95fb98ebce Author: Vladislav Vaintroub Date: Sat Oct 22 14:10:12 2016 +0000 Prepare XtraDB to be used with xtrabackup. The changes are deliberately kept minimal - some functions are made global instead of static (they will be used in xtrabackup later on) - functions got additional parameter, deliberately unused for now : fil_load_single_tablespaces srv_undo_tablespaces_init - Global variables added, also unused for now : srv_archive_recovery srv_archive_recovery_limit_lsn srv_apply_log_only srv_backup_mode srv_close_files - To make xtrabackup link with sql.lib on Windows, added some missing source files to sql.lib - Fixed os_thread_ret_t to be DWORD on Windows commit 8f5e3e2a3491ae0f1b47400a82408b7853ae1efb Author: Vladislav Vaintroub Date: Fri Oct 21 16:20:47 2016 +0000 Fix escaping '\' in a string constant. commit 25848978334f9682f0b4712bf9d7c8222bab606f Author: Elena Stepanova Date: Wed Oct 19 03:02:13 2016 +0300 MDEV-11082 mysql_client_test: test_ps_query_cache fails with group-concat-max-len=1M test_bug14169 was setting session group_concat_max_len=1024 and did not clean it up. Because of that test_ps_query_cache, when run with group-concat-max-len != 1024, had different values in connections, and was inserting into query cache when a hit was expected. Fixed by adding a clean-up for the value in test_bug14169 commit fd1f5072839467d2d0216b85c2cd576284bc4955 Author: Elena Stepanova Date: Wed Oct 19 03:01:36 2016 +0300 Additions to the list of unstable tests commit c4776d3b2abfd5d1cf1d4d093067718e66a279fc Merge: ed4a6f12b3d 50f19ca8099 Author: Kristian Nielsen Date: Sun Oct 16 23:48:59 2016 +0200 Merge "remove unnecessary global mutex in parallel replication" into 10.1. commit 50f19ca8099994e992e1b411c7c05287855a7bdd Author: Kristian Nielsen Date: Tue Sep 20 15:30:57 2016 +0200 Remove unnecessary global mutex in parallel replication. The function apply_event_and_update_pos() is called with the rli->data_lock mutex held. However, there seems to be nothing in the function actually needing the mutex to be held. Certainly not in the parallel replication case, where sql_slave_skip_counter is always 0 since the non-zero case is handled by the SQL driver thread. So this patch makes parallel replication use a variant of apply_event_and_update_pos() without the need to take the rli->data_lock mutex. This avoids one contended global mutex for each event executed, which might improve performance on CPU-bound workloads somewhat. Signed-off-by: Kristian Nielsen commit cb8e5ecbceab33fac402426e08c2e7c5d56e4860 Author: Olivier Bertrand Date: Fri Oct 14 17:32:21 2016 +0200 - Fix MDEV-10950. Null values not retrieved for numeric types. Now the null is tested using the result set getObject method. modified: storage/connect/JdbcInterface.java modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h commit 183c02839f032e1d9057fd4e278806c26b016826 Author: sensssz Date: Thu Oct 13 01:23:21 2016 -0400 Move the lock after deadlock is resolved. commit 0a769b00b5bfa5384a69f1f0d526086d3943ba03 Author: sensssz Date: Wed Oct 12 21:54:31 2016 -0400 Get thd by lock->trx->mysql_thd. commit 5dc7ad87b8302afbe91824121e7eca6b43ae9256 Author: sensssz Date: Wed Oct 12 21:52:14 2016 -0400 Reduce conflict during in-order replication. commit 55d2bff882a60211a05bc368102e6d58835c2e67 Author: sensssz Date: Tue Oct 11 23:27:03 2016 -0400 Bug fix: add * and ; for innodb commit 288796f9272e5b714b16c9a0c3df88829c33ea71 Author: sensssz Date: Tue Oct 11 23:05:02 2016 -0400 Bug fix: missing * and ; commit e93d44f2d75f425b0a8bfa2fe4309b93d51e1b33 Author: sensssz Date: Tue Oct 11 23:02:26 2016 -0400 Bug fix: add undeclared variables. commit 6100f59ffaed0a4d4c224aa771999983f8acd496 Author: sensssz Date: Tue Oct 11 20:52:35 2016 -0400 Implement VATS both in InnoDB and XtraDB. Add configuration options for it in both of them. commit ed4a6f12b3db90de2168273871e7153fb458aee6 Author: Vladislav Vaintroub Date: Mon Oct 10 12:49:10 2016 +0000 MDEV-10823 amend : Use opt_log_basename instead of hostname to test filesystem case sensitivity. Hostname can include characters, which are invalid for use as filename, thus case sensitivity test will fail to produce meaningful results. commit e6c678c8a9c8d1b87375d50fe32110377477512b Author: Olivier Bertrand Date: Wed Oct 5 16:03:50 2016 +0200 - Fix MDEV-10948. Syntax error on quoted JDBC tables. Was because the quoting character was always '"' instead of being retrieve from the JDBC source. modified: storage/connect/JdbcInterface.java modified: storage/connect/jdbconn.cpp modified: storage/connect/tabjdbc.cpp commit f35e918989080d1810c2e1c7fc91f3130585607b Author: Daniel Bartholomew Date: Fri Sep 30 12:11:09 2016 -0400 bump the VERSION commit d83fd5fcde3a3feacab9006c63538541bd6e1c85 Author: Jan Lindström Date: Fri Sep 30 09:13:39 2016 +0300 MDEV-10685: innodb.xa_recovery failed in buildbot Test crashes server intentionally, need to be prepared for crash recovery and database page corruption. commit 6925689ca829901567e9503fd4fdce443f9a7d53 Author: Nirbhay Choubey Date: Thu Sep 29 14:58:32 2016 -0400 MDEV-9312: storage engine not enforced during galera cluster replication Postfix: The pre-initialization of wsrep threads is not needed for mysqldump sst method. commit 235876d70e22b7d8c06768b3a4a9ecbf5c9bbc7a Author: Sergei Golubchik Date: Thu Sep 29 14:21:14 2016 +0200 update test results after merge commit 2ede40e67e41f294a32ba3e4797bc6fc4c070217 Merge: ad207694506 a3f11f75499 Author: Sergei Golubchik Date: Thu Sep 29 12:59:51 2016 +0200 Merge branch '10.0' into 10.1 commit ad2076945062f7f6d29752641048071229435391 Author: Sergei Golubchik Date: Thu Sep 29 11:50:13 2016 +0200 init plugin psi keys before LOCK_plugin commit b34c813ae3531dbf851a9ef64ca816c1ccfc116d Author: Vladislav Vaintroub Date: Wed Sep 28 22:12:03 2016 +0200 MDEV-10201 SSL tests fail on fedora23 Fixed the remaining failing test case in 10.1 commit 9ff9acb3079b1c48f5be0f0a689cbbdda82b4c0e Author: Oleksandr Byelkin Date: Thu Sep 22 17:52:05 2016 +0200 MDEV-10716: Assertion `real_type() != FIELD_ITEM' failed in Item_ref::build_equal_items(THD*, COND_EQUAL*, bool, COND_EQUAL**) Degenerated condition in AND should be treated in the same way as in WHERE/HAVING alone (i.e reference should be processed as well as fields) commit d5dfa0f1c20614ca083a0c4f841534f2f68808dd Author: Nirbhay Choubey Date: Wed Sep 28 13:27:34 2016 -0400 MDEV-9416: MariaDB galera got signal 11 when altering table add unique index When a BF thread attempts to abort a victim thread's transaction, the victim thread is not locked and thus its not safe to rely on its data structures like htons registered for the trx. So, instead of getting the registered htons from victim, innodb's hton can be looked up directly from installed_htons[] and used to abort the transaction. (Same technique is used in older versions) commit 7c525ce36babf8cbceb05595a551dd140188e1ba Author: Nirbhay Choubey Date: Wed Sep 28 13:26:13 2016 -0400 MDEV-9312: storage engine not enforced during galera cluster replication Perform a post initialization of plugin-related variables of wsrep threads after their global counterparts have been initialized. commit 88f2ec6f207be182d782d9176a66bf66b8fbf65f Author: Nirbhay Choubey Date: Wed Sep 28 13:23:31 2016 -0400 MDEV-10041: Server crashes sporadically during bootstrap while running wsrep tests The crash is caused due to a race condition where wsrep startup threads invoke ha_maria::implicit_commit() method while maria_hton is partially initialized. The fix is to skip this method if plugins are uninitialized. commit e1c6f28f0de5f3ad6c17f581a365fd90a4e14316 Merge: 735a4a17c2b c9ded859a6f Author: Nirbhay Choubey Date: Wed Sep 28 13:20:02 2016 -0400 Merge branch '10.0-galera' into 10.1 commit c9ded859a6fad25fc513d3a0c7d17f826e567691 Author: Hartmut Holzgraefe Date: Wed Sep 21 10:51:37 2016 +0200 MDEV-10853 netcat help output in error log when running xtrabackup SST commit 735a4a17c2b83a214dcd5279c66cd3577ef76eb1 Author: Sergei Golubchik Date: Wed Sep 28 17:59:11 2016 +0200 MDEV-10508 Mariadb crash on out of disk space during dump import update info->write_end and info->write_pos together, with no "return on error" in between, otherwise write_end might end up being smaller than write_pos commit 794c826244c4d8b082600afa4999130fe688aa49 Author: Sergei Golubchik Date: Mon Sep 26 14:29:23 2016 +0200 MDEV-10890 plugins.pam fails in buildbot with valgrind initialize uninitialized value commit 66d9696596edbc20ad36bf3d5bffb5595e8235c3 Merge: 66a58f46e93 23af6f5942e Author: Sergei Golubchik Date: Wed Sep 28 17:55:28 2016 +0200 Merge branch '10.0' into 10.1 commit 66a58f46e937cdc3d7e0529b52ad8b658d9b2cd4 Merge: 0e472236ce1 a53f3c6d3cf Author: Sergei Petrunia Date: Wed Sep 28 16:19:05 2016 +0300 Merge fix for MDEV-10649 from 10.0 to 10.1 - storage/innobase/dict/dict0stats.cc - storage/xtradb/dict/dict0stats.cc commit 0e472236ce1e7da5f5916f712e29511fc1aade33 Author: VicenÈ›iu Ciorbaru Date: Tue Sep 27 17:38:47 2016 +0200 Make sure to recompile the feedback plugin for EMBEDDED On OS X with clang 7.3.0 running any test as embedded crashes. As libfeedback was not compiled with embedded, we had 2 notions of THD, with different number of members. When calling inline functions defined in sql_class.h, the functions were defined for 1 THD but called on an object that is different. This resulted in erroneous data being returned and shortly after, a crash within the alloc_query() function. Recompile the feedback plugin for the embedded server specifically to not have such symbol conflicts. commit e226276950497c0ec92b3bf71bc6c46ac4a779d4 Author: Oleksandr Byelkin Date: Wed Sep 14 18:15:03 2016 +0200 MDEV-10777: Server crashed due to query_cache_info plugin Possible fix. Make the pluging more safe. commit 3f5aedccca25da72e21d7859b55edeb172d45ce0 Author: Vladislav Vaintroub Date: Tue Sep 27 11:18:24 2016 +0000 MDEV-10847 Bring AWS KMS encryption plugin up-to-date with released SDK - Library path's are different now - New dependency on Linux libuuid - Add calls for SDK Initialization/shutdown - Also add request_timeout parameter, default SDK HTTPs timeout appears to be too short in my tests commit f1aefd9d758a3d464d77ede64f960ff33326eb72 Author: Vladislav Vaintroub Date: Fri Sep 23 18:55:44 2016 +0200 MDEV-10823 Certain unicode characters in hostname prevent mysqld from starting Server uses gethostname() for the default base name for pid/log files. If a character is not representable in current ANSI encoding, gethostname replaces it with question mark. Thus, generated log file name would also contain a question mark. However, Windows forbids certain characters in filenames, among them '?'. This is described in MSDN article https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx At attempts to create the file via freopen() fails, thus server would not be able to start. The fix is to verify hostname and fall back to "mysql", if invalid characters are found. commit 661d08c36ca9181e9f2469c66160e877e284c23f Author: Jan Lindström Date: Mon Sep 26 15:16:00 2016 +0300 MDEV-10887: innodb.innodb_stats_fetch_nonexistent fails in buildbot on Windows Problem was that test innodb.innodb_stats_fetch_corrupted will post a error InnoDB: Error: Table "mysql"."innodb_index_stats" not found to a error log and test ignores that message. However, following tests might see this error also and they might not ignore this error. Force a server restart after innodb.innodb_stats_fetch_corrupted to get clean log. commit 452e84952228a290b3c1fb16a8f60e2990aa8710 Author: Jan Lindström Date: Mon Sep 26 12:29:31 2016 +0300 MDEV-10886: encryption.innodb-bad-key-change fails (crashes) in buildbot Problem was that NULL-pointer was accessed inside a macro when page read from tablespace is encrypted but decrypt fails because of incorrect key file. Removed unsafe macro using inlined function where used pointers are checked. commit 4e2a0c34b02dd556c2a521555662ed993cdc66a6 Author: Jan Lindström Date: Mon Sep 26 09:58:50 2016 +0300 MDEV-10888: encryption.filekeys_emptyfile fails in buildbot with valgrind Problem was that length of the filekeys file was not checked and if length is less than OpenSSL_prefix_len uninitialized memory was accessed. commit d30809a3cde823ad696304a941afe5a562bfa3ed Author: Alexey Botchkov Date: Mon Sep 26 09:40:47 2016 +0400 MDEV-10832 Out of tree build: mysql_install_db to see all .sql files. One line in mysql_install_db.sh was left unfixed. commit 7d7b92c107aaa36ac5e2dc142eb9e6a6181ff35e Author: Jan Lindström Date: Sat Sep 24 14:21:27 2016 +0300 Disable encryption info and first page read info for every tablespace on product builds. commit 5d001d13c25c1de1178cc9109e829ef577c9ed73 Author: Daniel Black Date: Fri Sep 23 17:28:38 2016 +1000 MDEV-10832 - Out of tree build: mysql_install_db to see all .sql files (#237) * Out of tree build: mysql_install_db to see all .sql files Since MDEV-7875 (da0991c6), not all sql source files are in the source directory, maria_add_gis_sp_bootstrap.sql is in the build directory. This corrects mysql_install_db{.sh} to be aware of the differing locations. Signed-off-by: Daniel Black * Out of tree build: scripts/mysql_install_db.pl.in Signed-off-by: Daniel Black commit e136aa1ba7d6a0d4cc38e12a4cdcffaa5f0f01b1 Author: Jan Lindström Date: Fri Sep 23 09:11:11 2016 +0300 Fix test failure. Need to mask more tablespace numbers as they are not consistent on parallel mtr runs. commit 1d55cfce10fc78c386f4444b20a21c664a81a297 Author: Jan Lindström Date: Thu Sep 22 20:57:15 2016 +0300 Do not use os_file_read() directly for reading first page of the tablespace. Instead use fil_read() with syncronous setting. Fix test failures and mask tablespace number as it could change in concurrent mtr runs. commit 2bedc3978b90bf5abe1029df393c63ced1849bed Author: Jan Lindström Date: Thu Sep 22 16:32:26 2016 +0300 MDEV-9931: InnoDB reads first page of every .ibd file at startup Analysis: By design InnoDB was reading first page of every .ibd file at startup to find out is tablespace encrypted or not. This is because tablespace could have been encrypted always, not encrypted newer or encrypted based on configuration and this information can be find realible only from first page of .ibd file. Fix: Do not read first page of every .ibd file at startup. Instead whenever tablespace is first time accedded we will read the first page to find necessary information about tablespace encryption status. TODO: Add support for SYS_TABLEOPTIONS where all table options encryption information included will be stored. commit e387bfafbbb01ccfabeb2beb86efb199ca2ca3ac Author: Seamus Lee Date: Thu Sep 22 19:14:40 2016 +1000 MDEV-10830 - Fix undefined database test error when running mysql_install_db (#234) * Fix undefined database test error when running mysql_install_db When using mariaDb in docker mode it can fail as it calls mysql_install_db but as we are going through a slightly different install process the test database has not been created, therefore we should fall back to the mysql database as per https://mariadb.com/kb/en/mariadb/mariadb-10112-mysql_install_db-aborts-on-unkown-file-test/ * Also fix mysql_install_db.pl.in commit 9f837c6e1a54ea05be92112fe7520ffe0134b260 Author: Alexander Barkov Date: Thu Sep 22 10:03:12 2016 +0400 MDEV-10864 Wrong result for WHERE .. (f2=COMPRESS('test') OR f2=COMPRESS('TEST')) commit 7e4eb990adb71920cc10393194d7317ba07e3f91 Author: Alexander Barkov Date: Thu Sep 22 07:00:10 2016 +0400 MDEV-10425 Assertion `collation.derivation == DERIVATION_IMPLICIT' failed in Item_func_conv_charset::fix_length_and_dec() MDEV-10850 Wrong result for WHERE .. (f2=TO_BASE64('test') OR f2=TO_BASE64('TEST')) Problem N1: MDEV-10425 Item_func_{md5|sha|sha2}::fix_length_and_dec() changed args[0]->collation to force binary comparison in args[0]->eq(). It was done to treat e.g. MD5('a') and MD5('A') as different values. It is wrong for a Item_func_xxx to modify its arguments. Item_func_conv_charset did not expect that and crashed on assert. Problem N2: MDEV-10850 Item_func_to_base64, Item_func_password, Item_func_hex are also case sensitive hash functions, but they did not compare their arguments as binary. Solution: - Removing the code changing args[0]->collation - Introducing Item_str_ascii_checksum_func as a common parent for Item_func_{md5|sha|sha2|password|hex|to_base64} and overriding its eq() method to compare arguments binary. commit ec7e0b7b30ecd301da5990495cdf18b39425a7c6 Author: Alexander Barkov Date: Wed Sep 21 09:13:33 2016 +0400 MDEV-10556 Assertion `0' failed in virtual void Item_sum_field::set_result_field(Field*) commit 8b51bacfd63ffcffa06e2815dd5ee72a45b5de79 Author: Nirbhay Choubey Date: Tue Sep 20 21:32:53 2016 -0400 MDEV-10735: Valgrind warnings around Galera SST While copying the received state Id (uuid:seqno) to an uninitialized buffer, it was not properly null-terminated. commit 6eca463cae8e2e61469fcefa227acd4ae7b771c8 Author: Nirbhay Choubey Date: Tue Sep 20 15:17:57 2016 -0400 Fix typo in valgrind.supp commit 98cc0913f0fdfe8008d5e5ee167658262280c9a8 Author: Olivier Bertrand Date: Fri Sep 16 17:30:46 2016 +0200 - Woking on MDEV-10525. Lrecl mismatch on DBF files modified: storage/connect/filamdbf.cpp modified: storage/connect/filamdbf.h modified: storage/connect/reldef.cpp commit bb2c1a52c61706dde8c525a8887f2d364c0db1eb Merge: de7f87708a1 7e0c9de8648 Author: Kristian Nielsen Date: Fri Sep 9 11:53:50 2016 +0200 Merge parallel replication async deadlock kill into 10.1 commit de7f87708a156659e518bf4ccdb051e92a0a7521 Author: Alexander Barkov Date: Fri Sep 9 08:40:24 2016 +0400 MDEV-10702 Crash in SET STATEMENT FOR EXECUTE commit 7e0c9de86484815b6e014ce3ad3e3a9b74ec0ce0 Author: Kristian Nielsen Date: Thu Sep 8 15:25:40 2016 +0200 Parallel replication async deadlock kill When a deadlock kill is detected inside the storage engine, the kill is not done immediately, to avoid calling back into the storage engine kill_query method with various lock subsystem mutexes held. Instead the kill is queued and done later by a slave background thread. This patch in preparation for fixing TokuDB optimistic parallel replication, as well as for removing locking hacks in InnoDB/XtraDB in 10.2. Signed-off-by: Kristian Nielsen commit 8494039757a2f6353cc161e7824aab4fe2312d2a Author: Sergei Golubchik Date: Tue Sep 6 16:34:25 2016 +0200 fix the test to work without preceding sys_vars.wsrep_provider_basic commit 61fd38a1de5b24b1b86e42a191379cddd782404d Author: Sergei Golubchik Date: Mon Sep 5 17:11:14 2016 +0200 update plugin maturities commit 0799cf0804f925cc3c27537f46664608d31928d7 Merge: a4623b51601 747893a8545 Author: Olivier Bertrand Date: Mon Sep 5 13:04:55 2016 +0200 Fix merge conflict commit a4623b516014362558c90dc9d539f1db7b229b9c Author: Olivier Bertrand Date: Mon Sep 5 12:47:52 2016 +0200 - Fix MDEV-10496. Memory leak in discovery modified: storage/connect/ha_connect.cc - Fix wrong lrecl calculation for virtual columns modified: storage/connect/reldef.cpp - Typo modified: storage/connect/jdbconn.cpp modified: storage/connect/json.cpp commit 362ad94bb0068178c018e826db1fc6bfa56ea712 Author: Sergei Golubchik Date: Mon Sep 5 09:11:42 2016 +0200 cleanup: don't copy-paste, don't current_thd commit 747893a854515e96891dcfafed8adcc721e8011f Author: Nirbhay Choubey Date: Fri Sep 2 14:40:09 2016 -0400 MDEV-10545: Update perfschema.nesting result commit 31697d0b80353a1e086c0063c39db03454e137de Author: Nirbhay Choubey Date: Fri Sep 2 12:21:40 2016 -0400 MDEV-10545: Server crashed in my_copy_fix_mb on querying I_S and P_S tables Once THDs have been added to the global "threads" list, they must modify query_string only after acquiring per- thread LOCK_thd_data mutex. commit 3dd88fbd1132ae36c00adb67cbe2fc4ff97a6789 Author: Nirbhay Choubey Date: Thu Sep 1 12:59:11 2016 -0400 MDEV-10714: Could not execute Delete_rows event on table; wsrep_max_ws_rows exceeded. Error_Code 1180 The wsrep_max_ws_rows related implementation should be skipped when server is running with wsrep disabled. commit 616271b7c9f69596df740a8fec5a4f39b959d064 Author: Nirbhay Choubey Date: Thu Sep 1 12:53:44 2016 -0400 Cleanup: MDL_context::wsrep_get_thd() is no longer needed commit a322651b8aa702e58d473edfae26606f10a089fb Author: Oleksandr Byelkin Date: Mon Aug 29 16:44:46 2016 +0200 MDEV-10017: Get unexpected `Empty Set` for correlated subquery with aggregate functions take into account all arguments of aggregate function commit f6e47c00314b05f2b179e9e63f0e7b0062598cdc Merge: 64fe3894dd0 080ac476618 Author: Sergey Vojtovich Date: Wed Aug 31 11:51:12 2016 +0400 Merge pull request #224 from 0xAX/build-get-rid-from-die remove die() from BUILD/autorun.sh commit 64fe3894dd031b37ea459682f34b172961dffe38 Author: Daniel Bartholomew Date: Tue Aug 30 10:32:37 2016 -0400 bump the VERSION commit a02642b66e06f95b80fa9ee592ba50eb61dc2f17 Author: Oleksandr Byelkin Date: Thu Jun 23 17:50:07 2016 +0200 MDEV-10017: Get unexpected `Empty Set` for correlated subquery with aggregate functions (part 1) Make aggregate function dependency visible. commit 00d84eada2806431fdd10f4dbcffdff450be2ee0 Author: Oleksandr Byelkin Date: Wed Jun 22 11:17:44 2016 +0200 MDEV-10045: Server crashes in Time_and_counter_tracker::incr_loops Do not set 'optimized' flag until whole optimization procedure is finished. commit 7d115e73b8a0a9f5bc8160a0bcf966ea2283a829 Author: Elena Stepanova Date: Sat Aug 27 19:50:42 2016 +0300 MDEV-10604 Create a list of unstable MTR tests to be disabled in distribution builds List of unstable tests for 10.1 commit 467217e66951defe62083dc10e5d205d7b94a9b7 Author: Nirbhay Choubey Date: Fri Aug 26 12:45:48 2016 -0400 MDEV-9510: Print extra info to error log Activated by enabling wsrep_debug. commit a66092f2ebae6461085ee2db03e1150563953d49 Merge: 2d65679384c 3575618237d Author: Sergei Golubchik Date: Fri Aug 26 10:12:47 2016 +0200 Merge branch 'bb-10.1-serg' into 10.1 commit 3575618237d543df8ae137fb640bf3c1e8259c8b Author: Nirbhay Choubey Date: Thu Aug 25 21:28:26 2016 -0400 Post merge fixes. commit 16702ec95f301d1a21eb5a6f5531387c9254b952 Author: Nirbhay Choubey Date: Thu Aug 25 21:19:25 2016 -0400 Record wsrep.variables test result (with non-debug galera library). commit 90266e8a0eb46867c990930fa4d305d2424929ba Merge: dfa3046db48 b506d9527b4 Author: Nirbhay Choubey Date: Thu Aug 25 15:39:39 2016 -0400 Merge branch '10.0-galera' into bb-10.1-serg commit 2d65679384c36ae2e46b2f62538223c3d71fb00a Author: Sergei Petrunia Date: Thu Aug 25 19:47:38 2016 +0300 MDEV-10665: Json_writer produces extra members in output Fix an issue in Single_line_formatting_helper: flush_on_one_line() didn't clean up the buffered items which could cause them to be printed for the second time. This can't be ever observed by a user (see MDEV text for details). commit dfa3046db48d8439cf3eb02ba6623fe2f6e44f91 Author: Sergei Golubchik Date: Thu Aug 25 15:11:21 2016 +0200 fix a test for windows commit 6b1863b8304662189a3b9a4aef1e1bebef035b86 Merge: ea91bb6801b 5bbe929d706 Author: Sergei Golubchik Date: Thu Aug 25 12:40:09 2016 +0200 Merge branch '10.0' into 10.1 commit 080ac47661871da7be425a73d5aa068806e9946c Author: Alexander Kuleshov Date: Thu Aug 25 15:56:53 2016 +0600 remove die() from BUILD/autorun.sh This patch removes die() function from the BUILD/autorun.sh. It was introduced in the c682570431 commit (Fix BUILD/autorun.sh to really bail out on error.). Last users of die() was removed in the 8664de22 commit (WL#5665: Removal of the autotools-based build system) and since it is not used anywhere. No functionality changes. Just cleanup. commit b506d9527b4303b91f69fe6b6f21f911e5bfef72 Merge: c309e99ff9b d40d3f4e57f Author: Nirbhay Choubey Date: Wed Aug 24 19:41:11 2016 -0400 Merge branch '5.5-galera' into 10.0-galera commit c309e99ff9b48c1736ff468e72153048c4b56561 Merge: 8b09db8bfb8 5bbe929d706 Author: Nirbhay Choubey Date: Wed Aug 24 19:30:32 2016 -0400 Merge branch '10.0' into 10.0-galera commit 8b09db8bfb81f1e7695cfcfa6ce2bec45247171f Author: Nirbhay Choubey Date: Wed Aug 24 17:13:20 2016 -0400 Fixes/improvements in galera test suite commit 1b7c5dedf7266d73c9c402cefee681251aea1e18 Author: Nirbhay Choubey Date: Wed Aug 24 15:32:48 2016 -0400 MDEV-10566: Create role statement replicated inconsistently in Galera Cluster In galera cluster, the definer (and thus binlog invoker) must be set for CREATE ROLE before Query_log_event is created during TOI on the originating node. commit ea91bb6801b1b619d64fa137ea351eca9de683ec Author: Sergei Golubchik Date: Tue Jul 26 12:34:04 2016 +0200 MDEV-10361 Crash in pam_securid.so with auth_pam connecting from SQLyog auth_pam: debug output commit 2024cddaa412e7c4a2aff8bb50907868155019da Author: Nirbhay Choubey Date: Mon Aug 22 21:27:20 2016 -0400 MDEV-10518: Large wsrep_gtid_domain_id may break IST wsrep_gtid_domain_id was incorrectly being parsed and stored as a signed long number on the joiner node. commit 3ac0721a3c8eecf8843b527cdc4d08c20edb6268 Author: Nirbhay Choubey Date: Mon Aug 22 19:06:32 2016 -0400 MDEV-10507: MariaDB 10.1 + wsrep fails to start under systemd post-reboot /var/run/mysqld must be created before wsrep recovery. commit 294961cc4d4d55730e807b3f0a7f93a3dd4d4f7b Author: Nirbhay Choubey Date: Mon Aug 22 18:38:06 2016 -0400 MDEV-10538: MariaDB fails to start without galera_recovery in systemd mode Update ExecStartPre scripts to not fail if 'galera_recovery' script is not available. commit f381ad5230e0537c63ad721d39aab1681e0a213a Author: Nirbhay Choubey Date: Sun Aug 21 20:13:51 2016 -0400 Update WSREP_PATCH_REVNO. commit 3f481e52e41deecb05874989a51d6b009fda1a23 Author: Nirbhay Choubey Date: Sun Aug 21 20:09:05 2016 -0400 Fixes for failing tests (post-merge). commit cced23cf23f013bee9f137001f1d51142bace964 Author: Nirbhay Choubey Date: Wed Jun 29 16:50:53 2016 -0400 MDEV-9423: cannot add new node to the cluser: Binlog.. .. file '/var/log/mysql/mariadb-bin.000001' not found in binlog index, needed for recovery. Aborting. In Galera cluster, while preparing for rsync/xtrabackup based SST, the donor node takes an FTWRL followed by (REFRESH_ENGINE_LOG in rsync based state transfer and) REFRESH_BINARY_LOG. The latter rotates the binary log and logs Binlog_checkpoint_log_event corresponding to the penultimate binary log file into the new file. The checkpoint event for the current file is later logged synchronously by binlog_background_thread. Now, since in rsync/xtrabackup based snapshot state transfer methods, only the last binary log file is transferred to the joiner node; the file could get transferred even before the checkpoint event for the same file gets written to it. As a result, the joiner node would fail to start complaining about the missing binlog file needed for recovery. In order to fix this, a mechanism has been put in place to make REFRESH_BINARY_LOG operation wait for Binlog_checkpoint_log_event to be logged for the current binary log file if the node is part of a Galera cluster. As further safety, during rsync based state transfer the donor node now acquires and owns LOCK_log for the duration of file transfer during SST. commit 415823a41cb7f302e9620f2b0fb57bcc69140d3f Author: sjaakola Date: Wed Jun 8 15:19:01 2016 +0300 Refs: MW-279 - fixes in innodb to skip wsrep processing (like kill victim) when running in native mysql mode - similar fixes in mysql server side - forcing tc_log_dummy in native mysql mode when no binlog used. wsrep hton messes up handler counter and used to lead in using tc_log_mmap instead. Bad news is that tc_log_mmap does not seem to work at all commit fec296cc10f0d1319e032b72e92e3c824b7fc390 Author: Damien Ciabrini Date: Fri Aug 12 10:57:58 2016 +0200 refs codership/mysql-wsrep#267 Fix Galera crash at startup when compiled with gcc 6 commit 2e56c7f3cdfc882aad25b606a4d14f9cb6295451 Author: Philip Stoev Date: Tue Aug 9 12:34:03 2016 +0300 Bump WSREP_PATCH_VERSION to 16 commit f01a16b54196ef5f816ca5a1bb590262ce0381e6 Author: Philip Stoev Date: Thu Aug 4 00:33:12 2016 -0700 Galera MTR Tests: fortify galera_bf_abort_flush_for_export against sporadic failures. commit 30c6ac3cd152c1280fe9ccfb86b42e8048e3dc91 Author: Philip Stoev Date: Wed Aug 3 02:52:39 2016 -0700 Galera MTR Tests: Attempt to fortify galera_kill_ddl.test against sporadic failures commit 065645313528fcb8a996b6a5f08686193b0b696c Author: Philip Stoev Date: Fri Jul 22 04:16:09 2016 -0700 Galera MTR Tests: increase timeouts and adjust some sporadically-failing tests so that the Galera suites can be run with --parallel=4 commit 85b9718b22adcc26952c13509d81fa61fa107f44 Author: Philip Stoev Date: Wed Jul 13 03:19:20 2016 -0700 Galera MTR Tests: Test case for galera#414 - crash on shutdown with gcs.max_packet_size=2 commit ea3ff73031dd14664045bcbe7ad922b780d229c9 Author: Daniele Sciascia Date: Thu Jun 9 09:21:43 2016 +0200 GCF-837 Fix crash when loading wrong provider version mysqld would crash with "double free or corrruption message" if wrong provider version was given. commit bf19492e3b3d73af6ea6c9ff61aa1838a55965ea Author: Daniele Sciascia Date: Mon Jun 13 17:49:42 2016 +0200 GCF-837 Check wsrep interface version before loading provider commit dfa9012abbaaec15e99e3fb8cbe3c90cf6dc8e3b Author: Daniele Sciascia Date: Mon Jun 20 14:35:22 2016 +0200 MW-285 MTR test case for broken foreign key constraints commit c9ac48f8451d213cdf7fd4cee091025846306526 Author: Krunal Bauskar Date: Thu Jun 2 16:44:54 2016 +0530 - PXC#592: Tried closing fk-reference-table that was never opened. Function "wsrep_row_upd_check_foreign_constraints" tried to mark fk-reference-table opened without ensuring it table is really opened. commit 88a1592b0a785aff0941540a9543ef2964caaf21 Author: Daniele Sciascia Date: Tue Jun 14 17:18:21 2016 +0200 MW-286 Avoid spurious deadlock errors when wsrep_on is disabled If a conflict happens under wsrep_on, the THD's wsrep_conflict_state is typically set to MUST_ABORT and cleared later, when transaction is aborted. However, when wsrep_on is disabled, no check is performed to see whether wsrep_conflict_state is set. So this potentially creates spurious deadlock errors on the subsequent statement that runs with wsrep_on enabled. To avoid this problem wsrep_thd_set_conflict_state() sets the conflict state only if wsrep_on is enabled. commit a12fa57d35c00897fd883434e6573a65e6edfb41 Author: Philip Stoev Date: Mon Jun 13 06:17:33 2016 -0700 Galera MTR Tests: Run galera_pc_weight on freshly started servers in order to prevent interaction with other tests commit 5996c7baad2cc936881442ccb26bdde3b04ad6f2 Author: sjaakola Date: Tue Jun 7 10:46:14 2016 +0300 refs: MW-279 - At startup time global wsrep_on is set too late and some wsrep paths may be executed because of this. e.g. replication slave restart could happen before wsrep_on state is defined. - This fix checks both global wsrep_on and wsrep_provider values to determine if wsrep processing should happen - Fix affects all instances where WSREP_ON macro is used commit 0e83726edb4437fb40fcbb043ccf3721ac60fbac Author: Philip Stoev Date: Fri Jun 3 04:26:17 2016 -0700 Galera MTR Tests: force galera_3nodes.galera_pc_bootstrap.test to run on a fresh cluster in order to avoid interaction with galera_3nodes.galera_innobackupex_backup.test commit 5609020c7101f2ffb9ec68dfc68896b242da3de1 Author: Philip Stoev Date: Thu Jun 2 23:56:16 2016 -0700 Galera MTR Tests: fortify galera_parallel_simple.test against sporadic failures commit 1cb01fe7d2fd5651abf9df743c38fcae4541bd2a Author: Philip Stoev Date: Thu Jun 2 23:39:12 2016 -0700 Galera MTR Tests: Fortify galera_restart_nochanges.test against sporadic failures due to node not being ready immediately after restart commit 92162e6d8761d8586299cfd88682a7704df2d7fa Author: Daniele Sciascia Date: Wed May 18 11:07:58 2016 +0200 MW-175 Fix definitively lost memory in wsrep_get_params commit 137af55ca1064a605fed608572b34135823de6ac Author: Philip Stoev Date: Tue May 17 22:23:51 2016 -0700 Galera MTR Tests: stability fixes commit db837fde87093f7b985568bd26ce57627b74e752 Author: Philip Stoev Date: Sun May 1 23:29:55 2016 -0700 Galera MTR Tests: Adjust tests for xtrabackup 2.4.2 commit 81174c9ab196e42b2f400d564eb5940fc888f38c Author: Nirbhay Choubey Date: Mon Aug 15 11:29:48 2016 -0400 Fix galera/MW-44 test post-merge. commit 182787f39e8f73781caeb6eaf536697fb747c9a0 Author: Philip Stoev Date: Thu Apr 14 01:25:54 2016 -0700 Galera MTR Tests: Adjust galera_log_output_csv.test to account for the fix for MW-44 commit 675bcf3b6d654861d7f9ca0279a3f56847587696 Author: Philip Stoev Date: Thu Apr 14 01:03:37 2016 -0700 Galera MTR Tests: A test for MW-44 - Disable general log for applier threads commit f49500a80337cad9aec1f5c9cf8caf7ace927dc1 Author: Teemu Ollakka Date: Tue Apr 5 14:08:39 2016 +0300 MW-44 Disable general log for applier threads commit 3f22e743c560676e6948bb1c7f9074134c2552e5 Author: Nirbhay Choubey Date: Mon Aug 15 11:14:57 2016 -0400 Fix galera/GAL-382 test post-merge. commit 9b42f09902f63249cc14abb173513cf9474e3408 Author: Philip Stoev Date: Mon Apr 4 07:09:32 2016 -0700 Galera MTR Tests: Add test for GAL-382, codership/galera#382 - InnoDB: Failing assertion: xid_seqno > trx_sys_cur_xid_seqno in trx0sys.cc line 356 commit fce9217c21527938d279183fb05891505e79b25b Author: Philip Stoev Date: Mon Apr 4 05:32:50 2016 -0700 Galera MTR Test: Fix for MW-258.test - do not use SHOW PROCESSLIST commit dda114461ecb3f8ea3448a61b3dad7d059dbdaec Author: Philip Stoev Date: Mon Apr 4 05:14:13 2016 -0700 Galera MTR Tests: Fixed tests to account for GAL-391 , GAL-374 commit d45b58263ddf815aa04d4dbc9255ed1081e33bdb Author: Alexey Yurchenko Date: Sat Apr 2 22:37:22 2016 -0300 MW-259 - moved wsrep desync/resync calls from wsrep_desync_update() to wsrep_desync_check() method which does not hold the lock and is arguably a more fitting place to change provider state - before changing the actual variable value. commit 4582a4bccf406776702a3f866a8f21aa4daaaff9 Author: Nirbhay Choubey Date: Fri Aug 12 14:03:24 2016 -0400 Fix galera_ist_recv_bind.test. commit 90d92d2b49eb54ea3c8d17e7db2525f20e475e94 Author: Alexey Yurchenko Date: Sat Apr 2 21:51:26 2016 -0300 MW-258 - RSU DDL should not rely on the global wsrep_desync variable value and should always try to desync on its own. commit a00f4b29b5a50c46641fa522c2b3235fe72ae697 Author: Philip Stoev Date: Tue Mar 15 03:38:31 2016 -0700 Refs codership/galera#105 An MTR test for ist.recv_bind commit b758e9238aac8d8b167621a9787b6d2dd92cb082 Author: Nirbhay Choubey Date: Fri Aug 12 13:42:12 2016 -0400 Fix galera_transaction_replay.test. commit 4e4ad17163709a50314cbf72d72cec2596467513 Author: sjaakola Date: Tue Mar 8 18:10:21 2016 +0200 Refs MW-255 - popping PS reprepare observer before BF aborted PS replaying begins dangling observer will cause failure in open_table() ater on - test case for this anomaly commit d246630d739717a58d9b1c33705ce7f1d8504b43 Author: sjaakola Date: Mon Mar 7 23:34:03 2016 +0200 Refs MW-252 - changed the condition when to do implicit desync as part of FTWRL to cover only case when node is PC and synced. Donor node has alreaydy desycned and other states mean that node is not in cluster, so desync is not even possible. commit f3444c4a436ecab23b535bb2ef24e02298aa7ae9 Author: Philip Stoev Date: Fri Mar 4 14:20:58 2016 +0200 Bump WSREP_PATCH_VERSION to 14 commit 8b998a48ccee617b7eb1232cf2793d6da67ccead Author: Nirbhay Choubey Date: Fri Aug 12 12:56:41 2016 -0400 Update galera version-dependent tests. commit 65cf1d354a5089ed3df328db69c79bd87b891278 Author: Nirbhay Choubey Date: Thu Aug 11 22:28:57 2016 -0400 Refs: MW-252 Test fix post-merge commit fe6ebb657ea02fcb5993ca5d503161056c5a5b86 Author: Philip Stoev Date: Tue Mar 1 08:32:06 2016 -0800 Refs: MW-252 MTR tests for FTWRL and desync commit a03c45fa980ab170cd509d10923916aa9d9c4f86 Author: sjaakola Date: Tue Mar 1 10:56:21 2016 +0200 Refs: MW-252 - if wsrep_on==OFF, unlock tables would resume provider even though it was not passed in FTWRL processing. This is fixed in this patch. commit 8ec50ebda3c558e34f263c08b2661929f0bdad2d Author: sjaakola Date: Mon Feb 29 22:54:58 2016 +0200 Refs MW-252 - reverted from tracking donor servicing thread. With xtrabackup SST, xtrabackup thread will call FTWRL and node is desynced upfront - Skipping desync in FTWRL if node is operating as donor commit b159b666e5191b22618e631e9ed48159be541f7e Author: sjaakola Date: Mon Feb 29 16:36:17 2016 +0200 Refs MW-252 - Calling FTWRL two times in a row caused desync error, this is fixed by making sub-sequent FTWRL calls bail out before wsrep operations commit 4290117b79bccec71b4a92c99beb3e15668627e7 Author: sjaakola Date: Mon Feb 29 15:24:06 2016 +0200 Refs MW-252 - enveloped FTWRL processing with wsrep desync/resync calls. This way FTWRL processing node will not cause flow control to kick in - donor servicing thread is unfortunate exception, we must let him to pause provider as part of FTWRL phase, but not desync/resync as this is done as part of donor control on higher level commit da9650a36a9e1d9b78a55d6f40a37b984d03bce4 Author: sjaakola Date: Fri Feb 19 13:08:22 2016 +0200 Refs: MW-248 - some more code cleanup commit ae0fec9c365a7a870b180ebbde6c68b01839fed4 Author: sjaakola Date: Fri Feb 19 13:02:59 2016 +0200 refs: MW-248 - removed the off topic mtr test commit 5edf55be631d86a92e1faaa9e0c2792be8f41c29 Author: sjaakola Date: Fri Feb 19 11:48:09 2016 +0200 Refs: MW-248 - fixed the test case and extended with autoinc modification is master side commit df96eb5d049db22157ad0c01ac0e50c7beb79a88 Author: sjaakola Date: Thu Feb 18 14:34:53 2016 +0200 Refs: MW-248 - test cases from PXC for reproducing the issue - initial fix commit a53ac77c4265c2bf8ad4d07b924f6155e8b39458 Author: Nirbhay Choubey Date: Wed Aug 10 12:30:57 2016 -0400 Cleanup: Remove dead code commit 58386ca04dffd5fc9006d8f70a44a3a82f385b96 Author: sjaakola Date: Mon Jan 11 22:43:27 2016 +0200 refs codership/mysql-wsrep#239 Synced xtrabackup SST scripts from PXC source tree as of PXC 5.6.27-25.13 - PXC#480: xtrabackup-v2 SST fails with multiple log_bin directives in my.cn - PXC#460: wsrep_sst_auth don't work in Percona-XtraDB-Cluster-56-5.6.25-25. - PXC-416: Fix SST related issues. - PXC-389: Merge remote-tracking branch 'wsrep/5.6' into 5.6-wsrep-pxc389 - Bug #1431101: SST does not clobber backup-my.cnf commit d0d99dec914d409d7889fcec2efd126edad10bde Merge: 1e160e5cb38 2f5ae0fbe76 Author: Sergey Vojtovich Date: Thu Aug 18 11:51:47 2016 +0400 Merge pull request #206 from prohaska7/10.1-with-asan MDEV-10412 fix WITH_ASAN option for 10.1 commit 1e160e5cb387900df8c47e87b9378c6e7df05777 Author: Sergey Vojtovich Date: Wed Aug 17 13:57:34 2016 +0400 MDEV-10404 - Improved systemd service hardening causes SELinux problems Disabled NoNewPrivileges until SELinux policy is fixed. commit 48fbb2bf07515425edaf511ac2e17a575ae37713 Author: Kristian Nielsen Date: Tue Aug 16 12:34:58 2016 +0200 MDEV-10553: Semi-sync replication hangs when master opens new binlog file In the AFTER_SYNC case, semi-sync was taking the binlog file name from the wrong place, so around binlog rotation it could be using the new name with a position belonging to the previous binlog file name. Signed-off-by: Kristian Nielsen commit d40d3f4e57f375897aa29e72e947e372e6bc229d Author: Vladislav Vaintroub Date: Tue Jul 19 20:44:02 2016 +0000 MDEV-10314 : wsrep_client_thread was not set in threadpool. Fixed threadpool_add_connection to use thd_prepare_connection() to match thread-per-conection flow. commit abfbe80840e4b8ad63b31ea65b59f52ef7d151a2 Author: Nirbhay Choubey Date: Wed Aug 10 14:48:44 2016 -0400 MW-292: Fix test case Also backported missing test include files. commit 55fb72d8694fe99e96f1b95b5f63aab5ff7a86dd Author: Olivier Bertrand Date: Wed Aug 10 17:57:58 2016 +0200 - JdbcInterface: change return type of ...Field function modified: storage/connect/JdbcInterface.java - Change Version number and date modified: storage/connect/ha_connect.cc - Implement the test on connect_type_conv YES/NO modified: storage/connect/jdbconn.cpp modified: storage/connect/odbconn.cpp - Fix MDEV-10520. Local schema was confused with remote schema modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabodbc.cpp - Fix crash when using mapped indices. Was trying to write in a mapped file declared as read only. modified: storage/connect/xindex.cpp commit dfadb3680d0ffc211ce4f36fed28e59e3fec0842 Author: Philip Stoev Date: Fri Jul 15 01:13:32 2016 -0700 Galera MTR Tests: Test case for MW-292 : NOW() returns stale timestamp after transaction replay commit 9a809fe31be15131baf909e898c1ad2c02976728 Author: Daniele Sciascia Date: Thu Jul 14 14:29:59 2016 +0200 MW-292 Reset timestamp after transaction replay Transaction replay causes the THD to re-apply the replication events from execution, using the same path appliers do. While applying the log events, the THD's timestamp is set to the timestamp of the event. Setting the timestamp explicitly causes function NOW() to always the timestamp that was set. To avoid this behavior we reset the timestamp after replaying is done. commit 38a0def80588dd8a093af3e225101365c74e0faa Merge: 44e3046d3b0 5ad02062d92 Author: Nirbhay Choubey Date: Wed Aug 10 10:34:54 2016 -0400 Merge tag 'mariadb-5.5.51' into 5.5-galera commit 44e3046d3b09a21e21295979d6ddad9f332ebadd Author: Nirbhay Choubey Date: Wed Aug 3 22:15:57 2016 -0400 MDEV-10487: Galera SST using rsync does not filter out lost+found In rsync based SST method, during third phase of data transfer, 'lost+found' should be filtered out while recursively transferring files from various directories under data directory. commit a8c2f68fb8c7915317b12236c21a35bdd41d2092 Merge: ed48fcf177b 558c8ce0f0a Author: Jan Lindström Date: Tue Aug 2 09:53:41 2016 +0300 Merge pull request #208 from Cona19/10.1-remove-unnecessary-semicolon Remove unnecessary semicolon commit ed48fcf177bf1077db731a4d5bb0b6dd7468fc9c Author: Nirbhay Choubey Date: Mon Aug 1 17:02:28 2016 -0400 MDEV-10478: Trx abort does not work in autocommit mode THD's statement transaction handle (st_transactions::stmt) should also be looked for registered htons while serving a request to abort a transaction. commit 84a9e05003e2af253b6e4679cc85a0f0d624c49a Author: Sergei Petrunia Date: Mon Aug 1 12:19:29 2016 +0300 MDEV-10470: main.derived fails, buildbot is broken - Update test result (checked) commit 558c8ce0f0aabbe38c37c0a3737adde05a862971 Author: Hyeonseok Oh Date: Mon Aug 1 12:13:14 2016 +0900 Remove unnecessary semicolon commit 67480fc5fd7fafc5838a6b8230100a3fc4810481 Author: Nirbhay Choubey Date: Thu Jul 28 15:49:59 2016 -0400 MDEV-10429: sys_vars.sysvars_wsrep fails in buildbot on host 'work' (valgrind builder) - Fixed the test - Improved comment for wsrep_drupal_282555_workaround commit b522c71e4be54708dc935f0ad5347fd4b06199ef Author: Nirbhay Choubey Date: Fri Jul 22 19:00:49 2016 -0400 MDEV-10396: MariaDB does not restart after upgrade on debian 8 During wsrep position recovery, galera_recovery.sh script redirected mysqld's error log to a temporary file in order to find the start position. This, however, will not work if --log-error is configured for the server. Fixed by using --log-error in command line instead of redirection. [Patch contributed by Philippe MARASSE] commit a63ceaeab10fc1fc72f5853ce14b278da95579b4 Author: Sergei Petrunia Date: Wed Jul 27 17:01:45 2016 +0300 MDEV-10389: Query returns different results on a debug vs non-debug build The problem was caused by a merged semi-join, which contained a non-merged semi-join, which used references to the top-level query in the left_expr. When moving non-merged semi-join from the subquery to its parent, do not forget to call fix_after_pullout for its Item_subselect. We need to do that specifically, because non-merged semi-joins do not have their IN-equality in the WHERE clause at this stage. commit 9f211d49562da522c8b1dec35ff871fa20f5d89f Author: Vladislav Vaintroub Date: Tue Jul 19 20:44:02 2016 +0000 MDEV-10314 : wsrep_client_thread was not set in threadpool. Fixed threadpool_add_connection to use thd_prepare_connection() to match thread-per-conection flow. commit 963673e7af5ecdfd31279ed733bcdc964b9d0619 Author: Nirbhay Choubey Date: Mon Jul 25 21:52:02 2016 -0400 MW-292: Fix test case commit e57287866fd33b4494839c21ccd7875480c8558d Author: Philip Stoev Date: Fri Jul 15 01:13:32 2016 -0700 Galera MTR Tests: Test case for MW-292 : NOW() returns stale timestamp after transaction replay commit 7431368eafb3e531ba3926e85cc515778f6b5e2f Author: Daniele Sciascia Date: Thu Jul 14 14:29:59 2016 +0200 MW-292 Reset timestamp after transaction replay Transaction replay causes the THD to re-apply the replication events from execution, using the same path appliers do. While applying the log events, the THD's timestamp is set to the timestamp of the event. Setting the timestamp explicitly causes function NOW() to always the timestamp that was set. To avoid this behavior we reset the timestamp after replaying is done. commit cbc8a84fa2e65cad7561fa53799ca0273e8a5ff5 Author: Nirbhay Choubey Date: Mon Jul 25 11:51:21 2016 -0400 MW-267 Enforce wsrep_max_ws_size limit in wsrep provider Update test results. commit 74f80b349924c7f0c091a0973dea0ec61191c2c9 Author: Daniele Sciascia Date: Fri May 6 16:07:53 2016 +0200 MW-267 Enforce wsrep_max_ws_size limit in wsrep provider This changes variable wsrep_max_ws_size so that its value is linked to the value of provider option repl.max_ws_size. That is, changing the value of variable wsrep_max_ws_size will change the value of provider option repl.max_ws_size, and viceversa. The writeset size limit is always enforced in the provider, regardless of which option is used. commit 5197fcf6b4611a26b3847d1101f1a4fb6d17570a Author: Daniele Sciascia Date: Thu May 5 13:20:32 2016 +0200 MW-269 Fix outstanding issues with wsrep_max_ws_rows This patch includes two fixes: 1) Rollback when wsrep_max_ws_rows is exceeded would not switch back to previous autocommit mode; and 2) Internal rows counter would not be reset on implicit commits. commit 2f5ae0fbe76d749518b8f943b61c198e4b9315aa Author: Rik Prohaska Date: Sun Jul 24 10:06:18 2016 -0400 MDEV-10412 fix WITH_ASAN option for 10.1 commit a52d3aa831454aa2e7dd4dfde9c65d4b87532caa Author: Oleksandr Byelkin Date: Wed Jun 22 11:17:44 2016 +0200 MDEV-10045: Server crashes in Time_and_counter_tracker::incr_loops Do not set 'optimized' flag until whole optimization procedure is finished. commit e6a64e8f0ea36f12bd24ba906aa1f4e2e367a8e0 Author: Daniel Black Date: Fri Jul 22 09:19:35 2016 +1000 MDEV-10294: MTR using --valgrind-option to specify a tool / fixing callgrind [10.1] (#200) * MDEV-10294: Put testname into environment as MTR_TEST_NAME during MTR * MDEV-10294: restructure mtr to allow --valgrind-option=--tool=XXX * MDEV-10294: mtr valgrind - supressions all tools + feedback commit e373f60fd161eaf050eb117c9a05d8d83fe0e501 Author: Nirbhay Choubey Date: Wed Jul 20 18:12:17 2016 -0400 MW-265 Add support for wsrep_max_ws_rows Update test results. commit 3db92ee43358f5df256bf1b0db4955ec86bdceee Author: Daniele Sciascia Date: Tue May 3 16:22:01 2016 +0200 MW-265 Add support for wsrep_max_ws_rows Variable wsrep_max_ws_rows limits the number of rows that a transaction can insert/update/delete. commit f0386598dd825e3a42c463699988f13c123dd6be Author: Vladislav Vaintroub Date: Tue Jul 19 20:44:02 2016 +0000 MDEV-10314 : wsrep_client_thread was not set in threadpool. Fixed threadpool_add_connection to use thd_prepare_connection() to match thread-per-conection flow. commit 9b668d7c8ae9cc2a72e2d968f8a6332db0742cd8 Author: Daniel Bartholomew Date: Mon Jul 18 11:01:03 2016 -0400 bump the VERSION commit e4b1846c608af89d71c49ae8e32963b64538fccb Author: Olivier Bertrand Date: Fri Jul 15 00:43:37 2016 +0200 - jdbc.test: change data file girls.txt CRLF to LF modified: storage/connect/mysql-test/connect/r/jdbc.result modified: storage/connect/mysql-test/connect/std_data/girls.txt modified: storage/connect/mysql-test/connect/t/jdbc.test commit 543cba96c60de6c1304f9f0bfb76838abd785965 Author: Olivier Bertrand Date: Thu Jul 14 19:47:40 2016 +0200 - Disable JDBC tests that fail on Linux modified: storage/connect/mysql-test/connect/disabled.def - Typo modified: storage/connect/CMakeLists.txt commit 1168c1a3b984fb6b9cdf376392a7fcd301800162 Author: Elena Stepanova Date: Thu Jul 14 03:55:33 2016 +0300 Fix embedded and 32-bit test results after MDEV-8580 commit 12ac3ee11e8bc433432a2b3ba1bb79ea2e2d9965 Author: Sergei Petrunia Date: Wed Jul 13 14:47:58 2016 +0300 Update test results: make innodb_ext_key test stable commit bebabd68abc2c52dfb7cdc05bef2bc18e80b1be5 Merge: 326a8dcd875 10880d67b95 Author: Sergei Golubchik Date: Wed Jul 13 12:10:07 2016 +0200 Merge branch '10.0-galera' into 10.1 commit 326a8dcd875b76faf85626942eb0e6ee76db304e Merge: 64583629ade c6fdb92ca82 Author: Sergei Golubchik Date: Wed Jul 13 12:09:59 2016 +0200 Merge branch '10.0' into 10.1 commit 64583629aded09f74d6d14178475fe6b2c849c00 Author: Sergei Golubchik Date: Tue Jul 12 16:36:43 2016 +0200 MDEV-9588 Mariadb client-only build creates a useless mysqld_safe file commit 12dc083a453dd12eb6563f622de2db05030f35de Author: Sergei Golubchik Date: Tue Jul 12 13:41:29 2016 +0200 MDEV-8580 For some BOOLEAN or ENUM sysvars list of valid values is not generated set the 'typelib' member for plugin boolean sysvars commit 0d5583b41bb500f0efc5ca9b5768eee5d81e803c Author: Sergei Golubchik Date: Wed Jul 13 08:55:20 2016 +0200 cleanup commit c5d73186c01998178eaed206e200334b160eb5e8 Author: Sergei Golubchik Date: Tue Jul 12 13:02:26 2016 +0200 MDEV-8227 simple_password_check_minimal_length gets adjusted without a warning commit 4b88cf33c25a2597925264aa4de91810fc53f4c4 Author: Rik Prohaska Date: Wed Jun 29 13:27:51 2016 -0400 fix sql-bench test-table-elimination view leak. see MDEV-10310 for details commit 98b1bb0b8e7169030640378d25ad045a0ed1c8ed Author: Rik Prohaska Date: Sat Jun 25 16:44:48 2016 -0400 fix MDEV-7225. see https://jira.mariadb.org/browse/MDEV-72225 for details. commit 8a8ba1949bf4bdc1dd6504d88d20cfa3ef2c0794 Author: Sergei Petrunia Date: Mon Jul 11 22:22:32 2016 +0300 MDEV-10360: Extended keys: index properties depend on index order TABLE_SHARE::init_from_binary_frm_image has a rule: if an index has a partially-covered column (like in "KEY(col(N))" ), then dont provide "Extended Keys" feature for this index. The problem was that due to coding error Extended Keys feature was disabled for *ALL* subsequent indexes. Fixed the error. commit 0bb5d955423c2a7b29eab02e7bf6194ae003ae75 Author: Sergei Petrunia Date: Mon Jul 11 22:01:24 2016 +0300 MDEV-10325: Queries examines all rows of a tables when it should not The problem was introduced by 1859caf60b725f81f2ac6091eb44cb848a4a439a: MDEV-10175: range optimizer calls records_in_range() for full extended keys Make the range optimizer not call records_in_range() when it would not give any benefit. that patch used an incorrect way to check for full extended key. Now fixing the check. commit 53e7fcca4191c47ca48c378163bcb93ef6e632a5 Author: Craig Andrews Date: Tue Jun 28 11:23:12 2016 -0400 MDEV-10298: Systemd hardening Add ProtectSystem=full, NoNewPrivileges=true, PrivateDevices=true, and ProtectHome=true to the systemd units. commit 72844d88f6b8ac9bffe669413de6fb1a4adc0054 Author: Olivier Bertrand Date: Tue Jul 12 11:56:38 2016 +0200 Adding DESTINATION to install_jar in CMakeLists.txt commit 11a1332b874c22a21a2ac3f1e95fcfb9abe86fad Author: Olivier Bertrand Date: Mon Jul 11 19:14:19 2016 +0200 Change CONNECT to connect-engine in CMakeLists.txt commit f280a87c6609384fc2b962b27c1f9d3ac4a39150 Author: Vladislav Vaintroub Date: Mon Jul 11 17:03:03 2016 +0000 MDEV-10318 : Fix crash in embedded, in case prepared statement has parameter placeholders, but does not bind parameters commit 11f0eb0f1d7f4ac46a010f0f6cb4a3aa0de2f9a4 Author: Olivier Bertrand Date: Mon Jul 11 18:45:37 2016 +0200 Add CONNECT_WITH_JDBC to CMakeLists.txt commit 8388ae6c006fc9d890aa146912ff00ce63e01208 Author: Olivier Bertrand Date: Mon Jul 11 15:22:30 2016 +0200 - Try distributing the JdbcInterface.jar ${INSTALL_PLUGIN_DIR} --> ${INSTALL_PLUGINDIR} modified: storage/connect/CMakeLists.txt - Try several paths when looking for JVM lib modified: storage/connect/jdbconn.cpp - Make Jdbc tests running on Windows and Linux modified: storage/connect/mysql-test/connect/r/jdbc.result modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/t/jdbc.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test - Fix compiler's warnings modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jsonudf.cpp commit fca92ced7375618d90c05fd9591d122097c9d38c Author: Olivier Bertrand Date: Sat Jul 9 12:15:30 2016 +0200 remove jdrv.test commit b6209dc519653c895a306ad25aa0bf424701316b Author: Olivier Bertrand Date: Sat Jul 9 12:08:31 2016 +0200 - JAVA DEBUG now depends on connect_xtrace MySQL and MariaDB drivers use catalog for schema modified: storage/connect/JdbcInterface.java - Jdbc temporal fields now return time in seconds modified: storage/connect/JdbcInterface.java modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h - Recognize JDBC temporal types modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp - Test validity of URL modified: storage/connect/ApacheInterface.java modified: storage/connect/JdbcInterface.java modified: storage/connect/MariadbInterface.java modified: storage/connect/MysqlInterface.java modified: storage/connect/OracleInterface.java modified: storage/connect/PostgresqlInterface.java - Java class files are no more distributed A JdbcInterface.jar file is now compiled modified: storage/connect/CMakeLists.txt deleted: storage/connect/wrappers/ApacheInterface.class deleted: storage/connect/wrappers/Client.class deleted: storage/connect/wrappers/JdbcInterface.class deleted: storage/connect/wrappers/MariadbInterface.class deleted: storage/connect/wrappers/MysqlInterface.class deleted: storage/connect/wrappers/OracleInterface.class deleted: storage/connect/wrappers/PostgresqlInterface.class - Try to find the JVM path using JAVA_HOME or registers (Windows) modified: storage/connect/jdbconn.cpp - Add Monty's patches modified: storage/connect/connect.h modified: storage/connect/csort.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp -Change connect_java_wrapper variable from GLOBAL to SESSION modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp - Modify the tests to be able to run at least jdbc and jdbc_new modified: storage/connect/mysql-test/connect/disabled.def modified: storage/connect/mysql-test/connect/r/jdbc.result modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/t/jdbc.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test modified: storage/connect/mysql-test/connect/t/jdbconn.inc modified: storage/connect/mysql-test/connect/t/jdbconn_cleanup.inc added: storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar commit ae511cbe387fdc16bf48b4fccc889d6d5d256d76 Author: Sergey Vojtovich Date: Tue Jun 28 14:53:17 2016 +0400 MDEV-9363 - Mroonga tests with datetime field fail on Solaris in buildbot On Solaris mktime() adds one extra day to tm_mday field and returns appropriate value for dates 1600-01-01 and earlier. That is 1600-01-01 becomes 1600-01-02. Solaris mktime manual excerpts: ... The tm_year member must be for year 1901 or later. Calendar times before 20:45:52 UTC, December 13, 1901 or after 03:14:07 UTC, January 19, 2038 cannot be represented. Port- able applications should not try to create dates before 00:00:00 UTC, January 1, 1970 or after 00:00:00 UTC, January 1, 2038. ... The mktime() function assumes Gregorian dates. Times before the adoption of the Gregorian calendar will not match his- torial records. ... According to manual Mroonga only supports dates and datetimes after 1900: https://mariadb.com/kb/en/mariadb/about-mroonga/ Technically these tests cover unsupported values and should fail on all platforms. Disable tests until the problem is fixed upstream. commit ecb27d2650da546c53bf7ff709cc6bf5bfa7f289 Author: Sergey Vojtovich Date: Mon Jun 27 15:01:22 2016 +0400 MDEV-10010 - Recursive call to mysql_rwlock_rdlock for LOCK_system_variables_hash Avoid recursive LOCK_system_variables_hash acquisition in intern_sys_var_ptr() by pre-syncing dynamic session variables. commit 95c286cedf4b9330240a0a91a9fc3e58a17782b9 Author: Sergei Petrunia Date: Tue Jul 5 16:53:03 2016 +0300 MDEV-10324: Server crash in get_sel_arg_for_keypart or Assertion The crash was caused by this problem: get_best_group_min_max() tries to construct query plans for keys that are not processed by the range optimizer. This wasn't a problem as long as SEL_TREE::keys was an array of MAX_KEY elements. However, now it is a Mem_root_array and only has elements for the used keys, and get_best_group_min_max attempts to address beyond the end of the array. The obvious way to fix the crash was to port (and improve) a part of 96fcfcbd7b5120e8f64fd45985001eca8d36fbfb from mysql-5.7. This makes get_best_group_min_max not to consider indexes that Mem_root_arrays have no element for. After that, I got non-sensical query plans (see MDEV-10325 for details). Fixed that by making get_best_group_min_max to check if the index is in table->keys_in_use_for_group_by bitmap. commit d1b25890745a140446e4bdd5fd4f489ce1f76fae Author: Alexander Barkov Date: Tue Jul 5 15:23:22 2016 +0400 Removing class Item_func_integer. It's not used since MySQL-5.0. commit 1ec91803aca76c999d34d9f17938b976093cb67a Author: Alexander Barkov Date: Sun Jul 3 13:52:06 2016 +0400 MDEV-10317 EXCTACT(MINUTE_MICROSECOND) truncates data commit 3ccf8218bc03a9cc598cd2da5c5a98ea2412cc05 Author: Alexander Barkov Date: Sun Jul 3 11:20:46 2016 +0400 Partial backporting of 7b50447aa6d051b8d14bb01ef14802cb8ffee223 (MDEV-9407, MDEV-9408) from 10.1 Needed to fix MDEV-10317 easier. commit f832b47833bd03fbb9e972508097f3f88c0ba184 Author: Alexander Barkov Date: Sun Jul 3 10:41:16 2016 +0400 Removing the "thd" argument from Item::create_field_for_create_select(). "thd" is available through the "table" argument, as table->in_use. Backporting (partially) from 10.2. commit fc905f15d19617cdfe63f9da374b38e364099fee Author: Olivier Bertrand Date: Sat Jul 2 18:08:40 2016 +0200 - New version of java wrappers as the "wrappers" package modified: storage/connect/CMakeLists.txt commit ccdd63388a789f407d502848d12c618593a5ded1 Author: Daniel Bartholomew Date: Fri Jul 1 11:30:38 2016 -0400 bump the VERSION commit 6a7c73e3405c6b3eb3482e209f4966a492a37307 Merge: 3fd214c8be7 37b08eff90e Author: Jan Lindström Date: Fri Jul 1 10:24:25 2016 +0300 Merge pull request #198 from grooverdan/10.1-cross-compile Cross Compile HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE change to compile check commit 37b08eff90e6af3a63a7cad43ec2c79ce75d7116 Author: Daniel Black Date: Fri Jul 1 17:10:46 2016 +1000 Cross Compile HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE change to compile check HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE only needed a compile check rather than a RUN check so after changing to a compile check there is one less variable to manually set while cross compiling. commit 10880d67b95d29dc1a764f2ee5c2010dc89659df Author: Nirbhay Choubey Date: Thu Jun 30 10:24:54 2016 -0400 Postfix: memory leak in XtraDB commit b0c90e8186d3d100c1f244cf14758f342e4449da Author: Olivier Bertrand Date: Thu Jun 30 11:28:24 2016 +0200 - New version of java wrappers as the "wrappers" package deleted: storage/connect/JdbcApacheInterface.class deleted: storage/connect/JdbcApacheInterface.java deleted: storage/connect/JdbcDSInterface.class deleted: storage/connect/JdbcDSInterface.java modified: storage/connect/JdbcInterface.java modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h added: storage/connect/ApacheInterface.java added: storage/connect/Client.java added: storage/connect/JdbcInterface.jar added: storage/connect/MariadbInterface.java added: storage/connect/MysqlInterface.java added: storage/connect/OracleInterface.java added: storage/connect/PostgresqlInterface.java added: storage/connect/wrappers/ApacheInterface.class added: storage/connect/wrappers/Client.class added: storage/connect/wrappers/JdbcInterface.class added: storage/connect/wrappers/MariadbInterface.class added: storage/connect/wrappers/MysqlInterface.class added: storage/connect/wrappers/OracleInterface.class added: storage/connect/wrappers/PostgresqlInterface.class commit 3fd214c8be7c2340ebe06f4c887c67f5c928e5f0 Author: Nirbhay Choubey Date: Wed Jun 29 16:50:53 2016 -0400 MDEV-9423: cannot add new node to the cluser: Binlog.. .. file '/var/log/mysql/mariadb-bin.000001' not found in binlog index, needed for recovery. Aborting. In Galera cluster, while preparing for rsync/xtrabackup based SST, the donor node takes an FTWRL followed by (REFRESH_ENGINE_LOG in rsync based state transfer and) REFRESH_BINARY_LOG. The latter rotates the binary log and logs Binlog_checkpoint_log_event corresponding to the penultimate binary log file into the new file. The checkpoint event for the current file is later logged synchronously by binlog_background_thread. Now, since in rsync/xtrabackup based snapshot state transfer methods, only the last binary log file is transferred to the joiner node; the file could get transferred even before the checkpoint event for the same file gets written to it. As a result, the joiner node would fail to start complaining about the missing binlog file needed for recovery. In order to fix this, a mechanism has been put in place to make REFRESH_BINARY_LOG operation wait for Binlog_checkpoint_log_event to be logged for the current binary log file if the node is part of a Galera cluster. As further safety, during rsync based state transfer the donor node now acquires and owns LOCK_log for the duration of file transfer during SST. commit 33492ec8d4e2077cf8e07d0628a959d8729bd1f9 Author: Sergei Golubchik Date: Wed Jun 29 21:51:15 2016 +0200 update tests for 32bit commit f10b7db1e278fd366da288e5a8a05ec0a5dae7f8 Author: Sergei Golubchik Date: Wed Jun 29 11:16:26 2016 +0200 valgrind.supp: fix a typo commit 341e5f4411f6b958d139c634cce7b95773ef510e Author: Sergei Golubchik Date: Tue Jun 28 15:38:41 2016 +0200 MDEV-10054 Secure login fails when CIPHER is required SSL: do not require client certificate to exist, if GRANT didn't require that commit 8354c0c4d6df0b0ab959bd88c6c243b5df552713 Merge: 736f821c420 e786a57255d Author: Sergei Golubchik Date: Tue Jun 28 22:13:59 2016 +0200 Merge remote-tracking branch 'refs/remotes/github/10.1' into 10.1 commit 736f821c420954912464b9ae521acc5b768438cc Merge: 62e0a4552f3 7e64b079680 Author: Sergei Golubchik Date: Tue Jun 28 22:12:50 2016 +0200 Merge branch 'connect/10.1' into 10.1 commit 62e0a4552f3b4a932f9aa055579dad716b371b9b Merge: 3361aee591b f629f535485 Author: Sergei Golubchik Date: Tue Jun 28 22:06:22 2016 +0200 Merge branch '10.0-galera' into 10.1 commit 3361aee591b1eb8c676f60887ffc535cd509890a Merge: 6ce20fb2b9f 0fdb17e6c3f Author: Sergei Golubchik Date: Tue Jun 28 22:01:55 2016 +0200 Merge branch '10.0' into 10.1 commit e786a57255dcfff0e10ba688c8a21a1fc5573f00 Author: Jan Lindström Date: Tue Jun 28 17:20:19 2016 +0300 Output more information when assertion ut_a(state == BUF_BLOCK_NOT_USED || state == BUF_BLOCK_REMOVE_HASH); is hit. commit 6ce20fb2b9fe57330c797694b9dbea4028f40d7c Author: Sergei Golubchik Date: Tue Jun 28 10:10:49 2016 +0200 MDEV-9428 NO_AUTO_VALUE_ON_ZERO is ignored when a trigger before insert is defined fix the *other* fill_record() too, arrgh! commit 9c38308d8fa62da5c4be3ed7ad6d6c43fe8e7363 Author: Sergei Golubchik Date: Tue Jun 28 10:04:34 2016 +0200 MDEV-10086 no gssapi-server RPM package anymore in 10.1 set CPACK_COMPONENTS_ALL both on the current and parent scope commit 414a417e919252d821f4494c5723d0d9210353b6 Author: Sergei Golubchik Date: Tue Jun 28 09:29:23 2016 +0200 MDEV-10032 Connect engine not installable on Xenial s/unixODBC/unixodbc/ commit 56a34960678874fad2ec99cc94c37f4e82dfccaa Author: Alexander Barkov Date: Tue Jun 28 13:11:04 2016 +0400 MDEV-10236 Where expression with NOT function gives incorrect result Item_cache::is_null() erroneously returned null_value in a non-cached state. Now Item_cache::is_null() uses has_value(), which caches the value if not cached yet, similar to what other value methods do (e.g. val_int, val_real, etc). commit 64c115b835e4108c089fee7f0bb2f8e4022eae7b Author: Martin Stefany Date: Tue Jun 14 21:50:46 2016 +0200 Use hostname instead of IP in donor's socat Using IP address in donor's socat with TLS/SSL and certificate which doesn't contain IP address in CN or SubjectAltName causes transfer to fail with message: socat[5799] E certificate is valid but its commonName does not match hostname. This patch tries to reverse resolve IP address to hostname and use it for transfer. If reverse resolution fails, IP address is still used as fall-back, so proper A/AAAA and PTR records are important, but not mandatory. Certain certificates cannot contain IP addresses, e.g. FreeIPA's Dogtag doesn't allow it, so in my case I would need to use self- signed certificates instead, use verify=0 with socat or don't use TLS/SSL at all. Issue is mentioned in MDEV-9403. commit 7ff44b1a832b005264994cbdfc52f93f69b92cdc Author: Nirbhay Choubey Date: Mon Jun 27 18:30:07 2016 -0400 MDEV-10161: wsrep_sync_wait not enabled when set to 1 in config file Since wsrep_sync_wait & wsrep_causal_reads variables are related, they are always kept in sync whenever one of them changes. Same is tried on server start, where wsrep_sync_wait get updated based on wsrep_causal_reads' value. But, since wsrep_causal_reads is OFF by default, wsrep_sync_wait's value gets modified and loses its WSREP_SYNC_WAIT_BEFORE_READ bit. Fixed by syncing wsrep_sync_wait & wsrep_causal_reads values individually on server start in mysqld_get_one_option() based on command line arguments used. commit aa9c8f2a0d5d26103433a6c4bf614559cd4be310 Author: Nirbhay Choubey Date: Mon Jun 27 18:24:07 2016 -0400 MDEV-10233: Support bootstraping a Galera cluster with mysqld_multi Added a new --wsrep-new-cluster option to enable mysqld_multi script to start mysqld with the same option. [Patch contributed by Hartmut] commit 7ef5257a64c077742119a7fec9edc105a556eaaa Author: Nirbhay Choubey Date: Mon Jun 27 18:22:35 2016 -0400 MDEV-10230: --wsrep_on option no longer passed through by mysqld_safe Append mysqld_safe's wsrep-on option to the list of options used to start mysqld. [Patch contributed by Hartmut] commit 90f222ea7dea4bebdb3ad93c4c1439e3ab08bbba Author: Nirbhay Choubey Date: Mon Jun 27 18:21:00 2016 -0400 MDEV-10235: Deadlock in CREATE TABLE .. AS SELECT .. if result set is empty in Galera In CTAS, handlers get registered under statement transaction (st_transactions::stmt), while ha_fake_trx_id(), used by CTAS, looked under standard transaction (st_transactions::all) for registered handlers, and thus it failed to grab a fake transaction ID. As a result, with no valid transaction ID, wsrep commit failed with an error. ha_fake_trx_id() now looks for handlers registered under 'stmt' in case 'all' is empty. Also modified the logic to print warning only once if none of the registered handlers have fake_trx_id. commit ad3584bf728ad3ee48d99b81d8d14905524df4b8 Author: Nirbhay Choubey Date: Mon Jun 27 18:17:03 2016 -0400 Test cleanup: Remove unnecessary global suppressions commit 48a0a66ffa3241c91324606911f7964e956bc99f Author: Nirbhay Choubey Date: Mon Jun 27 18:15:47 2016 -0400 MDEV-10186: mysqld crash when runtime setting wsrep_cluster_address without wsrep_on=ON On wsrep_cluster_address update, node restarts the replication and attempts to connect to the new address. In this process it makes a call to wsrep provider's connect API, which could lead to segfault if wsrep provider is not loaded (wsrep_on=OFF). Fixed by making sure that it proceeds only if a provider is loaded. commit 7f9fcfe00efa7262b0b95e00a595083ab0e21426 Author: Nirbhay Choubey Date: Mon Jun 27 18:07:43 2016 -0400 Code cleanup (wsrep patch). commit 47e4e5dfd95b8a50034bd4c92efaf4f71debae5d Author: Nirbhay Choubey Date: Mon Jun 27 18:06:18 2016 -0400 MDEV-6699: wsrep_node_name not automatically set to hostname Update sys_vars.sysvars_wsrep test. commit a6816995ee6cc3dc0508e35fc2da4921b53fb931 Author: Nirbhay Choubey Date: Mon Jun 27 18:03:24 2016 -0400 MDEV-10004: Galera's pc.recovery process fails in 10.1 with systemd Galera recovery process works in two phases. In the first phase, mysqld is started as non-daemon with --wsrep-recover to recover and fetch the last logged global transaction ID. This ID is then used in second phase as the start position (--wsrep-start-position=XX) to start mysqld as daemon. As this process was implemented in mysqld_safe script, the recovery did not work when server was started using systemd. Fixed by introducing a shell script (wsrep_recovery.sh) that mimics the first phase of the recovery process. commit 064569906083b24fc980e044cbb3b3427768249f Author: Nirbhay Choubey Date: Mon Jun 27 18:01:21 2016 -0400 MDEV-10145: Systemd fails to start mysqld in multi-instance mode --defaults-xxx options must be placed before all other options in the command line. Also moved MYSQLD_OPTS at the end so that its options take precedence. commit 2768829e5397756faeae706df80bdba468f77795 Author: Nirbhay Choubey Date: Mon Jun 27 17:59:12 2016 -0400 MDEV-10056: SST method mysqldump is broken errno must be reset before strtol()/strtoll() functions are invoked. commit b57232d3cb3dbf43551bf7aea42b6f439e0e49eb Author: Nirbhay Choubey Date: Mon Jun 27 17:56:59 2016 -0400 MDEV-6699 : wsrep_node_name not automatically set to hostname Fixed by using hostname (glob_hostname) as default value for wsrep_node_name system variable. Added a test case. commit f629f5354850728d85d6b915d2a3fe7192f00cd5 Author: Nirbhay Choubey Date: Mon Jun 27 14:44:07 2016 -0400 Fix memory leak in XtraDB. commit e337fd13b229edc78c7acb4ef1355fc87261dac9 Author: Alexey Botchkov Date: Mon Jun 27 22:12:21 2016 +0400 MDEV-10119 mysql_install_db creates GIS procedures with invalid definer. Servers sets default DEFINER to empty if run with the --scip-grant-tables option. So specify the DEFINER explicitly commit 09d902d84befaf3b1d247c2fcb9706e3f83522f4 Author: Alexey Botchkov Date: Mon Jun 27 18:02:28 2016 +0400 MDEV-9618 solaris sparc build fails on 10.1. Compiler on Sparc is strict about the 'const' modifiers in function declarations and definitions. Meaning they should be exactly same. commit 652e799a387f63a582254a68363e720e47db97e4 Author: Alexander Barkov Date: Mon Jun 27 15:14:07 2016 +0400 MDEV-8502 DECIMAL accepts out of range DEFAULT values MDEV-10277 Redundant NOTE when inserting '0.00001 ' into a DECIMAL(2,1) column commit 94a61838fe0ed2bd7a26b1b53d49d179d3013c45 Author: Nirbhay Choubey Date: Sun Jun 26 21:15:36 2016 -0400 Fix galera,wsrep tests. commit 92dbe32ddb0028102f3b02e56bcf360e3567701f Author: Olivier Bertrand Date: Sat Jun 25 14:26:36 2016 +0200 - Define MAX_CONNECT_LEN as 1024 following MSDN recommendation modified: storage/connect/odbconn.h - Remove java compiling of JdbcInterface that caused failed compile on BuildBot Labrador site modified: storage/connect/CMakeLists.txt - Remove unused define of MAX_CONNECT_LEN modified: storage/connect/jdbconn.h commit fc799e317d3f4e758c2c7196c2d860f3c20cc98e Author: Nirbhay Choubey Date: Fri Jun 24 13:54:04 2016 -0400 Fix build failure. commit 74dd07e96272694286bd23f13f698fa6009b9956 Merge: 14d62505d90 ecdb2b6e86d Author: Nirbhay Choubey Date: Fri Jun 24 12:02:41 2016 -0400 Merge branch '5.5-galera' into 10.0-galera commit 14d62505d90f01eb6d81466c1d69fa38523c4d3e Merge: 868c2ceb013 9fc102b37ec Author: Nirbhay Choubey Date: Fri Jun 24 12:01:22 2016 -0400 Merge tag 'mariadb-10.0.26' into 10.0-galera commit 305bbbce6152b0909937659ecba4d51e5b21c094 Merge: 6f669200861 626a62e5cce Author: holyfoot Date: Fri Jun 24 18:08:13 2016 +0400 Merge pull request #183 from mweigel/10.1-MDEV-10214 MDEV-10214: Fix segfault when using groups in PAM user mapping plugin commit 6f6692008617d789b581971541dd9a1377c8dc5c Author: Alexander Barkov Date: Thu Jun 23 21:57:15 2016 +0400 Recording innodb_ctype_ldml.result forgotten in the patch for: MDEV-8686 A user defined collation utf8_confusables doesn't work 25e68c5e46ced7e626853cdf5491c2b5430fd51b commit ecdb2b6e86d4bef2718eaec61f1edd1c11e41e1a Merge: 51a32ebeb36 12ae840375f Author: Nirbhay Choubey Date: Thu Jun 23 12:54:38 2016 -0400 Merge tag 'mariadb-5.5.50' into 5.5-galera commit 25e68c5e46ced7e626853cdf5491c2b5430fd51b Author: Alexander Barkov Date: Thu Jun 23 14:25:48 2016 +0400 MDEV-8686 A user defined collation utf8_confusables doesn't work The collation customization code for the UCA (Unicode Collation Alrorithm) based collations now allows to reset to and shift of characters with implicit weights. Previously reset/shift worked only for the characters with explicit DUCET weights. An attempt to use reset/shift with character with implicit weights made the server crash. commit 3e03b89b0a683dd3b14d6ea24d2ca93accdfd61f Author: Sergei Petrunia Date: Wed Jun 22 23:20:41 2016 +0300 MDEV-10185: Assertion `tree1->keys[key_no] && tree2->keys[key_no]' failed in Make tree_or set correct SEL_TREE::keys_map for the result. commit d50acf9f88446293d75ef683cf7b08aeca9c9ebb Author: Olivier Bertrand Date: Wed Jun 22 19:52:40 2016 +0200 - Fix warning "invalid conversion from const char * to char *" modified: storage/connect/jdbconn.cpp - Add java compiling of JdbcInterface modified: storage/connect/CMakeLists.txt commit 63120090f994cc78876944e9f7a76f53337fa46e Author: Alexander Barkov Date: Tue Jun 21 21:36:23 2016 +0400 MDEV-10262 ucs2_thai_520_w2: wrong implicit weights on the secondary level commit 7e64b079680b5f0f1e1cb735e3c83e45e96ec0e3 Author: Olivier Bertrand Date: Mon Jun 20 16:37:57 2016 +0200 - Add column pattern and table type argument to catalog tables modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/odbccat.h modified: storage/connect/odbconn.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h - Avoid longjump in AllocCatInfo functions modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/odbconn.cpp - Change GetColumns error return value from 0 to -1 modified: storage/connect/JdbcInterface.class modified: storage/connect/JdbcInterface.java commit 7992dae6eb615006aac24387422244184473ba94 Merge: 74009534a10 61492ea5ddd Author: Olivier Bertrand Date: Mon Jun 20 16:12:19 2016 +0200 Merge branch '10.1' of https://github.com/MariaDB/server into ob-10.1 commit 61492ea5ddd14efd2ede257700ac4d8fba2a04e6 Author: Monty Date: Sun Jun 19 15:03:13 2016 +0300 Reset user status after unix_socket.test Fixed mysql-test-run failures for roles.acl_statistics commit 74009534a10c1d30a85309cfca13a4cea37f0667 Author: Olivier Bertrand Date: Mon Jun 13 12:58:24 2016 +0200 - Possibly fix MDEV-10179 Reset remote tables when re-opening modified: storage/connect/tabtbl.cpp - Add trace and make m_Stmt conditional modified: storage/connect/myconn.cpp modified: storage/connect/myconn.h - Protect trace from null string (for Linux) modified: storage/connect/tabcol.cpp - Record error changes modified: storage/connect/mysql-test/connect/r/jdbc_new.result - Typo modified: storage/connect/jdbconn.cpp modified: storage/connect/jsonudf.cpp commit 868c2ceb013e06c29ba37d4634f2d543b96539aa Author: Nirbhay Choubey Date: Sun Jun 12 19:28:56 2016 -0400 MDEV-9083: Slave IO thread does not handle autoreconnect to restarting Galera Cluster node Chery-picked commits from codership/mysql-wsrep. MW-284: Slave I/O retry on ER_COM_UNKNOWN_ERROR Slave would treat ER_COM_UNKNOWN_ERROR as fatal error and stop. The fix here is to treat it as a network error and rely on the built-in mechanism to retry. MW-284: Add an MTR test commit 626a62e5cce546b3ae2845c0cc3e05498b9451f6 Author: Mario Weigel Date: Sun Jun 12 23:13:26 2016 +1200 MDEV-10214: Fix segfault when using groups in PAM user mapping plugin commit 94b47bc5a531c2336b136fcdf226f83e2b2c6bac Merge: 9ff93656ae0 196d96cc8f1 Author: Kristian Nielsen Date: Wed Jun 8 15:16:39 2016 +0200 Merge branch 'mdev9991' into mdev9991-10.1 commit 9ff93656ae072cb95ad7e9404819f2cfbfbda0bc Author: Vladislav Vaintroub Date: Fri Jun 3 19:22:47 2016 +0000 Fix sporadic failure of set_statement mtr test. On Windows with low precision (10-16 ms) timer used for timing queries, the statement "set @@long_query_time=0.01" can log itself a slow if it spawn more single timer tick. The fix is to filter this query out from "SELECT FROM mysql.slow_log" results commit 1859caf60b725f81f2ac6091eb44cb848a4a439a Author: Sergei Petrunia Date: Fri Jun 3 14:43:08 2016 +0300 MDEV-10175: range optimizer calls records_in_range() for full extended keys Make the range optimizer not call records_in_range() when it would not give any benefit. commit 825427fa9f4fa5c56301f392d10d254f9eca8a54 Author: Sergei Petrunia Date: Fri Jun 3 10:58:32 2016 +0300 Update test results commit 613680a04179f0f5832832e82c429832aab322f5 Author: Olivier Bertrand Date: Thu Jun 2 22:11:08 2016 +0200 - Fix MDEV-10111 Reconize unsigned integers when creating tables via srcdef modified: storage/connect/ha_connect.cc modified: storage/connect/myconn.cpp - Fix MDEV-10136 crash on SELECT jsonget_string(NULL, 'a') modified: storage/connect/jsonudf.cpp - Assert longjmp initialized when suballocating modified: storage/connect/plugutil.c - Avoid crash in MakeRecord when table->vcol_set isnull (trace > 1) modified: storage/connect/ha_connect.cc commit 904027c820fb344343de6f68a32bcc889f2bd407 Merge: 7d3d75895d9 b3fc7c7fed4 Author: Sergei Petrunia Date: Thu Jun 2 19:27:22 2016 +0300 Merge branch 'bb-10.1-mdev8989' into 10.1 commit 7d3d75895d9d29d52c34dd3559cec59731d8d267 Author: Sergei Petrunia Date: Thu Jun 2 19:00:26 2016 +0300 MDEV-9764: MariaDB does not limit memory used for range optimization Part #2: make tree_or(tree1, tree2) to reuse tree1 for the result object for simple cases. These include key IN (c1, ... cN). The reuse was happening in old MySQL versions, but we stopped doing it in the "fair choice between range and index_merge" patch. commit b3fc7c7fed4d52527124d6650e85663b78f2c0bd Author: Sergei Petrunia Date: Thu Jun 2 17:31:56 2016 +0300 Update test results part #3. commit 685c63b698fd3a939469ba97ef4f236439447f49 Author: Sergei Petrunia Date: Thu Jun 2 15:19:52 2016 +0300 Update test results part#2. commit 3fd2521f249cffa5b574156f360e95210fbf5c3e Author: Sergei Petrunia Date: Thu Jun 2 13:35:21 2016 +0300 Update test results commit 66dd9fa397acb2eaf4df17facc8f144b10b1ccdf Merge: e0e374783ad 389c51f4bd6 Author: Jan Lindström Date: Thu Jun 2 11:46:35 2016 +0300 Merge pull request #174 from Cona19/10.1 MDEV-10154 - Remove some unnecessary parentheses commit 5a5a54f7b4cb03d8d8bf6199baa52bdc2b5350b7 Author: Sergei Petrunia Date: Wed Jun 1 23:43:11 2016 +0300 MDEV-8989: ORDER BY optimizer ignores equality propagation Post-fix #2: - Update test results - Make the optimization conditional under @@optimizer_switch flag. - The optimization is now disabled by default, so .result files are changed back to be what they were before the MDEV-8989 patch. commit e0e374783ad5f265b8cf24e0283ecf67c663ba89 Author: Jan Lindström Date: Wed Jun 1 13:06:14 2016 +0300 MDEV-9865: Test encryption.innodb-log-encrypt-crash takes too long on debug build Add big_test and not_debug requirements to avoid timeouts. commit 743814f763725fc9ef3c13b4626d7765d3e29f78 Merge: 016790403a4 500b03fe30e Author: Jan Lindström Date: Wed Jun 1 09:23:29 2016 +0300 Merge pull request #177 from Cona19/10.1-spelling-check Fix spelling: shhould -> should commit 500b03fe30ea824b4685c6ef2af6072abbb055dd Author: Hyeonseok Oh Date: Wed Jun 1 06:09:13 2016 +0000 Fix spelling: shhould -> should commit 016790403a4bb6182094870870ce1a1c3e2756dc Author: Sergei Petrunia Date: Tue May 31 17:59:04 2016 +0300 MDEV-9764: MariaDB does not limit memory used for range optimization A partial backport of 67f21fb3a077dedfd14b9ca720e926c55e682f93, Bug#22283790: RANGE OPTIMIZER UTILIZES TOO MUCH MEMORY WITH MANY OR CONDITIONS The backported part changes SEL_TREE::keys from being an array of MAX_KEY elements (64*8=512 bytes) to a Mem_root_array (32 bytes + alloc'ed array of as many elements as we need). The patch doesn't fix the "not limiting memory" part, but the memory usage is much lower with it. commit bc546225c08d46f33bf0630a7755ef568b9ac3cc Author: Alexander Barkov Date: Mon May 30 16:56:29 2016 +0400 Adding collations utf8mb4_thai_520_w2, ucs2_thai_520_w2, utf16_thai_520_w2, utf32_thai_520_w2 commit c5733e57e73ddf5211c8cb94137db16a96fca51d Author: Alexander Barkov Date: Mon May 30 14:27:24 2016 +0400 - Moving ctype_utf8_th.test to ctype_thai.inc and including it from ctype_uca.test. This is to reuse ctype_thai.inc for other Unicode character sets later - Removing separate ctype_uca.result commit dd7f3073fb76bf48ebebb982ae2c91614f4d05c6 Author: Alexander Barkov Date: Mon May 30 13:47:57 2016 +0400 - Moving tests from t/ctype_uca_th.test to include/ctype_uca_w2.inc and including it from t/ctype_uca.test - Deleting r/ctype_uca_th.result commit a8cd030ee0931ba257afef75cfd79eabb15f2c39 Author: Alexander Barkov Date: Mon May 30 13:07:43 2016 +0400 Adding LIKE range tests for tricky characters U+0425, U+045F, U+2525, U+5F5F. They have bytes 0x25 and 0x5F. Testing that these bytes are treated as parts of multi-byte characters rather than underscore and percent sign. commit 683b88e66a621af85232d1213b443d8c40fba652 Author: Vladislav Vaintroub Date: Sat May 28 11:46:46 2016 +0200 Mark gssapi plugin as stable. No open bug reports, and no further work planned, thus stable is accurate commit a85f6533f13a02a0b0547656a5ff918a1d91d887 Author: Sergei Petrunia Date: Fri May 27 15:16:08 2016 +0300 MDEV-8989: ORDER BY optimizer ignores equality propagation Post-fix: add comments, remove dead-code. commit 29db3b5e5c3395e1ae71e3cc5235f97f30c24888 Author: Alexander Barkov Date: Thu May 26 22:56:28 2016 +0400 Clean-ups for MDEV-10132 utf8_thai_520_w2 collation: - Changing strnxfrm_multiply from 8 to 4, as agreed with Pruet Boonma - Adjusting tests commit d930d07258744607152ff94be5de57a9b31d0430 Merge: 9c9747fed3e fb35b9ad07f Author: Alexander Barkov Date: Thu May 26 21:09:55 2016 +0400 Merge branch 'pruet-utf8thai-10.1' into 10.1 commit ead4147b13aa828f3b8393a2fc294479df9e4bb3 Author: Olivier Bertrand Date: Thu May 26 18:48:47 2016 +0200 - Reconize the JDBC type -7 (BIT) modified: storage/connect/jdbconn.cpp - Add the global variable connect_java_wrapper This enables to use different wrappers modified: storage/connect/CMakeLists.txt renamed: storage/connect/java/ap/JdbcInterface.class -> storage/connect/JdbcApacheInterface.class renamed: storage/connect/java/ap/JdbcInterface.java -> storage/connect/JdbcApacheInterface.java renamed: storage/connect/java/ds/JdbcInterface.class -> storage/connect/JdbcDSInterface.class renamed: storage/connect/java/ds/JdbcInterface.java -> storage/connect/JdbcDSInterface.java modified: storage/connect/ha_connect.cc deleted: storage/connect/java/std/JdbcInterface.class deleted: storage/connect/java/std/JdbcInterface.java modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h - Add JDBC tests (disabled) modified: storage/connect/mysql-test/connect/disabled.def new file: storage/connect/mysql-test/connect/r/jdbc.result new file: storage/connect/mysql-test/connect/r/jdbc_new.result new file: storage/connect/mysql-test/connect/r/jdbc_oracle.result new file: storage/connect/mysql-test/connect/r/jdbc_postgresql.result new file: storage/connect/mysql-test/connect/std_data/girls.txt new file: storage/connect/mysql-test/connect/t/jdbc.test new file: storage/connect/mysql-test/connect/t/jdbc_new.test new file: storage/connect/mysql-test/connect/t/jdbc_oracle.test new file: storage/connect/mysql-test/connect/t/jdbc_postgresql.test new file: storage/connect/mysql-test/connect/t/jdbconn.inc new file: storage/connect/mysql-test/connect/t/jdbconn_cleanup.inc - Typo modified: storage/connect/jsonudf.cpp commit 389c51f4bd63aa562fe23c29b102cd022ed744f5 Author: Hyeonseok Oh Date: Thu May 26 10:33:17 2016 +0000 Remove some unnecessary parentheses commit fb35b9ad07f11c8beb24e579f365eca57bbda28a Author: pruet Date: Thu May 26 16:45:50 2016 +0700 Multi-level collation in UCA, Thai sorting with contraction for UTF8. commit afa4657fd334056ea8de0c83e1ad655fd49566ae Author: Olivier Bertrand Date: Tue May 24 23:57:06 2016 +0200 - Fix failing json_udf_bin test when --ps modified: storage/connect/jsonudf.cpp modified: storage/connect/mysql-test/connect/disabled.def commit 809422838d7c90e658b889712f45f4b953a7bdd6 Author: Olivier Bertrand Date: Tue May 24 11:29:12 2016 +0200 - Alternative versions of the java JdbcInterface Some of them (ap/ds) enable connection to a DataSource added 'storage/connect/java/ap/JdbcInterface.class' added 'storage/connect/java/ap/JdbcInterface.java' added 'storage/connect/java/ds/JdbcInterface.class' added 'storage/connect/java/ds/JdbcInterface.java' added 'storage/connect/java/std/JdbcInterface.class' added 'storage/connect/java/std/JdbcInterface.java' commit 99cd5a962c53e35620cdeeca35dfab4ab4b3bb4c Author: Sergei Petrunia Date: Mon May 23 21:15:01 2016 +0300 MDEV-8989: ORDER BY optimizer ignores equality propagation Variant #4 of the fix. Make ORDER BY optimization functions take into account multiple equalities. This is done in several places: - remove_const() checks whether we can sort the first table in the join, or we need to put rows into temp.table and then sort. - test_if_order_by_key() checks whether there are indexes that can be used to produce the required ordering - make_unireg_sortorder() constructs sort criteria for filesort. commit 0dae2932f42b10d86671d21de41cf0b444aedf5e Author: Olivier Bertrand Date: Mon May 23 15:08:51 2016 +0200 - New version of the java JdbcInterface modified: storage/connect/JdbcInterface.class modified: storage/connect/JdbcInterface.java - Ignore *.tlog and .res files modified: .gitignore commit f8bc587c1ac19c614f813479b89945bea8f10c73 Merge: 77dd5ece069 9c9747fed3e Author: Olivier Bertrand Date: Sun May 22 14:49:14 2016 +0200 Merge branch '10.1' of https://github.com/MariaDB/server into ob-10.1 commit 77dd5ece06904aa10c3fe05b9493cf3231edcd85 Author: Olivier Bertrand Date: Sat May 21 14:28:21 2016 +0200 - Fix wrong return from ExecuteQuery modified: storage/connect/jdbconn.cpp - Suppress GCC warning modified: storage/connect/tabjdbc.cpp commit a982f59b9b7ed988d908fa75425c826d7e85e406 Author: Olivier Bertrand Date: Sat May 21 11:56:59 2016 +0200 - JDBC using separate jmethodID for data types Some DEBUG tests modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h commit 2f2797e52f235e6edae8627ac0700f8e43809859 Author: Olivier Bertrand Date: Fri May 20 00:18:29 2016 +0200 - JDBC tables can be connected via foreign server wrapper Redesign the handling of errors and exceptions modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h commit 9c9747fed3e1c1a7838e45c71983a3c4bbd3160d Author: Alexander Barkov Date: Wed May 18 12:35:38 2016 +0400 Updating uca-dump.c to be able to dump weights outside of BMP. commit 9eaf9345a5a18787ef204cf1cc22348f817e359c Author: Sergei Petrunia Date: Tue May 17 14:01:16 2016 +0300 Update test result after the last commit commit 7972a45b4343cf620f4dc6d508ff9e0c1ca000e3 Author: Olivier Bertrand Date: Thu May 12 17:22:45 2016 +0200 - Remove REQUIRED option that caused compilation to fail Remove JVM_LIBRARY (is now dynamically loaded at run time) modified: storage/connect/CMakeLists.txt commit 0f5ced1dd5f8b21b57effbcd2c4b699d214f7d79 Author: Olivier Bertrand Date: Thu May 12 15:41:21 2016 +0200 - Fix some typo ... causing crash! modified: storage/connect/jdbconn.cpp commit 6aa163bce8279ed6e67cfa825004ba025ebe12d8 Author: Olivier Bertrand Date: Thu May 12 12:20:52 2016 +0200 - Continue working on the JDBC table type Suppress the jpath option add the connect_jvm_path and connect_class_path global variables modified: storage/connect/ha_connect.cc modified: storage/connect/jdbccat.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h - Add the envar UDF modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h - Fix MDEV-9950 modified: storage/connect/ha_connect.cc modified: storage/connect/plgdbutl.cpp commit 5c68bc2c3264fa2c4832c468bad32701dd3d4ed0 Author: Sergei Petrunia Date: Fri May 6 12:30:01 2016 +0300 MDEV-10006: optimizer doesn't convert outer join to inner on views with WHERE clause When simplify_joins() converts an outer join to an inner, it should reset the value of TABLE::dep_tables. This is needed, because the function may have already set TABLE::dep_tables according to the outer join dependency. commit 4388cb42f580dcd81b821f21850f04b63b0bfda1 Author: Daniel Bartholomew Date: Tue May 10 09:28:00 2016 -0400 bump the VERSION commit 2323cf003387af35b126988eb6e57f1dff7dd996 Author: Olivier Bertrand Date: Mon May 9 17:26:50 2016 +0200 - Make the JVM lib dynamically loaded This makes the CONNECT storage engine usable when Java JDK is not installed. modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h - Typo modified: storage/connect/reldef.cpp commit ee0695b8072783d04b27328f974d94273b3fa248 Author: Elena Stepanova Date: Sun May 8 13:37:12 2016 +0300 Fix 32-bit sysvars test commit 234efb1d282ac5cc6d445447b8c52e8507ef224b Author: Sergei Golubchik Date: Sun May 8 08:21:57 2016 +0200 update 32-bit rdiff results commit af93c02510232d5add0393ad9e9c2bca623bd816 Author: Sergei Golubchik Date: Sat May 7 09:12:48 2016 +0200 MDEV-10034 Embedded server crashes on CREATE TABLE in PS protocol don't use MY_THREAD_SPECIFIC on the client side in embedded: 1. server memory accounting does not track client side memory 2. in not embedded builds, this still *might* be useful for plugins (handlersocket, connect, etc) commit 5534d8143004022a8431068b1e1f53bd8d7046e9 Author: Jan Lindström Date: Fri May 6 13:56:25 2016 +0300 Merged following change from MySQL 5.6 to MariaDB 10.1 XtraDB including the test case: https://github.com/mysql/mysql-server/commit/520aedfe INNODB: "DATA DIRECTORY" OPTION OF CREATE TABLE FAILS WITH PWRITE() OS ERROR 22 Fix for version mysql-5.6 PROBLEM ======== For version mysql-5.6.27 onwards InnoDB fails to create a table with explicit 'data directory' option when Innodb_flush_method is set to O_DIRECT.While creating link file we get a a pwrite error 22 due to the alignment restrictions imposed by O_DIRECT flag which is being set for the link file created. FIX === Fixed the above issue by making use of file IO functions while creating the link file that wouldn't let the O_DIRECT flag restrictions arise. Reviewed-by: Kevin Lewis Reviewed-by: Shaohua Wang RB: 11387 commit 025decfc38c00e8e04b433f13b22e2f32122abff Author: Olivier Bertrand Date: Fri May 6 01:07:14 2016 +0200 - Remove gcc compiling errors and warnings modified: storage/connect/jdbconn.cpp modified: storage/connect/tabjdbc.h commit 1512078a7a56779d6fdd307a93187b61494de897 Author: Nirbhay Choubey Date: Fri Apr 29 10:50:39 2016 -0400 MDEV-9851: CREATE USER w/o IDENTIFIED BY clause causes crash when using cracklib plugin Do not allow NULL password to pass directly to password validation plugin. commit edbd0ceddaf25508e9949fa3f5bd4bca8f4662bf Author: Nirbhay Choubey Date: Fri Apr 29 09:37:00 2016 -0400 MDEV-9171: innodb.innodb_uninstall Test Failure An additional warning saying "tc-log cannot be enabled" is emitted when InnoDB is installed at runtime on mysqld built with wsrep-patch (-DWITH_WSREP=ON). This happens because, installing InnoDB increments the total number of 2pc-capable engines and with wsrep-patch already enabled - the total count goes >1. Even though, this condition is sufficient to enable tc-logging, it is not permitted at runtime, and thus the warning. Updated the testcase to avoid the warning. commit 9a5c75a07340d6883adeac699ad1a29775698d8f Author: Nirbhay Choubey Date: Fri Apr 29 09:34:44 2016 -0400 MDEV-9853: WSREP says it cannot get fake InnoDB transaction ID followed by segmentation fault Ha_trx_info should not be reset in ha_fake_trx_id() as it is later used during commit. commit 9b2151f6af35f0f8c0b4562335ff01db71fe6d3e Author: Nirbhay Choubey Date: Wed Mar 30 00:35:11 2016 -0400 metadata_lock_info: Add compile time assertions This is to ensure that the list of valid values for METADATA_LOCK_INFO fields is always kept in sync with the parent MDL types. commit 7abb570756ab82dfa1dc610a96e911b46aad1538 Author: Nirbhay Choubey Date: Wed Mar 30 00:22:38 2016 -0400 MDEV-6211: MariaDB-Galera-server uses 'socat', but 'socat' is not in the dependency list Xtrabackup-based SST method uses socat. Move it from Suggests to Depends list. commit 0a1c2a20518e90babfea3a54b257aa28b4603e22 Merge: a87507eec30 c0238be6cfa Author: Nirbhay Choubey Date: Thu May 5 09:15:04 2016 -0400 Merge branch '10.0-galera' into 10.1 commit a87507eec3081f3a63e527786b1d31e46d79be1c Author: Alexander Barkov Date: Thu May 5 15:39:04 2016 +0400 MDEV-9712 Performance degradation of nested NULLIF 10.1 introduced a problem: Execution time for various recursive stages (walk, update_used_table, and propagate_equal_fields) in NULLIF is O(recursion_level^2), because complexity is doubled on every recursion level when we copy args[0] to args[2]. This change fixes to avoid unnecessary recursion in: - Item_func_nullif::walk - Item_func_nullif::update_used_tables - Item_func_nullif::propagate_equal_fields when possible. commit 19c4d22a1e62989bc7382985bd650eaf7ae519b0 Author: Sergei Golubchik Date: Thu May 5 12:35:12 2016 +0200 skip debug_sync test in release builds commit 4025251efd835f47bb2407453d0cbb99750b829e Author: Sergei Golubchik Date: Thu May 5 11:42:18 2016 +0200 fix rpm installation issues on Fedoras commit 3a88adc3b2a046292301d708d4026bc6c5a4801e Author: Alexey Botchkov Date: Thu May 5 11:28:35 2016 +0400 MDEV-717 LP:1003679 - Wrong binlog order on concurrent DROP schema and CREATE function. Test case added. commit 46973bb3ad57281ae02f6d61bd7e47b6d26b8acd Merge: fba385e3b19 153259874bf Author: Sergei Golubchik Date: Thu May 5 08:47:17 2016 +0200 Merge branch 'bb-10.1-merge' into 10.1 commit 153259874bfb32c9d1f89a682b96897e32a61986 Author: Sergei Golubchik Date: Tue May 3 20:31:02 2016 +0200 MDEV-9155 Enabling Defragmenting in 10.1.8 still causes OPTIMIZE TABLE to take metadatalocks take MDL_SHARED_WRITE instead of MDL_SHARED_NO_READ_WRITE for OPTIMIZE TABLE. For engines that need a stronger lock (like MyISAM), reopen the table with MDL_SHARED_NO_READ_WRITE. commit 5ef0ce4131c9e5ebd2e09907a6a89b6c9d6c5afe Author: Sergei Golubchik Date: Tue May 3 13:07:05 2016 +0200 comments commit 92e47c393f707d9877a706f76cf26f226a37166c Author: Sergei Golubchik Date: Mon May 2 18:28:40 2016 +0200 test for group by pushdown with a view commit ea195d372bfa8f695ee2189f909c9c22b39df0c4 Author: Sergei Golubchik Date: Sun May 1 19:33:25 2016 +0200 MDEV-9949 Connect Engine: long SRCDEF leads to broken table Two bugs here: * the server could create an frm (with a long attribute value) that it could not read back * Connect engine opened files from inside DROP TABLE and was ignoring the error (correctly) but was not hiding it from the server (incorrectly). This caused a crash later when DROP TABLE was finishing successfully while stmt_da already have seen an error. Also added a text case for MDEV-7935 CREATE TABLE ... AS SELECT ... can cause a Server crash (Assertion `0' in Protocol::end_statement) because Connect stopped clearing the error status in stmt_da as a fix for MDEV-7935 commit 09464ddec49355a90fdd32abe2daaa1dff8e1106 Author: Sergei Golubchik Date: Sat Apr 30 22:50:06 2016 +0200 small parser cleanup * my_yyabort_error() helper * s/lex->thd/thd/ * remove 'else' after MYSQL_YYABORT (for consistency, 95% of the parser did not use 'else' in this case) * simplify ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE commit bf9404d3a493ba122bc46c0fadf33d8cda9d0d3f Author: Sergei Golubchik Date: Wed May 4 16:05:30 2016 +0200 protect against corrupted frms when reading table options commit bba3d42a1f2566dd8ab11d5910444409c93b8194 Author: Sergei Golubchik Date: Sat Apr 30 10:27:42 2016 +0200 MDEV-9926 probes_mysql.h includes nonexisting files install private generated files commit 4db2ebb1fe8454ea0f2a70d740fc2d9d9b408f0d Author: Sergei Golubchik Date: Sat Apr 30 09:09:10 2016 +0200 MDEV-9940 CREATE ROLE blocked by password validation plugin commit 357f4d832b2aab20e2e723d284937919464e1d56 Merge: 404056563e7 4a624807990 Author: Sergei Golubchik Date: Thu May 5 01:04:05 2016 +0200 Merge branch 'connect/10.1' into 10.1 commit 80a204f27e91629a97a5d41e06bc8e4128a4ae86 Author: Olivier Bertrand Date: Thu May 5 01:03:26 2016 +0200 - Try to fix MDEV-9950 (not tested yet) modified: storage/connect/ha_connect.cc modified: storage/connect/plgdbutl.cpp - Fix Mdev-9997 (Sergey Vojtovitch) modified: storage/connect/inihandl.c - Try to have the JDBC type compiled by CMake modified: storage/connect/CMakeLists.txt - Fixing some bugs in the JDBC table type Use the CONNECTION option for the URL modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp - Add the JdbcInterface.class to the project new file: storage/connect/JdbcInterface.class commit 404056563e75786908aa9f6036fad6efe4ba6869 Author: Sergei Golubchik Date: Wed May 4 20:28:20 2016 +0200 fixes for buildbot commit fba385e3b19149a4ec521d85b9db7717d22e3952 Author: Oleksandr Byelkin Date: Sun Feb 21 22:00:58 2016 +0100 MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops with UNION in ALL subquery Do not mark subquery as inexpensive when it is not optimized. commit 87e3e67f434628768b5125fbab7e8862fa60da1a Merge: 80da57cc4f0 cee9ab9d85a Author: Sergei Golubchik Date: Wed May 4 15:23:26 2016 +0200 Merge branch '10.0' into 10.1 commit a02d4023db42755b5cb7d0ccb0543fbe94d1b628 Author: Alexey Botchkov Date: Wed May 4 11:42:39 2016 +0400 MDEV-9618 solaris sparc build fails on 10.1. Compiler there is strict about the C/C++ call model mixing in function variable assumptions. Fixed by adding some 'extern "C"' and changing '?' operator with 'if'. commit 5dd0c77e9239217457cf795d6380bdd3bf0808ad Author: Jan Lindström Date: Tue May 3 20:53:29 2016 +0300 MDEV-9362: InnoDB tables using DATA_DIRECTORY created using MySQL 5.6 do not work with MariaDB 10.1 Analysis: Problem is that tablespace flags bit DATA_DIR is on different position on MySQL 5.6 compared to MariaDB 10.1. Fix: If we detect that there is difference between dictionary flags and tablespace flags we remove DATA_DIR flag and compare again. Remote tablespace is tried to locate even in case when DATA_DIR flag is not set. commit 80da57cc4f0c717ee3e01ac5abccc859b88a2fbf Author: Sergei Golubchik Date: Tue May 3 20:13:58 2016 +0200 remove the forgotten PARENT_SCOPE commit 67723e9618751e323ca161a0a31be56ebe1fab43 Author: Vladislav Vaintroub Date: Tue May 3 15:23:34 2016 +0200 Move MYSQL_ADD_PLUGIN outside of IF(OQGRAPH_OK) condition, otherwise the plugin does not get compiled if cmake is called multiple times. commit 673efd064831e99384b5ed2250c399678e4625a7 Author: Vladislav Vaintroub Date: Tue May 3 15:18:55 2016 +0200 MDEV-10015 Fix oqgraph compilation on Windows commit 94cd0f6c9b3b04db67501ef29d470f32527ceda2 Author: Alexey Botchkov Date: Mon May 2 12:58:57 2016 +0400 MDEV-9898 SET ROLE NONE can crash mysqld. The check_user_can_set_role() used find_user_exact() to get the permissions for the SET ROLE NONE command. Which returned NULL too often, for instance when user authenticated as 'user'@'%'. Now we use find_user_wild() instead. commit ad4239cc3dc7ad5f6f264e1fb3cf6d24084bda90 Author: Monty Date: Sun May 1 18:52:13 2016 +0300 Fixed assert if user table was mailformed. Added mysql_to_mariadb.sql script, to change mysql.user tables from MySQL 5.7 to MariaDB. After this script is run, one can get the other tables fixed by running mysql_upgrade commit c0238be6cfaaf17c7c3a6f3fc59937cc13cc00be Merge: 8a1efa1bdd2 51a32ebeb36 Author: Nirbhay Choubey Date: Fri Apr 29 16:59:25 2016 -0400 Merge branch '5.5-galera' into 10.0-galera commit 8a1efa1bdd29b756c93a3ddbd8ad6fadec1082bc Merge: 7c42b47e679 9eba34f0867 Author: Nirbhay Choubey Date: Fri Apr 29 16:50:58 2016 -0400 Merge branch '10.0' into 10.0-galera commit 037b78e5ec2e28d0d4573605f7dc8d5e2b36a66f Author: Jan Lindström Date: Fri Apr 29 12:32:35 2016 +0300 MDEV-9242: Innodb reports Assertion failure in file buf0dblwr.cc line 579 Analysis: When pages in doublewrite buffer are analyzed compressed pages do not have correct checksum. Fix: Decompress page before checksum is compared. If decompression fails we still check checksum and corrupted pages are found. If decompression succeeds, page now contains the original checksum. commit d5822a3ad0657040114cdc185c6387b9eb3a12b2 Author: Monty Date: Thu Apr 28 16:27:42 2016 +0300 Fixed some galera tests commit d62b7585224034535b1cdfd0b2e0ec0eee881614 Author: Monty Date: Thu Apr 28 14:14:09 2016 +0300 Moved mysqld_server_initialized to before galera is initialized. commit ea83c1d7c61f6e267dfbbf01781cbbee7835ebe3 Author: Jan Lindström Date: Thu Apr 28 15:21:10 2016 +0300 MDEV-9977: Crash when accessing large (>4G) InnoDB table on MariaDB 10.1.x 32-bit binaries. Problem was the fact that tablespace size was incorrectly rounded to next extent size (1M). commit 732adec0a4c75d99389230feeb0deca0ad668de7 Author: Monty Date: Thu Apr 28 13:39:05 2016 +0300 Removed some not needed when doing delete thd, which caused warnings about wrong mutex usage from safe_mutex. Ensure that LOCK_status is always taken before LOCK_thread_count commit b4ff64568c88ab3ce559e7bd39853d9cbf86704a Author: Monty Date: Thu Apr 28 11:10:55 2016 +0300 Fixed wrong counting of global Memory_used commit 7c6cb41b15624fa77cbc92c7b5de9a834e011d56 Author: Monty Date: Wed Apr 27 16:38:24 2016 +0300 Ignore files in tmp (like mysqld.S) commit 48f02af761a8ae575388820ddb73622aaf109175 Author: Monty Date: Wed Apr 27 16:37:01 2016 +0300 MDEV-9602 crash in st_key::actual_rec_per_key when group by constant Problem was that cost_group_min_max() could not handle if group by was optimized away. commit 51a32ebeb3653bfed481a3ddbfe5f93aecdf4a35 Author: Nirbhay Choubey Date: Wed Apr 27 12:29:25 2016 -0400 MDEV-9884: Existing /var/lib/mysql/.sst directory (with contents) causes SST to fail with xtrabackup-v2 [Fix taken from https://github.com/percona/percona-xtradb- cluster/commit/b3ee75949ed82b88f355ca2e26431350cc1c89ac] During SST, the receiver node creates .sst directory under datadir to process/prepare the received data and removes it at the end of the process. In case of error, this directory, however, was not removed, which later caused subsequent SSTs to fail. Fixed by removing this directory at the beginning of SST if it existed. commit 646c4cea58afbb369021a3d7b5ccbbf6aed708d4 Author: Vladislav Vaintroub Date: Wed Apr 27 16:13:14 2016 +0200 MDEV-9973 : Do not set permissions for serviceaccount user (Win7 and later) This appears to break some installation, and it did not do anything useful anyway. commit bbdeb911b85ad10ae4a13308492e541384ec9889 Author: Olivier Bertrand Date: Wed Apr 27 12:57:27 2016 +0200 - Add the JdbcInterface.java to the project added: storage/connect/JdbcInterface.java - Add *.java to be handled modified: .gitattributes commit 7b7414c0ef6a9f009c96483e60ebf1e5a6a6eb14 Author: Olivier Bertrand Date: Wed Apr 27 12:36:55 2016 +0200 - Add the JDBC table type compilation for CMAKE. modified: storage/connect/CMakeLists.txt - Fix MDEV-9993 modified: storage/connect/jsonudf.cpp commit 071ae303bd7ad6ce71f05a25695cd0e9fcef112c Author: Jan Lindström Date: Wed Apr 27 11:07:43 2016 +0300 MDEV-9121: innodb_force_recovery = 6 cannot recover ANY DATA when change buffer not empty Fix: Allow not empty change buffer when innodb_force_recovery >= 5 and output only a warning to error log. Note: Before using force recovery you should always take backup of your database. commit 47e07178060cf78d1914f83ab1daff4f557f8615 Author: Alexey Botchkov Date: Wed Apr 27 11:08:46 2016 +0400 MDEV-9792 Backport MDEV-8713 to 10.1. commit 4a6248079904498825c0b03b727b9e7486ed8867 Author: Olivier Bertrand Date: Tue Apr 26 11:22:30 2016 +0200 - Add the use of prepared statement in the JDBC table type. modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h commit 43e19b3fc8cb2a0d4a726c3ea822a369e60c5adc Author: Sergey Vojtovich Date: Sat Apr 23 12:15:18 2016 +0400 Fixed compilation failure due to unused var. commit 4f1c1975b5f3d98321ad9e5b6f952c166d3606a7 Merge: 9c89b84d46e 0991e19e9d3 Author: Nirbhay Choubey Date: Mon Apr 25 11:06:16 2016 -0400 Merge tag 'mariadb-5.5.49' into 5.5-galera commit c086a96b94322de173921ff5d15edc6a2ca82509 Author: Olivier Bertrand Date: Sun Apr 24 19:56:32 2016 +0200 - Fix an error causing MYSQL table to fail saying "no result set" when joining a table to a MYSQL indexed table. modified: storage/connect/myconn.cpp modified: storage/connect/myconn.h modified: storage/connect/tabmysql.cpp - Fix an error causing JDBC table to fail saying when joining a table to a JDBC indexed table. added: storage/connect/tabjdbc.cpp - Add more tests to the mysql_index.test file modified: storage/connect/mysql-test/connect/r/mysql_index.result modified: storage/connect/mysql-test/connect/t/mysql_index.test - Add dummy JDBC support (NIY) modified: storage/connect/CMakeLists.txt - Typo modified: storage/federatedx/ha_federatedx.cc commit afecdd24199faf3387d8f3f968d2ffe78f189189 Author: Olivier Bertrand Date: Sat Apr 23 23:20:10 2016 +0200 - Fix and error causing remote indexing to fail when for not unique index. Was experienced with MYSQL, ODBC and JDBC tables. modified: storage/connect/connect.cc - Fix MDEV-9966 (zero lines returned) modified: storage/connect/ha_connect.cc modified: storage/federatedx/ha_federatedx.cc - Typo modified: storage/connect/odbconn.cpp modified: storage/connect/reldef.cpp modified: storage/connect/tabmysql.cpp - Add new table type JDBC modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabodbc.cpp added: storage/connect/jdbccat.h added: storage/connect/jdbconn.cpp added: storage/connect/jdbconn.h added: storage/connect/tabjdbc.cpp added: storage/connect/tabjdbc.h commit 1cf852d874b0e82ebfa3854300abaacd04d3eb01 Author: Kristian Nielsen Date: Thu Apr 7 14:44:29 2016 +0200 MDEV-9383: Server fails to read master.info after upgrade 10.0 -> 10.1 In some cases, MariaDB 10.0 could write a master.info file that was read incorrectly by 10.1 and could cause server to fail to start after an upgrade. (If writing a new master.info file that is shorter than the old, extra junk may remain at the end of the file. This is handled properly in 10.1 with an END_MARKER line, but this line is not written by 10.0. The fix here is to make 10.1 robust at reading the master.info files written by 10.0). Fix several things around reading master.info and read_mi_key_from_file(): - read_mi_key_from_file() did not distinguish between a line with and without an eqals '=' sign. - If a line was empty, read_mi_key_from_file() would incorrectly return the key from the previous call. - An extra using_gtid=X line left-over by MariaDB 10.0 might incorrectly be read and overwrite the correct value. - Fix incorrect usage of strncmp() which should be strcmp(). - Add test cases. commit 3f6125129f986b2d9bd4a002c30e35e6963b0e3f Author: Monty Date: Thu Apr 7 20:38:21 2016 +0300 Fixed results commit 293cb04959172f65b9d62124fd20339c47658eb0 Author: Monty Date: Thu Apr 7 19:26:25 2016 +0300 MDEV-9621 INSERT DELAYED fails on insert for tables with many columns This fix also fixes a connection hang when trying to do INSERT DELAYED to a crashed table. Added crash_mysqld.inc to allow easy crash+restart of mysqld commit 4b6a3518e4dc9088d1f42cd9bc487d06137d2760 Author: Vladislav Vaintroub Date: Wed Apr 6 14:15:44 2016 +0200 Use _ReadWriteBarrier() rather than MemoryBarrier() for preventing compile optimization commit fd7a8d18ea3a844be1a82490be3c154549dfee47 Author: Vladislav Vaintroub Date: Wed Apr 6 13:38:22 2016 +0200 Fix compile error in UT_COMPILER_BARRIER on Visual Studio compiler. commit 9794cf2311c8fe86f05e046f0b96b46862219e03 Merge: 04737330bea 26c38de804e Author: Jan Lindström Date: Wed Apr 6 08:50:59 2016 +0300 Merge pull request #168 from grooverdan/10.1-MDEV-8684-UT_RELAX_CPU_isnt_relaxing MDEV-8684 ut relax cpu isnt relaxing commit 04737330bea89437d8069d8eeb4bc484213dfdf0 Author: Sergei Petrunia Date: Sun Apr 3 20:19:59 2016 +0300 MDEV-9860: TokuDB ORDER BY DESC query is slower in 10.1 with ICP ON Implement ha_tokudb::cancel_pushed_idx_cond(). This is a conservative fix which follows the approach from the previous patch for: BUG#1000051: Query with simple join and ORDER BY takes thousands times... commit 26c38de804ecb87eae7fbe6ac32dadebb7803b4d Author: Daniel Black Date: Fri Apr 1 09:03:57 2016 +1100 MDEV-8684: Use POWER wrappers rather than direct asm i.e. __ppc_set_ppr_low rather than 'or 1,1,1' commit c395aad668bdf675b1a35f093c9f1d8d8570b7c4 Author: Jan Lindström Date: Thu Mar 31 13:12:48 2016 +0300 MDEV-9840: Test encryption.innodb-log-encrypt-crash fails on buildbot Problem: We created more than 5 encryption keys for redo-logs. Idea was that we do not anymore create more than one encryption key for redo-logs but if existing checkpoint from earlier MariaDB contains more keys, we should read all of them. Fix: Add new encryption key to memory structure only if there currently has none or if we are reading checkpoint from the log. Checkpoint from older MariaDB version could contain more than one key. commit 64824a760d3ee4715d301dcdff541b66fac32992 Author: Daniel Black Date: Wed Mar 30 15:09:52 2016 +1100 MDEV-8684: UT_RELAX_CPU on Power to non-empty expansion Using __ppc_get_timebase will translate to mfspr instruction The mfspr instruction will block FXU1 until complete but the other Pipelines are available for execution of instructions from other SMT threads on the same core. The latency time to read the timebase SPR is ~10 cycles. So any impact on other threads is limited other FXU1 only instructions (basically other mfspr/mtspr ops). Suggested by Steven J. Munroe, Linux on Power Toolchain Architect, Linux Technology Center IBM Corporation commit 3d1a7cba71f6c843639f0b9a48b12017ff610112 Author: Sergey Vojtovich Date: Wed Mar 30 14:42:12 2016 +1100 MDEV-8684: Remove delaying maths in ut_delay Also introduce compiler barrier properly on all architectures. commit d4ba50477e6f0092a3b83528c02c0f30a2b708a3 Author: Yasufumi Kinoshita Date: Wed Mar 30 14:32:20 2016 +1100 Some POWER specific optimizations Bug#18842925 : SET THREAD PRIORITY IN INNODB MUTEX SPINLOOP Like "pause" instruction for hyper-threading at Intel CPUs, POWER has special instructions only for hinting priority of hardware-threads. Approved by Sunny in rb#6256 Backport of the 5.7 fix - https://github.com/mysql/mysql-server/commit/c92102a6ef0f280bfb56e5585fca0d0cdcc34890 (excluded cache line size patch) Suggestion by Stewart Smith commit 2275640deb33af952ae094b2f742578639f1611b Author: Marko Mäkelä Date: Wed Mar 30 14:23:37 2016 +1100 Bug#20045167 UT_DELAY MISSING COMPILER BARRIER UT_RELAX_CPU(): Use a compiler barrier. ut_delay(): Remove the dummy global variable ut_always_false. RB: 11399 Reviewed-by: Jimmy Yang Backported from MySQL-5.7 - patch https://github.com/mysql/mysql-server/commit/5e3efb03962838a13afbf1579abbb96aee48ad64 Suggestion by Stewart Smith commit 37a65e3335bd2dc28574b2f938d2a18b1b52f8cb Author: Jan Lindström Date: Wed Mar 30 16:08:05 2016 +0300 MDEV-9793: getting mysqld crypto key from key version failed Make sure that we read all possible encryption keys from checkpoint and if log block checksum does not match, print all found checkpoint encryption keys. commit 4ddb9deaf30bf3be664f3427f0b5393dc5a6c09c Author: Jan Lindström Date: Wed Mar 30 14:59:25 2016 +0300 MDEV-9678: Data Directory bug MDEV-9833: Log files are opened using O_DIRECT causing problems if block size != 512 Fix typo. commit a1b2a28e55c142be63b79b3871b26640079a8849 Author: Olivier Bertrand Date: Fri Mar 25 13:02:34 2016 +0100 - Fix MDEV-9779. Avoid buffer overflow when setting partname. modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h commit d681c50a701127cedc72dbd9f0898f7bb257f555 Author: Olivier Bertrand Date: Thu Mar 24 23:18:54 2016 +0100 - Fix MDEV-9779. Connection was not recognized in the option list. This was a regression bug. modified: storage/connect/ha_connect.cc modified: storage/connect/mysql-test/connect/r/part_table.result modified: storage/connect/mysql-test/connect/t/part_table.test commit 9f5b285662ed8c13d6e87d8baf2f0ad4484d4a85 Author: Oleksandr Byelkin Date: Thu Mar 24 09:45:28 2016 +0100 Followup for 2783fc7: return an error to the caller if mysql.proc cannot be opened commit 2cb72dcccb640e546cf202481fa545c9cf5ded3a Merge: 4374501806c f6d99a0d8a8 Author: Oleksandr Byelkin Date: Thu Mar 24 09:24:02 2016 +0100 Merge branch '10.0' into 10.1 commit 4374501806ce2adcac73c8b90cb3509ccada7041 Author: Alexey Botchkov Date: Thu Mar 24 11:00:40 2016 +0400 Ugly test removed for now. commit 2783fc7d14bc8ad16acfeb509d3b19615023f47a Author: Alexey Botchkov Date: Wed Mar 23 12:16:39 2016 +0400 MDEV-717 LP:1003679 - Wrong binlog order on concurrent DROP schema and CREATE function. The cause of the issue is when DROP DATABASE takes metadata lock and is in progress through it's execution, a concurrently running CREATE FUNCTION checks for the existence of database which it succeeds and then it waits on the metadata lock. Once DROP DATABASE writes to BINLOG and finally releases the metadata lock on schema object, the CREATE FUNCTION waiting on metadata lock gets in it's code path and succeeds and writes to binlog. commit e4435b5ec304be1439475f6f6084fbf9f1fd9e1f Author: Alexander Barkov Date: Wed Mar 23 08:26:40 2016 +0400 MDEV-9604 crash in Item::save_in_field with empty enum value 1. Fixing Field_time::get_equal_const_item() to pass TIME_FUZZY_DATES and TIME_INVALID_DATES to get_time_with_conversion(). This is needed to make the recursively called Item::get_date() return non-NULL values on garbage input. This makes Field_time::get_equal_const_item() work consistently with how Item::val_time_packed() works. 2. Fixing Item::get_date() to return TIME'00:00:00' rather than DATE'0000-00-00' on empty or garbage input when: - TIME_FUZZY_DATES is enabled - The caller requested a TIME value (by passing TIME_TIME_ONLY). This is needed to avoid conversion of DATE'0000-00-00' to TIME in get_time_with_conversion(), which would erroneously try to subtract CURRENT_DATE from DATE'0000-00-00' and return TIME'-838:59:59' rather than the desired zero value TIME'00:00:00'. #1 and #2 fix these type of scripts to return one row with both MyISAM and InnoDB, with and without an index on t1.b: CREATE TABLE t1 (a ENUM('a'), b TIME, c INT, KEY(b)); INSERT INTO t1 VALUES ('','00:00:00',0); SELECT * FROM t1 WHERE b=''; SELECT * FROM t1 WHERE a=b; SELECT * FROM t1 IGNORE INDEX(b) WHERE b=''; SELECT * FROM t1 IGNORE INDEX(b) WHERE a=b; Additionally, #1 and #2 fix the originally reported in MDEV-9604 crash in Item::save_in_field(), because now execution goes through a different path, so save_in_field() is called for a Item_time_literal instance (which is non-NULL) rather than a Item_cache_str instance (which could return NULL without setting null_value). 3. Fixing Field_temporal::get_equal_const_item_datetime() to enable equal field propagation for DATETIME and TIMESTAMP in case of comparison (e.g. when ANY_SUBST), for symmetry with Field_newdate::get_equal_const_item(). This fixes a number of problems with empty set returned on comparison to empty/garbage input. Now all SELECT queries in this script return one row for MyISAM and InnoDB, with and without an index on t1.b: CREATE TABLE t1 (a ENUM('a'), b DATETIME, c INT, KEY(b)); INSERT INTO t1 VALUES ('','0000-00-00 00:00:00',0); SELECT * FROM t1 WHERE b=''; SELECT * FROM t1 WHERE a=b; SELECT * FROM t1 IGNORE INDEX(b) WHERE b=''; SELECT * FROM t1 IGNORE INDEX(b) WHERE a=b; commit f66303dcf9fc9b7d5244be8b3c724387a5da7988 Author: Elena Stepanova Date: Wed Mar 23 02:22:09 2016 +0200 Fix sysvar tests - embedded and 32-bit commit 29753fb9f285afa0550c54409a985970460b9172 Author: VicenÈ›iu Ciorbaru Date: Tue Mar 22 22:18:33 2016 +0200 MDEV-9443: Add reexecution test cases. commit 287f2d2947c15d1e7ff35ba123b37291147e1c85 Author: VicenÈ›iu Ciorbaru Date: Tue Mar 22 13:45:51 2016 +0200 MDEV-9443: Add REVOKE as a command to PREPARE commit c4bef7ad3c1528e902e88aa8b2446f29ffc1b0e6 Author: VicenÈ›iu Ciorbaru Date: Mon Mar 21 22:14:49 2016 +0200 MDEV-9443: Roles aren't supported in prepared statements Make role statements work with the PREPARE keyword. commit 16ddd1824c679751deb0ab89b40c1375f6540c3f Author: VicenÈ›iu Ciorbaru Date: Mon Mar 21 17:47:15 2016 +0200 MDEV-9613: keyfile without any keys crashes mysqld on loading file_key_management plugin Code was assuming that the keys file would contain at least one valid key. This caused a Dynamic_array::at(0) call that lead to the crash. commit 8e048579cdafd6656ebc7dd5bee919c0899e4d7d Author: VicenÈ›iu Ciorbaru Date: Mon Mar 21 17:38:52 2016 +0200 Add an empty file to std_data for future testing purposes commit 0a4a78ae8cd6844c34f9ed391dfb0eb71244f229 Author: Alexey Botchkov Date: Tue Mar 22 23:26:39 2016 +0400 MDEV-6058 MySQL Bug #11766693: LOG-SLOW-ADMIN-STATEMENTS AND LOG-SLOW-SLAVE-STATEMENTS NOT DISPLAYED. These parameters were moved from the command line options to the system variables section. Treatment of the opt_log_slow_slave_statements changed to let the dynamic change of the variable. commit fd6c588659a96140404b05b18e5f8940d1ed9595 Merge: f71c45c71db e0c136b4f04 Author: Sergei Golubchik Date: Tue Mar 22 19:18:48 2016 +0100 Merge branch 'bb-10.1-serg' into 10.1 commit f71c45c71db8c7862fc50b8382ccdbff4772e258 Author: Jan Lindström Date: Tue Mar 22 17:55:23 2016 +0200 MDEV-9678: Data Directory bug Problem was that link file (.isl) is also opened using O_DIRECT mode and if this fails the whole create table fails on internal error. Fixed by not using O_DIRECT on link files as they are used only on create table and startup and do not contain real data. O_DIRECT failures are successfully ignored for data files if O_DIRECT is not supported by file system on used data directory. commit e0c136b4f0481b5b5a87567e66da75308cbf7bda Author: Sergei Golubchik Date: Tue Mar 22 10:53:28 2016 +0100 MDEV-9737 Duplicate error in replication with slave triggers and auto increment delete deferred events after they're executed (otherwise they can be executed again for a sub-statement) See also commit 0e78d1d Author: Venkatesh Duggirala Date: Wed Mar 20 11:20:47 2013 +0530 BUG#15850951-DUPLICATE ERROR IN REPLICATION WITH SLAVE TRIGGERS AND AUTO INCREMENT commit 37f915c1915d61cd62ae6dc822317e787df4922f Merge: 52ce743bbf0 7c42b47e679 Author: Nirbhay Choubey Date: Tue Mar 22 01:35:56 2016 -0400 Merge branch '10.0-galera' into 10.1 commit 52ce743bbf0264808d422c09638e13f2042fbf7e Author: Nirbhay Choubey Date: Wed Mar 16 19:39:19 2016 -0400 MDEV-9382: After updating mariadb server apt-configure fails When acting as a Galera receiver node, server startup may take more than 30 secs (the current default) as it has to wait for SST/IST operation to complete besides spending some time doing wsrep recovery. Fixed by raising the default value of MYSQLD_STARTUP_TIMEOUT to 60 secs. Also sourced /etc/default/mariadb into the init script so that it can be used to set MYSQLD_STARTUP_TIMEOUT. commit df3ad1109765a4e207dede13769e993ab34903c5 Author: Nirbhay Choubey Date: Wed Mar 16 16:48:24 2016 -0400 MDEV-9598: Donor's rsync SST script hangs if FTWRL fails Post-fix: initialize err commit d31d6d31bb121150a99d95d2af0cab17396fbfc6 Author: Nirbhay Choubey Date: Wed Mar 16 16:44:43 2016 -0400 MDEV-9696: CREATE SERVER statement does not replicate in Galera Cluster Enable replication of CREATE/ALTER/DROP SERVER statements in Galera cluster. commit 000f76d886b15454140c886b99ced0a0a3743941 Author: Nirbhay Choubey Date: Wed Mar 2 09:19:36 2016 -0500 Fix galera_sync_wait_show test. commit 7c42b47e67918104fddd121a1ca9fede28ed47cf Merge: 01897db1020 9c89b84d46e Author: Nirbhay Choubey Date: Tue Mar 22 00:35:14 2016 -0400 Merge branch '5.5-galera' into 10.0-galera commit d5a80519c9237abb12385690ebf5c84d3ce91b85 Merge: e984159e39c 59c4675c6b5 Author: Sergei Golubchik Date: Mon Mar 21 21:43:28 2016 +0100 Merge branch 'connect/10.1' into 10.1 commit 537fc572d451888d26c26d3e89c3237d1213be4d Author: Alexander Barkov Date: Tue Mar 22 00:09:04 2016 +0400 MDEV-9516 type error when setting session variable Allowing assigning of DECIMAL(N,0) values to INT-alike system variables. commit e984159e39c7338565a7d927084b78008e95972e Author: Sergei Golubchik Date: Fri Mar 18 16:54:05 2016 +0100 MDEV-9527 build FAILs with GCC 5.1 with release supported "-std=c+11" 10.1 part of the fix commit 3b0c7ac1f9d64afc933ce0354037c709366b7dff Merge: e7cf898d6dc 22ebf3cb456 Author: Sergei Golubchik Date: Mon Mar 21 13:02:53 2016 +0100 Merge branch '10.0' into 10.1 commit e8af217e16837000b8a3809e9fa48a5e75088cd0 Author: Oleksandr Byelkin Date: Thu Mar 17 15:12:57 2016 +0100 MDEV-9590: Always print "Engine-independent statistic" warnings and might be filtering columns unintentionally from engines Do not issue the warning in case we are not going to collect the statistics. commit e7cf898d6dc3dcac41f58db4761df3a6d1dffc03 Author: Sergei Golubchik Date: Mon Mar 21 11:35:48 2016 +0100 rpm: prefer the conditional %{?...} syntax commit c03433dea75435762c404dd02c123c0d05c106c8 Author: Sergei Golubchik Date: Fri Mar 18 21:59:24 2016 +0100 rpm: ignore /usr/lib/systemd and /usr/lib/systemd/system commit 14771bd044bc46b47b11c33b69b37d0d484af51a Author: Sergei Golubchik Date: Fri Mar 18 13:28:58 2016 +0100 MDEV-9660 yum/rpm update from 10.0 to 10.1 replaces/obsoletes ? MariaDB-server-10.1 should obsolete MariaDB-Galera-server commit 94768542115289272996f6450b7d3cafa75dcead Author: Alexander Barkov Date: Mon Mar 21 11:21:44 2016 +0400 MDEV-9369 IN operator with ( num, NULL ) gives inconsistent result Based on this commit into MySQL-5.7: > commit 8e51b845aafc8b4cdebd763c8aebda262ac2d4cd > Author: Guilhem Bichot > Date: Mon Nov 4 15:44:55 2013 +0100 > > Bug#13944462 'NULL IN (XX)' RETURNS WRONG RESULTS commit 23903255d82b77c77b734fa328ee01ca1a1ae8db Author: Sergei Golubchik Date: Thu Mar 17 22:03:09 2016 +0100 MDEV-9629 Disappearing PRI from Key column after creating a trigger when creating shadow nullable fields, preserve all original field flags (because we swap flags back and forth in not_null_fields_have_null_values()) commit b24a04c6e04ba3e1488426d7fd333ee564858be5 Author: Sergei Golubchik Date: Thu Mar 17 18:55:39 2016 +0100 don't do anything for AWS plugin unless it's enabled in particular, don't do ExternalProject_Add() that starts creating build directories for a disabled plugin commit a1782b4ab92acddc326a6b9342d5e6b11bb24952 Author: Sergei Golubchik Date: Sat Mar 19 19:40:25 2016 +0100 MDEV-9739 Assertion `m_status == DA_ERROR || m_status == DA_OK' failed in Diagnostics_area::message() ; connect.xml* tests fail in buildbot commit 59c4675c6b50bd0df60b56a2e34f37c6f616fc3f Author: Olivier Bertrand Date: Sat Mar 19 12:02:03 2016 +0100 - Fix compile error when copying a string on itself. modified: storage/connect/value.cpp - Fix compile error of MDEV-9603 modified: storage/connect/tabmysql.cpp commit d70697b6f8844a07f603caac8ababaeb5331c972 Author: Sergei Golubchik Date: Thu Mar 17 18:06:25 2016 +0100 main.mysqld--help failure with cracklib plugin don't fail if cracklib_password_check is statically compiled in commit 3fdc6140a358161e6dff054134f08333e8f9f44d Author: Sergei Golubchik Date: Fri Mar 11 08:59:51 2016 +0100 update plugins' maturity levels commit 7cb16dc2a369058b31df1b3999989f6beff94d07 Author: Jan Lindström Date: Fri Mar 18 20:53:18 2016 +0200 MDEV-9422: Checksum errors on restart when killing busy instance that uses encrypted XtraDB tables Fix incorrectly merged files on innodb_plugin. commit 4fdac6c07e1b896cbf6060d61b47669a48a1ebc9 Author: Oleksandr Byelkin Date: Wed Mar 16 19:49:17 2016 +0100 MDEV-9701: CREATE VIEW with GROUP BY or ORDER BY and constant produces invalid definition Fixed printing integer constant in the ORDER clause (MySQL solution) Removed workaround for double resolving counter in the ORDER. commit 9c89b84d46e0645820acb9e3cc339af10c68cfb7 Author: Nirbhay Choubey Date: Fri Mar 18 11:27:32 2016 -0400 MDEV-9401: wsrep_forced_binlog_format with binlog causes crash Some statements are always replicated in STATEMENT binlog format. So upon their execution, the current binlog format is temporarily switched to STATEMENT even though the session's format is different. This state, stored in THD's current_stmt_binlog_format, was getting incorrectly masked by wsrep_forced_binlog_format, causing assertions and unintended generation of row events. Backported galera.galera_forced_binlog_format and added a test specific to this case. commit b25373beb52af6de43a70a0883918a0d2fd60c53 Author: Alexander Barkov Date: Fri Mar 18 17:50:18 2016 +0400 MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool) MDEV-9752 Wrong data type for COALEASCE(?,1) in prepared statements commit 546e9139abadc016b93c6cef610efcc627bfe016 Author: Sergey Vojtovich Date: Sun Feb 28 20:53:07 2016 +0400 Fixed plugins.cracklib_password_check failure In RHEL7/RHEL7.1 libcrack behavior seem to have been modified so that "foobar" password is considered bad (due to descending "ba") earlier than expected. For details google for cracklib-2.9.0-simplistic.patch. Adjusted affected passwords not to have descending and ascending sequences. commit 1c84836819b3cfdb8e357896f8b2a3f15e573f9b Author: Akira Higuchi Date: Tue Aug 11 15:51:54 2015 +0900 fix that mysqld aborts on exit if an open handlersocket connection remains commit 4f0fc0f91281004fb91cf293e691a52125c4069d Author: Akira Higuchi Date: Tue Aug 11 15:42:25 2015 +0900 fix a memory leak in handlersocket commit ee768d8e0e17b655f8f51bc631fb77c68f48c722 Author: Jan Lindström Date: Fri Mar 18 11:48:49 2016 +0200 MDEV-9640: Add used key_id to INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION commit 4aac51db9a55a11574cbfa60484d4329d35b6f2c Author: Sergey Vojtovich Date: Wed Mar 16 17:04:32 2016 +0400 MDEV-9587 - Debian packaging for GSSAPI plugin commit f448a800e173980c18023934f662fe7b8f7e2b9f Author: Jan Lindström Date: Thu Mar 17 16:24:49 2016 +0200 MDEV-9422: Checksum errors on restart when killing busy instance that uses encrypted XtraDB tables Analysis: -- InnoDB has n (>0) redo-log files. -- In the first page of redo-log there is 2 checkpoint records on fixed location (checkpoint is not encrypted) -- On every checkpoint record there is up to 5 crypt_keys containing the keys used for encryption/decryption -- On crash recovery we read all checkpoints on every file -- Recovery starts by reading from the latest checkpoint forward -- Problem is that latest checkpoint might not always contain the key we need to decrypt all the redo-log blocks (see MDEV-9422 for one example) -- Furthermore, there is no way to identify is the log block corrupted or encrypted For example checkpoint can contain following keys : write chk: 4 [ chk key ]: [ 5 1 ] [ 4 1 ] [ 3 1 ] [ 2 1 ] [ 1 1 ] so over time we could have a checkpoint write chk: 13 [ chk key ]: [ 14 1 ] [ 13 1 ] [ 12 1 ] [ 11 1 ] [ 10 1 ] killall -9 mysqld causes crash recovery and on crash recovery we read as many checkpoints as there is log files, e.g. read [ chk key ]: [ 13 1 ] [ 12 1 ] [ 11 1 ] [ 10 1 ] [ 9 1 ] read [ chk key ]: [ 14 1 ] [ 13 1 ] [ 12 1 ] [ 11 1 ] [ 10 1 ] [ 9 1 ] This is problematic, as we could still scan log blocks e.g. from checkpoint 4 and we do not know anymore the correct key. CRYPT INFO: for checkpoint 14 search 4 CRYPT INFO: for checkpoint 13 search 4 CRYPT INFO: for checkpoint 12 search 4 CRYPT INFO: for checkpoint 11 search 4 CRYPT INFO: for checkpoint 10 search 4 CRYPT INFO: for checkpoint 9 search 4 (NOTE: NOT FOUND) For every checkpoint, code generated a new encrypted key based on key from encryption plugin and random numbers. Only random numbers are stored on checkpoint. Fix: Generate only one key for every log file. If checkpoint contains only one key, use that key to encrypt/decrypt all log blocks. If checkpoint contains more than one key (this is case for databases created using MariaDB server version 10.1.0 - 10.1.12 if log encryption was used). If looked checkpoint_no is found from keys on checkpoint we use that key to decrypt the log block. For encryption we use always the first key. If the looked checkpoint_no is not found from keys on checkpoint we use the first key. Modified code also so that if log is not encrypted, we do not generate any empty keys. If we have a log block and no keys is found from checkpoint we assume that log block is unencrypted. Log corruption or missing keys is found by comparing log block checksums. If we have a keys but current log block checksum is correct we again assume log block to be unencrypted. This is because current implementation stores checksum only before encryption and new checksum after encryption but before disk write is not stored anywhere. commit d1e6c40294446ebf2cb34233fa934640a1f4da4c Author: Vladislav Vaintroub Date: Thu Mar 17 17:58:40 2016 +0100 mtr complains about klist is not found, if Kerberos is not installed on machines commit b80b2921176cbcbb3395772e4c10e64411212075 Author: Olivier Bertrand Date: Thu Mar 17 00:08:00 2016 +0100 - Fix crash when sorting a TBL table with thread=yes. This was because Tablist can be NULL when no lacal tables are in the list. modified: storage/connect/tabtbl.cpp modified: storage/connect/mysql-test/connect/r/tbl.result modified: storage/connect/mysql-test/connect/t/tbl.test commit 7829cefa412bab21048d1ef150c54d407466023d Author: Olivier Bertrand Date: Wed Mar 16 18:53:56 2016 +0100 - Fix MDEV-9603 compiler error. modified: storage/connect/tabmysql.cpp - Test invalid CSV separator when creating the table (MDEV-9714) modified: storage/connect/ha_connect.cc - Stop using SQLDescribeParam anymore modified: storage/connect/odbconn.cpp - Fix MDEV-9723 Regression due to calling Cardinality instead of GetMaxSize in info. modified: storage/connect/tabtbl.h modified: storage/connect/mysql-test/connect/r/tbl.result modified: storage/connect/mysql-test/connect/t/tbl.test - Typo modified: storage/connect/tabodbc.cpp commit 9b53d84d14a9b031d193f6beae382a232aa738e3 Author: Alexander Barkov Date: Wed Mar 16 13:43:06 2016 +0400 MDEV-9656 Assertion `0' failed in Item_sum_field::get_tmp_table_field(). Removing a wrong ASSERT. Item_sum_field now uses the inherited Item::get_tmp_table_field(). commit d5d0c35f23c54c3ddddaebfeaa77ad80439f0ebd Merge: 46089d76911 5ea894a7c8c Author: Jan Lindström Date: Tue Mar 15 10:46:33 2016 +0200 Merge pull request #160 from grooverdan/crc32_power_abi_fix MDEV-9699: power8 crc32: Per the PPC64 ABI, v20-v31 are non-volatile registers commit 46089d76911accc48684417c5936d71bb9547912 Author: Vladislav Vaintroub Date: Sun Mar 13 20:29:14 2016 +0100 MDEV-9659 : AWS KMS encryption plugin commit 517584dde0b42f261ac92751c7c7b1959f7c2d9b Author: Vladislav Vaintroub Date: Thu Mar 10 17:12:58 2016 +0100 Provide a way to reenable DISABLED plugin with -DPLUGIN_${NAME}=STATIC|DYNAMIC commit a12326458dde270c9df7aeef3684d5c5d8fd4402 Author: Jan Lindström Date: Sun Mar 13 15:37:47 2016 +0200 Add check to avoid NULL-pointer access if encryption information is not available. Clarify system tablespace page 0 check. commit f341d94423daa37bf4bee4d9b96ba8e8d93484c6 Author: Jan Lindström Date: Sat Mar 12 13:43:33 2016 +0200 MDEV-9549: Trying to decrypt a not encrypted page Make sure that on decrypt we do not try to reference NULL pointer and if page contains undefined FIL_PAGE_FILE_FLUSH_LSN field on when page is not the first page or page is not in system tablespace, clear it. commit 8c2fd5537b1029a514591f622674f1ceb04fa67e Author: Sergei Golubchik Date: Tue Mar 8 09:06:02 2016 +0100 bump the version commit 5ea894a7c8cbeb77f71b6061e9de49a538a0e6c3 Author: Anton Blanchard Date: Tue Mar 8 11:31:45 2016 +1100 MDEV-9699: power crc32: Per the PPC64 ABI, v20-v31 are non-volatile registers These where modified and not restored. Corrected as per upstream: https://github.com/antonblanchard/crc32-vpmsum/compare/f2145e5858c283d6a95ea1bc613db50b4d514303...aaf0ac4 commit 33d298493df7659f17c7825ee17ecb068402d29a Author: Sergei Golubchik Date: Fri Mar 4 10:13:41 2016 +0100 MDEV-9683 Server crashes in Item::basic_const_item on numerous nested NULLIFs test case only commit 70f5fabdbf50abb494304baaf863feac3fbd5dd9 Author: Sergei Golubchik Date: Fri Mar 4 10:09:17 2016 +0100 MDEV-9682 Assertion `0' failed in Item_cache_row::illegal_method_call on 2nd execution of PS with NULLIF don't cache Item_cache commit ff93b77fd62bdb708e2b2b34f4e2202c12e727c4 Author: Sergei Golubchik Date: Thu Mar 3 18:44:10 2016 +0100 MDEV-9641 MDEV-9644 NULLIF assertions * only copy args[0] to args[2] after fix_fields (when all item substitutions have already happened) * change QT_ITEM_FUNC_NULLIF_TO_CASE (that allows to print NULLIF as CASE) to QT_ITEM_ORIGINAL_FUNC_NULLIF (that prohibits it). So that NULLIF-to-CASE is allowed by default and only disabled explicitly for SHOW VIEW|FUNCTION|PROCEDURE and mysql_make_view. By default it is allowed (in particular in error messages and debug output, that can happen anytime before or after optimizer). commit 5a3a79ce5f20a862abdde505a683df1148e0dc37 Author: Sergei Golubchik Date: Fri Feb 26 12:07:07 2016 +0100 MDEV-9637 select nullif(count(col1),0) gives wrong result if in a view don't do special SUM_FUNC_ITEM treatment in NULLIF for views (as before), but do it for derived tables (when context_analysis_only == CONTEXT_ANALYSIS_ONLY_DERIVED) commit c689e93500589fd653c15166f64d12038594855e Author: Sergei Golubchik Date: Sat Mar 5 16:25:23 2016 +0100 update sysvar_innodb,32bit,xtradb.rdiff commit 6c414fcf89510215d6d3466eb9992d444eadae89 Author: Oleksandr Byelkin Date: Tue Mar 1 21:10:59 2016 +0100 MDEV-5542: GROUP_CONCAT truncate output to 65.536 chars when using DISTINCT or ORDER BY port of mysql fix WL#6098 commit 66832b619510f5b9724d8db1eac48bdafb9225e9 Author: Nirbhay Choubey Date: Fri Feb 26 10:49:19 2016 -0500 MDEV-9598: Donor's rsync SST script hangs if FTWRL fails During SST, since wsrep_sst_rsync waits for mysqld to create "tables_flushed" file after it has successfully executed FTWRL, it would wait forever if FTWRL fails. Fixed by introducing a mechanism to report failure to the script. commit 0251232f8c3bca33b4dd15d6668105f3de9d024d Author: Nirbhay Choubey Date: Wed Feb 24 23:32:37 2016 -0500 Fix to ensure updates in gtid_slave_state table do not get binlogged. Also, renamed wsrep_skip_append_keys to wsrep_ignore_table. Test case : galera.galera_as_slave_gtid.test commit 01897db10203312ccd20f2b76ba957825ccef613 Author: Nirbhay Choubey Date: Wed Feb 24 17:40:12 2016 -0500 Skip galera_sync_wait_show.test on non-debug builds. The test uses a debug feature SHOW PROCEDURE|FUNCTION CODE. commit b05158cc10a75196b5c0bf8dad9360608a2dd5b9 Author: Sergei Petrunia Date: Wed Feb 24 17:14:38 2016 +0300 MDEV-8988: Apparently valid SQL query gives wrong result (nested WHERE) - "Early NULLs filtering" optimization used to "peel off" Item_ref and Item_direct_ref wrappers from an outside column reference before adding "outer_table_col IS NOT NULL" into JOIN::outer_ref_cond. - When this happened in a subquery that was evaluated in a post-GROUP-BY context, attempt to evaluate JOIN::outer_ref_cond would fetch an incorrect value of outer_table_col. commit d044507dc53731e604f3137ed7423c6b94e83aba Merge: ff2d92b17d6 5a4ec8e60b1 Author: Sergei Golubchik Date: Wed Feb 24 10:27:23 2016 +0100 Merge branch 'bb-10.1-serg' into 10.1 10.0 merge 10.0-galera merge connect/10.1 merge commit 5a4ec8e60b10c176af1dd84157e1d15cf905637b Author: Sergei Golubchik Date: Wed Feb 24 10:26:13 2016 +0100 fix test results after the merge commit ff2d92b17d600f83b9ad4baaa96ede7c9c08801a Author: Alexander Barkov Date: Wed Feb 24 13:12:03 2016 +0400 MDEV-7231 Field ROUTINE_DEFINITION in INFORMATION_SCHEMA.`ROUTINES` contains broken procedure body when used shielding quotes inside. commit cceec7858f260be23b50265fb026ea68c6aefc20 Merge: 88576b3a805 f67d6fccacf Author: Nirbhay Choubey Date: Wed Feb 24 01:21:40 2016 -0500 Merge branch '10.0-galera' into bb-10.1-serg commit f67d6fccacfb8a2963f23448cabb67c6178d2a10 Author: Krunal Bauskar Date: Fri Dec 4 15:09:08 2015 +0530 - PXC#480: xtrabackup-v2 SST fails with multiple log_bin directives in my.cnf If any given variable the xtrabackup-v2 sst script looks for is specified multiple times in cnf file then it tend to pick both of them causing some of the follow-up command to fail. Avoid this programatic mistake by honoring only the last variable assigned setting as done by mysqld too. Check https://bugs.launchpad.net/percona-xtradb-cluster/+bug/1362830 commit 0cf66e49dbe6a13533769f325a615f357d31df98 Author: Krunal Bauskar Date: Thu Oct 22 14:56:29 2015 +0530 - PXC#460: wsrep_sst_auth don't work in Percona-XtraDB-Cluster-56-5.6.25-25.12.1.el7 Semantics: --------- * Generally end-user will create a separate user with needed privileges for performing DONOR action. * This user credentials are specified using wsrep_sst_auth. * Along with this user there could be other user(s) created on the server that sysadmin may use for normal or other operations * Credentials for these user(s) can be specified in same cluster/server cnf file as part of [client] section When cluster act as DONOR and if wsrep_sst_auth is provided then it should strictly use it for performing SST based action. What if end-user has same credentials for performing both SST action and normal admin work ? * Then end-user can simply specify these credentials as part of [client] section in cnf file and skip providing wsrep_sst_auth. Issue: ----- MySQL client user/password parsing preference order is as follows: * command line (through --user/--password) * cnf file * MYSQL_PWD enviornment variable. Recent change tried passing sst user password through MYSQL_PWD (and user though --user command line param as before). On the system where-in admin had another user for performing non-SST actions, credentials for such user were present in cnf file under [client] section. Due to mysql client preference order, SST user name was used (as it was passed through command line) but password of other user (meant for non-SST) action was being used as it was passed through cnf file. Password passed through MYSQL_PWD was completely ignored causing user-name/password mismatch. Solution: --------- * If user has specified credentials for SST then pass them through command line so that they are used in priority. (There could be security concern on passing things through command line but when I tried passing user-name and password through command line to mysql client and then did ps I saw this ./bin/mysql --user=sstuser --password=x xxxxxxxx -S /tmp/n1.sock so seems like password is not shown) commit 0fd9d5a6568406c6c3fe481b72bf744b3a3f59cd Author: Nirbhay Choubey Date: Tue Feb 23 21:24:00 2016 -0500 Update WSREP_PATCH_REVNO. commit 1b0d811d2dba5ed1a040ede483ac6ab4d1e1882d Merge: 0d58323e264 3042d655e2c Author: Nirbhay Choubey Date: Tue Feb 23 21:08:42 2016 -0500 Merge branch '5.5-galera' into 10.0-galera commit 0d58323e2645460907280b0482811729822a7ef1 Merge: 276d65b324f a4b27149688 Author: Nirbhay Choubey Date: Tue Feb 23 20:53:29 2016 -0500 Merge tag 'mariadb-10.0.24' into 10.0-galera commit 276d65b324f4f0021bc457b4d5723153d4e12608 Author: Nirbhay Choubey Date: Tue Feb 23 20:33:21 2016 -0500 Fix for test failures. commit 88576b3a805f97be44d98143b6cdfc9b820fcc84 Merge: a5679af1b13 69042ffe4e8 Author: Sergei Golubchik Date: Tue Feb 23 22:16:35 2016 +0100 Merge tracking branch 'connect/10.1' into 10.1 commit a5679af1b13bb0c7c4eaa75f27551072dc18fb7d Merge: 20c4dfd4a9e 5f2f3c4fa81 Author: Sergei Golubchik Date: Tue Feb 23 21:35:05 2016 +0100 Merge branch '10.0' into 10.1 commit b9c42d7a47f7282f5d0063a467d506cb55a69899 Author: Philip Stoev Date: Mon Jan 11 11:57:22 2016 +0200 Bump WSREP_PATCH_VERSION in cmake/wsrep.cmake to 13 commit 28a36f617fbdde1125614e16a642c1b15ced916b Author: VicenÈ›iu Ciorbaru Date: Tue Feb 23 14:09:25 2016 +0200 Update column bitmaps for delete during binlog row image minimal. commit de1fa4527663ffde05b43bbc2acd5ce0398f483a Author: VicenÈ›iu Ciorbaru Date: Mon Feb 22 17:50:55 2016 +0200 [MDEV-8411] Assertion failed in !table->write_set The reason for the assertion failure is that the update statement for the minimal row image sets only the PK column in the write_set of the table to true. On the other hand, the trigger aims to update a different column. Make sure that triggers update the used columns accordingly, when being processed. commit 0e20137a80b1755f8c421aed9fad7208977d06f4 Author: VicenÈ›iu Ciorbaru Date: Tue Feb 16 16:15:22 2016 +0200 [Code cleanup] Refactor duplicate code within myisam and maria sort.cc commit 20c4dfd4a9e7c5f2f570488a7ead0b7c74e61817 Author: Sergei Golubchik Date: Mon Feb 22 19:55:43 2016 +0100 MDEV-9576 syntax error on view with nullif and count don't transform Item_func_nullif if it's context_analysis_only commit 216b5cc9b6434d501f9aaee9716f5b2983ba38c8 Author: Sergei Golubchik Date: Mon Feb 22 18:49:35 2016 +0100 MDEV-9606 Server crashes in fix_fields, main.null fails with ps-protocol #2 commit e6d51aac778f7c59b0f737f7504a52b0baf07544 Author: Sergei Golubchik Date: Mon Feb 22 12:52:29 2016 +0100 MDEV-9550 COUNT(NULL) returns incorrect result with sequence storage engine when calculating COUNT(basic_const), take into account that this basic_const may be NULL commit 9214d043fd864f8ee96e34551e49a011e20ddef0 Author: Sergei Golubchik Date: Sat Feb 20 22:26:48 2016 +0100 disable SHOW I_S_table for built-in I_S tables This fixes MDEV-9538 Server crashes in check_show_access on SHOW STATISTICS MDEV-9539 Server crashes in make_columns_old_format on SHOW GEOMETRY_COLUMNS MDEV-9540 SHOW SPATIAL_REF_SYS and SHOW SYSTEM_VARIABLES return empty results with numerous warnings commit 57905d18d650004ca84d7f9b01f0cf72e100d6bc Author: Sergei Golubchik Date: Sat Feb 20 21:00:51 2016 +0100 MDEV-9535 Trigger doing "SET NEW.auctionStart = NOW();" on a timestamp kills MariaDB server when doing set_field_to_new_field (from switch_to_nullable_trigger_fields()) make sure that the field we're about to change actually belongs to the right table (otherwise we cannot dereference new_field[] array as the wrong table might have more fields than new_field[] has elements) commit 0fcd0ee34e2eae74f578c55c346196c8cb94c4d3 Author: Sergei Golubchik Date: Sat Feb 20 21:06:20 2016 +0100 MDEV-9500 Bug after upgrade to 10.1.10 (and 10.1.11) Case: table with a NOT NULL field, BEFORE UPDATE trigger, and UPDATE with a subquery that uses GROUP BY on that NOT NULL field, and needs a temporary table for it. Because of the BEFORE trigger, the field becomes nullable temporarily. But its Item_field (used in GROUP BY) doesn't. When working with the temptable some code looked at item->maybe_null, some - at field->null_ptr. The fix: make Item_field nullable when its field is. This triggers an assert. The group key size is calculated before the item is made nullable, so the group key doesn't have a null byte. The fix: make fields/items nullable before the group key size is calculated. commit a38b705fe072f282c4d27fe48d7863d6c0cdbdf2 Author: Sergei Golubchik Date: Sat Feb 20 19:30:14 2016 +0100 MDEV-9560 Mariadb 10.1 Crashes when replicating from 10.0 when replicating old temporal type fields (that don't store metadata in the binlog), take the precision from destination fields. (this fixes the replication failure, crashes were fixed in a different commit) commit 4cabc608b6c3c16d800d6cd80c730171a534566f Author: Sergei Golubchik Date: Fri Feb 19 14:17:35 2016 +0100 correct temporal fields in max_display_length_for_field() it's *display length* (a.k.a. field_length) not storage length (a.k.a. pack_length) commit d4b1425b604b8be9fc35cefe45d00cfecbac39e9 Author: Sergei Golubchik Date: Fri Feb 19 12:06:37 2016 +0100 cleanup * make a local variable for target_table->field[col] * move an often-used bit function to my_bit.h * remove a non-static and not really needed trivial comparison function with a very generic name commit ab2a9600a7b26cb6176e7fb62e029483fc821750 Author: Sergei Golubchik Date: Thu Feb 18 12:56:27 2016 +0100 MDEV-9475 I can't finish my_install_db using binary tar distribution to avoid run-time libjemalloc.so dependency link binary tarballs with a static libjemalloc_pic.a commit bb54df6ec99d247302b6dffe12273f6896403dcd Author: Sergei Golubchik Date: Tue Feb 23 10:32:06 2016 +0100 update test results after MDEV-9307 commit 15118d35612814ccf549ba49ed1200a7f8fa71c8 Author: Nirbhay Choubey Date: Tue Feb 23 00:30:47 2016 -0500 refs codership/mysql-wsrep#237: Add sync point for mtr test. commit b633dbdac955c5a9bd3a589fac56763304cff4f9 Author: sjaakola Date: Wed Dec 23 09:44:32 2015 +0200 refs codership/mysql-wsrep#237 - test for FLUSH TABLES hang in slave node commit 32df0b1aac4ebd8ae7232260500ae4d262ca9915 Author: sjaakola Date: Wed Dec 2 23:20:10 2015 +0200 refs codership/mysql-wsrep#233 - avoiding the race condition, by not grabbing thd->LOCK_wsrep_thd for accessing thd->wsrep_exec_mode. The caller is same thread and exec mode can only be changed by self. commit 90e5e2f91c2f5be240186b6c08f4cab8c8c8b278 Author: sjaakola Date: Wed Dec 2 23:16:25 2015 +0200 refs codership/mysql-wsrep#233 - added mtr test case for this issue - not a perfect one, depends on some sleeps instead of checking if sync points are met commit 2cdcde93c53a85c34db6b59b5950be6bb0c3225e Author: Nirbhay Choubey Date: Tue Feb 23 00:19:41 2016 -0500 Merge sync point from previous commit to XtraDB. commit 18f160d954dcd77a16a994bba4943212b831acbb Author: sjaakola Date: Wed Dec 2 22:57:46 2015 +0200 refs codership/mysql-wsrep#233 - added dbug sync points for further mtr test for this issue commit bf9572ba5925fb7687e5407f4c52a1d429d3d9e3 Author: Philip Stoev Date: Wed Nov 25 03:36:26 2015 -0800 refs codership/mysql-wsrep#228 - a test for wsrep_sync_wait and SHOW commit 1e14db11ee6cf0f295376d6a13048c8edb10938c Author: Daniele Sciascia Date: Mon Nov 16 11:57:38 2015 +0100 refs codership/mysql-wsrep#228 - Add calls to wsrep_sync_wait for SHOW CREATE DB/PROCEDURE/FUNCTION/TRIGGER/EVENT and SHOW PROCEDURE/FUNCTION CODE commit 5ebf6ce7aa87c256d38c063eb2d3f605c93d964b Author: Philip Stoev Date: Mon Nov 16 04:06:38 2015 -0800 Bump WSREP_PATCH_VERSION in cmake/wsrep.cmake to 12 commit 2b7a5d9edbb496f838e64fc57b73d9d984d4fd22 Author: Philip Stoev Date: Mon Nov 16 03:00:27 2015 -0800 Galera MTR Tests: adjust the galera.galera_defaults test for the new MTR default value for repl.causal_read_timeout commit 8504330d1d1fc201bc6cb5474afd34c927cc31c8 Author: Philip Stoev Date: Fri Nov 13 04:03:39 2015 -0800 Galera MTR Tests: misc test stability fixes commit c6659345a03b14225bfe0a2464a9cc8346a43adf Author: Daniele Sciascia Date: Tue Nov 3 14:16:08 2015 +0100 refs codership/mysql-wsrep#201 Fix remaining issues with wsrep_sync_wait and query cache. - Fixes misplaced call to invalidate query cache in Rows_log_event::do_apply_event(). Query cache was invalidated too early, and allowed old entries to be inserted to the cache. - Reset thd->wsrep_sync_wait_gtid on query cache hit. THD->cleanup_after_query is not called in such cases, and thd->wsrep_sync_wait_gtid remained initialized. commit c05d85f45d24691831b862dedc52f188deaa13d2 Author: Nirbhay Choubey Date: Mon Feb 22 22:35:48 2016 -0500 Refs codership/mysql-wsrep#198 : Fix test case commit e9d805b8459ebbebe2629e40e769441a8e96513f Author: Philip Stoev Date: Fri Oct 23 00:01:16 2015 -0700 Refs codership/mysql-wsrep#198 . MTR test case commit d45f0c117f195897453a85a0ff7cadb603aa71ce Author: Nirbhay Choubey Date: Mon Feb 22 22:30:14 2016 -0500 refs codership/mysql-wsrep#198: Revert test changes from previous commit Restore tests for FLUSH commands supported by MariaDB. commit ea0b1837edea0dec524f64aafdfb6cd8216aee78 Author: Teemu Ollakka Date: Fri Oct 23 09:38:33 2015 +0300 refs codership/mysql-wsrep#198 Removed code duplication, PXC specifics * Total order isolation was started twice for FLUSH TABLES, from reload_acl_and_cache() and from mysql_execute_command(). Removed the reload_acl_and_cache() part. * Removed PXC specific stuff from MTR tests commit 235bebe02ee74154a5782326d7a4d624ec55c07b Author: Daniele Sciascia Date: Thu Oct 22 17:30:20 2015 +0200 refs codership/mysql-wsrep#201 - Eliminates code duplication in query cache patch - Reduces the number of iterations in mysql-wsrep#201.test to shorten the execution time - Adds a new test case that exercises more scenarios commit 17ac9597163916d418c6cca2641242f20d682956 Author: Nirbhay Choubey Date: Mon Feb 22 22:07:59 2016 -0500 Bug#1421360: Add Percona Server specific FLUSH statements. - Restore FLUSH commands supported by MariaDB (removed in the previous commit) - Adjust test case commit 5d4fb15e5a2391d7117dfb13203e33f3673dab20 Author: Nirbhay Choubey Date: Mon Feb 22 22:05:16 2016 -0500 Fix for compilation failure. commit 7d89deb0a3df4df798e27472a55e32b10ac306b9 Author: Teemu Ollakka Date: Thu Oct 22 14:59:53 2015 +0300 refs codership/mysql-wsrep#198 fixed merge issues commit 0ecc4fe2acbb3d89167b0e9cea4157a8c6daaef4 Author: Raghavendra D Prabhu Date: Tue Jul 7 14:20:22 2015 +0530 Bug#1421360: Add Percona Server specific FLUSH statements. Added following: FLUSH CLIENT_STATISTICS FLUSH INDEX_STATISTICS FLUSH TABLE_STATISTICS FLUSH THREAD_STATISTICS FLUSH USER_STATISTICS pertaining to USER STATISTICS https://www.percona.com/doc/percona-server/5.6/diagnostics/user_stats.html FLUSH CHANGED_PAGE_BITMAPS pertaining to changed page tracking. https://www.percona.com/doc/percona-server/5.6/management/changed_page_tracking.html Also, added tests for them. (cherry picked from commit 7efe49010c7f217663f364657090812b4723f426) Conflicts: mysql-test/suite/galera/r/galera_flush.result mysql-test/suite/galera/r/galera_flush_gtid.result mysql-test/suite/galera/t/galera_flush.test sql/sql_parse.cc commit 1077eef94273a87a22d656a2fcd4e47413a29aed Author: Raghavendra D Prabhu Date: Thu Jul 16 05:24:13 2015 -0700 PXC-391: Avoid Total Order Isolation (TOI) for LOCAL sql admin commands. The admin commands in question are: > OPTIMIZE > REPAIR > ANALYZE For LOCAL or NO_WRITE_TO_BINLOG invocations of these commands, ie OPTIMIZE LOCAL TABLE they are not binlogged as expected. Also, in addition, they are not executed under TOI. Hence, they are not propagated to other nodes. The effect is same as that of wsrep_on=0. Also added tests for this. A WSREP_DEBUG for wsrep_register_hton has also been added. The galera_flush_local test has also been updated for verifying that effects of NO_WRITE_TO_BINLOG / LOCAL are equivalent to wsrep_on=0 from wsrep perspective. (cherry picked from commit 5065122f94a8002d4da231528a46f8d9ddbffdc2) Conflicts: sql/sql_admin.cc sql/sql_reload.cc sql/wsrep_hton.cc commit 5be449d014d0bdab4859409860deec669a1f11f3 Author: Philip Stoev Date: Wed Oct 21 01:25:32 2015 -0700 Galera MTR Tests: attempt to work around codership/QA#179 in galera_as_slave_nonprim.test commit d794f05910a8f5f87fb699cacc516837eeea821d Author: Philip Stoev Date: Wed Oct 21 01:15:52 2015 -0700 Galera MTR Tests: stability fix for galera_gcs_fragment.test (TCP port was output to the .result file) commit ace86a2375c3f47badf49796eda14959b0487269 Author: Daniele Sciascia Date: Tue Oct 20 17:54:14 2015 +0200 refs codership/mysql-wsrep#201 - Fixes query cache so that it is aware of wsrep_sync_wait. Query cache would return (possibly stale) results to the client, regardless of the value of wsrep_sync_wait. - Includes the test case that reproduced the issue. commit c1ea0570af88ed12f55fc20c54262b3688b9981d Author: Nirbhay Choubey Date: Mon Feb 22 16:51:45 2016 -0500 refs codership/mysql-wsrep#184 Merge fix to XtraDB engine. commit 251c53a8a7368a5a71f39f92358eabb53097381c Author: Daniele Sciascia Date: Mon Oct 19 11:17:13 2015 +0200 refs codership/mysql-wsrep#184 - Adds runtime check wsrep_on(), to not interfere with default innodb behavior. commit 5ad30e8ad1c1f71dcc54be1f79680a3253101926 Author: Teemu Ollakka Date: Fri Oct 16 15:57:22 2015 +0300 MTR test for checking correctness of fragmentation over CCs commit cf4362013649d67d59201d8a1b00fe5111c42913 Author: Daniele Sciascia Date: Fri Oct 16 11:51:11 2015 +0200 refs codership/galera#308 - Avoid calling wsrep->stats_free() directly, instead, use wsrep_free_status(). commit 8c89e843db9e324ee5ad7607ef7e6dacee42b546 Author: Daniele Sciascia Date: Fri Oct 16 10:22:30 2015 +0200 refs codership/galera#308 - Moves cleanup of status vars to function export_wsrep_status_to_mysql(). commit 2c56142b770d9f8db24cc286ee768cc3edbfdd56 Author: Nirbhay Choubey Date: Mon Feb 22 16:36:05 2016 -0500 refs codership/mysql-wsrep#184 Merge fix to XtraDB engine. commit 1d2167685328200a5112aebd05c7232c625c1f09 Author: Daniele Sciascia Date: Thu Oct 15 15:13:29 2015 +0200 refs codership/mysql-wsrep#184 Fixes a deadlock between applier and its victim transaction. The deadlock would manifest when a BF victim was waiting for some lock and was signaled to rollback, and the same time its wait timeout expired. In such cases the victim would return from lock_wait_suspend_thread() with error DB_LOCK_WAIT_TIMEOUT, as opposed to DB_DEADLOCK. As a result only the last statement of the victim would rollback, and eventually it would deadlock with the applier. commit 267d429b5a0628e73fdbd95d1934e093adcdb296 Author: Daniele Sciascia Date: Mon Oct 5 11:01:04 2015 +0200 refs codership/mysql-wsrep#31 - Erronously removed call to wsrep_xid_init() in previous commit. commit c0dac420e5d5cfd14d1f6fea12288da4d29617ca Author: Daniele Sciascia Date: Mon Oct 5 09:42:03 2015 +0200 refs codership/mysql-wsrep#31 - Removes useless call to wsrep_xid_init() in wsrep_apply_events(). Transaction's xid is already initialized at that point. - Adds call to wsrep_set_SE_checkpoint() for committing TOI events in the applier side. - Includes test case that reproduced the issue. commit 0ec457b0de083e45b815a04f4f6de0bcc002ffc6 Author: Daniele Sciascia Date: Fri Oct 2 10:16:55 2015 +0200 refs codership/galera#308 - Moves call wsrep_free_status() to THD::cleanup_after_query(). Wsrep status variables were previously freed only on SHOW STATUS. - Removes valgrind suppression from mysql-test/valgrind. commit 00b058aca3ab48e15c056d689ced936b8c71ea64 Author: Teemu Ollakka Date: Thu Oct 1 17:05:48 2015 +0300 refs codership/mysql-wsrep#202 Added schema info into wsrep messages Added schema info to wsrep messages above debug level. commit 7ce84cf76433849959deff9255294d797319f64e Author: Philip Stoev Date: Tue Sep 29 23:29:54 2015 -0700 Galera MTR Tests: stability fixes Conflicts: mysql-test/include/mtr_check.sql mysql-test/suite/galera/r/galera_log_bin.result mysql-test/suite/galera/t/galera_log_bin.test commit 2f870f53767f225fa20a7b04d5f16712370904c8 Author: Teemu Ollakka Date: Tue Sep 15 13:20:55 2015 +0300 Restore original value of wsrep_on after waiting for sync point. commit d01328d73b65ec3c628646b1dd51a5d601ee74be Author: Teemu Ollakka Date: Sun Sep 13 18:57:20 2015 +0300 Helpers to deal with galera dbug sync points. commit b128f26cd51463af3fd92e3bc688c80a63bfcb58 Author: Vladislav Vaintroub Date: Mon Feb 22 18:11:59 2016 +0100 Fix build : change MYSQL_ADD_PLUGIN to be MACRO again, rather than FUNCTION commit c20979b16387ca9ddbf8ab9969c5d059ca7fd1a5 Author: Vladislav Vaintroub Date: Mon Feb 22 16:26:44 2016 +0100 MDEV-9601 Build client plugins, also for the cmake client-only build (-DWITHOUT_SERVER=1) commit d9c640aa8bfbdb079b7611cf71baf38133810674 Author: Oliver Giles Date: Sat Dec 12 10:37:25 2015 +0100 SphinxSE: add support for json filtering The filter command did not accept characters . [ ] which are valid in an attribute name for a sphinx query with json filtering. + test case added commit 3a24f1cf8426409a69619982e84ca498d581f8a1 Author: Vladislav Vaintroub Date: Mon Feb 22 12:48:03 2016 +0100 MDEV-9307 - provide info about DATA/INDEX directory in INFORMATION_SCHEMA.TA BLES (in CREATE_OPTIONS column) commit ff25158d7f5a8e29c1b074631e4b98693bed343e Author: Vladislav Vaintroub Date: Thu Feb 18 19:11:13 2016 +0100 MDEV-9529 - do not install sql script to BINDIR commit bcd2a156eec61a7771f3f052503e0ff7b27fb55c Author: Vladislav Vaintroub Date: Fri Feb 19 14:42:43 2016 +0100 MDEV-9833 - fix mysql_config --libs for weird cases, where mysqlclient link dependencies contain flags instead of libraries (like -pthread rather than -lpthread) commit 4b08b10b3ace67481cb7c03e0d3e95aaf6e954f7 Author: Oleksandr Byelkin Date: Thu Feb 18 17:20:48 2016 +0100 MDEV-9489:Assertion `0' failed in Protocol::end_statement() on UNION ALL Restoring currect_select fixed. commit 69042ffe4e85b6d3807f13a1e0e9ab92bd0a78f9 Author: Olivier Bertrand Date: Sat Feb 20 00:22:16 2016 +0100 - Fix to MDEV-9579 be testing for void result. modified: storage/connect/tabodbc.cpp commit fd8e846a3b049903706267d58e6d8e61eea97df8 Author: Sergey Vojtovich Date: Thu Feb 18 11:01:22 2016 +0400 MDEV-9564 - added s390x to lib64 INSTALL_LIBDIR handling Adjusted INSTALL_LIBDIR detection so that it is set to "lib64" on any 64bit system (not only x86_64). New condition is insipired by GNUInstallDirs cmake module. commit 17b5cb617263060f583382093a2e32adb0d7235f Author: Nirbhay Choubey Date: Wed Feb 17 22:56:38 2016 -0500 codership/mysql-wsrep#247: Fix test case commit a6d93b20d7f3bdc2eef73a011db70cbd2179e52d Author: Philip Stoev Date: Tue Feb 16 23:42:42 2016 -0800 Galera MTR Tests: MW-246 codership/mysql-wsrep#247 Stability fix for galera.mysql-wsrep#247.test commit 2438afbfde58d6bdfd4c40e83a4732254a26afbb Author: Philip Stoev Date: Tue Feb 16 03:12:58 2016 -0800 Galera MTR tests: MW-246 codership/mysql-wsrep#247 Additional tests around RSU and wsrep_desync commit 13627d49a90f3424ea1e61524841a789f08a0d3b Author: sjaakola Date: Tue Feb 16 11:55:03 2016 +0200 refs MW-246 - created mtr test for testing explicit desyncing with RSU mode DDL commit 4bdf0258b6119e6464ed7846e7e4f866dd9f9ed9 Author: sjaakola Date: Mon Feb 15 23:33:55 2016 +0200 refs MW-246 - skipping desync and resync before and after DDL execution in RSU mode, if wsrep_desync is set upfront commit 3042d655e2c20dccf00fba6a64f72385330d2b7a Author: Nirbhay Choubey Date: Wed Feb 17 15:50:01 2016 -0500 MDEV-9577: sys_vars.ignore_db_dirs_basic fails under Valgrind Ensure that the command line argument is of sufficient length before moving past the leading long option marker "--". commit db5b51fb7e3360d4ebc303bd67363bc8324e86b6 Author: Jean Weisbuch Date: Wed Jan 27 00:46:12 2016 +0100 mysqlreport update to 4.0, see MDEV-573 for more informations commit f22f2a62aecad4c213e640bc06388d5d8d6958fd Author: Daniel Dent Date: Thu Jan 14 03:59:19 2016 -0800 MDEV-9484 - Typo fixes commit 59b6b99ce3635077d06a3c0edb05c5ac52ca6e34 Author: Andrew McDonnell Date: Sat Feb 28 23:15:17 2015 +1030 Added regression test for MDEV_5871 commit 36ca65b73bcd0152680c88e09558bbe1237577ee Author: Jan Lindström Date: Wed Feb 17 12:32:07 2016 +0200 MDEV-9559: Server without encryption configs crashes if selecting from an implicitly encrypted table There was two problems. Firstly, if page in ibuf is encrypted but decrypt failed we should not allow InnoDB to start because this means that system tablespace is encrypted and not usable. Secondly, if page decrypt is detected we should return false from buf_page_decrypt_after_read. commit 02259623b9e4902a1188d303297e557d893dac40 Author: Nirbhay Choubey Date: Tue Feb 16 17:14:11 2016 -0500 Update global_suppressions for galera suite to include new warning. commit 1ac64b7510fd006268936e46442f46a28250c249 Author: Vladislav Vaintroub Date: Tue Feb 16 12:55:45 2016 +0000 MDEV-9557 - fix compilation errors due to missing krb5_free_unparsed_name() in old versions of Heimdal Kerberos commit d163ad338dcfb9f7c0a27e751834538d283a1f3b Author: Olivier Bertrand Date: Mon Feb 15 10:32:30 2016 +0100 - Fix to MDEV-9542 Connect was not handling NULLs in the answer from catalog functions and tables. It does now and when decimal is NULL defines DOUBLE without parameters. modified: storage/connect/ha_connect.cc modified: storage/connect/mysql-test/connect/r/odbc.result modified: storage/connect/mysql-test/connect/r/odbc_oracle.result modified: storage/connect/mysql-test/connect/r/odbc_postgresql.result modified: storage/connect/mysql-test/connect/r/odbc_sqlite3.result modified: storage/connect/mysql-test/connect/r/odbc_xls.result modified: storage/connect/odbconn.cpp modified: storage/connect/table.cpp modified: storage/connect/valblk.h commit d23bd26bec787ebbdbd41be0204e9cb83baf4dbd Merge: b83de1151aa a9a08b1e2f5 Author: Nirbhay Choubey Date: Sat Feb 13 18:28:36 2016 -0500 Merge tag 'mariadb-5.5.48' into 5.5-galera commit b83de1151aab6dcc9f300159e31198364000de70 Author: Nirbhay Choubey Date: Wed Feb 10 18:04:08 2016 -0500 Update WSREP_PATCH_REVNO. commit a6d0903764d316af98ec0462fd136fd1ca975a08 Author: Philip Stoev Date: Mon Jan 11 12:03:35 2016 +0200 Bump WSREP_PATCH_VERSION in cmake/wsrep.cmake to 14 commit 403a8bf8dfcf54bb24f7e376f43381c0d802810f Author: Philip Stoev Date: Mon Nov 16 04:07:08 2015 -0800 Bump WSREP_PATCH_VERSION in cmake/wsrep.cmake to 13 commit 1ce821b509cdce915d8dd76b1e080bd26fa2a296 Author: sjaakola Date: Thu Nov 12 10:33:04 2015 +0200 Refs codership/mysql-wsrep#221 - disabling certain IB atomic builtins, which caused complete hangs commit bd1d2b90a77f31c7d982f18902a39a2cadce0cc3 Author: Daniele Sciascia Date: Fri Nov 6 10:50:21 2015 +0100 refs codership/mysql-wsrep#201 Removes MTR tests. commit 8a93a7c0b0436a1b863c3b3cc165dca9a690a064 Author: Teemu Ollakka Date: Wed Nov 4 16:19:48 2015 +0200 refs codership/mysql-wsrep#226 Limit binlog recovery to found wsrep position Limit binlog recovery so that the wsrep position found from storage engines is not exceeded. This is required to have consistent position between wsrep position stored in innodb header and recoverd binlog. commit 652e4c1d3333ef0649a504995e39b5c0c664c5ff Author: Nirbhay Choubey Date: Wed Feb 10 17:29:28 2016 -0500 Fix for a build failure. commit 484bbd332f0876cd7df30122bcb339b62a64c871 Author: Daniele Sciascia Date: Wed Nov 4 09:36:01 2015 +0100 refs codership/mysql-wsrep#201 Manually merged query cache fixes from 97c02faf0a39dd189eeda4f75fb35bc5db69d541. commit 0c7dffe9e18e249ca7930b29d7c3c6832c03a278 Author: Daniele Sciascia Date: Thu Oct 22 17:30:20 2015 +0200 refs codership/mysql-wsrep#201 - Eliminates code duplication in query cache patch - Reduces the number of iterations in mysql-wsrep#201.test to shorten the execution time - Adds a new test case that exercises more scenarios commit 8a71fde01f153bda42d57587527376bc33e9e3e9 Author: Daniele Sciascia Date: Tue Oct 20 17:54:14 2015 +0200 refs codership/mysql-wsrep#201 - Fixes query cache so that it is aware of wsrep_sync_wait. Query cache would return (possibly stale) results to the client, regardless of the value of wsrep_sync_wait. - Includes the test case that reproduced the issue. commit d80b8442a68093106e00a9a38b7b2c593002a72c Author: Monty Date: Sun Feb 7 15:00:30 2016 +0200 Fixes needed to compile with musl C library Patch originally by Codarren Velvindron commit 07b8aefe90ca830d2de068f2966cd2288b158a88 Author: Sergei Petrunia Date: Wed Feb 3 00:15:49 2016 +0300 MDEV-9504: ANALYZE TABLE shows wrong 'rows' value for ORDER BY query Revert the patch for MDEV-9504. It causes test failures, attempt to fix these causes more failures. The source of all this is that the code in test_if_skip_sort_order() has a peculiar way of treating select_limit parameter: Correct value is computed when the query plan is changed. In other cases, we use an approximation that ignores the presence of GROUP BY clause, or JOINs, or both. A patch that fixes all of the above would be too big to do in 10.1 commit 55ea26541d4c95e765073c70126d9bb490c572c6 Author: Monty Date: Tue Feb 2 19:54:18 2016 +0200 Fixed warnings and one memory loss found by valgrind The memory loss could happen in Aria with encrypted tables when Aria failed to encrypt a block. In normal usage this should never happen. commit 11c2d3c3e21642107db625f33c177f09d8ccd3ca Merge: 52d695fef4f 5cf293fcad0 Author: Monty Date: Tue Feb 2 13:07:53 2016 +0200 Merge branch '10.0' into 10.1 Conflicts: configure.cmake commit 52d695fef4f959daf12cc1e4b83907917dddfbe8 Author: Vladislav Vaintroub Date: Mon Feb 1 17:51:57 2016 +0100 Fix authentication plugin's tests in case username contains non-alphanumeric character, e.g dash commit e6dee57f1ae78326af9485170d232436fb49404f Author: Sergei Petrunia Date: Mon Feb 1 19:06:54 2016 +0300 MDEV-9504: ANALYZE TABLE shows wrong 'rows' value for ORDER BY query - Legacy code would set JOIN_TAB::limit only for EXPLAIN queries (this variable is only used when producing EXPLAIN output) - ANALYZE/SHOW EXPLAIN need to produce EXPLAIN output for non-EXPLAIN queries, too, so we should always set JOIN_TAB::limit. commit 91ff0172972fdc3b858d6272b653f70a5650b067 Merge: a96fbc3c352 8cf1f50967f Author: Kristian Nielsen Date: Mon Feb 1 16:40:20 2016 +0100 Merge MDEV-9112 into 10.1 Conflicts: config.h.cmake configure.cmake commit a96fbc3c352dad89c6007672eedf437e0516abe0 Author: Alexander Barkov Date: Mon Feb 1 12:43:19 2016 +0400 MDEV-9503 Server crashes in fix_fields, main.null fails with ps-protocol DBUG_ASSERT() added in the patch for MDEV-9181 did not take into account special circumstances for the prepared statement EXECUTE. Fixig the assert. Also, extending and fixing comments made during MDEV-9181. commit dc50a3dd1920d11f630bc1f7d0bf8e3524007e4b Author: Elena Stepanova Date: Mon Feb 1 01:02:23 2016 +0200 Raise the version number commit 0bee1504a3741d47dcaaba74b0c846dfdfc8ad59 Author: Elena Stepanova Date: Mon Feb 1 01:01:29 2016 +0200 MDEV-9502 maria.encrypt-wrong-key fails with embedded server The test restarts the server, it should not be executed for embedded commit 3d794d0ee8e0a5a7dfbd3b7de056c0a3ccb9aa81 Author: Vladislav Vaintroub Date: Wed Jan 6 09:15:19 2016 +0100 MDEV9494 Fix build for Heimdal Kerberos commit 7b14ba63f22e6c98c1982dae8847035ad1b8e155 Author: Monty Date: Thu Jan 28 14:06:05 2016 +0200 MDEV-8724 Assertion `rc == 0' failed in ma_decrypt on reading an Aria table Don't assert if decrypt or encrypt fails if my_assert_on_error is not set. Added failed file name if encryption/decryption fails. commit ce40ccaf24af2fe395f541cb1079256de8727ccd Author: Alexander Barkov Date: Thu Jan 28 13:58:39 2016 +0400 MDEV-9181 (NULLIF(count(table.col)), 0) gives wrong result on 10.1.x Wrapping args[0] and args[2] into an Item_cache for aggregate functions. commit 5092ab28ba91646922e16ee6afc8c40ac5235a31 Author: Sergei Golubchik Date: Thu Jan 28 08:57:30 2016 +0100 bump the version commit 11c85e1d9fab12ed6da00d562084598b633664a3 Author: Alexey Botchkov Date: Wed Jan 27 23:58:01 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. The SQL command 'PREPARE' was broken - should be take into account. commit 418518c0b1b0eaabaa184ab514bf1594eaa682c2 Author: Alexey Botchkov Date: Wed Jan 27 16:42:42 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. Keep the embedded-server version valid. commit d16d40be2c47d8be5360ae7604f0199635dc0063 Author: Alexey Botchkov Date: Wed Jan 27 14:58:52 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. SHOW CREATE PROCEDURE/FUNCTION fixed. commit 34df3140f2e5fe3a8531c5f6eb430e2192bfa737 Author: Alexey Botchkov Date: Wed Jan 27 13:57:25 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. SHOW BINARY LOGS fixed. commit efb36ac5d5a5e2b7937545e2d3fddb1b7c8b7f9a Author: Alexey Botchkov Date: Wed Jan 27 13:42:53 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. SHOW MASTER STATUS fixed. commit 75a1d866dd4c00b91ca9b29593ad41543f084544 Author: Alexey Botchkov Date: Wed Jan 27 13:31:53 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. SHOW SLAVE STATUS fixed. commit 552d33095a25f6e1f9af802e71713b0bec0f6acb Author: Alexey Botchkov Date: Wed Jan 27 12:39:27 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. Fix for SHOW GRANTS statement. commit f3926cd18e2ba64f2643c6c4f6a981ed99868895 Author: Alexey Botchkov Date: Wed Jan 27 12:01:55 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. Fix for SHOW CREATE DATABASE. commit 07e976294089cbc0c8cf46d984565e6136ffa9e8 Author: Oleksandr Byelkin Date: Fri Jan 22 19:29:26 2016 +0100 MDEV-8615: Assertion `m_cpp_buf <= begin_ptr && begin_ptr <= m_cpp_buf + m_buf_length' failed in Lex_input_stream::body_utf8_start Nothing should be done before any keyword recognized. commit eb155661383bcf215d38baf5ff2c5b4413a5552d Author: Sergei Golubchik Date: Wed Jan 27 15:26:12 2016 +0100 fix failures of ps and ps_1general in --ps-protocol commit 02cc921a449d847a27a1a942ff5a5b2b9885b1bb Author: Sergei Golubchik Date: Wed Jan 27 15:14:57 2016 +0100 compiler warnings commit 4b31e6dc95c7c008cd318822eb9d5a1e845b288c Author: Vladislav Vaintroub Date: Wed Jan 27 15:23:42 2016 +0100 Address review comments, add unit test commit c1bf5ba27ef2ec189fe890283e68dbd9bd2efca9 Author: Georg Richter Date: Tue Oct 13 17:10:16 2015 +0200 Revert "On Windows SSL works with sockets only, so we shouldn't tell the client" This reverts commit 2ee149be4e9319208dfcfb77712aa1ef805f6ba8. commit 33e5a8aba2a9c7a4ccf62c7504db36a5a51702f7 Author: Georg Richter Date: Tue Oct 13 16:35:53 2015 +0200 On Windows SSL works with sockets only, so we shouldn't tell the client that we support SSL when using named pipes or shared memory. commit ef3ca5c3ba9a03a213634e51ce27e8b95cce3a99 Author: Georg Richter Date: Tue Oct 13 10:13:53 2015 +0200 New authentication plugin for authentication via named pipe on Windows operating systems. The plugin gets the sid of the client process and considers the user authenticated if the given username matches the username of this sid. commit 13b79f488b874847d77a7e6d6abe4bd7b5d0aa5a Author: Monty Date: Wed Jan 27 16:33:41 2016 +0200 Fixed MDEV-9347 Not all rows returned by the C API Problem was that insert-order (enforced by the optimizer) did not handle the case where the bitmap changed to a new one. Fixed by remembering the last bitmap page used and to force usage of this when inserting new rows commit b404b236a2093e9bd259ed0d6c2add62dc3005d4 Author: Alexander Barkov Date: Wed Jan 27 11:42:31 2016 +0400 MDEV-9332 Bug after upgrade to 10.1.10 commit 7d39b28093b06ea67318c257057e93cf891ce896 Author: VicenÈ›iu Ciorbaru Date: Tue Jan 26 16:33:06 2016 +0200 [MDEV-9468]: Client hangs in my_addr_resolve Account for timeout of select returning a 0 error code. commit d227399318fc9cb43afa0fae17ac4d8a7cfdade3 Author: Alexey Botchkov Date: Tue Jan 26 23:16:56 2016 +0400 Comment fixed. commit df2695495188b0c3459eabb40c8e390f56cddb27 Author: Alexey Botchkov Date: Tue Jan 26 16:00:59 2016 +0400 MDEV-5273 Prepared statement doesn't return metadata after prepare. The metadata creation part of the mysqld_shww_create separated to be used on the mysqld_stmt_prepare stage. commit a095c99301a0acac9b2db9b294f24a8753ebed48 Author: Vladislav Vaintroub Date: Tue Jan 26 17:56:41 2016 +0100 Fix packaging for client RPM plugins - provide 'ignored' list commit 7831b79f447095074167c2aafd02f8e8177fc4f5 Merge: c76ab94fa93 77c75a46cfe Author: Vladislav Vaintroub Date: Tue Jan 26 17:46:42 2016 +0100 Merge branch '10.1' of http://github.com/MariaDB/server into 10.1 commit 77c75a46cfe9ffa914c73fe129dec743b80ed57b Author: Alexander Barkov Date: Tue Jan 26 17:52:24 2016 +0400 A clean-up patch for Item_func_conv_charset (needed for MDEV-9181) Removing the "conv_charset" member and using collation.collation instead, as they duplicated each other. commit c76ab94fa9344d84df74ae3ab54dc876b900e471 Author: Vladislav Vaintroub Date: Tue Jan 26 14:36:13 2016 +0100 Fix invalid format warnings commit 71b39066d4320e74e5ad73f4f5a6d436e32f14f3 Author: Sergei Golubchik Date: Mon Jan 25 20:17:55 2016 +0100 after merge fixes fix compiler warnings commit 44dea7ffbfb0438c5345646bb967bfd2e909e5e2 Merge: f4faac4d6ad 3e20a0d8f41 Author: Sergei Golubchik Date: Mon Jan 25 22:59:41 2016 +0100 Merge branch 'connect/10.1' into 10.1 commit f4faac4d6ad31acc96b9edf8c322f3031123dfe0 Merge: 2ff65ba5319 666b9663f94 Author: Sergei Golubchik Date: Mon Jan 25 22:58:57 2016 +0100 Merge branch '10.0' into 10.1 commit 2ff65ba53190ad897fc41f546fc4a7bdc80d9054 Author: Sergei Golubchik Date: Sun Jan 24 17:41:11 2016 +0100 MDEV-9299 Test main.events_2 incompatible with Debian reproducibility testing framework Debian tests are run in 2017, update the test to use 2027 as a "future". commit ed4fb9b248d769d71bc3d8b20c0e2eaa3ac1e444 Author: Sergei Golubchik Date: Sun Jan 24 19:53:32 2016 +0100 MDEV-9259 Add missing mroonga files to Debian packaging in 10.1 commit 5da7c346c7a81c1cb7823e50f32f33f266cd26dd Author: Sergei Golubchik Date: Sat Jan 23 20:40:01 2016 +0100 MDEV-9428 NO_AUTO_VALUE_ON_ZERO is ignored when a trigger before insert is defined Don't compare "field == table->next_number_field" because the field can be special nullable field copy created by the trigger. Compare field_index values instead. commit 68910e7092a3741fff56632b84f5eb340ef99245 Author: Sergei Golubchik Date: Sun Jan 24 20:43:19 2016 +0100 MDEV-9273 ERROR 1819 on grant statment for existing user Cannot do password validation in fix_lex_user(), we don't know there what "GRANT ... TO user" means - creating a new user with an empty password (need validation) or granting privileges to an existing user (no validation needed). Move validation down into replace_user_table(). And copy into check_change_password(). commit d14c4c7874b0de1da452499967b8000a4ac83d67 Author: Sergei Golubchik Date: Sun Jan 24 20:00:35 2016 +0100 cleanup: move all password validation logic into one function commit d5b1b1ac6022163fb67603db3bd4235aff1162fb Author: Sergei Golubchik Date: Mon Jan 25 22:57:47 2016 +0100 stack too small on labrador (again!) increase the thread stack a bit for main.signal_demo3 and sys_vars.max_sp_recursion_depth_func to stop failing commit c37107380abf8f4c04c270ee7afdf8e16042c943 Author: Sergei Golubchik Date: Sat Jan 23 16:24:32 2016 +0100 cleanup: LEX_USER::pwtext and LEX_USER::pwhash Was: * LEX_USER::password was storing sometimes plaintext password and sometimes password hash * LEX_USER::auth was storing sometimes password hash and sometimes plugin authentication string Now: * LEX_USER::pwtext stores the password in plain-text * LEX_USER::pwhash stores the password hash * LEX_USER::auth stores the plugin authentication string commit 1fea7e785f2de734fb3e278c9c0df2776f565c06 Author: Sergei Golubchik Date: Sat Jan 23 16:08:24 2016 +0100 cleanup: create LEX_USER::reset_auth() as this is used quite often commit b01e2ff1cd5885eddbfcb2792222ed39548dbdd0 Author: Sergei Golubchik Date: Thu Jan 21 22:10:44 2016 +0100 MDEV-9385 Devel package wants ownership of /usr/share/pkgconfig on CentOS/RHEL add /usr/share/pkgconfig to the rpm ignored list commit 5a5f18f3f7f5c98800c6370836bc407deb0e5c02 Author: Sergei Golubchik Date: Thu Jan 21 21:58:30 2016 +0100 MDEV-9205 PAM user map plugin does not work with LDAP groups allow more characters in a valid user/group name: * POSIX allows dashes '-' and dots '.' * also the name may end with a dollar sign '$' for our purposes it's enough to allow [-.$] anywhere in the name commit a2330c820af56d69e19f07f9cc9deb655fc67174 Author: Sergei Golubchik Date: Mon Jan 25 17:04:09 2016 +0100 MDEV-8208 Sporadic SEGFAULT on startup different fix. remove old ones, wait for THD to be fully initialized before continuing with the server startup process. This reverts commits db2e21b, 13615c5, 3f515a0, 70113ee. commit 744e605de05354bdb18f9241daa8331687492f6b Author: Sergei Golubchik Date: Sat Dec 26 09:40:49 2015 +0100 cleanup: wsrep helper to create a thread commit 0fab28ceddb61ce9caf15f6449d3d500577e3892 Author: Sergei Golubchik Date: Tue Dec 22 20:25:29 2015 +0100 cmake: better auto *.i targets in Makefiles commit 8fb34ea8c1ed6cbc01df54c5167fc927805561ba Author: Olivier Bertrand Date: Mon Jan 25 14:10:09 2016 +0100 - Fix to MDEV-9446 (using Json UDFs when CONNECT is not installed) modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/mysql-test/connect/t/json_udf.test modified: storage/connect/mysql-test/connect/t/json_udf2.inc commit da0991c6daaa650ec224fe4028975eaf6db02ba7 Author: Alexey Botchkov Date: Thu Jan 21 14:03:24 2016 +0400 MDEV-7875 Duplicate maria_add_gis_sp script in the sources. Now both are generated by the cmake from the scripts/maria_add_gis_sp.sql.in commit ff8d4009a7743b99c1c13831172b08041a4b272e Author: Sergei Petrunia Date: Sun Jan 24 12:31:11 2016 +0300 MDEV-9457: Poor query plan chosen for ORDER BY query by a recent 10.1 Undo the change in test_if_skip_sort_order() that set ref_key=-1 when a variant of index_merge is used (was made in fix for MDEV-9021). It turned out that test_if_cheaper_ordering() call below assumes that ref_key=-1 means "no index is used", that is, "an inefficient full table scan is done". This is not the same as index_merge, index_merge can actually be quite efficient. So, ref_key=MAX_KEY denotes the fact that some index is used, not any given index. commit 825f51d1aab51d363dc07ec9fe0829af33063883 Author: Oleksandr Byelkin Date: Wed Dec 16 19:33:41 2015 +0100 MDEV-9118 ANALYZE TABLE for Engine independent status fetchs blob/text columns without use Do not include BLOB fields by default. commit 45920d3d4a8ee28af8ca64b281db95ae3876bb70 Merge: 4bb62e91f6f 42d9f3d87bc Author: Vladislav Vaintroub Date: Wed Jan 20 21:29:37 2016 +0100 Merge pull request #151 from frozencemetery/my_name Fix spelling of my name commit 42d9f3d87bc77ce501f7831a3a07c1ead3ab2389 Author: Robbie Harwood Date: Wed Jan 20 13:24:30 2016 -0500 Fix spelling of my name commit 4bb62e91f6f93871106118f3ce47add4c109e208 Author: Vladislav Vaintroub Date: Wed Jan 20 14:35:11 2016 +0100 Do not require server RPM for client plugins commit 67cf76ad9b17f2825ac8759ead4928ed3d0f9ce7 Author: Vladislav Vaintroub Date: Mon Jan 18 19:30:46 2016 +0100 MDEV 4691- address review comments commit 059c0c8b371589359f3fc6d3979de1a5006dce63 Merge: e7a89b46d4e f602c3938c2 Author: Jan Lindström Date: Tue Jan 19 07:59:02 2016 +0200 Merge pull request #149 from grooverdan/10.1-static-analysis-innodbchecksum innodbchecksum: add fclose and handle errors commit f602c3938c22c23416104020a908f686032b091b Author: Daniel Black Date: Tue Jan 19 14:19:31 2016 +1100 innodbchecksum: add fclose and handle errors commit ddd62ba24aa0c6f35b86a53ab6c3c97c67689ee6 Author: Olivier Bertrand Date: Mon Jan 18 23:00:40 2016 +0100 - Change SQL_NTS to 0 when the string is NULL modified: storage/connect/odbconn.cpp commit e7a89b46d4ece1351cc60d8bafb8bf90ca9d8cc8 Author: VicenÈ›iu Ciorbaru Date: Sun Jan 17 22:57:37 2016 +0200 Revert "[Code cleanup] Refactor duplicate code within myisam and maria sort.cc" This reverts commit 727f92fe00ebfa1e81f3cc6c1a73af520f42a0bd. commit acc837981fc31a3f5f28c392d6f821f0929b12a6 Author: VicenÈ›iu Ciorbaru Date: Sun Jan 17 22:57:27 2016 +0200 Revert "Fixed compilation failure on MacOSX" This reverts commit df32495c85d75b736ee8d251d07b70b3682dda4d. commit 275f7d7d828c117a3e1ad7b1f5932ce2edaa09ad Author: VicenÈ›iu Ciorbaru Date: Sun Jan 17 22:33:36 2016 +0200 Remove warning in my_addr_resolve ISO C90 does not allow mixed declarations and code. commit b2bd10d4d614924ff22746ce3a49b4e5f755ddc9 Author: VicenÈ›iu Ciorbaru Date: Sun Jan 17 22:23:21 2016 +0200 [MDEV-9427] Server does not build on OpenSUSE 42.1 Changed code to comply to C90 standard. commit 6d3ffd2e3a76873acb4f232f52ccca6a75bf737d Author: VicenÈ›iu Ciorbaru Date: Fri Dec 11 09:16:42 2015 +0200 Fixed a crash during stacktrace printing if addr2line failed to start. In order to get all the input from addr2line we must read in a loop, until the response is complete. Also, in case that the response is malformed, we must not end up reading invalid memory. commit df32495c85d75b736ee8d251d07b70b3682dda4d Author: VicenÈ›iu Ciorbaru Date: Thu Dec 10 03:56:31 2015 +0200 Fixed compilation failure on MacOSX Due to a hack that has propagated to the maria storage engine, undefined behaviour would result by bypassing the initialization code of variables after my_thread_init(). By refactoring the nested logic into a separate function, this problem is resolved. commit 727f92fe00ebfa1e81f3cc6c1a73af520f42a0bd Author: VicenÈ›iu Ciorbaru Date: Wed Dec 9 23:36:16 2015 +0200 [Code cleanup] Refactor duplicate code within myisam and maria sort.cc Setting read and write methods for the SORT_PARAM struct based on variable length key is done within a single function. commit 38bcb4464eadc4e2a22e835ef009cbd1f4ae8846 Author: Kristian Nielsen Date: Fri Jan 15 14:24:11 2016 +0100 After-merge fix. commit 2f88b14acd9c7ddc0337dd56a1d6ce1a156fe4ce Merge: 55d61ec878f 06b2e327fcb Author: Kristian Nielsen Date: Fri Jan 15 13:01:19 2016 +0100 Merge branch 'tmp' into tmp-10.1 Conflicts: sql/slave.cc commit 55d61ec878f94cfbdafee43599809dda98803a9f Author: Vladislav Vaintroub Date: Thu Jan 14 13:31:08 2016 +0100 MDEV-4961 SSPI/GSSAPI/Kerberos authentication plugin commit 3e20a0d8f414124d040fda5a4981cecf533f62a2 Author: Olivier Bertrand Date: Sat Jan 9 19:51:51 2016 +0100 - Fix MDEV-9239. Meanwhile, make all references to the database in XTAB Schema (was sometimes in XTAB Catalog) modified: storage/connect/mycat.cc modified: storage/connect/mycat.h modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabmysql.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp commit 111acb721ff7237ceb5f5c8fae8c10857ed7c36f Author: Jan Lindström Date: Tue Jan 5 18:50:54 2016 +0200 MDEV-9359: encryption.create_or_replace fails sporadically in buildbot: failing assertion: mutex->magic_n == MUTEX_MAGIC_N Make sure that encryption threads mutex is initialized before starting encryption threads. commit 56e0de0411315d348290aa257fce45cde9b22861 Merge: 1bb66ea88c4 ae7b39a13a3 Author: Vladislav Vaintroub Date: Wed Dec 30 20:56:52 2015 +0100 Merge branch '10.0' into 10.1 commit 1bb66ea88c4679d6bd3ad1472d75983e66f679ae Merge: 4282ac48c6f 4d3bc261525 Author: Alexander Barkov Date: Tue Dec 29 18:44:13 2015 +0400 Merge remote-tracking branch 'origin/10.0' into 10.1 commit 4282ac48c6ffb2af8cbe67c8f5a6a07e3c492b98 Merge: 30b2447f7d9 7529870c7e5 Author: Alexander Barkov Date: Tue Dec 29 15:22:33 2015 +0400 Merge remote-tracking branch 'origin/10.0' into 10.1 commit 3e76d54b98e328768b1999344c0affc7a8f04b69 Author: Olivier Bertrand Date: Sun Dec 27 19:37:28 2015 +0100 - Fix MDEV-9322. modified: storage/connect/json.cpp commit 30b2447f7d930b4f1a16f56f5213b2f54de9cf8c Author: Sergey Vojtovich Date: Sun Dec 27 15:40:34 2015 +0400 MDEV-9128 - Compiling on IBM System Z fails Provided IBM System Z have outdated compiler version, which supports gcc sync builtins but not gcc atomic builtins. It also has weak memory model. InnoDB attempted to verify if __sync_lock_test_and_set() is available by checking IB_STRONG_MEMORY_MODEL. This macro has nothing to do with availability of __sync_lock_test_and_set(), the right one is HAVE_ATOMIC_BUILTINS. commit 0f10a5c97ab79daa7350b227981924c1313c3c2a Author: Vladislav Vaintroub Date: Thu Dec 24 21:46:38 2015 +0100 Fix annoying repetitive tokudb build warning, if MariaDB is build on non-Linux x64 system commit 000eba94f50da12f154b734f2a36f5f37ecd6b4f Merge: 8efdfc8b58a 89a264809d6 Author: Nirbhay Choubey Date: Wed Dec 23 10:42:55 2015 -0500 Merge branch '10.0-galera' into 10.1 commit 8efdfc8b58a84f8e8d62f0bb8b31f5b763664c06 Author: Sergei Golubchik Date: Wed Dec 23 16:22:48 2015 +0100 update results innodb 32-bit funcs_1 embedded commit 923b6dc888d727272a66290f60bc61ab76f1fff1 Author: Sergei Golubchik Date: Wed Dec 23 15:59:56 2015 +0100 remove HA_ERR_INFO, use ER_ALTER_INFO commit 89a264809d660fb5a4e7d43e9324b1f529a3a1d7 Author: Nirbhay Choubey Date: Wed Dec 23 09:51:32 2015 -0500 MDEV-9224: postfix - thd can be null in reload_acl_and_cache() commit 8d9fbaaba60d1e044de0856201cc6989b380e2b0 Author: Monty Date: Wed Dec 23 13:46:32 2015 +0200 Fixed that ccache can be used again (broken by TokuDB patches) For now, only if ccache is installed with symlinks in /usr/lib64/ccache commit deef90eb753bfe132be2e3b46536a29dde93de8a Author: Monty Date: Wed Dec 23 11:57:42 2015 +0200 Don't send error 0 to my_printf_error() Fixed by adding HA_ERR_INFO as a informational warning to by used by MyISAM This is used to inform when we create a backup copy of the data file. Also improved informational messages when creating backup copies of data and index files commit e6c0f25f04c0dd6be7cd3973bf1a58dff213f985 Merge: fe4047dc390 70113ee170c Author: Nirbhay Choubey Date: Tue Dec 22 15:09:29 2015 -0500 Merge branch '5.5-galera' into 10.0-galera commit fe4047dc39090f626408d91999dd4a8f0869ab13 Author: Nirbhay Choubey Date: Tue Dec 22 15:02:18 2015 -0500 MDEV-9224 : Database lockup on flush in galera A deadlock can occur when the wsrep applier thread while executing FLUSH TABLES waits for MDL lock owned by other local transactions, which in turn are waiting for commit order if their seqno comes after one assigned to FLUSH TABLES. Fixed by making sure that the wsrep applier thread while executing FLUSH TABLES does not wait for table share(s) to be removed from table definition cache. commit 70113ee170cbace52d01afdb3ddd4ea5bfa92ebd Author: Nirbhay Choubey Date: Tue Dec 22 14:58:02 2015 -0500 MDEV-9290 : InnoDB: Assertion failure in file trx0sys.cc line 353 Addendum: Save thd's server_status & option_bits before setting the thread specific pointer. commit 27e6fd9a596847a1a4c618d16ed43f6885dfe73a Author: Sergey Vojtovich Date: Tue Dec 22 14:51:26 2015 +0400 MDEV-9095 - [PATCH] systemd capability for --memlock Adjust systemd files to enable CAP_IPC_LOCK to allow rootless mlockall (triggered by memlock option). This is amended version of a patch originally submitted by Daniel Black. commit 87e6873ce91831c247331a8964c3267952efe95a Author: Sergey Vojtovich Date: Mon Dec 21 14:40:41 2015 +0400 MDEV-9081 - Debian: insecure debian-sys-maint password handling Set umask so that newly created file is not readable by others. This is a quick fix to close security gap. To be replaced by MDEV-8375 - passwordless root login. commit c597ed01112c2f6549c59e6548d4ff53803487df Author: Sergey Vojtovich Date: Wed Dec 16 17:29:26 2015 +0400 MDEV-9209 - [PATCH] scripts: Do not prepend the prefix to absolute paths Allow absolute paths for INSTALL_*DIR. commit d8e127f9f4eb634be2b84de3384709060db70b43 Merge: 02781512605 d58a770201a Author: Sergei Golubchik Date: Tue Dec 22 15:19:51 2015 +0100 Merge branch '10.1' into bb-10.1-serg commit 02781512605e311e1ae45fedb154555ed3ed2cba Author: Sergei Golubchik Date: Tue Dec 22 11:59:15 2015 +0100 fix galera.lp1438990 test binlog_savepoint_rollback() should not try to truncate a binlog unless binlog_savepoint_set has actually remembered the position to truncate to. commit 7697bf0bd7e5b50c1071742ac90539be71f6eabe Merge: 0686c34d22a 080da551ea1 Author: Sergei Golubchik Date: Tue Dec 22 10:32:33 2015 +0100 Merge branch 'github/10.0-galera' into 10.1 Note: some tests fail, just as they failed before the merge! commit 0686c34d22a5cbf93015012eaf77a4a977b63afb Author: Sergei Golubchik Date: Sat Nov 14 22:51:54 2015 +0100 MDEV-8605 MariaDB not use DEFAULT value even when inserted NULL for NOT NULLABLE column NOT NULL constraint must be checked *after* the BEFORE triggers. That is for INSERT and UPDATE statements even NOT NULL fields must be able to store a NULL temporarily at least while BEFORE INSERT/UPDATE triggers are running. commit ad5db17e882fea36dcae6f6e61996b5f9bf28962 Author: Sergei Golubchik Date: Wed Dec 16 12:12:01 2015 +0100 cleanup * move common code to a new set_bad_null_error() function * move repeated comparison out of the loop * remove unused code * unused method Table_triggers_list::set_table * redundant condition (if (table) after table was dereferenced) * add an assert commit de7636e1470848bb5d92437b7c6c7b9c4d6caedc Author: Sergei Golubchik Date: Mon Dec 21 21:30:15 2015 +0100 32-bit test fixes commit dfb58a3782972bacb515d2a414714b748ed6f147 Author: Sergei Golubchik Date: Sun Dec 20 12:33:58 2015 +0100 innodb/xtradb: init scrub mutex even in read-only mode because it's locked for innodb part of SHOW STATUS, which can happen in read-only mode too. commit ab64d674e8825625020ec8107a9434e10a91e897 Author: Sergei Golubchik Date: Sun Dec 20 12:31:49 2015 +0100 fix innodb-get-fk test incorrect option name and doing ALTER TABLE under read-only: the test "passed" in 10.0 only because $restart_parameters was first implemented in 10.1 commit 752349d8afad4a3c4cdf122a9a1cc388f96777f1 Author: Sergei Golubchik Date: Sun Dec 20 12:27:37 2015 +0100 update disabled.def for connect engine commit a2bcee626d4ef2836e38e4932305871390164644 Merge: 1788bfe93a7 4fdf25afa81 Author: Sergei Golubchik Date: Mon Dec 21 21:24:22 2015 +0100 Merge branch '10.0' into 10.1 commit d58a770201acae10bdae7e840db043368cb48ba0 Author: Alexey Botchkov Date: Mon Dec 21 16:07:07 2015 +0400 MDEV-7540 Information Schema SPATIAL_REF_SYS contents don't match the expected contents. Table content filled appropriately. Thare are still just two records as we don't have geodetics yet. commit 080da551ea171f8a43633ab27b56875938643dd0 Author: Jan Lindström Date: Mon Dec 21 16:36:26 2015 +0200 MDEV-8869: Potential lock_sys->mutex deadlock In wsrep BF we have already took lock_sys and trx mutex either on wsrep_abort_transaction() or before wsrep_kill_victim(). In replication we could own lock_sys mutex taken in lock_deadlock_check_and_resolve(). commit 1788bfe93a745582d938a608d5959b7d2e6b2f23 Merge: 7e8e83029f0 e57876eacf9 Author: Sergei Golubchik Date: Mon Dec 21 14:36:24 2015 +0100 Merge branch 'connect/10.1' into 10.1 commit afc2fb1bf8aaa8559f602bf7ff7859e039a378ee Author: VicenÈ›iu Ciorbaru Date: Fri Dec 18 23:41:08 2015 +0200 MDEV-8627: SHOW GRANTS does not work for a replicated role The bug was caused by accessing uninitialized fields within the LEX related to ssl by mysql_show_grants() -> get_current_user() -> has_auth() function. commit ab9a488dec79f325d73dddd11d7ee120108a9f36 Author: Nirbhay Choubey Date: Sun Dec 20 19:24:03 2015 -0500 MDEV-9141 : [PATCH] Add CA validation to wsrep_sst_xtrabackup-v2.sh - Add CA validation to wsrep_sst_xtrabackup-v2.sh. - Also added a few {} around tpem for consistency. - Abort if encryption is requested but socat is not ssl-enabled. Patch contributed by : Klaas Demter commit 8dfd157bb2c560f0ee7496216cc3f0895788bdf0 Merge: dad555a09c8 3f515a09ff1 Author: Nirbhay Choubey Date: Sat Dec 19 19:19:32 2015 -0500 Merge branch '5.5-galera' into 10.0-galera commit dad555a09c8d590132c77c192a18d7fc1f8fe91e Merge: 18173ddfc40 90ea0145856 Author: Nirbhay Choubey Date: Sat Dec 19 14:24:38 2015 -0500 Merge tag 'mariadb-10.0.23' into 10.0-galera commit 7e8e83029f04a568bb0a85f7ffd573c178af4b81 Author: Sergei Golubchik Date: Fri Dec 18 13:18:35 2015 +0100 document %M format commit 8d34a29663b985803677f1a1e9d9d1dd672eb103 Author: Sergei Golubchik Date: Fri Dec 18 08:37:56 2015 +0100 aria_read_log: silence expected safemalloc warnings commit 97d2c9bf39f661c4100562b08943ab7aae248099 Author: Sergei Golubchik Date: Thu Dec 17 22:44:11 2015 +0100 MDEV-9214 Server miscalculates the number of XA-capable engines Relax the number-of-XA-engines check on recovery. Allow *more* engines to be present than absolutely necessary, extra engines cannot affect ACID guarantees of the recovery process. As a bonus, 10.0->crash->10.1 upgrade won't complain about wsrep being a new XA storge engine. commit 392d55790132aa7c4cf12208c49d922926007d81 Author: Sergei Golubchik Date: Wed Dec 16 19:33:53 2015 +0100 MDEV-9183 MariaDB 10.1 crash on `mysqld --verbose --help` plugin_init() works like this: 1. init MyISAM 2. load plugins from mysql.plugin, if it's a MyISAM table 3. init all not initialized plugins 4. all done, if step 2 loaded mysql.plugin, otherwise: 5. load plugins from mysql.plugin 6. init all not initialized plugins now, with --help --verbose, step 3 will not actually initialize them, and if mysql.plugin is unreadable, step 6 will try to initialize existing plugins again. Fix: when skipping initialization because of --help, change plugin status from PLUGIN_IS_UNINITIALIZED. commit 03245ec02e2f16df488098427aaeb635de9ab4c0 Author: Sergei Golubchik Date: Fri Dec 18 08:37:24 2015 +0100 bump the version commit 5b94ea71c3812a24549485bc8e9f74b52a92b728 Author: Sergei Golubchik Date: Fri Dec 18 20:29:17 2015 +0100 MDEV-9044 Binlog corruption in Galera unit test for the IO_CACHE bug commit 58b54b7d1a4ce4e3a9537c058bb5ba300c88c0de Author: Nirbhay Choubey Date: Mon Dec 7 14:01:52 2015 -0500 MDEV-9044 : Binlog corruption in Galera While refreshing the IO_CACHE, do not update its parameters (read_pos, read_end & pos_in_file) if there is nothing left to read. commit 428e09a789a17211de9b4f0a2c4c1226d5dcf993 Author: Jan Lindström Date: Fri Dec 18 11:22:58 2015 +0200 Fix buildbot failure seen on p8-rhel71. Currently we support file block sizes 512K-4K. commit 206039b8baf8d58478afc774578276d733eca58a Merge: 69147040a66 e4e2d9dd3c4 Author: Jan Lindström Date: Fri Dec 18 10:11:02 2015 +0200 Merge pull request #135 from grooverdan/crc32_conditional Do not build optimised power crc32 on bigendian commit e4e2d9dd3c48e983e05b73501b00638ef4404308 Author: Daniel Black Date: Fri Dec 18 16:48:38 2015 +1100 Do not build optimised power crc32 on bigendian commit 69147040a66b90e8c861ce11a13f208d2a0680a2 Author: Jan Lindström Date: Thu Dec 17 19:45:42 2015 +0200 MDEV-9236: Dramatically overallocation of InnoDB buffer pool leads to crash Part I: Add diagnostics to page allocation if state is not correct but do not assert if it is incorrect. commit 670bc0b352187e1b62752b317971c037d783e8db Author: Jan Lindström Date: Thu Dec 17 09:24:54 2015 +0200 Improve validation. If page type is not valid, try to print more information from the page (note that page could be corrupt). commit 3f515a09ff13d5ee242de121b0162dd4b39db219 Author: Nirbhay Choubey Date: Wed Dec 16 20:07:12 2015 -0500 MDEV-9290 : InnoDB: Assertion failure in file trx0sys.cc line 353 As a fix for MDEV-8208, for initial wsrep threads, the invocation of init_for_queries() was moved after plugins were initialized. Due to which, OPTION_BEGIN bit of wsrep applier THD (originally set in wsrep_replication_process) got reset due to implicit commit within init_for_queries(). As a result, events from a multi-statement transaction from another node were committed separately by the applier thread, which leads to an assertion as they all carry same seqno. Fixed by making sure that variable.option_bits are restored post init_for_queries(). Also restored server_status. Added a test case. commit 953d5680a3c050273a8f29253f7386984679f92b Merge: 1ac6640210b 60f09cd2b79 Author: Jan Lindström Date: Wed Dec 16 09:34:24 2015 +0200 Merge pull request #133 from grooverdan/power-crc32 MDEV-9288: Use POWER8 accelerated crc32 commit 60f09cd2b7913ae2f0807de03233d18a09876454 Author: Daniel Black Date: Wed Dec 16 11:12:05 2015 +1100 MDEV-9288: portablity for compling on non-power platforms Also removed surperflous stdio include. commit 1ac6640210bb337ecdfa9f8b818cc3c6156dbdcc Author: Jan Lindström Date: Tue Dec 15 20:37:33 2015 +0200 MDEV-9129: Server is restarting in the loop after crash Analysis: We have reserved ROW_MERGE_RESERVE_SIZE ( = 4) for encryption key_version. When calculating is there more space on sort buffer, this value needs to be substracted from current available space. commit 477c84d51e9b386baadc053e017c019aaac68fc8 Author: Jan Lindström Date: Tue Dec 15 11:33:41 2015 +0200 Add new sysvar. commit 5b5c1106669af916b872f709755dc9fb870fe262 Merge: efeb9057367 6ddd775314c Author: Sergey Date: Tue Dec 15 13:08:30 2015 +0400 Merge pull request #132 from iangilfillan/10.1 10.1 man pages commit efeb905736724f7792b4b533ca5f04425098b5d5 Author: Jan Lindström Date: Tue Dec 15 09:46:53 2015 +0200 Rename test files. commit 82bec8bfdf87b75e0a055a4739a69f5090ed699d Author: Alexander Barkov Date: Tue Dec 15 11:04:51 2015 +0400 MDEV-9265 SuSE patches: Suspicious implicit sign extension commit 16f0d996c338f2b999b745d3b070393643f267cd Merge: 44b107da90a 804a59e408b Author: Jan Lindström Date: Tue Dec 15 08:53:57 2015 +0200 Merge pull request #125 from grooverdan/MDEV-8923_innodb_buffer_pool_dump_pct MDEV-8923: port innodb_buffer_pool_dump_pct from MySQL WL#6504 InnoDB buffer pool dump/load enchantments This patch consists of two parts: 1. Dump only the hottest N% of the buffer pool(s) 2. Prevent hogging the server duing BP load From MySQL - commit b409342c43ce2edb68807100a77001367c7e6b8e Add testcases for innodb_buffer_pool_dump_pct. Part of the code authored by Daniel Black. commit 2538c7cf89aca60c56d4e6f9fad84723c2a3b015 Author: Daniel Axtens Date: Fri Nov 27 15:18:48 2015 +1100 Use POWER8 accelerated crc32 - Make accelerated checksum available to InnoDB and XtraDB. - Fall back to slice-by-eight if not available. The mode used is printed on startup. - Will only build on POWER systems at the moment until CMakeLists are modified to only add the crc32_power8/ files when building on POWER. running MySQL-5.7 unittest/gunit/innodb/ut0crc32-t Before: 1..2 Using software crc32 implementation, CPU is little-endian ok 1 Using software crc32 implementation, CPU is little-endian normal CRC32: real 0.148006 sec normal CRC32: user 0.148000 sec normal CRC32: sys 0.000000 sec big endian CRC32: real 0.144293 sec big endian CRC32: user 0.144000 sec big endian CRC32: sys 0.000000 sec ok 2 After: 1..2 Using POWER8 crc32 implementation, CPU is little-endian ok 1 Using POWER8 crc32 implementation, CPU is little-endian normal CRC32: real 0.008097 sec normal CRC32: user 0.008000 sec normal CRC32: sys 0.000000 sec big endian CRC32: real 0.147043 sec big endian CRC32: user 0.144000 sec big endian CRC32: sys 0.000000 sec ok 2 Author CRC32 ASM code: Anton Blanchard ref: https://github.com/antonblanchard/crc32-vpmsum Signed-off-by: Daniel Black commit e57876eacf9c74fa3452c793672f220ee8c8135d Author: Olivier Bertrand Date: Mon Dec 14 23:49:17 2015 +0100 - Fix MDEV-9279. Replacing exit(1) in yy_fatal_error by a longjmp. modified: storage/connect/fmdlex.c modified: storage/connect/plgdbutl.cpp commit 6ddd775314c21e70555953ebcf2db0e2fdfcdadf Author: iangilfillan Date: Mon Dec 14 23:16:27 2015 +0200 10.1 man pages commit 18173ddfc4081407832d9a6703d1b8356b7defe9 Author: Nirbhay Choubey Date: Mon Dec 14 11:33:52 2015 -0500 MDEV-9162 : MariaDB Galera Cluster memory leak on async slave node As galera node (slave) received query log events from an async replication master, it partially wrote the updates made to replication state table (mysql.gtid_slave_pos) to galera transaction writeset post TOI. As a result, the transaction handle, thus created within galera, was never freed/purged as the corresponding trx did not commit. Thus, it kept piling up for every query log event and was only reclaimed upon server shutdown when the transaction map object got destructed. Fixed by making sure that updates in replication slave state table are not written to galera transaction writeset and thus, not replicated to other nodes. commit 4437f51682b22caaf2cf0b00de1bf6fa3edf6557 Author: Jan Lindström Date: Mon Dec 14 10:10:09 2015 +0200 MDEV-8869: Potential lock_sys->mutex deadlock In wsrep brute force (BF) we have already took lock_sys and trx mutex either on wsrep_abort_transaction() or before wsrep_kill_victim(). commit 2ce0043bf32d547d3438afd09a6917aaad5370ea Author: Olivier Bertrand Date: Sun Dec 13 18:43:37 2015 +0100 - Copy error message from G to g when using temporary storage for parsing. modified: storage/connect/tabjson.cpp commit 673cc065988c45fb42fa0b1a5a25ef90451f4e48 Merge: 32393e2253d 32879b95803 Author: Olivier Bertrand Date: Fri Dec 11 19:19:21 2015 +0100 Merge branch 'ob-10.1' into 10.1 commit 32879b95803f1606812009b6f865f7600042a1d8 Author: Olivier Bertrand Date: Fri Dec 11 18:43:54 2015 +0100 Update version number commit ca07ee85ea28d4b820498535508c6b23f089c22c Merge: 278ff1661a9 d67aacb4fbb Author: Nirbhay Choubey Date: Thu Dec 10 13:00:08 2015 -0500 Merge tag 'mariadb-5.5.47' into 5.5-galera commit 44b107da90a106c128dca278d04c68d804e51497 Author: Monty Date: Thu Dec 10 12:39:54 2015 +0200 Fixed a bug in galera + some failing galera tests - Added missning setting of table->rpl_write_set in record_gtid(), required by galera - Removed output of WSREP_PATCH_VERSION from galera_defaults, as this can change over time - Limit galera_many_tables_pk and galera_many_tables_nopk to 900, as on many systems the default open table limit is 1024 commit 33f0cf71196d3d2869ccfcbf1c41a0a6709fe8df Author: Nirbhay Choubey Date: Wed Dec 9 12:24:53 2015 -0500 MDEV-9227 : Both CentOS service names mysql and mariadb exist? As 10.1 has systemd support, there is no longer need to set _SYSTEMCTL_SKIP_REDIRECT/SYSTEMD_NO_WRAP. commit 218da97d5d8e42de68d38aee25d5367569a35c4c Author: Sergey Vojtovich Date: Fri Nov 27 13:58:30 2015 +0400 MDEV-9172 - Analyze patches for IBM System z Extended my_timer_cycles() to support s390. Some compiler tunings for RHEL/SLES RPM packages on s390. commit 32393e2253dfa884168b3267f4e03ca5a9b3e647 Merge: ad916ef33c1 a18a3fbdd11 Author: Olivier Bertrand Date: Wed Dec 9 00:02:04 2015 +0100 Merge branch 'ob-10.1' into 10.1 commit a18a3fbdd113c2cdd7f66669fb16a8069c28675c Author: Olivier Bertrand Date: Wed Dec 9 00:00:08 2015 +0100 - Serialize: Protect again eventual longjmp's. Always return NULL on error. Adding also the file length. modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp - JSONCOL::WriteColumn Add types SHORT and BIGINT as accepted modified: storage/connect/tabjson.cpp - TDBJSN: Make this type use a separate storage for Json parsing and retrieve this memory between each rows. This is necessary to be able to handle big tables. See MDEV-9228. modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h commit 1ad5a8dfb7513a35d1dc007fbbbbc714ee3a865e Author: Olivier Bertrand Date: Sat Dec 5 20:51:40 2015 +0100 Fix memory error when a plain string argument is parsed. Parsing memory, not added in CalcLen, is added in CheckMemory. Adding also the file length. modified: storage/connect/jsonudf.cpp commit 0ec89291f139a881471020a216b52333e965156e Author: Olivier Bertrand Date: Fri Dec 4 01:02:27 2015 +0100 Remove warning on Linux modified: storage/connect/filamzip.cpp Avoid calling the wrong AddValue (Windows compiler error ???) modified: storage/connect/json.h Fix looping bug in JARRAY::AddValue for arrays having one value. Fix potential crash in JVALUE::SetValue modified: storage/connect/json.cpp Many changes to fix bugs, enhance memory handling and modify Jpath. In JSNX some functions have been re-written or added to handle new Jpath. BMX was re-defined to avoid a different size between Windows an Linux. Jbin memory was fixed to use the proper memory when adding values. Default pretty value is now 0 instead of 2. Filename is stored in BSON when IsJson == 2. BSON size is added to memlen in CalcLen when applicable. The order or parameter was switch in Json_Object_Grp. File name argument must be a constant (temporary?) Json_Set_Item now returns file name when applicable. modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h Include "mycat.h" modified: storage/connect/mycat.cc Udf_json test revisited and fixed for Linux modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/mysql-test/connect/t/json_udf.test modified: storage/connect/mysql-test/connect/t/json_udf2.inc commit f3e5329846a99339d8b69e27b2470956bcf1ed29 Author: Christian Loos Date: Thu Dec 3 13:31:33 2015 +0100 switch from myisam_recover to myisam_recover_options myisam_recover is only an alias for myisam_recover_options. Use the option name instead of the alias is more correct. This also avoids an note about the use of an alias instead of the option name on every server start. commit 089a586b43bba6fa74538bca8f0a361c0a984e33 Author: Vladislav Vaintroub Date: Wed Dec 2 18:33:54 2015 +0100 Windows : Fix crash with "uninitialized variable keyname used" by C runtime debug check. commit 804a59e408be8806846b8d200a0387cb84e2d9a2 Author: Daniel Black Date: Sun Nov 29 18:10:58 2015 +1100 MDEV-8923: innodb_buffer_pool_dump_pct add test cases Add testcases for innodb_buffer_pool_dump_pct commit a816df70098ce319b0b174752b77351ba927f3a2 Author: Vasil Dimov Date: Sun Nov 29 18:08:42 2015 +1100 MDEV-8923 Port innodb_buffer_pool_dump_pct WL#6504 InnoDB buffer pool dump/load enchantments This patch consists of two parts: 1. Dump only the hottest N% of the buffer pool(s) 2. Prevent hogging the server duing BP load From MySQL - commit b409342c43ce2edb68807100a77001367c7e6b8e commit 3c0e9d31b3e6494931deb09f5c93b05a96df8471 Author: Sergei Petrunia Date: Wed Nov 25 15:50:19 2015 +0300 Fix a typo (this is not a user-visible bug as currently there are no engines that don't support HA_READ_PREV) commit b88c67d5f23c6beca5604b31919ab45906dd9b39 Author: Nirbhay Choubey Date: Tue Nov 24 14:24:23 2015 -0500 Update galera suite global_suppressions. commit 310c718cff0fbc5182eab7e77ed26fe567166fca Author: Alexander Barkov Date: Tue Nov 24 22:47:42 2015 +0400 MDEV-9178 Wrong result for CAST(CONVERT('1IJ3' USING ucs2) AS SIGNED) Also, fixing compilation warnings in ctype-mb.ic (Windows). commit 2f8c84fd16ced8f0615b43e83890e60dd2b53479 Author: Vladislav Vaintroub Date: Tue Nov 24 14:16:48 2015 +0100 MDEV-7588 Add thd_wait_begin/thd_wait_end to wait_for_binlog_endpos commit 73fc19bbcda1fe14a77b518a70b35fd783775c1c Author: Vladislav Vaintroub Date: Tue Nov 24 14:11:16 2015 +0100 Fix warning about unused variable if FD_CLOEXEC is not defined commit 22b594267c223ea281704e43cbbbacd5938d11a1 Author: Nirbhay Choubey Date: Mon Nov 23 16:23:10 2015 -0500 MDEV-9033: Incorrect statements binlogged on slave with do_domain_ids=(...) Post-fix: The test case pushed with the fix had each node acting as slave to the other two nodes with different set of filters on server_id's. The slave's gtid_slave_pos is updated after it processes the events received from master nodes irrespective of whether the events were filtered or not. Thus, sync_with_master_gtid.inc could unblock even on filtered events. As a result, sync_with_master_gtid.inc would fail to block until the desired changes have been replicated. Fixed by simplifying the topology. Also, modified CHANGE MASTER commands to ignore based on gtid_domain_id instead of server_id. commit edf6354bd6389ce1ca79591fe79deef4df6eca95 Author: Sergey Vojtovich Date: Wed Nov 18 15:51:20 2015 +0400 MDEV-9128 - Compiling on IBM System Z fails Provided IBM System Z have outdated compiler version, which supports gcc sync builtins but not gcc atomic builtins. It also has weak memory model. InnoDB attempted to verify if __sync_lock_test_and_set() is available by checking IB_STRONG_MEMORY_MODEL. This macro has nothing to do with availability of __sync_lock_test_and_set(), the right one is HAVE_ATOMIC_BUILTINS. commit f00d7657f8abf9d080c9c54e4d6057ed075b9eb9 Author: Sergey Vojtovich Date: Tue Nov 17 13:13:47 2015 +0400 MDEV-7806 - thread_pool_size is not auto-sized thread_pool_size is auto-sized before my_getopt(). But my_getopt starts from resetting all options to their default values. So the auto-sized value is lost. Fixed by moving thread_pool_size auto-sizing after my_getopt(). commit 8a860fda0c1b0c9fda2fcddc0d3392a20d76a9d8 Author: Olivier Bertrand Date: Sun Nov 22 16:15:57 2015 +0100 Remove commented lines. modified: storage/connect/value.cpp Avoid warning on redefined XSTR modified: storage/connect/tabxml.cpp commit 1d239d8c94106561a017c7534674003042180015 Author: Olivier Bertrand Date: Sun Nov 22 14:49:51 2015 +0100 Make changes required by version 10.1.9 (see Sergei's mmail): Use PlgDBSuballoc in JbinAlloc to avoid unsupported longjmp's. modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/tabjson.cpp modified: storage/connect/value.cpp Add new UDF functions jsoncontains, jsoncontains_path, json_set_item, json_insert_item, json_update_item, jbin_set_item, jbin_insert_item, jbin_update_item modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h commit 370a2cbe96e026fdb8966d8e58e7c93f75597cb8 Author: Nirbhay Choubey Date: Fri Nov 20 19:49:16 2015 -0500 Fix syntax error in wsrep_sst_common.sh. commit 4d1a4bc3e5de0c5911abcc9d70730595b2d9e05d Author: Nirbhay Choubey Date: Fri Nov 20 12:35:28 2015 -0500 Increase default MTR_PORT_GROUP_SIZE to 20. Some Galera tests can require more than 10 ports. commit 75afa93eb1c568c39f0e7296459aef745288f2bc Author: Nirbhay Choubey Date: Fri Nov 20 12:32:31 2015 -0500 Fix galera.galera_as_slave_nonprim test. commit 0d8eb20cb0a9972121e8e5e7b6bbd1fcc5ff8177 Author: Nirbhay Choubey Date: Fri Nov 20 12:31:22 2015 -0500 Remove duplicate code. commit 2fc3dc393d396647a220b286780f31d244ac2c53 Merge: e52c753ab9c 1e156e1436f Author: Sergei Golubchik Date: Fri Nov 20 09:31:13 2015 +0100 Merge branch '10.1' into bb-10.1-serg commit e52c753ab9c3315ca4b5a645b66da807ec6d7821 Author: Sergei Golubchik Date: Fri Nov 20 09:15:30 2015 +0100 cleanup commit df25018c2ab16927ce778aebf506467f3797f729 Author: Nirbhay Choubey Date: Thu Nov 19 12:52:55 2015 -0500 MDEV-6264: CentOS missing lsof as dependency for MariaDB-server (10.1) wsrep.cmake should be included before cpack_rpm.cmake as it defines WITH_WSREP, required by cpack_rpm.cmake to conditionally include galera helper tools in server package's requires list. commit 87c306802b9f431dd5fd70f10bf946c52e843b42 Author: Sergei Golubchik Date: Thu Nov 19 21:20:14 2015 +0100 update test results commit 1e156e1436f931625b7a5573584a786388979de2 Author: Monty Date: Fri Nov 20 10:00:06 2015 +0200 Fixed compile warnings on Solaris commit 981b4747538c742932561d278919fc4b57bd37eb Author: Monty Date: Fri Nov 20 09:57:58 2015 +0200 Updated configure.pl to new plugin syntax --with-plugin-name=xxxx --with-plugins= now uses =AUTO instead of =1 commit fdba672b6fa9f27a2fdbfd03c82c5da725d4204c Author: Sergei Golubchik Date: Thu Nov 19 18:13:01 2015 +0100 Post-merge fixes for Connect engine 1. define connect_EXPORTS, this causes the engine to use MariaDB versions for timestamp<->struct tm conversion instead of TZ-dependent libc versions. 2. remove check_access() that was removed once, but re-appeared during a complex merge. 3. disable a totally broken test 4. update test results 5. skip odbc_firebird test when no firebird DSN is available commit e3d37bfebf818fba7d65fbd89f721dae4864bc0c Merge: 7f19330c595 ad916ef33c1 Author: Sergei Golubchik Date: Thu Nov 19 18:09:06 2015 +0100 Merge branch 'connect/10.1' into 10.1 commit 7f19330c595e3183d079fe2c18eecc74740e8f83 Merge: 4046ed12bcd f4421c893b5 Author: Sergei Golubchik Date: Thu Nov 19 17:48:36 2015 +0100 Merge branch 'github/10.0-galera' into 10.1 commit 4046ed12bcddfd831c510b022cb7af224be9457b Author: Sergei Golubchik Date: Thu Nov 19 17:04:19 2015 +0100 rbr and savepoint in a subtatement Apply MySQL fix for bug#76727: https://github.com/mysql/mysql-server/commit/69d4e72c Bug#20901025: SLAVE ASSERTION IN UNPACK_ROW WITH ROLLBACK TO SAVEPOINT IN ERROR HANDLER commit 33ab30dfe22002a7f03662837d60d7cc6503ce64 Author: Sergei Golubchik Date: Thu Nov 19 16:39:40 2015 +0100 fix tokudb compilation with bundled zlib commit d4017d498f5c2c52e2bd8ac989d8b3ef1f7b0d93 Author: Sergei Golubchik Date: Tue Nov 17 13:39:04 2015 +0100 fix for windows builders commit c99fba267842e5150a71835032efb716808dbfef Author: Sergei Golubchik Date: Mon Nov 16 22:13:28 2015 +0100 compilation warning commit beded7d9c9592ca8fdfc367f7c64f89c35995c44 Merge: af71da5d2f9 2553f143fde Author: Sergei Golubchik Date: Thu Nov 19 15:52:14 2015 +0100 Merge branch '10.0' into 10.1 commit af71da5d2f90c82b2357e808640003907c488bc2 Author: Sergei Golubchik Date: Thu Nov 19 14:01:16 2015 +0100 remove duplicated like commit f47124c9ef58d0f0e02d6c0ce616a7397420f99b Author: Nirbhay Choubey Date: Wed Nov 18 02:11:20 2015 -0500 Incorrect statements binlogged on slave with do_domain_ids=(...) In domain ID based filtering, a flag is used to filter-out the events that belong to a particular domain. This flag gets set when IO thread receives a GTID_EVENT for the domain on filter list and its reset at the last event in the GTID group. The resetting, however, was wrongly done before the decision to write/filter the event from relay log is made. As a result, the last event in the group will always pass through the filter. Fixed by deferring the reset logic. Also added a test case. commit 836275bb203a47104eb7f28aa409924b91abc801 Author: Alexey Botchkov Date: Tue Nov 17 00:42:18 2015 +0400 MDEV-4829 BEFORE INSERT triggers dont issue 1406 error. Turn the 'abort_on_warning' on for assigning value to fields. commit 905613f825f28f561072d6babd307a010de7cf86 Author: Monty Date: Tue Nov 17 18:19:59 2015 +0200 Fixed wrong tests found by buildbot commit 19d99faf1e480f47229eb7fcb64643f7ed91d583 Author: Oleksandr Byelkin Date: Mon Nov 16 15:41:09 2015 +0100 MDEV-8734 mysqlbinlog --start-position isn't bigint fix it only for local operations. commit c0216f1d02e63686f986fa8f352fdf6de61249a7 Author: Jan Lindström Date: Tue Nov 17 09:45:55 2015 +0200 MDEV-9099: Test encryption.innodb_encryption_discard_import fails on buildbot commit f4421c893b50f05078f14d33c47d21f52f59f8a7 Author: Nirbhay Choubey Date: Mon Nov 16 12:39:56 2015 -0500 Fix for some failing tests. commit c78fc8b1ea95dfab4dbf17678143d650ef645263 Author: Nirbhay Choubey Date: Mon Nov 16 12:35:06 2015 -0500 MTR: rsync process is left running if pid file is removed MTR drops the datadir in the event of a test failure. In case mysqld is running as a Galera node and a failure occurs while the SST is in progress, the rsync pid file gets removed as part of the cleanup and wsrep_sst_rsync, which relies on this file, fails to kill the rsync. Fixed by using the cached $RSYNC_REAL_PID to kill rsync daemon. commit 3228ad33f0ae8e2045449c3e67bcd1fbf5ed6543 Author: Sergei Golubchik Date: Fri Nov 13 19:21:45 2015 +0100 MDEV-8973 Build failure on missing alloca.h in *BSD family alloca() is in stdlib.h commit 0c5f36d5791d40f11d95e667c2ae000c21814218 Author: Sergei Golubchik Date: Fri Nov 13 18:41:11 2015 +0100 MDEV-8969 groonga is compiled even with -DPLUGIN_MROONGA=NO first add mroonga plugin (MYSQL_ADD_PLUGIN) then add dependent targets (add_subdirectory(groonga)) commit 12c32bd9892efef16d170e6cc8c9633e988e7025 Author: Sergei Golubchik Date: Fri Nov 13 18:41:58 2015 +0100 MDEV-8962 TokuDB tries to build on OS X, even when disabled in compile flag first add tokudb plugin (MYSQL_ADD_PLUGIN) then add dependent targets (ADD_SUBDIRECTORY(ft-index)) commit 296338147c75c273335e749b0c5427e196f0e683 Author: Sergei Golubchik Date: Fri Nov 13 17:53:16 2015 +0100 MDEV-8453 Alter table not returning engine errors remove ~15 years old print_lock_error() function, use handler::print_error() instead commit daf3551cce65e7f80123838f1c3b731da209ee25 Author: Sergei Golubchik Date: Wed Nov 11 15:48:08 2015 +0100 add missing DBUG_RETURN-s commit 2e0ac168272e074bc60e6760715d8186df92bd8a Author: Sergei Golubchik Date: Tue Nov 10 17:01:14 2015 +0100 remove obsolete workaround The workaround is not needed anymore - mariadb requires bison 2.x. And removing all __attribute__ in sql_yacc.yy breaks new DBUG_ENTER. commit da957310d04bd4714d01d00f9848666690af6479 Author: Sergei Golubchik Date: Tue Nov 10 16:57:44 2015 +0100 compiler warning (no return in non-void function) commit 29dd634a4c0b9c3579cf9d318ed64d748d848b1d Author: Sergei Golubchik Date: Tue Nov 10 16:57:15 2015 +0100 dbug: correct trace for DBUG_RETURN(func()); -- gcc only when func1 calls func2 from DBUG_RETURN, dbug shows the trace as | > func1 | < func1 | > func2 | < func2 because DBUG_LEAVE happens before func2(). Change that to invoke DBUG_LEAVE when the local variable goes out of scope. This uses gcc specific __attribute__((cleanup)). commit 8f60656fd58610a7ed0b65321d229b44ab618f9a Author: Sergei Golubchik Date: Fri Nov 6 16:43:40 2015 +0100 MDEV-9039 Can't upgrade MariaDB to to 10.1.8 version from 10.0.21 Don't mark the SEQUENCE engine as XA-capable. The engine never registers itself for any transaction, so it doesn't matter whether it is XA-capable or not. The only effect of being "XA-capable" is breaking the "number of XA-capable engines" check of TC_LOG_MMAP. commit a716433da306558c2588a58b7cd562f6e0c534ba Author: Sergei Golubchik Date: Tue Nov 3 20:59:36 2015 +0100 MDEV-7298 plugins.cracklib_password_check test fails remove the test that depended on the current cracklib dictionary commit 4165961d54c7047f9574982edeb55885884d27a9 Author: Sergei Golubchik Date: Fri Oct 16 01:07:06 2015 +0200 disable innodb on sol10-64 because buildbot config invokes BUILD/compile-solaris-amd64 with the --extra-args=--without-plugin-innodb argument, but BUILD/compile-solaris-amd64 doesn't take arguments and doesn't invoke configure.pl, so this extra-args is lost. commit dcb7996cb7f07a8d7cafc9b564c382359b412fe2 Author: Nirbhay Choubey Date: Sun Nov 15 17:24:47 2015 -0500 Fix/disable failing tests. commit 0dfa0eef596ee677b55976793d632dc9b36928c7 Author: Oleksandr Byelkin Date: Sun Nov 15 10:44:20 2015 +0100 MDEV-8957 [PATCH] Useless ssl_ctx_set_tmp_dh call in libmysql Accepted patch of Georg: do not setup Differ-Hellman parameters on client. commit d85490afab99e31a2221043a7c1d546a57901995 Merge: 1774230c242 e46c8bbf627 Author: Kristian Nielsen Date: Sat Nov 14 10:19:53 2015 +0100 Merge branch 'bb-10.1-knielsen' into 10.1 commit 1774230c242c1efc47594383c49ec13dff4df183 Author: Monty Date: Fri Nov 13 19:47:31 2015 +0200 Fixed regexp to fix buildbot failures commit e46c8bbf627c7d6dfd24794371c3e5f22cdea9bb Merge: 8f2e05f41cf d5d87c98c04 Author: Kristian Nielsen Date: Fri Nov 13 15:32:55 2015 +0100 Merge branch 'mdev7818-4' into bb-10.1-knielsen Conflicts: sql/sql_parse.cc commit 8f2e05f41cf3b92bdb4c409e542ef126d5fe8f95 Merge: 2828c2be554 ba02550166e Author: Kristian Nielsen Date: Fri Nov 13 14:24:40 2015 +0100 Merge branch 'mdev7818-4' into 10.1 Conflicts: mysql-test/suite/perfschema/r/stage_mdl_global.result sql/rpl_rli.cc sql/sql_parse.cc commit 1e63a81a3b833efbc0726cb357000e9457ade5f9 Author: Elena Stepanova Date: Fri Nov 13 15:07:45 2015 +0200 Follow-up for a change MDEV-9040: fixed the 32-bit rdiff commit 2828c2be554b62646fc990ac28b4aef20cd9b9d2 Author: Elena Stepanova Date: Fri Nov 13 03:23:22 2015 +0200 MDEV-9124 mysqldump does not dump data if table name is same as view earlier on While querying INFORMATION SCHEMA, check for a table's engine only used table name, but not schema name; so, if there were different rows with the same table name, a wrong one could be retrieved. The result of the check affected the decision whether the contents of the table should be dumped, and whether a DELAYED option can be used. Fixed by adding a clause for table_schema to the query. commit a430df3aba59c57b0756c25b1586d880d19286df Author: Vladislav Vaintroub Date: Tue Nov 10 17:47:39 2015 +0100 Fix compile error on Windows Using __attribute__ needs my_attribute.h include commit 3f24cf2dbdc3885f47a3ea84fc6383d3007cc996 Author: Monty Date: Tue Nov 10 13:47:28 2015 +0200 Don't delete non existing .TMD and .OLD files for Aria internal temporary tables (Simple speedup) commit 65151e0cd1d054f32616288a767a77755683295e Author: Monty Date: Tue Nov 10 13:42:35 2015 +0200 Change stage_copying_to_tmp_table to stage_creating_tmp_table like in MySQL. (We where using stage_copying_to_tmp_table twice) commit 2f63e2e2a0575d60572b8fdef55f90173c36b10b Author: Monty Date: Tue Nov 10 13:40:15 2015 +0200 MDEV-8426 mysqlbinlog: "Corrupted replication event was detected. Not printing the value" with binlog-row-image=minimal" Merged Rows_log_event::print_verbose_one_row() and log_event_print_value() with MySQL 5.7 Added flush after writing of Table_map_log_event() to fix wrong order of lines in output. This causes a lot of changes in some test results. commit 78771189e769cf5f1444c2c51a3813d45ac120e2 Author: Monty Date: Mon Nov 9 15:07:13 2015 +0200 Ignore MySQL 5.7 log events not relevant for MariaDB - XA - Transaction_context_event (used by MysQL group replication) - View change event (used by MysQL group replication) commit 78ffeaa988916ce6295fd1a0617c5fa707d5bcc9 Author: Monty Date: Fri Nov 6 14:42:43 2015 +0200 Fix that one can run rpl_binlog_errors with --debug commit 05ed9fec03f1ff03bf44f2de1484cbe142763ced Author: Monty Date: Fri Nov 6 13:18:40 2015 +0200 Use MEM_CHECK_DEFINED to check if blocks contain uninitialized data Fixed failure in tests when running optimized code - Some assert() was using code that had to be executed Fixed copying of some uninitialized data (fixed valgrind warning) commit e3868ee07273b1ea2c495d92891fd7d1ed1eea9e Author: Monty Date: Fri Nov 6 13:02:19 2015 +0200 Don't store vcol bitmaps in TABLE if table doesn't have virtual fields. (Makes TABLE a bit smaller) commit 93d1e5ce0b841bedbc071da85995f15611ed3d34 Author: Monty Date: Thu Nov 5 22:09:58 2015 +0200 table->write_set was changed if binary logging was used, which caused the changes in query execution plans. Fixed by introducing table->rpl_write_set which holds which columns should be stored in the binary log. Other things: - Removed some not needed references to read_set and write_set to make code really changing read_set and write_set easier to read (in opt_range.cc) - Added error handling of failed unpack_current_row() - Added missing call to mark_columns_needed_for_insert() for DELAYED INSERT - Removed not used functions in_read_set() and in_write_set() - In rpl_record.cc, removed not used variable error commit cb4737cb4e7df6c43de9d47483f17f8e2e7fa24b Author: Monty Date: Mon Nov 2 10:35:59 2015 +0200 Fixed compiler warning commit 7cd2095cde11af4ac0478c5ff9a221a832e23586 Author: Monty Date: Fri Oct 23 18:44:13 2015 +0300 Sage cleanup in heap storage engine Removed old not needed code withing #if Changed 0x%lx to %p commit 7ec655850397a0edfcea8c1fd82650824297e564 Author: Nirbhay Choubey Date: Fri Nov 6 14:38:03 2015 -0500 MDEV-9021: MYSQLD SEGFAULTS WHEN BUILT USING --WITH-MAX-INDEXES=128 The bitmap implementation defines two template Bitmap classes. One optimized for 64-bit (default) wide bitmaps while the other is used for all other widths. In order to optimize the computations, Bitmap<64> class has defined its own member functions for bitmap operations, the other one, however, relies on mysys' bitmap implementation (mysys/my_bitmap.c). Issue 1: In case of non 64-bit Bitmap class, intersect() wrongly reset the received bitmap while initialising a new local bitmap structure (bitmap_init() clears the bitmap buffer) thus, the received bitmap was getting cleared. Fixed by initializing the local bitmap structure by using a temporary buffer and later copying the received bitmap to the initialised bitmap structure. Issue 2: The non 64-bit Bitmap class had the Iterator missing which caused compilation failure. Also added a cmake variable to hold the MAX_INDEXES value when supplied from the command prompt. (eg. cmake .. -DMAX_INDEXES=128U). Checks have been put in place to trigger build failure if MAX_INDEXES value is greater than 128. Test modifications: * Introduced include/have_max_indexes_[64|128].inc to facilitate skipping of tests for which the output differs with different MAX_INDEXES. * Introduced include/max_indexes.inc which would get modified by cmake to reflect the MAX_INDEXES value used to build the server. This file simply sets an mtr variable '$max_indexes' to show the MAX_INDEXES value, which will then be consumed by the above introduced include file. * Some tests (portions), dependent on MAX_INDEXES value, have been moved to separate test files. commit ad916ef33c1e779da6940cce0f6e64b1b380bd6d Merge: e7fa7e08584 0a852591dba Author: Olivier Bertrand Date: Sun Nov 8 14:56:48 2015 +0100 Merge branch 'ob-10.1' into 10.1 commit 0a852591dbaee4c33ab87d92d70a56cab225a2ca Author: Olivier Bertrand Date: Sun Nov 8 14:54:56 2015 +0100 PATCH-P0-FIX-UPSTREAM: Fix possible buffer overflow (MDEV-8317) Maintainer: Michal Hrusecky (modified by O. Bertrand --> adding and using the XSTR macro) modified: storage/connect/tabxml.cpp commit d6b430c91b6ef6acd0b5adab6106915599c1abcc Author: Daniel Black Date: Sat Nov 7 13:40:44 2015 +1100 MDEV-8995: systemd - 16K open-files-limit by default commit 99283ba455411f7476c4ec89f72f5fbe1b1c1580 Author: Nirbhay Choubey Date: Fri Nov 6 20:02:45 2015 -0500 MDEV-8974: boostrap systemd service for galera is confusing Fix the conditions for systemd scripts with '@' in path. commit 125cf485b16f14b9da6acc8d55de8ab7b26ad967 Author: Elena Stepanova Date: Fri Nov 6 17:52:57 2015 +0200 Fixed engine test results in accordance with changes made in scope of commit 6b20342651bb5207b6c125d2d11b664a1bebcc41 commit 4e421687c20ca7ffc14c9c073d96ac97b7248848 Merge: b80cc31ab46 0b8144a4728 Author: Sergei Petrunia Date: Fri Nov 6 16:35:00 2015 +0300 Merge pull request #112 from openquery/MDEV-8981 MDEV-8981: Analyze stmt - cycles can overflow commit b80cc31ab462a8250f170f48e4bcf3cf4fb2eef8 Author: Sergey Vojtovich Date: Thu Nov 5 13:57:24 2015 +0400 MDEV-9082 - Debian: mysql_install_db is called on upgrade A comment in debian/mariadb-server-10.1.postinst says: "can safely run on upgrades with existing databases". While this is true there're a few reasons not to do that: - it increases installation time (it has to run rather heavy mysqld multiple times) - as well as it increases mysqld downtime - it may fail if database has some plugin specific configs (see MDEV-8437) - there should be no need to run this script on upgrade: they should be handled by mysql_upgrade to - RPM postin doesn't call it if database directory exists Also postinst is not supposed to create database directories: let mysql_install_db do that intead. commit 7f5e005d164bef02de3a524d19391d135af46408 Author: Sergey Vojtovich Date: Wed Nov 4 20:13:15 2015 +0400 MDEV-9080 - Debian: incorrect empty password check in postinst There was code that was supposed to "catch upgrades from previous versions where the root password wasn't set". But it is wrong in many regards: - it is supposed to be executed against running server, but at this point server should be down, which makes this code no-op - if the above is fixed, root password will be requested twice (initial root password request + this one) - it asks for a password only once, while "initial root password request" asks twice (password + password verification) - it may give false positive if unix socket based authentication is in effect Removed this code since it didn't work for quite a while (at least since mysql-5.1) and nobody cared about it. commit 60ad33984090af2262d17232ceab1c1c9231fd24 Author: Sergey Vojtovich Date: Tue Nov 3 14:02:49 2015 +0400 MDEV-8437 - plugin variables conflict with bootstrap There is no strong need to change password column: the only side effect is that 4.0 -> 10.1 upgrades may get root/debian-sys-maint passwords stored in old format. This should be perfectly acceptable, since all password at this point are stored in old format. commit 8e40f9b713f1af4901783f08e1d0488c2ad0fa0e Author: Sergey Vojtovich Date: Tue Nov 3 12:08:23 2015 +0400 MDEV-8437 - plugin variables conflict with bootstrap Removed redundant attempt to create mysql.plugin table: - original code was supposed to INSTALL some plugins: INSERT INTO plugin VALUES ('innodb', 'ha_innodb.so'), ('federated', 'ha_federated.so'), ('blackhole', 'ha_blackhole.so'), ('archive', 'ha_archive.so'); - original code was supposed to fail if mysql.plugin exists: The query sequence is supposed to be aborted if the CREATE TABLE fails due to an already existent table in which case the admin might already have chosen to remove one or more plugins. - mysql.plugin must've been created by preceeding mysql_install_db anyway commit 5079d69d48e2c1b763d23bdb294297e6d6da43a2 Author: Nirbhay Choubey Date: Thu Nov 5 21:52:19 2015 -0500 MDEV-8975: 10.1 Fails To Join Existing Galera Cluster During the process of guessing the IP address, if bind-address is INADDR_ANY, mysqld should proceed with address specified via wsrep_node_address or use one from network interfaces. Patch contributed by darkain (pull#115). commit 25f8738112b05f33cfa45eabfebf6edfc80e6d8a Author: Jan Lindström Date: Thu Nov 5 09:42:23 2015 +0200 MDEV-9040: 10.1.8 fails after upgrade from 10.0.21 Analysis: Lengths which are not UNIV_SQL_NULL, but bigger than the following number indicate that a field contains a reference to an externally stored part of the field in the tablespace. The length field then contains the sum of the following flag and the locally stored len. This was incorrectly set to define UNIV_EXTERN_STORAGE_FIELD (UNIV_SQL_NULL - UNIV_PAGE_SIZE_MAX) When it should be define UNIV_EXTERN_STORAGE_FIELD (UNIV_SQL_NULL - UNIV_PAGE_SIZE_DEF) Additionally, we need to disable support for > 16K page size for row compressed tables because a compressed page directory entry reserves 14 bits for the start offset and 2 bits for flags. This limits the uncompressed page size to 16k. To support larger pages page directory entry needs to be larger. commit e947a526970d31150cf3e9803a796706c6be3da2 Author: Nirbhay Choubey Date: Wed Nov 4 21:58:07 2015 -0500 Update global_suppressions. commit 2399f1aee77d9f9558f4d65979448d44a98f8879 Author: Nirbhay Choubey Date: Wed Nov 4 21:56:46 2015 -0500 Fix for build failure. commit f9e320c82daec5acc21884c2b09a139e19632c45 Author: Nirbhay Choubey Date: Wed Nov 4 15:00:34 2015 -0500 MDEV-9026: Revert patch for MDEV-6069 Post-fix: Reverting the patch for MDEV-6069 brought some ALTERs with ENGINE=MYISAM back into the mysql_system_tables_fix.sql script. As a result, running mysql_upgrade with global enforce_storage_engine=INNODB (or any other non-MyISAM engine, for that matter) would fail. Fixed by locally unsetting enforce_storage_engine in the upgrade script. commit 1216429cfdb0e2015cc98ab0145228a7837722d7 Author: Vladislav Vaintroub Date: Wed Nov 4 13:17:40 2015 +0100 MDEV-8738 Application Verifier stop during server shutdown The verifier exception is caused by using thread local storage key after key was deleted. my_free() used current_thd within malloc size callback, which does pthread_get_specific(THR_THD), but THR_THD is already deleted at this point. The fix moves pthread_key_delete() to a later point in shutdown. commit 95289e5b665d6a3e37f938d0db978d0d0166e493 Author: Nirbhay Choubey Date: Tue Nov 3 11:55:30 2015 -0500 Revert "MDEV-6069: Remove old logic for 3.23-to-higher upgrades from upgrade SQL scripts" This reverts commit 5e6f12366abb02143ef57b6ff99285d81e3b3a36. commit d68b0836723cff2f92d90fc244c6f640f2319859 Author: Nirbhay Choubey Date: Tue Nov 3 11:54:37 2015 -0500 Revert "MDEV-6069: Remove old logic for 3.23-to-higher upgrades from upgrade SQL scripts" This reverts commit f8381d9382b02a53fc3a9fd0f8457c5668e9491c. commit 6189951003fd4ce1c925516b3b77475a2eb14889 Author: Jan Lindström Date: Tue Nov 3 16:03:25 2015 +0200 MDEV-9063: encryption.innodb-log-encrypt produces warnings in error logs on builds with bundled SSL Test used aes_ctr that is not available everywhere when aes_cbc is fine also for this test. commit a574407444fc3ea93ca88afa93dc18154251bf74 Author: Nirbhay Choubey Date: Mon Nov 2 23:19:37 2015 -0500 MDEV-9007: Bootstrap does not work in CentOS start script Some modifications in galera_new_cluster : * Do not use absolute path for systemctl * Fix parameter substitution syntax commit d8ecc2a0115f7179a30d772f104bd4cb5b15be20 Author: Daniel Black Date: Sun Oct 25 11:22:12 2015 +1100 MDEV-9007: systemd - service mariadb bootstrap Now this error out and refers to galera_new_cluster. commit a2c3549404cbdc55aaaa8537739853d7369aa79a Author: Daniel Black Date: Thu Oct 15 15:38:45 2015 +0200 MDEV-427: systemd - use galera_new_cluster instead of bootstrap Use galera_new_cluster instead. systemctl start mariadb@bootstrap will generate error message, use_galera_new_cluster.conf is the name of the file that will generate this error. Output: Job for mariadb@bootstrap.service failed. See "systemctl status mariadb@bootstrap.service" and "journalctl -xe" for details. â— mariadb@bootstrap.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb@.service; disabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/mariadb@bootstrap.service.d └─use_galera_new_cluster.conf Active: failed (Result: exit-code) since Thu 2015-10-15 19:27:52 CEST; 5s ago Process: 24334 ExecStart=/usr/bin/false (code=exited, status=1/FAILURE) Process: 24330 ExecStart=/usr/bin/echo Please use galera_new_cluster to start the mariadb service with --wsrep-new-cluster (code=exited, status=0/SUCCESS) Main PID: 24334 (code=exited, status=1/FAILURE) Oct 15 19:27:52 spaceman systemd[1]: Starting MariaDB database server... Oct 15 19:27:52 spaceman systemd[1]: mariadb@bootstrap.service: main process exited, code=exited, status=1/FAILURE Oct 15 19:27:52 spaceman systemd[1]: Failed to start MariaDB database server. Oct 15 19:27:52 spaceman systemd[1]: Unit mariadb@bootstrap.service entered failed state. Oct 15 19:27:52 spaceman systemd[1]: mariadb@bootstrap.service failed. commit 7877438f3152bb2bdc17ed6cdea94838fdd47be0 Author: Elena Stepanova Date: Tue Nov 3 03:25:38 2015 +0200 Increased the version number commit 641644a8629b9b437a1886cf19451f31a0181860 Author: Alexey Botchkov Date: Sun Nov 1 20:37:23 2015 +0400 MDEV-8992 MariaDB crashes when accessing table with GIS features. we don't test for not-existing gis extra in FRM. commit 4d1511296288782df0e3d9373396724e250b24c1 Merge: 17b0b45b1de d775ecdd010 Author: Nirbhay Choubey Date: Sat Oct 31 18:07:02 2015 -0400 Merge tag 'mariadb-10.0.22' into 10.0-galera commit 3e043b30ac03f0c7473da5bf1a433d4db84da7bd Author: Nirbhay Choubey Date: Fri Oct 30 12:10:54 2015 -0400 MDEV-8991: bind-address appears twice in default my.cnf Add comment about bind-address mentioned under galera section. commit 81d35841bd05085d61f3562201b802ca53802941 Author: Jan Lindström Date: Fri Oct 30 13:12:30 2015 +0200 MDEV-9011: Redo log encryption does not work Redo log encryption used too short buffer when getting encryption keys. commit 3e98383787da6428fc9c451a8113fa21a5e8ad79 Author: Jan Lindström Date: Fri Oct 30 08:37:40 2015 +0200 Fix test failures seen on buildbot. commit 923827e2ccd8574b2741a55f3bef1a91ac48a074 Author: Oleksandr Byelkin Date: Sun May 17 15:10:45 2015 +0200 MDEV-7949: Item_field::used_tables() takes 0.29% in OLTP RO Part 2: removed hack workaround for bug we do not have. commit fb4358f4324cfb9cec5c1f7c52ffa90839a2fe69 Author: Oleksandr Byelkin Date: Wed May 13 16:17:22 2015 +0200 MDEV-7949: Item_field::used_tables() takes 0.29% in OLTP RO small sixes of used_tables() usage commit 937aa7ad774e0d73a2e97d46bfdaba006ff7fe1d Author: Sergei Golubchik Date: Thu Oct 29 09:58:11 2015 +0100 MDEV-9010 Encryption preset file contains different configuration preset then documentation * clarify the comment in the preset file * make boolean --aria-encrypt-tables option to work without an argument commit 239e0c571e4fa23ef67310029178269ad03912a5 Author: Sergei Golubchik Date: Thu Oct 29 10:11:07 2015 +0100 MDEV-8551 compilation fails with 10.1.6 Restore changes that were lost in a merge. Originally from commit 66fd45a Author: Sergei Golubchik Date: Mon Jun 8 21:06:56 2015 +0200 MDEV-7398 mysqld segfaults on FreeBSD 10.1 i386 when built with clang 3.4 commit 9164a243112ef2df46ed2d63234552dc658c112a Author: Jan Lindström Date: Thu Oct 29 10:35:37 2015 +0200 Test debug_key_management fails sporadically in buildbot. Problem is that we expect key_version to be increasing so before we reset debug_key_management plugin key_version disable encryption. commit 0fe5eb5cae7cf7da90c8f46997bb331ce2253ac6 Author: Jan Lindström Date: Thu Oct 29 08:21:28 2015 +0200 MDEV-9032: MariaDB 10.1.8 crashes at startup Add diagnostics when externally stored field is freed but rollback ctx is not what we expect. commit 1108c1ca5c1d71bb9ca39a463a4f0465b23350b6 Author: Jan Lindström Date: Wed Oct 28 14:30:30 2015 +0200 MDEV-8950: encryption.innodb_encryption_discard_import fails sporadically in buildbot At least some of the failures where due to fact that TMPDIR contained old file. commit f2ab9abbd621e3b261146d7bb769d6b844b5fb10 Author: Jan Lindström Date: Wed Oct 28 09:14:22 2015 +0200 MDEV-9000: storage/xtradb/fil/fil0pagecompress.cc fails to compile on i686-linux Incorrect parameter type was used. Fixed by casting data types to correct ones. commit e7fa7e085843788e1fb565842bcb9a84e6b9d156 Merge: de197212960 abe87bb0110 Author: Olivier Bertrand Date: Sun Oct 25 21:19:45 2015 +0100 Fix error and warnings raised by gcc on Linux: Define O_RDONLY in jsonudf.cpp Correct wrong deinit function names Make Locate functions use the variable more Avoid signed/unsigned warning in ha_connect.cc GetIntegerTableOption Initialize oom in tabodbc MakeInsert modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp modified: storage/connect/tabodbc.cpp commit abe87bb011069ca9354b183dc72b2566b13ee8be Author: Olivier Bertrand Date: Sun Oct 25 21:11:04 2015 +0100 Fix error and warnings raised by gcc on Linux: Define O_RDONLY in jsonudf.cpp Correct wrong deinit function names Make Locate functions use the variable more Avoid signed/unsigned warning in ha_connect.cc GetIntegerTableOption Initialize oom in tabodbc MakeInsert modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp modified: storage/connect/tabodbc.cpp commit de19721296076497967d0c3b38d07e8a3b08cd6e Author: Buggynours Date: Sun Oct 25 17:46:20 2015 +0100 Fix of error and warnings when compiling on linux modifié : storage/connect/ha_connect.cc modifié : storage/connect/jsonudf.cpp nouveau fichier : storage/connect/mysql-test/connect/r/odbc_firebird.result modifié : storage/connect/mysql-test/connect/t/json.test nouveau fichier : storage/connect/mysql-test/connect/t/odbc_firebird.test modifié : storage/connect/tabodbc.cpp supprimé : storage/connect/Makefile commit 0b8144a4728e357965b2e3027535148870f0d0fd Author: Daniel Black Date: Fri Oct 23 23:23:36 2015 +1100 MDEV-8981: Analyze stmt - cycles can overflow A 64bit counter can overflow within the time of a query so lets take it that the measurement is the small value rather than an order 1e12 millisecond query. tested with: int main() { ulonglong start = ULONGLONG_MAX - 30; ulonglong end = 600; ulonglong cycles = 10000; cycles += end - start; if (unlikely(end < start)) cycles += ULONGLONG_MAX; printf("cycles %llu\n", cycles); } commit 8a09280dc17c40c398c4c023108d70395b1ba0b6 Author: Michael Widenius Date: Thu Oct 22 17:01:46 2015 +0300 Removed not needed note when doing mysqld --version commit c3ebd7867de1302e5749dc098f5661bc96ff348a Author: Michael Widenius Date: Thu Oct 22 17:00:58 2015 +0300 Remove THD argment from Log_event->net_send() and Protocol::pack_info() as THD is already available in Protocol commit 0bf2b1c13a810342d80626e9716acd73c3f00397 Author: Michael Widenius Date: Mon Oct 12 12:53:03 2015 +0300 Ignore tokudb tool commit e498d326257b2491c9e4f3ba44e57e32085a389d Author: Alexander Barkov Date: Thu Oct 22 09:11:23 2015 +0400 Adding "const" qualifier to arguments of date2my_decimal() and ErrConvString::ErrConvString(String *). commit bdc03e0579cc5b7fbf07928eeace72a4715cdf52 Author: Alexander Barkov Date: Thu Oct 22 08:11:31 2015 +0400 MDEV-7195 AVG() loses precision in INT context The fix for MDEV-8918 previously fixed the problem reported in MDEV-7195. Adding a test case from MDEV-7195 only. commit 1816eca57c6f29d3ff8230c65232fc2e0df8574f Author: Olivier Bertrand Date: Wed Oct 21 19:26:35 2015 +0200 Fix MDEV-8882 modified: storage/connect/tabodbc.cpp commit 17b0b45b1de41a1b188c5de6c3e9d8e6ecc48a72 Author: Jan Lindström Date: Wed Oct 21 09:20:54 2015 +0300 Code cleanup. commit 2445b1b212a45d4b80271664fc135967208a62f4 Author: Olivier Bertrand Date: Tue Oct 20 18:49:33 2015 +0200 Typo commit f3e362464bb67c02236a2ecb7526fb0c046e8474 Author: Jan Lindström Date: Tue Oct 20 13:41:14 2015 +0300 MDEV-8869: Potential lock_sys->mutex deadlock Analysis: We are alreading holing lock_sys mutex when we call thd::awake. This could lead mutex deadlock if trx->current_lock_mutex_owner is not correctly set. Fix: Make sure that trx->current_lock_mutex_owner is correctly set. commit 76701c6d3426db99f80978718bd0f6628ce85e6a Merge: 3ec139a4afc 52a910395a1 Author: Jan Lindström Date: Mon Oct 19 14:17:36 2015 +0300 Merge pull request #105 from philip-galera/10.0-galera-mysql-wsrep-gh202 refs codership/mysql-wsrep#202 Fix bad cherry-pick (and the compiler warnings it generated) commit 52a910395a18088af5988883989274066bb212d8 Author: Philip Stoev Date: Mon Oct 19 04:14:51 2015 -0700 refs codership/mysql-wsrep#202 Fix bad cherry-pick (and the compiler warnings it generated) commit 3ec139a4afc7e9d367902deb546b941ca25a51d0 Merge: 4d33f9dca02 43b2a451fe6 Author: Jan Lindström Date: Mon Oct 19 12:05:25 2015 +0300 Merge pull request #104 from philip-galera/10.0-galera-mysql-wsrep-gh202 Refs codership/mysql-wsrep#202 Added schema info into wsrep messages commit 43b2a451fe62e7a1172fa3d611039b3d11c1dd36 Author: Philip Stoev Date: Mon Oct 19 01:56:04 2015 -0700 refs codership/mysql-wsrep#202 Added schema info into wsrep messages Added schema info to wsrep messages above debug level. commit 7cd9af694ff81bb79cf85b0342038d7e26c46999 Author: Olivier Bertrand Date: Sun Oct 18 15:55:32 2015 +0200 Fix MDEV-8926 modified: storage/connect/ha_connect.cc modified: storage/connect/mysql-test/connect/r/datest.result modified: storage/connect/mysql-test/connect/t/datest.test commit 100be0b6ee9cbb905ad8443c4712dbdf990ab798 Author: Olivier Bertrand Date: Sat Oct 17 17:23:11 2015 +0200 Update JSON UDFs to version 1.04.0004 modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/std_data/biblio.json modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/mysql-test/connect/t/json_udf.test modified: storage/connect/tabjson.cpp commit 7e29f2d64fb463559a7c9c178ffe899b9bcab113 Author: Alexander Barkov Date: Thu Oct 15 18:25:54 2015 +0400 MDEV-8948 ALTER ... INPLACE does work for BINARY, BLOB commit 199378028430dd8e84ec10b111851d255000c2f1 Author: Sergei Golubchik Date: Tue Oct 13 00:04:51 2015 +0200 fix build on sol10-64 commit 7454f1c54cd310455ecc49a5c9af82fad96be66f Author: Sergei Golubchik Date: Thu Oct 15 08:49:58 2015 +0200 fix events_1 test for October 2015 commit 278ff1661a9fcf690b6b7604eb889fd287e6246a Author: Nirbhay Choubey Date: Thu Oct 15 05:47:06 2015 -0400 Add warnings to galera test suppression list. commit 534e4247c39fa9f3c53b7a808bd0cf0691d3bfaa Author: Sergei Golubchik Date: Wed Oct 14 23:21:36 2015 +0200 fix lowercase* tests labrador commit 2a471e8e98478ba3618d2556b0059e3bf06767d9 Author: Sergei Golubchik Date: Wed Oct 14 15:29:57 2015 +0200 fix func_hybrid_type crash in --ps --embedded create_embedded_thd() must reset current_thd before returning, otherwise client [de-]allocations will be happening in that stray THD context commit b867ade5916941c25a714068a913c4b75aabe868 Author: Alexander Barkov Date: Wed Oct 14 18:33:16 2015 +0400 Removing Used_tables_and_const_cache from "class udf_handler". It was used only temporary, during udf_handler::fix_fields() time, and then copied to the owner Item_func_or_sum object. Changing the code to use the Used_tables_and_const_cache part of the owner Item_sum_or_func object directly. commit 3723c70a304566d867b6fb22f1b102d389d66321 Author: Daniel Black Date: Wed Oct 14 07:46:31 2015 +0200 MDEV-426: systemd PermissionsStartOnly=true by default mariadb-service-convert during migration can create a file containing ExecStartPre=/usr/sbin/sysctl -q -w vm.drop_caches=3 if the users my.cnf contains [mysqld_safe] flush_caches. This sysctl entry change requires root access. No existing ExecStartPre requires execution requires execution as another user. There is a comment in the mariadb{,@}.service.in that indicates mysqld_install which would require -u mysql to explicity change user to mysql from root since PermissionsStartOnly=true. Otherwise the following error would be generated: Oct 14 07:38:38 spaceman systemd[1]: Starting MariaDB database server... -- Subject: Unit mariadb.service has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit mariadb.service has begun starting up. Oct 14 07:38:38 spaceman sysctl[10089]: sysctl: permission denied on key 'vm.drop_caches' Oct 14 07:38:38 spaceman systemd[1]: mariadb.service: control process exited, code=exited status=255 Oct 14 07:38:38 spaceman systemd[1]: Failed to start MariaDB database server. commit 079cc48e063adc3c132404cbab178fbf66750160 Author: Daniel Black Date: Wed Oct 14 07:32:34 2015 +0200 MDEV-426: systemd mariadb-sevice-convert - abs paths Systemd config files need absolute paths. LimitCore was ment to be LimitCORE Oct 14 07:28:04 spaceman systemd[1]: [/etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf:7] Unknown lvalue 'LimitCore' in section 'Service' Oct 14 07:28:04 spaceman systemd[1]: [/etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf:9] Executable path is not absolute, ignoring: sync Oct 14 07:28:04 spaceman systemd[1]: [/etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf:10] Executable path is not absolute, ignoring: sysctl -q -w vm.drop_caches=3 commit 82fb035eccdd26adb0751b243075a3bd7efd9366 Author: Daniel Black Date: Wed Oct 14 07:05:42 2015 +0200 MDEV-426: mariadb-service-convert to use MYSQLD_OPTS During the review process OPTIONS was converted to MYSQLD_OPTS. In the script mariadb-service convert, the ExecStart of the system also uses this setting. commit ddb93b427e4336a931d6d472b74c29c49eb36b93 Author: Nirbhay Choubey Date: Wed Oct 14 05:14:06 2015 -0400 WSREP_TO_ISOLATION_BEGIN should be called with the table list. commit 8d2d947ac124b488abae5aff835a0d7c23e0302b Author: Nirbhay Choubey Date: Tue Oct 13 15:42:53 2015 -0400 Fix galera_var_dirty_reads test. commit fd68a7dac625be8ba64745474d85f689ddeb9ea0 Merge: 13615c5e18e 16c4b3c68b0 Author: Nirbhay Choubey Date: Tue Oct 13 14:42:36 2015 -0400 Merge tag 'mariadb-5.5.46' into 5.5-galera commit 950e6f5b4335fcd30658a6abda53b12077ac75d3 Author: Sergey Vojtovich Date: Sun Oct 11 10:32:44 2015 +0200 Fixed Fedora 22 package build failure. Since MariaDB packages have absolute paths, they are marked as not relocatable by setting CPACK_RPM_PACKAGE_RELOCATABLE. According to logics of recent CPackRPM it is not enough: one needs to set CPACK_PACKAGE_RELOCATABLE additionally. commit 6346d1de2fdaa8a8359082871eac49402cb0e472 Author: Sergey Vojtovich Date: Mon Sep 28 15:08:09 2015 +0400 MDEV-427/MDEV-5713 Add systemd script with notify functionality After review/QA fixes. commit 20c2ae39db3dd0ec4c337a9b0bd2bf4481b61e49 Author: Daniel Black Date: Thu Sep 17 22:16:19 2015 +1000 MDEV-427/MDEV-5713 Add systemd script with notify functionality commit 92271c78b6c78b1a0248ce5d1c96326b930de610 Author: Oleksandr Byelkin Date: Tue Sep 22 21:59:18 2015 +0200 MDEV-8087: Server crashed in Time_and_counter_tracker::incr_loops Problem: Procedure which uses stack of views first executed without most deep view. It fails but one view cached (as well as whole procedure). Then simultaniusely create the second view we lack and execute the procedure. In the beginning of procedure execution the view is not yet created so procedure used as it was cached (cache was not invalidated). But by the time we are trying to use most deep view it is already created. The problem with the view is that thd->select_number (first view was not parsed) so second view will get the same number. The fix is in keeping the thd->select_number correct even if we use cached views. In the proposed solution (to keep it simple) counter can be bigger then should but it should not create problem because numbers are still unique and situation is very rare. commit e19a6f3dca7509eb8e042796a9311dba937ad9d7 Merge: 0b4c3ad8181 dfb74dea300 Author: Sergei Golubchik Date: Mon Oct 12 10:03:04 2015 +0200 Merge branch 'bb-10.1-serg' into 10.1 commit 0b4c3ad8181b909a3af04847e229900b1e9c5232 Author: Alexander Barkov Date: Mon Oct 12 10:49:37 2015 +0400 Moving Used_tables_and_const_chache from Item_func to Item_func_or_sum and thus reusing Used_tables_and_const_cache for Item_sum instead of declaring the same members inside Item_sum. commit dfb74dea300f83880c11600dc726a9cae559f356 Merge: b785857d00a e7cb032e560 Author: Sergei Golubchik Date: Mon Oct 12 00:37:58 2015 +0200 Merge branch '10.0' into 10.1 commit b785857d00a0fd9c98cb52823357bfad8fb18289 Author: Sergei Golubchik Date: Sun Oct 11 11:53:02 2015 +0200 s/--silent/--silent-startup/ commit b4fad1f18da01fc70abb6f16180a93eda0217966 Author: Sergei Golubchik Date: Sun Oct 11 07:57:40 2015 +0200 fix feedback plugin tests commit c4e336e01ebff51f9e338eeb2815a3417cf8004b Author: Sergei Golubchik Date: Sat Oct 10 14:19:02 2015 +0200 fix the encryption.filekeys_nofile test and move the error reporting where it belongs commit affff1aefc81ea0a3cb778a6617504ccd1e905fc Author: Monty Date: Fri Oct 9 13:08:41 2015 +0300 Less logging of not critial things during startup/shutdown: - Added --start option to mysqld which don't prints notes to log on startup This helps to find errors in configure options easier - Dont write [Note] entries to log after we have abort the server This makes it easier to find what went wrong - Don't by default write out Changed limits for max_open_files as this didn't really change from anything the user gave us - Dont write warnings about not using --explicit_defaults_for_timestamp (we don't have plans do depricate the old behaviour) commit 602c803bd9c80e88d4e2a611422ad2da0033a111 Author: Monty Date: Fri Oct 9 13:02:55 2015 +0300 Don't enable file_key_management_plugin by default (as this gives warnings in the log) Better warning from file_key_management plugin if filename is not given commit c696fc74cf72f240a999406fa229db5111198f62 Author: Monty Date: Fri Oct 9 13:01:07 2015 +0300 Fixed compiler warnings and errors commit b0935fc5dafbd4a6c9adeeec4647a9616abf4b7b Author: Alexey Botchkov Date: Wed Oct 7 15:52:26 2015 +0500 MDEV-8842 add group support to pam_user_map module. Added to the pam_user_map module. commit 3757bc5e895289a6d69e6382bccb11c021e7144c Author: Alexey Botchkov Date: Mon Oct 5 14:46:12 2015 +0500 MDEV-8431 Feedback plugin needs an option for http proxy. 'feedback_http_proxy' system variable added to specify the proxy server as host:port. Not a dynamic one. commit 16ad1fc54027c4607f9edd14b02f776b41393f16 Author: Alexander Barkov Date: Thu Oct 8 20:48:46 2015 +0400 MDEV-8921 Wrong result for CAST(AVG(double_column) AS SIGNED) commit 7091b7852d27e6c8a1875b2acc0d1adbfb29984f Author: Alexander Barkov Date: Thu Oct 8 19:19:21 2015 +0400 MDEV-8918 Wrong result for CAST(AVG(bigint_column) AS SIGNED) - Moving Item_xxx_field declarations after Item_sum_xxx declarations, so Item_xxx_field constructors can be defined directly in item_sum.h rather than item_sum.cc. This removes some duplicate code, e.g. initialization of the following members at constructor time: name, decimals, max_length, unsigned_flag, field, maybe_null. - Adding Item_sum_field as a common parent for Item_avg_field and Item_variance_field - Deriving Item_sum_field directly from Item rather that Item_result_field, as Item_sum_field descendants do not need anything from Item_result_field. - Removing hybrid infrastructure from Item_avg_field, adding Item_avg_field_decimal and Item_avg_field_double instead, as desired result type is already known at constructor time (not only at fix_fields time). This simplifies the code. - Changing Item_avg_field_decimal::val_int() to call val_int_from_decimal() instead of doing { return (longlong) rint(val_real()); } This is the fix itself. commit 174a0b9eb70d33965677d375472db0694f6047fd Author: Alexander Barkov Date: Thu Oct 8 12:09:05 2015 +0400 Clean-up: Item_sum_variance and Item_variance_field had hybrid type infrastructure, though in fact they always return REAL result. Removing hybrid type artifacts. commit de1a48e7d914c58cf01b5bda10fea21ea3ec4e28 Author: Alexander Barkov Date: Thu Oct 8 08:59:58 2015 +0400 A clean-up for a few recent result set metadata related bug fixes: - MDEV-8875 Wrong metadata for MAX(CAST(time_column AS DATETIME)) - MDEV-8873 Wrong field type or metadata for LEAST(int_column,string_column) - MDEV-8912 Wrong metadata or type for @c:=string_or_blob_field Adding Item_hybrid_func as a common parent for Item_func_hybrid_field_type, Item_func_min_max, Item_func_user_var. This removes some duplicate code. commit 87777249017b691ac9a114ae134afa7bbf8d8591 Author: Alexander Barkov Date: Wed Oct 7 20:19:29 2015 +0400 MDEV-8912 Wrong metadata or type for @c:=string_or_blob_field commit 8afe96f011eb8037a92b4b3aab16118b0771ad50 Author: Alexander Barkov Date: Wed Oct 7 11:42:23 2015 +0400 MDEV-8910 Wrong metadata or field type for MAX(COALESCE(string_field)) commit bed4e847950eef50930b44632eea43416e7b37d1 Author: Oleksandr Byelkin Date: Tue Aug 18 13:28:17 2015 +0200 MDEV-8380: Subquery parse error backport mysql parser fixes 0034963fbf199696792491bcb79d5f0731c98804 5948561812bc691bd0c13cf518a3fe77d9daf920 commit d6371d3a8eccedb056708b9d8abae9cc4db3ed4e Author: Sergei Petrunia Date: Tue Oct 6 18:03:10 2015 +0300 Combined fix for MDEV-7267 and MDEV-8864 The problem was that GROUP BY code created Item_field objects that referred to fields in the temp. tables used for GROUP BY. Item_ref and set_items_ref_array() call caused pointers to temp. table fields to occur in many places. This patch introduces Item_temptable_field, which can handle item->print() calls made after the underlying table is freed. commit 21adad000a00a62357c0da63ff9ae98850475618 Author: Jan Lindström Date: Tue Oct 6 15:40:26 2015 +0300 MDEV-8901: InnoDB: Punch hole is incorrecty done also to log files causing assertion and database corruption Analysis: Problem is that punch hole does not know the actual page size of the page and does the page belong to an data file or to a log file. Fix: Pass down the file type and page size to os layer to be used when trim is called. Also fix unsafe null pointer access to actual write_size. commit 90f2c822469a4f88f882ba8974e790f0fb0b2702 Author: Alexey Botchkov Date: Mon Oct 5 16:09:21 2015 +0500 MDEV-7817 ALTER TABLE {ADD|DROP} INDEX IF [NOT] EXISTS does not get written into binlog if nothing to do. Just log the ALTER statement even if there's nothing to do. commit 3c47809bc27486984bc56712b3db019d0720f30a Author: Alexander Barkov Date: Tue Oct 6 00:48:46 2015 +0400 Clean-up: changing switch(result_type()) followed by a test for temporal types in case of STRING_RESULT to switch(cmp_type()). commit 56cd7d0cd02c5fd97a0db5f7e879dc05d44c6ea4 Author: Sergei Golubchik Date: Sat Sep 19 12:58:41 2015 +0200 compilation failure on windows commit 6b0b1941bfa80b367eaab1f324ff18bfe8d8cb73 Author: Sergei Golubchik Date: Wed Sep 16 12:48:24 2015 +0200 fix installation location for policy files commit 3407438ea62aae31f0e77a77a94ebcb1a6434f9b Author: Sergei Golubchik Date: Sun Oct 4 09:53:05 2015 +0200 fixes for buildbot commit e302602ac09abbac1d968f02fa01ef1df536b750 Author: Daniel Black Date: Thu May 28 22:42:32 2015 +1000 plugin: qc_info test - hide output so result isn't a binary file commit d4557934ec1d00d5c36f8e7b1b127a4dafee4e39 Author: Daniel Black Date: Mon May 18 22:03:01 2015 +1000 plugin - qc_info - add Query Cache flags commit 3abfe76e2d80934c62f04cebdf94a053d393287f Author: Sergei Golubchik Date: Sat Oct 3 08:22:17 2015 +0200 remove unused group_by_handler::init() method The assumption is that the engine should not need to evaluate HAVING on the table->record[0] - the engine either can evaluate HAVING internally before writing it to the table->record[0], or it should leave it to the server, that will evaluate HAVING(table->record[0]). Similarly the engine should not need to evaluate ORDER on the table->record[0]. Either it returns the data already sorted, or the server will sort the table. commit 21175bb31610cdfe7f25b981edc760e46aa08c43 Author: Sergei Golubchik Date: Fri Oct 2 18:40:38 2015 +0200 Don't use flags in the group_by_handler class instead pass the whole query down and let the engine return unsupported parts back commit 8dff1aa5dc3335587b64ebf52ef2f8d5af2a0488 Author: Sergei Golubchik Date: Fri Oct 2 13:06:30 2015 +0200 bug: move one_storage_engine checking loop down to the point where all tables are already known (and subqueries converted to joins, if needed) commit c93ac0a1c68ed73cc4a59a475a8d576122557001 Author: Sergei Golubchik Date: Fri Oct 2 14:38:06 2015 +0200 cleanups and simplifications commit 7ca8b4bbfa3fc1ac12bbfc20530426fa534b9142 Author: Sergei Golubchik Date: Fri Oct 2 10:19:40 2015 +0200 move internal API out from group_by_handler into a Pushdown_query object commit 9ca3d9ea9cc3518706dc8e0e0ac89a58c34dc260 Author: Sergei Golubchik Date: Fri Oct 2 10:19:34 2015 +0200 remove unused method commit e8daa41885b50094285f82f2a95e882b3dcab153 Author: Sergei Golubchik Date: Mon Oct 5 09:47:45 2015 +0200 typos in comments, minor stylistic edits commit cf50e13fbd1b4d27a3542fe2751216d274eb7493 Author: Monty Date: Fri Oct 2 10:18:27 2015 +0200 MDEV-6080: Allowing storage engine to shortcut group by queries This task is to allow storage engines that can execute GROUP BY or summary queries efficiently to intercept a full query or sub query from MariaDB and deliver the result either to the client or to a temporary table for further processing. - Added code in sql_select.cc to intercept GROUP BY queries. Creation of group_by_handler is done after all optimizations to allow storage engine to benefit of an optimized WHERE clause and suggested indexes to use. - Added group by handler to sequence engine and a group_by test suite as a way to test the new interface. - Intercept EXPLAIN with a message "Storage engine handles GROUP BY" libmysqld/CMakeLists.txt: Added new group_by_handler files sql/CMakeLists.txt: Added new group_by_handler files sql/group_by_handler.cc: Implementation of group_by_handler functions sql/group_by_handler.h: Definition of group_by_handler class sql/handler.h: Added handlerton function to create a group_by_handler, if the storage engine can intercept the query. sql/item_cmpfunc.cc: Allow one to evaluate item_equal any time. sql/sql_select.cc: Added code to intercept GROUP BY queries - If all tables are from the same storage engine and the query is using sum functions, call create_group_by() to check if the storage engine can intercept the query. - If yes: - create a temporary table to hold a GROUP_BY row or result - In do_select() intercept normal query execution by instead calling the group_by_handler to get the result - Intercept EXPLAIN sql/sql_select.h: Added handling of group_by_handler Added caching of the original join tab (needed for cleanup after group_by handler) storage/sequence/mysql-test/sequence/group_by.result: Test group_by_handler interface storage/sequence/mysql-test/sequence/group_by.test: Test group_by_handler interface storage/sequence/sequence.cc: Added simple group_by_engine for handling COUNT(*) and SUM(primary_key). This was done as a test of the group_by_handler interface commit d8df2b946442e6f4bd7dd73570a603ae3e2d21f0 Author: Monty Date: Fri Oct 2 10:18:40 2015 +0200 Bugs, found by valgrind commit ae2cdc17980301e95f218f69154818bc6a13975b Author: Monty Date: Sun Sep 27 21:28:48 2015 +0200 fix comments commit 8ed5fde3e1d2f49d140c166ef1e142215f90f572 Author: Monty Date: Sun Sep 27 21:28:07 2015 +0200 bug in JOIN_TAB::cleanup() that caused freed memory to be accessed commit 4193fa7ae2886b2a3f3effa43c7ebf791f63943d Author: Monty Date: Sun Sep 27 21:30:18 2015 +0200 Simple optimization commit 7e3127966646bca50ae6b8ba44c9aed0a261c482 Author: Monty Date: Sat May 16 18:00:32 2015 +0300 Speed up some innodb tests Fixed compiler warnings sql/sql_view.cc: Ensure that merged_for_insert is properly reset (Left of an old patch) commit b2b07b33cf55b39db87a00789936113cc290f678 Author: Monty Date: Mon May 11 23:11:05 2015 +0300 Don't write DROP TEMPORARY TABLE to binary log if we didn't write the CREATE TEMPORARY TABLE statement. - Enable old code from one of my older changesets that didn't make into 10.0 - Fix test cased that failed as they expected DROP TEMPORARY TABLE in the log. commit d2f6166ec5bc6c36f61f83b673b5b5dcd05edf12 Author: Sergei Petrunia Date: Mon Oct 5 16:47:34 2015 +0300 MDEV-8830: Weird output in the error log Remove debug printout that was accidentally left in place commit 23d4c95b5049f8a7d1015f8dc1f0de37f691ecf4 Author: Alexander Barkov Date: Mon Oct 5 16:16:13 2015 +0400 MDEV-8896 Dead code in stored_field_cmp_to_item() commit 9337173915fd777cb074311b48f4e2c37e691f8e Author: Jan Lindström Date: Mon Oct 5 09:27:33 2015 +0300 MDEV-8893: Test encryption.innodb_encryption_filekeys fails on buildbot commit 608ad38a0d124fac1f8ec09b9c6e2fa3229a6eac Author: Olivier Bertrand Date: Sun Oct 4 11:57:57 2015 +0200 Temporary changes for making compile to work commit ba0b6685510f4a271da8d386ff75bfd83d3156c2 Author: Alexander Barkov Date: Sun Oct 4 09:37:57 2015 +0400 A clean-up for MDEV-7950: - Turning get_mm_tree_for_const() from a static function into a protected method in Item. - Adding a new class Item_bool_func2_with_rev, for the functions and operators that have a reverse function and can use the range optimizer for to optimize "value OP field" as "field REV_OP value". Deriving Item_bool_rowready_func2 and Item_funt_spatial_rel from the new class. - Removing Item_bool_func2::have_rev_func(). commit 100d77e69d8af37909b3e29c8299e2c3792c8b1b Author: Alexander Barkov Date: Fri Oct 2 14:48:32 2015 +0400 Clean-up: removing the unused "Item_result cmp_type" parameter from the methods: - Item_bool_func::get_func_mm_tree() - Item_bool_func::get_mm_parts() - Item_bool_func::get_ne_mm_tree() commit 322bc6e8c900b28c7d06f91f9b91b4f719825fc7 Author: Alexander Barkov Date: Fri Oct 2 12:14:50 2015 +0400 Adding "virtual bool Field::can_optimize_range(...)" and moving the code from Item_bool_func::get_mm_leaf() into Field_xxx::can_optimize_range(). This reduces the total amount of virtual calls. Also, it's a prerequisite change for the pluggable data types. commit 5e7f100bf55e65f4a4f38dbe6d79a0db70b4acf8 Author: Jan Lindström Date: Thu Oct 1 13:50:11 2015 +0300 MDEV-8523: InnoDB: Assertion failure in file buf0buf.cc line 5963 (Failing assertion: key_version == 0 || key_version >= bpage->key_version) commit 6b36fb96f1c1074c570477324056b82bbd1e3e6c Author: Alexander Barkov Date: Fri Oct 2 08:54:25 2015 +0400 Clean-up: sharing duplicate code in Item_field::val_bool_result() and Item_ref::val_bool_result(). commit 38f3b99d469ab90f07287577d05e48928de720d4 Author: Nirbhay Choubey Date: Thu Oct 1 20:36:25 2015 -0400 MDEV-8831 : enforce_storage_engine doesn't block table creation on other nodes Check if the engine is supported/allowed before replicating the statement. commit accf9b56754d977929b172dc1733cd75ba64be7a Author: Alexander Barkov Date: Thu Oct 1 20:01:35 2015 +0400 MDEV-5694 GREATEST(date, time) returns a wrong data type commit a84fae27d9badef8cc89b1369a90cfef1dc3c715 Author: Sergey Vojtovich Date: Thu Oct 1 11:35:18 2015 +0400 MDEV-8836 - Server crashed in my_copy_8bit on querying I_S.PROCESSLIST Fixed race condition in code filling INFORMATION_SCHEMA.PROCESSLIST.INFO_BINARY. When loading query string/length of another connection one must have LOCK_thd_data locked. commit e1cbca185139eed0ba3cf47807967b25f5a76ea1 Author: Alexander Barkov Date: Thu Oct 1 14:21:12 2015 +0400 MDEV-657 LP:873142 - GREATEST() does not always return same signness of argument types. The patch for MDEV-8871 also fixed the problem reported in MDEV-657. Adding the test case from the bug report. commit b50c607056e1d4b25e274a8ab87a7e8e4c918c45 Author: Alexander Barkov Date: Thu Oct 1 14:07:42 2015 +0400 MDEV-4848 Wrong metadata or column type for LEAST(1.0,'10') MDEV-8873 Wrong field type or metadata for LEAST(int_column,string_column) commit 3266216f2c8f90c866b371fbd4a8bf6b0c628996 Author: Jan Lindström Date: Thu Oct 1 08:16:14 2015 +0300 MDEV-8727: Server/InnoDB hangs on shutdown after trying to read an encrypted table with a wrong key Analysis: When a page is read from encrypted table and page can't be decrypted because of bad key (or incorrect encryption algorithm or method) page was incorrectly left on buffer pool. Fix: Remove page from buffer pool and from pending IO. commit cb2c799bd064a6204b35d102efb5409decc2cb5b Author: Alexander Barkov Date: Wed Sep 30 16:04:24 2015 +0400 MDEV-8860 Wrong result for WHERE 2016 < SOME (SELECT CAST(time_column AS DATETIME) FROM t1) MDEV-8875 Wrong metadata for MAX(CAST(time_column AS DATETIME)) commit cc9cfecab78bde9376e4406bf24506e92fdaaeac Author: Alexander Barkov Date: Wed Sep 30 12:37:34 2015 +0400 MDEV-8865 Wrong field type or metadata for COALESCE(signed_int_column, unsigned_int_column) Item_func_hybrid_field_type did not return correct field_type(), cmp_type() and result_type() in some cases, because cached_result_type and cached_field_type were set in independent pieces of the code and did not properly match to each other. Fix: - Removing Item_func_hybrid_result_type - Deriving Item_func_hybrid_field_type directly from Item_func - Introducing a new class Type_handler which guarantees that field_type(), cmp_type() and result_type() are always properly synchronized and using the new class in Item_func_hybrid_field_type. commit 09b87d6293b4b41321ba98366d5d7ade9ad681d3 Author: Alexander Barkov Date: Wed Sep 30 10:05:16 2015 +0400 MDEV-8871 Wrong result for CREATE TABLE .. SELECT LEAST(unsigned_column,unsigned_column) commit c13f4091f57ebe89281f11affac49d191db77e4f Author: Jan Lindström Date: Tue Sep 29 15:15:28 2015 +0300 MDEV-8815: InnoDB should refuse to start if crash recovery fails instead of asserting Added error handling to crash recovery so that we stop instead of asserting. commit a4e5902039db10e5661c8475790aff84e67dff09 Author: Alexander Barkov Date: Mon Sep 28 19:12:05 2015 +0400 MDEV-8862 Wrong field type for MAX(COALESCE(datetime_column)) commit c5922c5701e68bf6d1d2efa974bb21b1af53fa47 Author: Jan Lindström Date: Mon Sep 28 13:59:44 2015 +0300 MDEV-8821: Failing assertion: !page || page_type != 0 in file log0recv. cc line 1404 Alloc creating crypt_data to empty page at crash recovery and redo. commit 3cc6e5b7f235cc8ca9c274f848702cdc0ea14ed9 Author: Alexander Barkov Date: Mon Sep 28 12:51:02 2015 +0400 MDEV-8852 Implicit or explicit CAST from MAX(string) to INT,DOUBLE,DECIMAL does not produce warnings commit 54db387410b2a4f2bd6a1eacd5979a974b4f5389 Author: Sergey Vojtovich Date: Tue Sep 22 16:39:05 2015 +0400 MDEV-8682 - CSV engine does not properly process "", in quotes Added per-table boolean IETF_QUOTES variable to CSV storage engine. It allows to enable IETF-compatible parsing of embedded quote and comma characters. Disabled by default. This patch is based on Percona revision: https://github.com/percona/percona-server/commit/b32fbf02766f8db00f9ff4e6dc05a1df97c10ff7 Note that original patch adds server variable, while this patch adds per-table variable. commit bca5894d519fc1aa1d2619257ee772060eeaf36a Author: Nirbhay Choubey Date: Sun Sep 27 19:20:43 2015 -0400 Adjust warning suppression over a recent change in galera library. commit 6927459e5b61a6ca88245872cc3c2c5daa30dddf Author: Nirbhay Choubey Date: Fri Sep 25 13:56:02 2015 -0400 MDEV-8208: Sporadic SEGFAULT on startup Addendum: * Before calling THD::init_for_queries(), flip the current_thd to wsrep thread so that memory gets allocated for the right THD. * Use wsrep_creating_startup_threads instead of plugins_are_initialized as the condition for the execution of THD::init_for_queries() within start_wsrep_THD(), as use of latter could still leave some room for race. commit 59037d962985ca46ccce379ed8b373b57a9e38f0 Author: Nirbhay Choubey Date: Wed Sep 16 23:20:57 2015 -0400 MDEV-8208: Sporadic SEGFAULT on startup Problem: When mysqld starts as a galera node, it creates 2 system threads (applier & rollbacker) using start_wsrep_THD(). These threads are created before plugin initialization (plugin_init()) for SST methods like rsync and xtrabackup. The threads' initialization itself can proceed in parallel to mysqld's main thread of execution. As a result, the thread initialization code (start_wsrep_THD()) can end up accessing some un/partially initialized structures (like maria_hton, in this particular case) resulting in segfault. Solution: Fixed by calling THD::init_for_queries() (which accesses maria_hton) only after the plugins have been initialized. commit 4d33f9dca027e1f66f9898146533e8c1d612f2d1 Merge: eac8e43541a 13615c5e18e Author: Nirbhay Choubey Date: Fri Sep 25 14:57:56 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit 13615c5e18eed62fa2dee80402dfebe3e74053c4 Author: Nirbhay Choubey Date: Fri Sep 25 13:56:02 2015 -0400 MDEV-8208: Sporadic SEGFAULT on startup Addendum: * Before calling THD::init_for_queries(), flip the current_thd to wsrep thread so that memory gets allocated for the right THD. * Use wsrep_creating_startup_threads instead of plugins_are_initialized as the condition for the execution of THD::init_for_queries() within start_wsrep_THD(), as use of latter could still leave some room for race. commit 30711c6650fc7e2f166f29d0bc59eeab64dadb3e Author: Alexander Barkov Date: Fri Sep 25 21:33:50 2015 +0400 MDEV-8806 Numeric CAST produce different warnings for strings literals vs functions commit 26e4403f649839e82dd26f7a6b31165063eb2871 Author: Jan Lindström Date: Thu Sep 24 14:02:18 2015 +0300 MDEV-8819: Failing assertion: block->page.space == page_get_space_id(page_align(ptr)) in file buf0buf.cc line 2551 Add error handling on page reading and do not try to access empty pages. commit 9554342d16a6567329cf6269129f9db4ea0be8c7 Merge: 5448df084b8 4070ce00dc9 Author: Sergei Golubchik Date: Fri Sep 25 10:24:14 2015 +0200 Merge branch '10.1' into pull-request-97 Merge downstream Debian packaging (MDEV-6284) commit 4070ce00dc95e320c68e9d9b623893b034fb913e Author: Alexander Barkov Date: Fri Sep 25 07:18:04 2015 +0400 MDEV-8635 Redundant warnings on WHERE decimal_column='ax' The fix for MDEV-8466 earlier fixed MDEV-8635 as well. Adding a test only. commit 125001881dac9425e9aee12bd64003ee0b220580 Author: Sergei Petrunia Date: Thu Sep 24 16:31:45 2015 +0300 Fix typos in JSON MRR output commit 7016621596d4700a8cf2c228f958edf8d8932d38 Author: Sergei Petrunia Date: Thu Sep 24 15:43:01 2015 +0300 MDEV-8829: Assertion `0' failed in Explain_table_access::tag_to_json - Add EXPLAIN/ANALYZE FORMAT=JSON handling for a few special cases. commit 428f03c0b5cb9b0d85a7d70772dbf2b430672e83 Author: Alexander Barkov Date: Thu Sep 24 15:48:02 2015 +0400 MDEV-8839 COLUMN_GET() produces warnings with no data commit e5418942609833edb681d16c4e2705f8c338bfee Author: Alexander Barkov Date: Wed Sep 23 20:59:54 2015 +0400 Fixing a failure in "mtr --ps xml", introduced by the patch for MDEV-8466 and MDEV-8468. Using --enable_prepare_warnings and --disable_prepare_warnings around the affected query, to have the same warning in regular and --ps mtr runs. commit 3ad035f66b74284f515b2786f7d4553dba5c14a2 Author: Alexander Barkov Date: Wed Sep 23 20:42:28 2015 +0400 MDEV-8658 DATE(zerofill_column) and DATE(COALESCE(zerofill_column)) return different results MDEV-8660 TIME(int_zerofill_column) returns a wrong result commit b9da3ba45e6a6bad152203f56af47abe79e550ad Author: Elena Stepanova Date: Wed Sep 23 19:28:20 2015 +0300 Follow-up for MDEV-6756 - fix the ps-protocol version of the tests commit 70effb6be823bd244e8ba6f3ba210b72fecfb7e0 Author: Elena Stepanova Date: Wed Sep 23 19:15:29 2015 +0300 Follow-up for MDEV-6756 - fix the embedded version of the test commit 138e7bffaf2a0fad2dcee7a52e5afacb2f62c33d Author: Elena Stepanova Date: Wed Sep 23 19:06:21 2015 +0300 Follow up for disabling encrypt_tmp_files and encrypt_binlog by default commit 5c62dd21e8f56dde8ab853542979ba245b1dbae0 Author: Jan Lindström Date: Wed Sep 23 12:32:47 2015 +0300 MDEV-8832: Encryption meta data should not be stored when ENCRYPTED=DEFAULT and innodb-encrypt-tables=OFF commit 212698b152609a7b17b45f9499fd650229985558 Author: Alexander Barkov Date: Wed Sep 23 13:04:28 2015 +0400 MDEV-8253 EXPLAIN SELECT prints unexpected characters Item_string::clone_item() creates a new Item_string that points exactly to the same buffer that the original one does. Later, Item_string::print() uses c_ptr() for the original Item_string, which reallocs the original buffer, and the clone remain with the old freed buffer. Refactoring the code not to use c_ptr() in Item_string::print(). commit 180c44e0f600dc9e220887e213679f0d60f29a68 Author: Jan Lindström Date: Wed Sep 23 10:15:38 2015 +0300 MDEV-8817: Failing assertion: new_state->key_version != ENCRYPTION_KEY_VERSION_INVALID Folloup: Made encryption rules too strict (and incorrect). Allow creating table with ENCRYPTED=OFF with all values of ENCRYPTION_KEY_ID but create warning that nondefault values are ignored. Allow creating table with ENCRYPTED=DEFAULT if used key_id is found from key file (there was bug on this) and give error if key_id is not found. commit 7cbecadf9b59d06f4d9a9e776f99418b273c2ebc Author: Sergey Vojtovich Date: Thu Sep 17 17:01:00 2015 +0400 MDEV-8664 - plugins.show_all_plugins --embedded fails in buildbot Failed attempt to load dynamic library with STB_GNU_UNIQUE symbol may corrupt internal dynamic linker data sructures. This looks like libdl bug: https://sourceware.org/bugzilla/show_bug.cgi?id=14577 In embedded mode "show plugins soname" fails to dlopen ha_mroonga.so (which has STB_GNU_UNIQUE) due to undefined reference to wsrep_forced_binlog_format. It crashes later in subsequent call to dlopen() from pthread_exit(). Disabled plugins.show_all_plugins until dlopen() bug is fixed. commit 0cf39f401c111f873fa595573a23b209d1f28534 Author: Jan Lindström Date: Tue Sep 22 15:03:59 2015 +0300 MDEV-8817: Failing assertion: new_state->key_version != ENCRYPTION_KEY_VERSION_INVALID Analysis: Problem sees to be the fact that we allow creating or altering table to use encryption_key_id that does not exists in case where original table is not encrypted currently. Secondly we should not do key rotation to tables that are not encrypted or tablespaces that can't be found from tablespace cache. Fix: Do not allow creating unencrypted table with nondefault encryption key and do not rotate tablespaces that are not encrypted (FIL_SPACE_ENCRYPTION_OFF) or can't be found from tablespace cache. commit 5c9c8ef1eac0a3868a57ed8fda8bda8cd2453b37 Author: Alexander Barkov Date: Tue Sep 22 14:01:54 2015 +0400 MDEV-3929 Add system variable explicit_defaults_for_timestamp for compatibility with MySQL commit 89af0f11a83188cb2bfbfed0b54c00d718734995 Author: Jan Lindström Date: Mon Sep 21 11:24:08 2015 +0300 MDEV-8770: Incorrect error message when importing page compressed tablespace Added decompression and after page update recompression support for import. commit d54bc3c0d1ed50b3c5aa3a22b2cb653851315e8a Author: Nirbhay Choubey Date: Mon Sep 21 20:49:31 2015 -0400 Cleanup: remove dead code which could also lead to race. commit 9d5767cf43e1243e039b20c1853f5b7812587f2d Author: Nirbhay Choubey Date: Mon Sep 21 20:47:05 2015 -0400 Post-merge fix. commit e96f3c79b92f77df2edcd46867e2ef2d2880c2fe Author: Sergei Petrunia Date: Tue Sep 22 00:57:29 2015 +0300 MDEV-8779: mysqld got signal 11 in sql/opt_range_mrr.cc:100(step_down_to) Post fix: initialize a variable commit a575d90fe1f5680cc35339d4c903003d886aaea5 Author: Olivier Bertrand Date: Mon Sep 21 21:14:18 2015 +0200 Fold all json UDF names to lower case modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/value.cpp commit 22cc8f990bae759b564fdd1b403b8c67a4b59333 Author: Alexander Barkov Date: Mon Sep 21 19:04:32 2015 +0400 Changing a number of functions to aggregate argument character sets and collations from the global name space into private and protected methods in Item_func_or_sum. commit 9b9e36ed4926edd896aa274e15286f64cfec4313 Author: Sergei Petrunia Date: Sun Sep 20 21:31:02 2015 +0300 MDEV-8779: mysqld got signal 11 in sql/opt_range_mrr.cc:100(step_down_to) The crash was caused by range optimizer using RANGE_OPT_PARAM::min_key (and max_key) to store keys. Buffer size was a good upper bound for range analysis and partition pruning, but not for EITS selectivity calculations. Fixed by making these buffers variable-size. The sizes are calculated from [pseudo]indexes used for range analysis. commit 139ce6cb18301145ec1a5466c4d33825aec0020a Author: Oleksandr Byelkin Date: Mon Sep 21 15:15:23 2015 +0200 fix for 32bit system. Not meaninful for this test but volatile parameters replaced. commit c8db0df2daa807044d980e5aaa13084ae2b1efe6 Author: Alexander Barkov Date: Mon Sep 21 16:18:20 2015 +0400 Removing "DTCollation Arg_comparator::cmp_collation". Using a CHARSET_INFO pointer instead. commit 2dc32c02ab687683ef8d29115d3f89a660231c51 Author: Alexander Barkov Date: Mon Sep 21 15:52:50 2015 +0400 Removing "DTCollation user_var_entry::collation", using a CHARSET_INFO pointer instread, as the "derivation" and "repertoire" parts of DTCollation were not really used by user_var_entry. commit afa17734395f842f728e2539145854d3eb7cd9a8 Author: Alexander Barkov Date: Mon Sep 21 12:40:07 2015 +0400 Moving Item_args::arg_count from "public" to "protected". commit 1956340247eaa14138e2af0b0e2db29cc6bd14e8 Author: Alexander Barkov Date: Mon Sep 21 12:21:46 2015 +0400 Removing global function agg_item_charsets_for_string_result(). Moving agg_arg_charsets_for_string_result() and agg_arg_charsets_for_string_result_with_comparison() inside "protected" section in Item_func_or_sum. commit f727fb45d4aa6cb3b483366f7b6ab7bbb2a5923c Author: Oleksandr Byelkin Date: Sun Sep 20 20:22:22 2015 +0200 Fix to make os_thread_id it compiled on windows. commit d39a2f7d119996350230c0ae3ff10531a33038c7 Author: Nirbhay Choubey Date: Sat Sep 19 09:08:58 2015 -0400 Update mandatory wsrep configuration options commit 161db7c18fd87ba9151a60568b82da8497e95b56 Author: Jan Lindström Date: Sat Sep 19 11:30:18 2015 +0300 MDEV-8773: InnoDB innochecksum does not work with encrypted or page compressed tables commit b75c003372d6f35b230d0bd9af3cd4a1d8227bde Author: Alexander Barkov Date: Fri Sep 18 23:03:35 2015 +0400 MDEV-8816 Equal field propagation is not applied for WHERE varbinary_column>=_utf8'a' COLLATE utf8_general_ci AND varbinary_column='A'; 1. Removing the legacy code that disabled equal field propagation in cases when comparison is done as VARBINARY. This is now correctly handled by the new propagation code in Item_xxx::propagate_equal_fields() and Field_str::can_be_substituted_to_equal_item (the bug fix). 2. Also, removing legacy (pre-MySQL-4.1) Arg_comparator methods compare_binary_string() and compare_e_binary_string(), as VARBINARY comparison is correcty handled in compare_string() and compare_e_string() by the corresponding VARBINARY collation handler implemented in my_charset_bin. (not really a part of the bug fix) commit 9c6405fefaf7311b31591ab445660e8f34d64295 Merge: f4fe1383210 79140b03839 Author: Olivier Bertrand Date: Fri Sep 18 18:39:08 2015 +0200 Commit resolved conflicts commit da3ec3d421c345bbd4b6ddfe0e1e08ed192c0a97 Author: Oleksandr Byelkin Date: Wed Sep 9 16:29:50 2015 +0200 MDEV-7970: EXPLAIN FORMAT=JSON does not print HAVING Printing non-trivial HAVING added. commit 79140b03839a6b46a92736bd2ce03cefd43a5058 Author: Alexander Barkov Date: Fri Sep 18 13:30:44 2015 +0400 MDEV-8793 Wrong result set for SELECT ... WHERE COALESCE(time_column)=TIME('00:00:00') AND COALESCE(time_column)=DATE('2015-09-11') MDEV-8814 Wrong result for WHERE datetime_column > TIME('00:00:00') commit f789158ddfa90933678dc927a05719ba692d0854 Author: Alexander Barkov Date: Thu Sep 17 19:49:49 2015 +0400 The patch for MDEV-8466 revealed a bug in str2my_decimal, which did not return a correct "end_of_num" pointer in case of character sets with mbminlen>1 (ucs2, utf16, utf16le, utf32). The bug caused sporadic test failures on BuildBot, as well "uninitialized memory read" errors in valgrind builds. commit c83810f402d65c7dee2cf15fd38b8bf6281610f0 Author: Jan Lindström Date: Thu Sep 17 12:38:06 2015 +0300 Fix test failures seen on buildbot where file_key_management plugin is linked statically and dynamic plugin is not available. commit 7dd137c4ac0352595cb3aa5c718afba46bf2baf2 Author: Oleksandr Byelkin Date: Wed Aug 12 23:09:48 2015 +0200 MDEV-6756: map a linux pid (child pid) to a connection id shown in the output of SHOW PROCESSLIST Added tid (thread ID) for system where it is present. ps -eL -o tid,pid,command shows the thread on Linux commit d9b25ae3db8584bde809c0ab3230cbe151fa489b Author: Alexander Barkov Date: Thu Sep 17 11:05:07 2015 +0400 MDEV-8466 CAST works differently for DECIMAL/INT vs DOUBLE for empty strings MDEV-8468 CAST and INSERT work differently for DECIMAL/INT vs DOUBLE for a string with trailing spaces commit db2e21bf3ea32115e25bc6d9f67249042f16cadb Author: Nirbhay Choubey Date: Wed Sep 16 23:20:57 2015 -0400 MDEV-8208: Sporadic SEGFAULT on startup Problem: When mysqld starts as a galera node, it creates 2 system threads (applier & rollbacker) using start_wsrep_THD(). These threads are created before plugin initialization (plugin_init()) for SST methods like rsync and xtrabackup. The threads' initialization itself can proceed in parallel to mysqld's main thread of execution. As a result, the thread initialization code (start_wsrep_THD()) can end up accessing some un/partially initialized structures (like maria_hton, in this particular case) resulting in segfault. Solution: Fixed by calling THD::init_for_queries() (which accesses maria_hton) only after the plugins have been initialized. commit c69cf93bfb3a221d9106f3695aa16e11f7e8b7fb Author: Sergey Vojtovich Date: Wed Sep 16 17:24:34 2015 +0400 MDEV-8673 - [PATCH] Missing Sanity Check for strndup() in MariaDB 10.0.2x Contributed by Bill Parker. Added check for strndup() return value. commit 173e48695031ef17c69957751539060a0df1d6c7 Author: Jan Lindström Date: Wed Sep 16 13:01:04 2015 +0300 MDEV-8576: Bootstrap should ignore --enforce-storage-engine option Allow enforce-storage-engine="" option and use that on mysql_install_db when doing bootstrap. commit bb52905432779d1648241baa5945c61617f2d58f Author: Nirbhay Choubey Date: Tue Sep 15 18:58:08 2015 -0400 MDEV-8034 : wsrep_node_address can't be IPV6 Updated address parsing logic to include IPv6 format. commit fd1b2e486a9a81ffb5416e7a0a0d85d15598c77c Author: Nirbhay Choubey Date: Tue Sep 15 17:07:41 2015 -0400 MDEV-8803: Debian jessie 8.2 + MariaDB 10.1.7 + GaleraCluster * Merge fix for issue #127 from mysql-wsrep (commit : a0ba0d7) * Also, cherry-picked a similar fix for OpenSUSE (commit : 7790cb1) commit 653aadcd59f4ac94750d9ebf398d6e44029ebe3f Author: Nirbhay Choubey Date: Tue Sep 15 16:27:04 2015 -0400 MDEV-8804: bootstrap command missing in debian init script Add 'bootstrap' to debian init script. commit f4fe138321092c8dcd02caf22bdbad9698ee6829 Author: Olivier Bertrand Date: Tue Sep 15 20:42:51 2015 +0200 Fix assert error for where clause with UDF's was fixed in HA_CONNECT::CondFilter moving res= pval->val_str(&tmp) but this was wrong. Now res is only used for strings. Change version number modified: storage/connect/ha_connect.cc Add some new UDF's modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h Fix change in tests json_udf modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/t/json_udf.inc modified: storage/connect/mysql-test/connect/t/json_udf.test commit 31cf362c21b24ebda9d3997a401750ec94a19d5c Author: Nirbhay Choubey Date: Tue Sep 15 08:49:55 2015 -0400 MDEV-7873: rpl.rpl_domain_id_filter fails sporadically in buildbot #2 Fix the test case : switch to save_master_gtid.inc & sync_with_master_gtid.inc to sync slave with master. commit 6cc1befcf26b2dc43e5cd7ad85d29c576073b1c5 Author: Jan Lindström Date: Tue Sep 15 14:11:33 2015 +0300 Fix test to do proper cleanup. commit 9e6f3df51a1f53f336c8c02b85c3ce0de42ce5d7 Author: Jan Lindström Date: Tue Sep 15 09:35:38 2015 +0300 MDEV-8799: Server crashes in btr_defragment_add_index, encryption.innodb-bad-key-change5 and alike fail in buildbot Problem was unsafe access to NULL pointer. Added additional checks to avoid access to NULL pointer. commit 3a0df3cf3c0e7ab4c2532668df2a7bd003388527 Author: Alexander Barkov Date: Tue Sep 15 10:11:52 2015 +0400 MDEV-8372 Use helper methods introduced in MDEV-7824 all around the code commit eac8e43541afdbc60b7e6c954d310db9b37db2d5 Author: Nirbhay Choubey Date: Mon Sep 14 15:43:16 2015 -0400 Avoid caching wsrep threads (fixed the erroneous condition). commit a401c11c4e0c8cb7223a1f53366083e843afc9bd Author: Nirbhay Choubey Date: Mon Sep 14 15:26:50 2015 -0400 Fix failing test cases * Also modified name regex to include '#' as a valid symbol for tests under disabled.def. commit 3079bd43af6d74f8dfb715d423bf4f8f890382d4 Author: Jan Lindström Date: Mon Sep 14 16:28:16 2015 +0300 Fix release build compile failure. commit 4d3f680c957b3e55fb65d207fd1362271d8f8068 Author: Jan Lindström Date: Mon Sep 14 14:11:23 2015 +0300 MDEV-8772: Assertion failure in file ha_innodb.cc line 20027 when importing page compressed and encrypted tablespace using incorrect keys Add error handling to decryp function when decrypt fails during import. commit 5448df084b885ab744711888037bcc83bc2545f0 Author: Sergei Golubchik Date: Mon Sep 14 12:02:20 2015 +0200 restore CRLF file ending in the test data commit ddaddf1019f07f00ba419988f69f8cb9ebd3e169 Author: Jan Lindström Date: Mon Sep 14 12:15:27 2015 +0300 MDEV-8769: Server crash at file btr0btr.ic line 122 when defragmenting encrypted table using incorrect keys Add error handling when getting block from encrypted table and decryption fails. commit e3e2bbe5e0bb35bf10d9b7b29ce7b1157dbd8535 Merge: aaf6334b649 f8754d652e7 Author: Sergei Golubchik Date: Mon Sep 14 10:58:38 2015 +0200 MDEV-6284 Merge downstream Debian/Ubuntu packaging into upstream MariaDB Merge branch 'ottok-ok-debpkg-10.1' into 10.1 commit 71b14446013e2ff4e7f918c70fca95d0795f80e4 Author: Jan Lindström Date: Mon Sep 14 11:01:14 2015 +0300 MDEV-8768: Server crash at file btr0btr.ic line 122 when checking encrypted table using incorrect keys Add error handling to btr_validate_index when index root block can't be read because block decryption fails. commit d581ef5b2c68465815d78548357e3e104e39f5d6 Author: Jan Lindström Date: Mon Sep 14 08:27:14 2015 +0300 MDEV-8764: Wrong error when encrypted table can't be decrypted. Add a new error message when table is encrypted but decryption fails. Use this new error message on InnoDB/XtraDB. commit 27ec0e159b05155ee92aaabe9466d78ef3a26712 Author: Elena Stepanova Date: Mon Sep 14 03:15:04 2015 +0300 Increase the version number commit 80089a60e5e38a3c38e23b8379ed1b5f592b0475 Author: Elena Stepanova Date: Mon Sep 14 03:12:54 2015 +0300 Follow-up for MDEV-8675 and MDEV-8676 type_spatial_indexes test is now be re-enabled, and the new result file can be used for creating engine-specific rdiffs commit 6cc2e7ea5d129b2aec2cc503c849ca0e835e519e Author: Alexander Barkov Date: Sun Sep 13 23:32:10 2015 +0400 MDEV-8795 Equal expression propagation does not work for temporal literals commit 9b577edd50e29452c0ac58d3c73a871dc20dc37a Author: Jan Lindström Date: Sat Sep 12 13:16:05 2015 +0300 MDEV-8577: With enforce-storage-engine mysql_upgrade corrupts the schema: ALTER TABLE should either bypass enforce-storage-engine, or mysql_upgrade should refuse to run Allow user to alter contents of existing table without enforcing storage engine. However, enforce storage engine on ALTER TABLE x ENGINE=y; commit 1e9ab68e4a5944ff90b8652f5225a8a7b594753a Merge: 96f4a906cea 528729fc5da Author: Kristian Nielsen Date: Sat Sep 12 00:44:20 2015 +0200 Merge. commit 96f4a906cea4f11a70b1f8ffa30f27bfa397095d Author: Alexander Barkov Date: Fri Sep 11 23:26:02 2015 +0400 MDEV-8675 Different results of GIS functions on NULL vs NOT NULL columns commit aaf6334b6492ff915070378a61ed6e97881abfda Author: Alexander Barkov Date: Fri Sep 11 15:48:34 2015 +0400 MDEV-8709 Row equality elements do not get propagated The problem was fixed earlier by one of the MDEV-8728 subtasks. Adding a test case only. commit 9158212a276cc7cef7907d38ac754773a320a1ec Author: Alexander Barkov Date: Fri Sep 11 15:41:53 2015 +0400 MDEV-8369 Unexpected impossible WHERE for a condition on a ZEROFILL field Disable IDENTITY_SUBST propagation for ZEROFILL columns, as discussed with Sergei. commit df9b8aee5879fa2b6e47ed02fff4e6fbb45f720f Merge: 6f302d9f6cb 51eaa7fe53e Author: Kristian Nielsen Date: Fri Sep 11 12:01:48 2015 +0200 Merge MDEV-8193 into 10.1 Conflicts: sql/rpl_rli.cc commit 6f302d9f6cb1eafc018d9ca010dc40f15cb19390 Author: Alexander Barkov Date: Fri Sep 11 11:35:15 2015 +0400 MDEV-8755 Equal field propagation is not performed any longer for the IN list when multiple comparison types commit 0302efca7f522038f86a1b1dea3b7b1dd3759f86 Author: Alexander Barkov Date: Fri Sep 11 09:20:40 2015 +0400 MDEV-8705 Wrong result for SELECT..WHERE latin1_bin_column='a' AND latin1_bin_column='A' MDEV-8712 Wrong result for SELECT..WHERE latin1_bin_column=_latin1'a' AND latin1_bin_column='A' commit ceac34404b9cbb32886781986acedc2af0de7f25 Author: Nirbhay Choubey Date: Thu Sep 10 09:57:08 2015 -0400 lp:1372840 - test case commit 4aebba3aeba2d413268455c3c8c7cbfd04e2f94f Author: Alexander Barkov Date: Thu Sep 10 17:13:35 2015 +0400 MDEV-8740 Wrong result for SELECT..WHERE year_field=10 AND NULLIF(year_field,2011.1)='2011' MDEV-8754 Wrong result for SELECT..WHERE year_field=2020 AND NULLIF(year_field,2010)='2020' Problems: 1. Item_func_nullif stored a copy of args[0] in a private member m_args0_copy, which was invisible for the inherited Item_func menthods, like update_used_tables(). As a result, after equal field propagation things like Item_func_nullif::const_item() could return wrong result and a non-constant NULLIF() was erroneously treated as a constant at optimize_cond() time. Solution: removing m_args0_copy and storing the return value item in args[2] instead. 2. Equal field propagation did not work well for Item_fun_nullif. Solution: using ANY_SUBST for args[0] and args[1], as they are in comparison, and IDENTITY_SUBST for args[2], as it's not in comparison. commit 8e553c455c4740a51d2a7d0e23c3c79863b5df22 Author: Alexander Barkov Date: Thu Sep 10 15:01:44 2015 +0400 MDEV-8785 Wrong results for EXPLAIN EXTENDED...WHERE NULLIF(latin1_col, _utf8'a' COLLATE utf8_bin) IS NOT NULL commit 4278d6d402b7ff7eeafe264f600cceb7b614792a Author: Alexander Barkov Date: Thu Sep 10 14:04:52 2015 +0400 MDEV-8786 Wrong result for SELECT FORMAT=JSON * FROM t1 WHERE a=_latin1 0xDF commit f479b5a16e0bb32d628e46e417d1d84e0a6a4e79 Author: Nirbhay Choubey Date: Thu Sep 10 00:29:06 2015 -0400 Update WSREP_PATCH_REVNO commit f9510717a4a9c00d24b91edbe6d358f9e4665058 Author: Philip Stoev Date: Tue Sep 8 22:11:56 2015 -0700 Galera MTR Tests: fix typo in the galera_as_slave_nonprim test, in suite/galera/galera_3nodes_as_slave.cnf commit b3ec0a85893365bbd9051fa1bb27d14a50f755af Author: Philip Stoev Date: Tue Sep 8 05:04:47 2015 -0700 Galera MTR Tests: a test for async slave + non-prim commit db66d2f92d029212265f0bbc3dd2076189ebdf3d Author: Nirbhay Choubey Date: Thu Sep 10 00:20:49 2015 -0400 refs codership/mysql-wsrep#188 - setting error code for slave, if mysql slave node dropped from cluster commit 2012a810ab07e0e283fef6736a13c57b4b0cedf0 Author: Nirbhay Choubey Date: Thu Sep 10 00:14:24 2015 -0400 refs codership/mysql-wsrep#181 - Galera related errors in mysql slave applying will now cause slave to abort commit c915d8caa6980001f5a2ee92dfb8db81bd6d40d8 Author: Philip Stoev Date: Tue Sep 1 00:57:20 2015 -0700 Galera MTR Tests: attempt to work around codership/mysql-wsrep#179 commit 25bbfe883975f6d14b620a149a636542dff894a0 Author: Philip Stoev Date: Mon Aug 31 02:16:43 2015 -0700 Galera MTR Tests: Instruct xtrabackup SST's socat to use 1024-bit DH keys to avoid 'error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small' commit b6f8033073f7076b8c2c1dfff04f2844ccf64179 Author: Philip Stoev Date: Mon Aug 31 02:15:37 2015 -0700 Galera MTR Tests: Tests around do-* and ignore-* binlog options commit f7885fb6312c1431f1dabf5b92e4afe8cdd7cde2 Author: Philip Stoev Date: Thu Aug 27 00:54:26 2015 -0700 Correct WSREP_PATCH_VERSION for 5.6 is 11 commit 52c9235e6266089a5a9f98523b678ef6beb07b24 Author: Philip Stoev Date: Tue Aug 25 06:15:20 2015 -0700 Galera MTR Tests: Add known Galera and mysql-wsrep Valgrind issues to valgrind.supp commit 371dc336ea3210c00d4f37d6b77f9757f7eb2ec9 Author: Philip Stoev Date: Mon Aug 24 06:56:30 2015 -0700 refs codership/mysql-wsrep#90 MTR test case for mysql-wsrep#90 commit e5b595e9d17485c612bd00784f5846113815dc5c Author: Philip Stoev Date: Fri Aug 14 05:14:53 2015 -0700 Galera MTR Tests: fix typo in suite/galera/galera_2nodes_as_slave.cnf commit ee22ac3808101d912a1b110d5613c165bcf1aad7 Author: Philip Stoev Date: Fri Aug 14 01:16:25 2015 -0700 Galera MTR Tests: Various test stability fixes (take #5) commit 7d73931cbcc03e4b6f0939f29be7e998585b555e Author: Philip Stoev Date: Wed Aug 12 06:40:59 2015 -0700 Galera MTR Tests: Various test stability fixes (take #4) commit ff76214a46f8f97e1539d11fd9512620f28c2602 Author: Philip Stoev Date: Wed Aug 12 05:32:18 2015 -0700 Galera MTR Tests: Various test stability fixes (take #3) commit fd0aaad5479ee447aa7d0f5f71f23c26faf6cbc8 Author: Philip Stoev Date: Wed Aug 12 01:03:21 2015 -0700 Galera MTR Tests: Various test stability fixes (take #2) commit 997119dafefc1cf0d016d0b0da7989151d3e4f81 Author: Philip Stoev Date: Tue Aug 11 04:22:38 2015 -0700 Galera MTR Tests: Various test stability fixes. commit 182b237d4090aad846cda78c85c5596f1f544b2a Author: Philip Stoev Date: Fri Aug 7 21:15:02 2015 -0700 Galera MTR Tests: remove variable output from galera_gra_log.test (take #2) commit c9d4581e8a0ce05e6c9c19bd55bde3ea463bbd2d Author: Philip Stoev Date: Thu Aug 6 20:55:30 2015 -0700 Galera MTR Tests: remove variable output from galera_gra_log.test commit 2316a4e19ff9b5ac388bf888a8ac6aa8154eed1f Author: Philip Stoev Date: Thu Aug 6 00:34:00 2015 -0700 Galera MTR Tests: Tests for GRA*.log files, replication bundle, preordered events, forced binlog format commit a1a7414b1d448be38463d23c5f91b0280e603e09 Author: Philip Stoev Date: Mon Aug 3 03:20:52 2015 -0700 Galera MTR Tests: An end-to-end test with restoring a node from xtrabackup; a test for restoring the primary component via pc.bootstrap commit 1e2906892a1403734c246082cc90ac2cf9d91053 Author: Philip Stoev Date: Thu Jul 23 04:30:07 2015 -0700 Galera MTR Tests: Valgrind suppression for codership/galera#306 commit 3893b5c6daf960281e56b4e3cfd141c2814563fd Author: Philip Stoev Date: Thu Jul 23 04:29:40 2015 -0700 Galera MTR Tests: mark all tests operating on large data sets with --source include/big-test.inc to help with Valgrind commit 83579c2ff326a1033e2ac854766409be06476e78 Author: Philip Stoev Date: Fri Jul 10 07:17:20 2015 -0700 Galera MTR Tests: fixes for mysqldump SST/IST tests commit 10f5c08f4bdbefc910f66126d6732a2e9e875075 Author: Philip Stoev Date: Wed Jul 8 01:52:45 2015 -0700 Refs codership/QA#47. Additional tests for FTWRL. commit 6104a27c98ce1664214f4edf3d8840320d35cb9b Author: Philip Stoev Date: Tue Jul 7 06:01:00 2015 -0700 Galera MTR Tests: increase lock wait timeout in suite/galera/t/galera_many_rows.test commit 4a630ce6ad50bc81c91a018eaad7ca7fb0046040 Author: Philip Stoev Date: Tue Jul 7 06:00:22 2015 -0700 Galera MTR Tests: A test for xtrabackup with key+cert encryption. commit edd9bd3ea7438f0b9e9c1c9bd368ddb360ceee29 Author: Philip Stoev Date: Tue Jul 7 03:42:03 2015 -0700 Fixes codership/mysql-wsrep#153 use --defaults-extra-file with mysqldump SST commit 5d531f07bfb39dce84cb1e42c36f8b01e331e37f Author: Philip Stoev Date: Wed Jul 1 03:13:04 2015 -0700 Galera MTR Tests: Use SET GLOBAL when setting wsrep_replicate_myisam, as it is a GLOBAL variable in MySQL Galera Cluster and SESSION in Percona XTraDB Cluster commit fbe739cbb15d6a50e5ec6494528fe0441667eb75 Author: Raghavendra D Prabhu Date: Mon Jun 29 16:42:58 2015 +0530 Bug#1421360: Add 'FLUSH TABLES' to Total Order Isolation execution. Before this, FLUSH TABLES and FLUSH TABLES t1 (REFRESH_TABLES hereafter) were executed locally, which also had implications for GTID. MySQL async replication does replicate FLUSH TABLES. Hence, this commit a) Adds REFRESH_TABLES to TOI. b) Skips LOCK-based REFRESH_TABLES from TOI, ie. FLUSH TABLES WITH READ LOCK and FLUSH TABLES FOR EXPORT. c) Executes them after reload_acl_and_cache. This is done since reload_acl_and_cache checks for thd->locked_tables_mode and does upgrade of MDL locks accordingly. A failure here means REFRESH_TABLES cannot run. i) This is also important since LOCK TABLES is not replicated in galera. d) Test galera_flush has been modified for i) wsrep_replicate_myisam SESSION variable. ii) Testing REFRESH_TABLES. iii) Testing REFRESH_TABLES + LOCK TABLES. e) Use different WSREP_TO_ISOLATION_BEGIN for global FLUSH TABLES and FLUSH TABLES . commit 5a002adb5fda82df8f6bfe7b4f49f07585e13c39 Author: Philip Stoev Date: Fri Jun 26 01:30:01 2015 -0700 Galera MTR Tests: various tests and test fixes commit f1a00ed51447f96c140f594784919800bda750d6 Author: Philip Stoev Date: Wed Jun 17 05:14:36 2015 -0700 Galera MTR Tests: Use wsrep_sst_auth for tests that use xtrabackup + IST commit 2ea16b995de01f1f5347abee8a050c26eaef55ec Author: Alexey Yurchenko Date: Mon Jun 8 21:06:22 2015 +0300 This commit fixes - errno handling in wsp::env::append() method, where error could be returned by mistake - return code of sst_prepare_other() when pthread_create() fails - it was returning positive error code which by convention is treated as success. commit 0ccbbffb78a1ae266d5bcd322de10f21e08a34ea Author: Alexey Yurchenko Date: Mon Jun 8 12:23:53 2015 +0300 Slight cleanup improvement on a previous commit. commit bc796c29b35ed307fd721543f2171572093d88f4 Author: Philip Stoev Date: Mon Jun 8 01:43:27 2015 -0700 Refs codership/mysql-wsrep#143 . Account for the case where the SST password is empty commit 86ee30cea95b4a3c8b34398e75e4fc62d0501616 Author: Alexey Yurchenko Date: Sat Jun 6 01:08:41 2015 +0300 Refs codership/mysql-wsrep#141: this commit 1. Passes wsrep_sst_auth_value to SST scripts via WSREP_SST_OPT_AUTH envronmental variable, so it never appears on the command line 2. In mysqldump and xtrabackup* SST scripts which rely on MySQL authentication, instead of passing password on the command line, SST script sets MYSQL_PWD environment variable, so that password also never appears on the mysqldump/innobackupex command line. commit 197e9d2559907b97905f7d1536b481bba2e9ffe3 Author: sjaakola Date: Tue May 26 15:44:34 2015 +0300 Refs codership/mysql-wsrep#132 - fix for THD::m_digest initialization, according to Raghu commit 483078b1b17c97d90e5aa245ef366092fb28fbd3 Author: Philip Stoev Date: Fri May 15 02:15:58 2015 -0700 Fixes codership/QA#87 . An MTR test for SERIALIZABLE commit 4102d5258d0c12fcbc833bf415474aaa1a12ddb2 Author: Philip Stoev Date: Mon May 11 02:21:39 2015 -0700 Refs codership/mysql-wsrep#113 - tests around FLUSH TABLE, FLUSH TABLES, LOCK TABLE commit 2106fed865f6827418b16efcf6dd8368c3a092c5 Author: sjaakola Date: Sun May 10 21:49:36 2015 +0300 Refs codership/mysql-wsrep#113 - changed BF thread's MDL wait to never timeout - all explicit locks are now honored by BF threads commit f9805e4c984d251fec76f39bcd6a675e6cf5e6df Author: Philip Stoev Date: Fri May 8 03:21:50 2015 -0700 Galera MTR Tests: tests for WAN restart, xtrabackup options and others. commit ef7b08978b9300d456217ae55b623ff9c5b30744 Author: Alexey Yurchenko Date: Wed May 6 10:35:02 2015 +0300 Fixes codership/mysql-wsrep#122 - causal/casual typos fixed in wsrep code commit bace2a97527cf817257ea3ee4e801b640ba0bf9c Author: Philip Stoev Date: Tue May 5 01:21:55 2015 -0700 Galera MTR Tests: add a test for socket.ssl_compression commit b5ef2bbc5ea3f21432eff2e98149b9a6612238b3 Author: Philip Stoev Date: Tue Apr 28 23:34:47 2015 -0700 Re-enable tests previously disabled due to mysql-wsrep#114 commit 63c5bee535f0827721484c93a2ba8798437fadf5 Author: sjaakola Date: Tue Apr 28 20:38:25 2015 +0300 Refs codership/mysql-wsrep#113 - Extended the protection of local FLUSH sessions to cover all exclusive MDL locks commit 417f778e53f6d3c111ef25976d7f1b2d532ca2a3 Author: Philip Stoev Date: Tue Apr 28 00:55:50 2015 -0700 Galera MTR tests: disable innodb.innodb_stats_* due to mysql-wsrep#114 commit 6bb890c9b6655b409d0eb81725853415157b5b0c Author: sjaakola Date: Fri Apr 24 10:39:42 2015 +0300 refs codership/mysql-wsrep#114 - skipping TOI if not using wsrep provider commit c66609017b25bf066008a3dec9e3ecd00fc5ce8b Author: sjaakola Date: Tue Apr 21 16:22:53 2015 +0300 Refs codership/mysql-wsrep#113 Protecting non replicated FLUSH session from brute force aborts commit 045b31c8f45079f617ff6c8a1da09710979bc5f8 Author: Philip Stoev Date: Mon Apr 20 05:58:24 2015 -0700 Test cases for codership/mysql-wsrep/110 commit dc9e32540744a0e44e6e80c36a82ea6ee1ef2657 Author: Teemu Ollakka Date: Mon Apr 20 13:18:21 2015 +0300 refs codership/mysql-wsrep#110 - clear table map events on SAVEPOINT Clear binlog table maps before writing SAVEPOINT query event into binlog cache. This enforces recreation of table map events for the following row event. commit d0e24c67998a8b887a4ec785669d4a0ae9355058 Author: Philip Stoev Date: Wed Apr 1 02:52:24 2015 -0700 Galera MTR Tests: Attempt to remove rare sporadic failures in galera_transaction_replay.test by waiting for all transactions to get blocked before proceeding. commit f8b724db289a540bf4e2d8cba4deceb2e68c9587 Author: Philip Stoev Date: Tue Mar 31 06:43:38 2015 -0700 Galera MTR Tests: Enable the use of --parallel for port-intensive Galera tests by additionally specifying --port-group-size=50 commit 9f716ae9d372926eddc4a14e41fab6dc4664417f Author: Philip Stoev Date: Sun Mar 29 23:56:21 2015 -0700 Galera MTR: Disable rpl.rpl_rotate_logs binlog.binlog_index due to codership/mysql-wsrep#71 commit fa5f18d6734249aa326d6296c9b9c2338cb33b10 Merge: f533b2b462b 37ae601a876 Author: Nirbhay Choubey Date: Wed Sep 9 20:51:39 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit 37ae601a8766f37cdd919efc801133d2a8cfaf70 Author: Nirbhay Choubey Date: Wed Sep 9 18:54:14 2015 -0400 Update WSREP_PATCH_REVNO commit 760b0c4758ee463c8c97c1a756709d3d25506eed Author: Philip Stoev Date: Thu Aug 27 00:41:56 2015 -0700 Bump WSREP_PATCH_VERSION in cmake/wsrep.cmake to 12 commit bee94cc9f4ef58c5bb3d10393a9e92bcd32994f0 Author: Philip Stoev Date: Tue Jul 7 22:34:25 2015 -0700 Fixes codership/mysql-wsrep#153 use --defaults-extra-file with mysqldump SST commit 55dfddff1d99db73f19cdbd1eff3222f2acd181d Author: Alexey Yurchenko Date: Tue Jun 9 17:02:26 2015 +0300 Fixing donate callback return code commit 0465e3a117f6c0c2e7c20441007c1e92d9c563ca Author: Alexey Yurchenko Date: Tue Jun 9 11:36:31 2015 +0300 Logging message cleanup commit d809fcc3011c8fa8cfd62aa6232f45469a829611 Author: Alexey Yurchenko Date: Mon Jun 8 21:06:22 2015 +0300 This commit fixes - errno handling in wsp::env::append() method, where error could be returned by mistake - return code of sst_prepare_other() when pthread_create() fails - it was returning positive error code which by convention is treated as success. commit 1b1410c449c651739590dba3d61ea5494c149ed3 Author: Alexey Yurchenko Date: Mon Jun 8 12:23:53 2015 +0300 Slight cleanup improvement on a previous commit. commit 62c25393767179b6ace73a94b07e9fe2cfff5ba2 Author: Philip Stoev Date: Mon Jun 8 01:46:20 2015 -0700 Refs codership/mysql-wsrep#143 . Account for the case where the SST password is empty commit a7ea3ec34d7c542542dc11e324b1667fd9ba1a48 Author: Alexey Yurchenko Date: Sat Jun 6 01:38:07 2015 +0300 Synced xtrabackup SST fixes from Percona tree (as of PXC 5.6.24-25.11 release). This fixes/adresses the following LP bugs: - LP1380697: wsrep_sst_xtrabackup-v2 doesn't stop when mysql is SIGKILLed. (full fix for this (as engineeered by Percona) requires Linux-specific patch that we don't carry, but keep xtrabackup scripts as close as possible) - LP1399134: Log the innobackupex/SST logs in SST to syslog if possible. (fixed) - LP1405668: Race condition between donor and joiner in PXB SST. (fixed) - LP1405985: Fail early if xtrabackup_checkkpoints is missing. (fixed) - LP1407599: wsrep_sst_xtrabackup-v2 script causes innobackupex to print a false positive stack trace into the log. (fixed) - LP1441762: IST Fails with SST script error. (fixed) - LP1451670: Fail when move-back fails in xtrabackup SST. (fixed) commit d78110e7fae1588afcb6bc5ea08be0d84ee18857 Author: Alexey Yurchenko Date: Sat Jun 6 01:08:41 2015 +0300 Refs codership/mysql-wsrep#141: this commit 1. Passes wsrep_sst_auth_value to SST scripts via WSREP_SST_OPT_AUTH envronmental variable, so it never appears on the command line 2. In mysqldump and xtrabackup* SST scripts which rely on MySQL authentication, instead of passing password on the command line, SST script sets MYSQL_PWD environment variable, so that password also never appears on the mysqldump/innobackupex command line. commit 4f4f3a5e328524bf1b467a1885b0a21a4e995d9b Author: Alexey Yurchenko Date: Sat May 2 22:25:39 2015 +0300 Fixes codership/mysql-wsrep#118 commit 416b811a4a87ee642fa6ef8bf2c31e7768c597ec Author: Sergei Golubchik Date: Tue Sep 8 21:56:25 2015 +0200 MDEV-8775 enabling encryption is too error-prone create a "preset" file to enable all encryption options at once commit 7bd2f20e880a5871635260c0a96448631c28b2c5 Author: Sergei Golubchik Date: Tue Sep 8 17:07:34 2015 +0200 make encrypt-binlog and encrypt-tmp-files to fail if no encryption --encrypt-binlog and --encrypt-tmp-files used to mean "encrypt XXX if encryption is available, otherwise don't encrypt", now they mean "encrypt or fail with an error". commit 39b46ae934bfa886314f918068d1e195970fe65e Author: Alexander Barkov Date: Wed Sep 9 15:39:09 2015 +0400 MDEV-8706 Wrong result for SELECT..WHERE time_column=TIMESTAMP'2015-08-30 00:00:00' AND time_column='00:00:00' commit 3fcd84c2891f4d2c881f13b53bc5a2401870b80a Author: Alexander Barkov Date: Wed Sep 9 08:11:43 2015 +0400 MDEV-8741 Equal field propagation leaves some remainders after simplifying WH ERE zerofill_column=2010 AND zerofill_column>=2010 commit 4cb6edba780085cbb82ef5fce2298f7df5fa0169 Author: Nirbhay Choubey Date: Tue Sep 8 17:46:03 2015 -0400 Update failing galera tests commit 28ad6a7f28d1bdfb0d10530f8ab667213005807a Author: Nirbhay Choubey Date: Tue Sep 8 17:43:48 2015 -0400 MDEV-8763: Galera tests failures with --ps-protocol (MDEV-8617: Post-fix for 10.1) * Reset THD's PS members before returning when node is not ready * Add CF_SKIP_WSREP_CHECK flag to COM_STMT_XXX commands * Skip TO replication of COM_STMT_PREPAREs for MyISAM * Updated tests commit 067ed23c274df9b03d2574e3183dfd36566ba54d Author: Jan Lindström Date: Tue Sep 8 21:01:58 2015 +0300 MDEV-8774: Test innodb.innodb_bug53290 failures on buildbot Problem was -O2 and __attribute__((nonnull)) when it should have been __attribute__((nonnull(1,2,3,4,5))) commit bbb238ce75f8a5bc60eecf0f1f6bde3e4e979aca Author: Sergei Golubchik Date: Tue Sep 8 15:43:48 2015 +0200 disable main.max_statement_time test commit edb37ae3c7bc7b91fa776be9d22669a32d38267f Author: Sergei Golubchik Date: Tue Sep 8 15:38:11 2015 +0200 disable encrypt_tmp_files and encrypt_binlog by default commit 2c1553e5456c2ea9940a07e7f99b6b5788db7b1b Author: Jan Lindström Date: Tue Sep 8 16:08:08 2015 +0300 MDEV-8774: Test innodb.innodb_bug53290 failures on buildbot Fixed unsafe reference to null pointer. commit de269f2f1f4b4b787c01d25c9c3609351e4b6999 Author: Alexander Barkov Date: Tue Sep 8 16:02:29 2015 +0400 MDEV-8766 Wrong result for SELECT..WHERE LENGTH(time_column)=8 AND time_column=TIMESTAMP'2001-01-01 10:20:31' commit b119110a8211d613eb312428aee18c6e621dcb79 Author: Sergei Golubchik Date: Sat Sep 5 16:24:11 2015 +0200 MDEV-8581 Unique prefix for default-tmp-storage-engine does not work remove old "to-be-implemented" definition of the default-tmp-storage-engine option. commit 509b836623852f461febea737dc7e32603d50344 Author: Jan Lindström Date: Fri Sep 4 15:54:20 2015 +0300 MDEV-8708: InnoDB temp file encryption Added encryption support for online alter table where InnoDB temporary files are used. Added similar support also for tables containing full text-indexes. Made sure that table remains encrypted during discard and import tablespace. commit f8754d652e7b05655a9ac192b0e50c76a966d2c7 Merge: d6c5e7e2cc1 42574427e67 Author: Otto Kekäläinen Date: Mon Sep 7 22:21:35 2015 +0300 Merge branch '10.1' of https://github.com/MariaDB/server into ok-debpkg-10.1 commit 8a154ecde0baba4bf9fa3bb2bf6821efad4984aa Author: Olivier Bertrand Date: Mon Sep 7 18:53:25 2015 +0200 Add Json_Get_Item (and Bson_File?) functions modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h commit 42574427e67ac646b19f41b35563b9c1679eea77 Author: Alexander Barkov Date: Mon Sep 7 17:43:53 2015 +0400 MDEV-8699 Wrong result for SELECT..WHERE HEX(date_column)!='323030312D30312D3031' AND date_column='2001-01-01x' commit 20291639994beaa070b7228eafa7be31eb1d7ff8 Author: Alexander Barkov Date: Mon Sep 7 11:07:40 2015 +0400 MDEV-8742 Wrong result for SELECT..WHERE view_latin1_swedish_ci_field='a' COLLATE latin1_bin The fix for MDEV-8749 also fixed MDEV-8742. Just adding the test case from the bug report. commit bf7a2bb12cde9d4ec47e400ab645467783cbaf32 Author: Alexander Barkov Date: Mon Sep 7 10:50:27 2015 +0400 MDEV-8704 Wrong result for SELECT..WHERE LENGTH(double_column)!=6 AND double_column=100e0 commit 5448e0a6dcf1918f818d162f08dee00e8d6c163e Author: Jan Lindström Date: Mon Sep 7 08:34:04 2015 +0300 MDEV-8745: Bad InnoDB logging: "[Note] InnoDB: not started" commit e7dcec5471eb708b658c163813f0b67a32b564c3 Author: Alexander Barkov Date: Mon Sep 7 08:55:55 2015 +0400 MDEV-8703 Wrong result for SELECT..WHERE LENGTH(decimal_10_1_column)!=3 AND decimal_10_1_column=1.10 commit 0736cddbd4af2bf15ad54c4d5d18dceed0a55868 Author: Alexander Barkov Date: Mon Sep 7 06:45:51 2015 +0400 Field_num::get_equal_const_item() appeared to be in a wrong file (item.cc). Moving to field.cc. commit 4be6eee8f10f9a195381faf7c47ff4f4ad714425 Author: Elena Stepanova Date: Mon Sep 7 02:22:35 2015 +0300 MDEV-8760 main.mysqlbinlog_row_big fails due to new default for max_allowed_packet Follow-up for MDEV-6066: new default value, the result file needs to be updated commit e6162888b8e73e86b613a01947e1d6915622a2b9 Author: Elena Stepanova Date: Mon Sep 7 02:18:49 2015 +0300 MDEV-8761 encryption.innodb-bad-key-change2 fails with static file_key_management plugin Suppress errors about not being able to load plugins from file_key_management library. Errors about the non-existing library are already suppressed globally. commit 675ca12ae432d00fff81293059f7c82c22e93152 Author: Elena Stepanova Date: Sun Sep 6 21:01:59 2015 +0300 Follow-up for MDEV-6066 (new defaults from 5.6 and 5.7) New defaults for query cache caused wrong test output commit 1a36caf0e9f0abf8800335c46cf38a8486a744da Author: Alexander Barkov Date: Sun Sep 6 18:49:17 2015 +0400 MDEV-8729 Wrong result for SELECT..WHERE HEX(enum_column)='61' AND enum_column='a ' commit 7915abffbfa79f9f89b3df0acc99ff8b19625b6b Author: Olivier Bertrand Date: Sun Sep 6 15:51:48 2015 +0200 Add experimental Bson_Array function (not documented) Change names of functions not returning Json. modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/plugutil.c modified: storage/connect/value.cpp modified: storage/connect/value.h commit e0df116056237beb89faa3527938b7ec7b1e15ec Author: Alexander Barkov Date: Sun Sep 6 13:25:47 2015 +0400 A clean-up after the patch for MDEV-8747 and MDEV-8749: removing IMPOSSIBLE_RESULT from Item_result, as it's not needed any more. The fact that an Item is not in a comparison context is now always designated by IDENTITY_SUBST in Subst_constraint. Previously IMPOSSIBLE_RESULT and IDENTITY_SUBST co-existed but actually meant the same thing. commit c108019a48451147b456aed0d988773eee32a55b Author: Alexander Barkov Date: Sun Sep 6 01:30:46 2015 +0400 MDEV-8747 Wrong result for SELECT..WHERE derived_table_column='a' AND derived_table_column<>_latin1'A' COLLATE latin1_bin MDEV-8749 Wrong result for SELECT..WHERE derived_table_enum_column='number' AND derived_table_enum_column OP number commit 3d9abaf052400b24de93534ace30657e0f6cb6e4 Author: Alexander Barkov Date: Sat Sep 5 23:54:18 2015 +0400 MDEV-8752 Wrong result for SELECT..WHERE CASE enum_field WHEN 1 THEN 1 ELSE 0 END AND a='5' commit d6c5e7e2cc16fa63875ef9e5a63caf5c9f147e7c Merge: b9fee608712 67dbfab3d79 Author: Otto Kekäläinen Date: Sat Sep 5 21:28:14 2015 +0300 Merge branch '10.1' of https://github.com/MariaDB/server into ok-debpkg-10.1 commit 67dbfab3d7945886caf6ba8de6a17799e3db25aa Author: Jan Lindström Date: Sat Sep 5 14:30:42 2015 +0300 Fix test not to be run on embedded, because of restart. commit a0df8225eced15c8a3a03ca0d9129badf022b34c Author: Jan Lindström Date: Sat Sep 5 07:18:57 2015 +0300 MDEV-8753: 10.1 build is broken: xtradb/handler/ha_innodb.cc:21430: error: redefinition of 'void ib_push_warning(trx_t*, ulint, const char*, ...)' Fixed bad merge. commit e04723d754ffff6c532190205d0f3a5a7033b310 Author: Jan Lindström Date: Fri Sep 4 20:09:20 2015 +0300 MDEV-8750: Server crashes in page_cur_is_after_last on altering table using a wrong encryption key Analysis: Server tried to continue reading tablespace using a cursor after we had resolved that pages in the tablespace can't be decrypted. Fixed by addind check is tablespace still encrypted. commit 7e916bb86f512ff79f30d809b813608a625ec5ba Author: Jan Lindström Date: Mon Aug 31 19:47:14 2015 +0300 MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available Analysis: Problem was that in fil_read_first_page we do find that table has encryption information and that encryption service or used key_id is not available. But, then we just printed fatal error message that causes above assertion. Fix: When we open single table tablespace if it has encryption information (crypt_data) store this crypt data to the table structure. When we open a table and we find out that tablespace is not available, check has table a encryption information and from there is encryption service or used key_id is not available. If it is, add additional warning for SQL-layer. commit e1978234ebe6606c3ad5a0d1be6ce0f86fcf7642 Author: Jan Lindström Date: Sun Aug 16 09:53:27 2015 +0300 MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available Analysis: Problem was that in fil_read_first_page we do find that table has encryption information and that encryption service or used key_id is not available. But, then we just printed fatal error message that causes above assertion. Fix: When we open single table tablespace if it has encryption information (crypt_data) store this crypt data to the table structure. When we open a table and we find out that tablespace is not available, check has table a encryption information and from there is encryption service or used key_id is not available. If it is, add additional warning for SQL-layer. commit e9b6f95013b0db125c616269d747a0c365f5f5c8 Author: Sergei Golubchik Date: Fri Sep 4 16:30:11 2015 +0200 test failure commit 6246b4c9f11e8863c881d82bcf99b6fbc383a30c Author: Sergei Golubchik Date: Fri Sep 4 12:33:14 2015 +0200 update encryption plugin and service versions commit 096510d02c28a423726bd755885171c42928dc47 Author: Sergei Golubchik Date: Fri Sep 4 12:28:47 2015 +0200 fix dbug tags commit 7cd3c427da2681b64258d2df5ea6699a1ecb41c8 Author: Sergei Golubchik Date: Fri Sep 4 11:39:24 2015 +0200 document new encryption plugin api commit bc12d5fd4382ad021b77a875d4b7dbd5f2c38d1c Author: Sergei Golubchik Date: Thu Sep 3 18:06:55 2015 +0200 MDEV-6066: Merge new defaults from 5.6 and 5.7 cosmetic fixes. test fixes. commit e3982cead235e9becb1abdbf0e73876c8a6e6b28 Author: Oleksandr Byelkin Date: Tue Aug 11 18:45:38 2015 +0200 MDEV-6066: Merge new defaults from 5.6 and 5.7 (defaults changed, QC can be stopped with no-zero size) commit 21daa7b9298d31ab1c6ddd1159dba29acea8d868 Author: Oleksandr Byelkin Date: Mon Aug 10 21:45:11 2015 +0200 MDEV-6066: Merge new defaults from 5.6 and 5.7 (autoset) --autoset- command line prefix added commit b85a00161e91080cb82b99e812c18eafb6467737 Author: Sergei Golubchik Date: Wed Sep 2 09:58:08 2015 +0200 MDEV-8264 encryption for binlog * Start_encryption_log_event * --encrypt-binlog command line option based on google patches. commit 41d68cabee1d9c2a8e8c7a006b17070392a85ed7 Author: Sergei Golubchik Date: Mon Aug 31 16:35:37 2015 +0200 cleanup: Log_event::write() and MYSQL_BIN_LOG::write_cache() Introduce Log_event_writer() that encapsulates writing data to an IO_CACHE with automatic checksum calculation. Now all events properly checksum themselves as needed. Use Log_event_writer in MYSQL_BIN_LOG::write_cache() instead of copy-pasting its logic all over. Later Log_event_writer will also do encryption. commit 704ba5c514b030e4e1c20fe659d985d3bd493bf1 Author: Sergei Golubchik Date: Thu Aug 27 13:48:32 2015 +0200 cleanup: correct usage of semicolons in sql_yacc.yy commit c862c15bbafde6091375008f8981c0dde24fc9ee Author: Sergei Golubchik Date: Tue Aug 25 17:29:58 2015 +0200 cleanup: [partial] removal of llstr() now when my_vsnprintf() supports %llu for a few years already. commit fff6f4278b3b7e11f7e579b01ccb15001bed07d9 Author: Sergei Golubchik Date: Fri Aug 28 02:34:03 2015 +0200 Revert f1abd015, make a smaller fix commit f1abd015dcec3c1347e96e6197db8fd05c021537 Author: Andrei Elkin Date: Thu Nov 12 17:10:19 2009 +0200 Bug #47210 first execution of "start slave until" stops too early commit 1720fcdcbcbdc2e9f4d7eb37d8cdf97be501b007 Author: Sergei Golubchik Date: Mon Aug 24 13:09:03 2015 +0200 cleanup DBUG, DBUG_DUMP_EVENT_BUF introduce DBUG_DUMP_EVENT_BUF, remove few unused DBUG_EXECUTE_IF's simplify few DBUG_PRINT's remove few redundant #ifndef DBUG_OFF's commit 781e18ec4d1282ff7d43e753fecf705609204b87 Author: Sergei Golubchik Date: Sun Aug 30 11:18:48 2015 +0200 test cleanup: use --replace_result correctly * replace binlog positions where they are calculated (instead of --disable_query_log) * don't replace binlog positions when they're hard-coded anyway commit 55d7871f987d759b888d4bffc3a729e67d1788da Author: Sergei Golubchik Date: Fri Aug 21 23:20:35 2015 +0200 test cleanup: remove Format_description_log_event size dependency 1. use include/show_binlog_events.inc instead of SHOW BINLOG EVENTS 2. use include/show_relaylog_eventc.inc too 3. in all other places where a number might appear in the result file, include binlog_start_pos.inc, calculate the position like pos=`select $binlog_start_pos + 100`; and use replace_result $pos commit 8aa473c4b9957c7c365cf50ade520ff397d6afb1 Author: Sergei Golubchik Date: Fri Aug 21 23:16:54 2015 +0200 fix show_relaylog_events.inc to work for multisource and fix SHOW RELAYLOG 'src_name' EVENTS to respect src_name commit 274a47a50be586b72e1954a1cb3bc6fba402baa2 Author: Sergei Golubchik Date: Mon Aug 31 17:38:31 2015 +0200 cleanup: remove Slave_log_event (unused since 2002) commit 2d2286faf3085160dbe345fe403c11c712a358ff Author: Sergei Golubchik Date: Sun Aug 30 15:03:55 2015 +0200 cleanup: use enum_binlog_checksum_alg, not uint8 * fix unireg.h includes * use enum_binlog_checksum_alg for binlog checksum variables, not uint8 commit 86b06a0e52b7583858df81fec8bd57cfe02b9999 Author: Sergei Golubchik Date: Fri Sep 4 00:44:34 2015 +0200 cleanup: simplify nested multiline ?(?:(?:)): commit 7b54dec1c68ee70a8b0a56b6fb9bc3aa27256438 Author: Sergei Golubchik Date: Mon Aug 31 16:23:01 2015 +0200 cleanup: comments commit 89e08bf300545f9fec5c3dcd700507293a2dab13 Author: Sergei Golubchik Date: Sun Aug 30 14:59:12 2015 +0200 cleanup: reformat * reformat long lines * remove useless 'const' * remove unneeded do { ... } while(false} wrapper * remove unneeded method commit 5018a6606f1c863b197812e3f3c1b8b18134c638 Author: Sergei Golubchik Date: Mon Aug 17 18:38:30 2015 +0200 cleanup: Log_event::read_log_event() There are three Log_event::read_log_event() methods: 1. read the event image from IO_CACHE into String 2. create Log_event from the in-memory event image 3. read the event image from IO_CACHE and create Log_event The 3rd was reading event image into memory and invoking the 2nd to create Log_event. Now the 3rd also uses the 1st to read the event image from IO_CACHE into memory, instead of duplicating its functionality. commit 08687f7ef3ccb59ca78a3d037e9db5a514145d64 Author: Sergei Golubchik Date: Wed Sep 2 17:03:19 2015 +0200 cleanup: my_checksum remove my_crc_dbug_check (gdb can do it itself). use 0 instead of my_checkum(0, 0, 0) - just as 10.0 does now. commit 66b9a9409c73e298d6ceb668783a7cdd5ee85a69 Author: Sergei Golubchik Date: Fri Sep 4 10:32:52 2015 +0200 New encryption API. Piece-wise encryption. Instead of encrypt(src, dst, key, iv) that encrypts all data in one go, now we have encrypt_init(key,iv), encrypt_update(src,dst), and encrypt_finish(dst). This also causes collateral changes in the internal my_crypt.cc encryption functions and in the encryption service. There are wrappers to provide the old all-at-once encryption functionality. But binlog events are often written piecewise, they'll need the new api. commit d94a982adbc21d74c0202f1ef64119baeb27c597 Author: Sergei Golubchik Date: Tue Sep 1 14:36:41 2015 +0200 my_crypt unittest commit e238d6c51319b6074dfe4a0a605e12ba6bee71f2 Author: Sergei Golubchik Date: Sun Aug 16 22:22:52 2015 +0200 String::release and String::reset methods Rename reassociate to reset and create an inverse method release. Method names are chosen to match std::unique_ptr methods. commit 4569a895f9b978a94c805ee2f2ae66bfb9a2ee70 Author: Sergei Golubchik Date: Tue Aug 11 13:03:25 2015 +0200 simplify and unify my_safe_alloca usage commit b6776b3ca5498f8b9184f142056d2d0ce5e10fdc Author: Sergei Golubchik Date: Tue Sep 1 18:54:23 2015 +0200 package new SELinux/AppArmor policies instead of old ones commit a0114b86274258af56803f6b6001174cc52eb26f Author: Sergei Golubchik Date: Tue Sep 1 22:00:26 2015 +0200 cmake: don't repeat yourself make repeated cmake runs less verbose: * remove few not very useful MESSAGE's * only run pkg_check_modules() if there's no cached result * only print QQGraph messages on the first run commit e74f91dfd7986a63e73e72b8a1fbeaa2822d8f1e Author: Sergei Golubchik Date: Tue Sep 1 21:58:10 2015 +0200 cmake: always use the same function to test for compiler flags Fix all cmake tests (including plugin) to use MY_CHECK_AND_SET_COMPILER_FLAG. And fix that function to be compatible with cmake 3.0. This way flag checks are correctly cached (even in cmake 3.0) and properly reused. commit efbd4bb039060e9cc7a82467c36307367f4013ec Author: Sergei Golubchik Date: Thu Aug 13 09:22:01 2015 +0200 cmake: fix warnings when PLUGIN_MROONGA=NO commit d33c8831e8279cf03df8dd5ea063eeb53d369725 Author: Sergei Golubchik Date: Fri Sep 4 08:47:29 2015 +0200 more 32-bit fixes commit 1a599c79ff9ff1d637b55147f74c0d6818e4ebbd Author: Sergei Golubchik Date: Thu Sep 3 21:51:45 2015 +0200 test fixes for 32bit commit b9fee60871264ea56a5582ca7a436aabdabea6fc Author: Otto Kekäläinen Date: Thu Sep 3 19:09:08 2015 +0300 Revert "Make galera-3 a Recommends instead of Depends in Debian packaging" This reverts commit 6bd94cf54274d54521ece1e50d534777122ff29e. Without galera as a compulsory dependency, test suite will not pass due to failing: wsrep.pool_of_threads wsrep.binlog_format wsrep.mdev_6832 wsrep.mdev_7798 commit 8f6aac81d7363a3187dfa77cbc9d3141a7b2fc78 Author: Sergei Golubchik Date: Thu Sep 3 17:11:18 2015 +0200 fix innodb.innodb_uninstall test to cleanup after itself It caused the following main.innodb_load_xa to fail. commit ce8d4d39acfabc254024ddec9a81cf2852aa6861 Author: Sergei Golubchik Date: Thu Sep 3 16:32:17 2015 +0200 cleanup: comment commit a5b0a32ac3f8278a197add2efa636c6252ce6096 Merge: 09307c443c1 f533b2b462b Author: Sergei Golubchik Date: Thu Sep 3 16:32:00 2015 +0200 Merge branch '10.0-galera' into 10.1 commit 09307c443c173fc2756169290b6ce0ba2f679b9a Author: Sergei Golubchik Date: Thu Sep 3 12:58:53 2015 +0200 clang warning commit 530a6e74819ec14b5fdc42aa588b236ecb9f2fcd Merge: 5088cbf4ed7 4b41e3c7f33 Author: Sergei Golubchik Date: Thu Sep 3 12:58:41 2015 +0200 Merge branch '10.0' into 10.1 referenced_by_foreign_key2(), needed for InnoDB to compile, was taken from 10.0-galera commit 5088cbf4ed7224698678f3eaf406361c6e7db4b8 Author: Alexander Barkov Date: Wed Sep 2 15:56:24 2015 +0400 MDEV-8671 Wrong result for SELECT..WHERE varchar_column=' 1' AND (varchar_column XOR '1') commit 9624b08cf3149701b91538933fb7dc862a7f922e Merge: c104e90eaa1 0671430252c Author: Otto Kekäläinen Date: Wed Sep 2 14:47:44 2015 +0300 Merge branch '10.1' of https://github.com/MariaDB/server into ok-debpkg-10.1 commit 0671430252c597ff623a79cd954afb07eff47e91 Author: Kristian Nielsen Date: Wed Sep 2 11:11:24 2015 +0200 After-merge fix. commit ef82cb7c2cbcd5897c444276c20aed2d96a941a6 Merge: 4f37a861c97 09bfaf3a13d Author: Kristian Nielsen Date: Wed Sep 2 10:53:37 2015 +0200 Merge MDEV-8725 into 10.1 commit 4f37a861c977e333f79c114cdae0e6c3b355bd45 Author: Alexander Barkov Date: Wed Sep 2 11:51:07 2015 +0400 The fix for MDEV-8723 unintentionally broke vcol_supported_sql_funcs_myisam and vcol_supported_sql_funcs_innodb. Moving the test for using CHARSET(), COLLATION(), COERCIBILITY() in virtual column from vcol_supported_sql_funcs_xxx to vcol_blocked_sql_funcs_xxx, as these functions are not supported in virtual columns any longer. Discussed with Sanja on IRC. commit aa1002a35cefcc1851cbfb6b6b60463bda6f9aa3 Author: Alexander Barkov Date: Wed Sep 2 08:20:49 2015 +0400 MDEV-8723 Wrong result for SELECT..WHERE COLLATION(a)='binary' AND a='a' commit c104e90eaa183a0247de0de1b88dc30bdf98475b Author: Otto Kekäläinen Date: Wed Sep 2 04:26:50 2015 +0300 Unify virtual-* package definitions with official Debian packaging Plus minor other fixes to debian/control file, wrap-and-sort, versioned mariadb-common dependency etc. All changes based on comparison with mariadb-10.0 packaging in official Debian repositories. commit 7b344bf940fb7a8b53ead6c860f6ef1cd71d1f43 Author: Otto Kekäläinen Date: Tue Sep 1 23:06:12 2015 +0300 Add MariaDB 10.0 stanzas next to MariaDB 5.5 in debian/control file This should make the provides/breaks/replaces/conflicts lines work properly when upgrading from mariadb-10.0 to mariadb-10.1 commit cc08c134f7790816966d8e08a07fd6213a0cfa80 Author: Otto Kekäläinen Date: Tue Sep 1 23:01:43 2015 +0300 Add MySQL 5.6 stanzas next to MySQL 5.5 in debian/control file This should make the provides/breaks/replaces/conflicts lines work properly when upgrading from mysql-5.6 to mariadb-packages. commit 68810129a0c185f22eaa35f2d917f052ea78748b Author: Alexander Barkov Date: Tue Sep 1 22:48:17 2015 +0400 MDEV-8695 Wrong result for SELECT..WHERE varchar_column='a' AND CRC32(varchar_column)=3904355907 commit 4f0255cbf9df7b0dca507cbdcc753ae7821a47a4 Author: Monty Date: Tue Sep 1 18:40:54 2015 +0300 Fixed errors and bugs found by valgrind: - If run with valgrind, mysqltest will now wait longer when syncronizing slave with master - Ensure that we wait with cleanup() until slave thread has stopped. - Added signal_thd_deleted() to signal close_connections() that all THD's has been freed. - Check in handle_fatal_signal() that we don't use variables that has been freed. - Increased some timeouts when run with --valgrind Other things: - Fixed wrong test in one_thread_per_connection_end() if galera is used. - Removed not needed calls to THD_CHECK_SENTRY() when we are calling 'delete thd'. commit 56aa19989f5800df8a398173727558bfb3ea1251 Author: Monty Date: Mon Aug 31 12:57:46 2015 +0300 MDEV-6152: Remove calls to current_thd while creating Item Part 5: Removing calls to current_thd in net_read calls, creating fields, query_cache, acl and some other places where thd was available commit 8ea9b8c0b168b3e5aad08886477d8726531abcd5 Author: Alexander Barkov Date: Tue Sep 1 19:24:58 2015 +0400 MDEV-8722 The patch for MDEV-8688 disabled equal field propagation for temporal column and BETWEEN and IN Item::cmp_context was inconsistently used in combination with cmp_type() and result_type() in different places of the code. Fixed to use cmp_type() in all places where cmp_context is involved, to avoid unexpected results for temporal data types (which have result_type()==STRING_RESULT and cmp_type==TIME_RESULT). commit bd3864efe47aa9ed7bd32e2df4324fd413a2db7b Merge: b007dfb101a a3c24ee7393 Author: Otto Kekäläinen Date: Tue Sep 1 13:50:04 2015 +0300 Merge branch '10.1' of https://github.com/MariaDB/server into ok-debpkg-10.1 commit a3c24ee7393ef08559b2a559909b42a400bfe692 Author: Alexander Barkov Date: Mon Aug 31 18:18:10 2015 +0400 MDEV-8707 Wrong result for SELECT..WHERE varchar_column=DATE'2001-01-01' AND varchar_column='2001-01-01' commit b007dfb101ab0b1939e90a75bd24abf718218055 Author: Otto Kekäläinen Date: Mon Aug 31 09:18:30 2015 +0300 Typofix: preceeding -> preceding commit e87e26af7d8bbaa3b37008fd29cc61a897abbf94 Merge: 6bd94cf5427 44a99777bfd Author: Otto Kekäläinen Date: Mon Aug 31 09:07:09 2015 +0300 Merge branch '10.1' of https://github.com/MariaDB/server into ok-debpkg commit 6bd94cf54274d54521ece1e50d534777122ff29e Author: Otto Kekäläinen Date: Sun Aug 30 22:59:27 2015 +0300 Make galera-3 a Recommends instead of Depends in Debian packaging Having galera-3 as a Depends stops installation of proceeding on systems where package galera-3 is not available. The server can run fine withouth galera enabled, therefore a more slack relationship is more appropriate. commit 44a99777bfd98b5217fb8a90f318c03f8135bbc3 Author: Alexander Barkov Date: Sat Aug 29 23:08:15 2015 +0400 MDEV-8698 Wrong result for SELECT..WHERE a BETWEEN 'a' AND 'c' COLLATE latin1_bin; commit 787adc61669db9db5e73c2162baccdb9129e32e2 Author: Alexander Barkov Date: Sat Aug 29 21:41:37 2015 +0400 MDEV-8680 Wrong result for SELECT..WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a' The fix for MDEV-8688 fixed MDEV-8680 as well. Just adding a test case. commit f071a12498e47921ce2dcc472ff6dafaf16d4d61 Author: Alexander Barkov Date: Sat Aug 29 19:26:30 2015 +0400 MDEV-8688 Wrong result for SELECT..WHERE varchar_column IN (1,2,3) AND varchar_column=' 1'; commit 09fb51255aea93025d782641906a552040d008c9 Author: Alexander Barkov Date: Sat Aug 29 18:45:04 2015 +0400 Clean-up: removing duplicate code: removing Item_func_in::compare_collation() and Item_func_between::compare_collation(), and adding Item_func_opt_neg::compare_collation() instead. commit b4e56a5658bf316f3c73af2b62a4c6843222474a Author: Alexander Barkov Date: Sat Aug 29 16:31:11 2015 +0400 Moving common members of Item_func_in and Item_func_between to their parent Item_func_opt_neg. A pre-requisite patch for a number of upcoming equal field propagation related bug fixes. commit 3ba2a958beaf8ce5b4db23739b310ebad606d993 Author: Alexander Barkov Date: Fri Aug 28 17:03:09 2015 +0400 MDEV-8694 Wrong result for SELECT..WHERE a NOT LIKE 'a ' AND a='a' Note, the patch for MDEV-8661 unintentionally fixed MDEV-8694 as well, as a side effect. Adding a real clear fix: implementing Item_func_like::propagate_equal_fields() with comments. commit 3bca8db4f90cd9a505b99009c44594c0fb1ec353 Author: Monty Date: Thu Aug 27 10:07:32 2015 +0300 MDEV-6152: Remove calls to current_thd while creating Item - Part 4: Removing calls to sql_alloc() and sql_calloc() Other things: - Added current_thd in some places to make it clear that it's called (easier to remove later) - Move memory allocation from Item_func_case::fix_length_and_dec() to Item_func_case::fix_fields() - Added mem_root to some new calls - Fixed some wrong UNINIT_VAR() calls - Fixed a bug in generate_partition_syntax() in case of errors - Added mem_root to argument to new thread_info - Simplified my_parse_error() call in sql_yacc.yy commit 3cb578c001b2feabd2410f281d20eb6566371453 Author: Monty Date: Mon Aug 24 14:42:07 2015 +0300 MDEV-6152: Remove calls to current_thd while creating Item - Part 3: Adding mem_root to push_back() and push_front() Other things: - Added THD as an argument to some partition functions. - Added memory overflow checking for XML tag's in read_xml() commit a273f016a1a8af8d3b60af804675cd4fd706132e Author: Otto Kekäläinen Date: Wed Aug 12 23:03:45 2015 +0200 Fix spelling errors commit ba340d8c47657774ba6d69bfc918dbebaaef6086 Author: Alexander Barkov Date: Wed Aug 26 23:17:34 2015 +0400 Making Item_field::can_be_substituted_to_equal_item() private. commit 1b6b44b6b52e9f86bb32669a68bd7c067bc63d49 Author: Alexander Barkov Date: Wed Aug 26 22:32:01 2015 +0400 MDEV-8661 Wrong result for SELECT..WHERE a='a' AND a='a' COLLATE latin1_bin MDEV-8679 Equal field propagation is not used for VARCHAR when it safely could commit c0b7bf2625a305eae54e3065edffcd7a2da206b2 Author: Jan Lindström Date: Wed Aug 26 18:07:34 2015 +0300 MDEV-8683: Bunch of tests fail in buildbot on new InnoDB variables commit 3ed384baf0f3bf6ffbb5badb0ccc301e028dd289 Merge: cf154cc9d23 f66ef6a05d1 Author: Jan Lindström Date: Wed Aug 26 14:59:33 2015 +0300 Merge pull request #94 from ericherman/evict_table_metric Evict table metric commit f66ef6a05d151a884acbc861dbbe0288232317cd Author: Eric Herman Date: Wed Aug 26 11:50:47 2015 +0200 Add lru evict count for the idle loop (xtradb) commit b7abdcf5c7389d1b4b5b3acfcae15373861e03b8 Author: Eric Herman Date: Wed Aug 26 11:48:19 2015 +0200 Add lru evict count for the idle loop (innobase) port of work by dveeden: https://github.com/dveeden/mysql-server/commit/555ca34958a8ed191f34eeb2333e0d7c30e12fce commit df32920ba00a2b3615f3b6ed06d5bf4581fa254c Author: Eric Herman Date: Wed Aug 26 10:26:19 2015 +0200 Add eviction count for table cache lru cleanup (xtradb) commit 4f4373fe31542342849e1261f661b1c7795475a2 Author: Eric Herman Date: Wed Aug 26 10:02:06 2015 +0200 Add eviction count for table cache lru cleanup (innobase) This is a port of dveeden's work: https://github.com/dveeden/mysql-server/commit/e9d00e859e3854bf8f71873caa69c060e670350b (Mostly changes in linenumbers, a bit of whitespace fix-up.) commit cf154cc9d23aa050157d891443a16c90260fbd74 Author: Elena Stepanova Date: Wed Aug 26 02:09:57 2015 +0300 MDEV-8676 Some storage_engine tests fail on 10.1 - foreign_keys: adjusted according to code changes; - type_spatial: adjusted according to code changes; - type_spatial_indexes (for MyISAM): disabled till MDEV-8675 is fixed commit f533b2b462b5b73630245172b627506d36f95b39 Merge: c6a0cbdac6d 472d66320d8 Author: Nirbhay Choubey Date: Tue Aug 25 11:15:45 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit 871259f171637dbcdae95115f82374ff0edfcd86 Author: Jan Lindström Date: Tue Aug 25 16:15:22 2015 +0300 MDEV-8665: innodb.innodb_bug14147491 fails in buildbot on some debug builds Added MTR suppressions for database corruption that is intentionally caused in test. commit 27444871a8f30e49fd8f52acdade55e723cacae6 Author: Sergey Vojtovich Date: Tue Aug 25 11:46:31 2015 +0400 UNINIT_VAR() fixes Restored self-initialization version of UNINIT_VAR() for all gcc versions. Fixed UNINIT_VAR() usage: it is supposed to be used along with declaration. commit c18110bd52770eec7427ca4ef5174118a9db0872 Author: Elena Stepanova Date: Sun Aug 23 00:57:57 2015 +0300 Increase the version number commit 175ef097e201367f0f5ea98886d8f014584aa586 Author: Olivier Bertrand Date: Sat Aug 22 18:11:42 2015 +0200 Handle is_null and error arguments Fix wrong calling sequence for RESULT_INT and RESULT_REAL functions. modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h commit f741fcc9e52c30b5ddecdea95dac50d2a6110df1 Author: Olivier Bertrand Date: Sat Aug 22 12:13:37 2015 +0200 Handle constant function and argument modified: storage/connect/jsonudf.cpp Record result of json test modified: storage/connect/mysql-test/connect/r/json.result commit 472d66320d8538f2d1850bb50caceed18181024a Author: Nirbhay Choubey Date: Sat Aug 22 01:18:02 2015 -0400 MDEV-8149: Random mtr test failures during warning check Do not replicate commands from check-warnings.test to other nodes in the cluster. commit 98ba2bf424eec2e47d7ed0284999a637131b0c07 Author: Alexander Barkov Date: Fri Aug 21 17:08:55 2015 +0400 Clean-up: moving compare_collation() from Item to Item_bool_func. commit 1bae0d9e5669c2d03209082142e892417e24d09a Author: Monty Date: Thu Aug 20 15:24:13 2015 +0300 Stage 2 of MDEV-6152: - Added mem_root to all calls to new Item - Added private method operator new(size_t size) to Item to ensure that we always use a mem_root when creating an item. This saves use once call to current_thd per Item creation commit 31e365efae28ba3208e80511c4d18fe11a79541a Author: Sergey Vojtovich Date: Tue Aug 11 11:18:38 2015 +0400 MDEV-8010 - Avoid sql_alloc() in Items (Patch #1) Added mandatory thd parameter to Item (and all derivative classes) constructor. Added thd parameter to all routines that may create items. Also removed "current_thd" from Item::Item. This reduced number of pthread_getspecific() calls from 290 to 177 per OLTP RO transaction. commit 4ee28865f67c980848bb62f0009440be73ebee7c Author: Nirbhay Choubey Date: Thu Aug 20 20:55:52 2015 -0400 MDEV-5146 : Bulk loads into partitioned table not working When wsrep is enabled, for any update on innodb tables, the corresponding keys are appended to galera's transaction writeset (wsrep_append_keys()). However, for LOAD DATA, this got skipped if binary logging was disabled or it was non-ROW based. As a result, while the updates from LOAD DATA on non-partitioned tables replicated fine as wsrep implicitly enables binary logging (if not enabled, explicitly), the same did not work on partitioned tables as for partitioned tables the binary logging gets disabled temporarily (ha_partition::write_row()). Fixed by removing the unwanted conditions from the check. Also backported some changes from 10.0-galera to make sure wsrep_load_data_splitting affects LOAD DATA commands only. commit ccd39b2dd3315ce6a7844676907097325b39c0b8 Author: Nirbhay Choubey Date: Thu Aug 20 09:55:54 2015 -0400 Backport partition tests from 10.0-galera. commit ffc0f5b3de2b322dc05a3646243e0028c6691a1c Author: Olivier Bertrand Date: Wed Aug 19 17:52:33 2015 +0200 Add new UDF noconst. modified: storage/connect/noconst.c Fix a few bugs in json udf's. modified: storage/connect/jsonudf.cpp commit 98bebad67274a87517a94b204cd8684a2e48d8c6 Author: Nirbhay Choubey Date: Tue Aug 18 17:03:28 2015 -0400 Fix for a typo. commit 69ce20c4bdcfc32b3e78a4108313031688204cb9 Author: Olivier Bertrand Date: Tue Aug 18 12:03:29 2015 +0200 Add new json UDF Json_Object_List. modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h commit 4374da63f03abc472f68f42e4e93261a18bfe417 Merge: 5fe8b747e9e dfac82e44dd Author: Monty Date: Tue Aug 18 11:27:00 2015 +0300 Merge /my/maria-10.1-default into 10.1 commit dfac82e44dd665ab218348765df2b519db4c10dc Author: Monty Date: Tue Aug 18 11:17:54 2015 +0300 Fixed failing tests and compiler warnings - UNINIT_VAR() was required for 4.8.3 on openSUSE 13.2 commit 6b20342651bb5207b6c125d2d11b664a1bebcc41 Author: Monty Date: Tue Aug 18 00:42:08 2015 +0300 Ensure that fields declared with NOT NULL doesn't have DEFAULT values if not specified and if not timestamp or auto_increment In original code, sometimes one got an automatic DEFAULT value in some cases, in other cases not. For example: create table t1 (a int primary key) - No default create table t2 (a int, primary key(a)) - DEFAULT 0 create table t1 SELECT .... - Default for all fields, even if they where defined as NOT NULL ALTER TABLE ... MODIFY could sometimes add an unexpected DEFAULT value. The patch is quite big because we had some many test cases that used CREATE ... SELECT or CREATE ... (...PRIMARY KEY(xxx)) which doesn't have an automatic DEFAULT anymore. Other things: - Removed warnings from InnoDB when waiting from semaphore (got this when testing things with --big) commit 92fd65832727162a003647b4c48344dc9567ce84 Author: Monty Date: Fri Jul 17 16:27:41 2015 +0300 MDEV-8475 stale .TMM file causes MyiSAM and Aria engine to stop serving the table Issue was two fold (both in MyISAM and Aria) - optimize and repair failed if there was an old .TMM file around. As optimized and repair are protected against multiple execution, I decided to change so that we just truncate the file if it exists. - I had missed to check for error condition if creation of the temporary index file failed. This caused the strange behaviour that it looked as if optimized would have worked once. commit 5fe8b747e9e3440f2f746accca0eb11e287a6713 Author: Alexander Barkov Date: Mon Aug 17 15:53:43 2015 +0400 Adding EXPLAIN SELECT tests for: MDEV-7649 wrong result when comparing utf8 column with an invalid literal This is a preparatory patch for: MDEV-8433 Make field<'broken-string' use indexes commit c6a0cbdac6dbb7134164732bf7a6096d82e1f0a1 Merge: 5cf737c07a9 fe757e006c6 Author: Nirbhay Choubey Date: Fri Aug 14 14:59:43 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit fe757e006c676bc1cfb713f26fbd43e608531458 Author: Nirbhay Choubey Date: Fri Aug 14 13:45:52 2015 -0400 Fix for some failing tests. commit 55cb3d8b44d6651e587190c49df1247b8ec02628 Author: Olivier Bertrand Date: Fri Aug 14 17:07:50 2015 +0200 Add new json UDFs and make possible to use a json file name as json item. modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/t/json.test modified: storage/connect/tabjson.cpp Fix wrong calculation of Estimated Length when the table has virtual or special columns modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp Fix wrong handling of null values in ODBCCOL::ReadColumn modified: storage/connect/tabodbc.cpp Fix crash when SetValue_char is called with a negative length value. This can happen in odbconn.cpp when SQLFetch returns SQL_NO_TOTAL (-4) as length. modified: storage/connect/odbconn.cpp modified: storage/connect/value.cpp commit 78b80cb6baa3f9c4e58355888e8c6defab186440 Author: Alexander Barkov Date: Fri Aug 14 18:34:41 2015 +0400 Adding MY_CHARSET_HANDLER::native_to_mb(). This is a pre-requisite patch for: - MDEV-8433 Make field<'broken-string' use indexes - MDEV-8625 Bad result set with ignorable characters when using a prefix key - MDEV-8626 Bad result set with contractions when using a prefix key commit bfb6ea02321f963c2b5f5beb333283585d3d1be3 Author: Jan Lindström Date: Fri Aug 14 11:09:06 2015 +0300 MDEV-8589: Non-default ENCRYPTION_KEY_ID is ignored upon reading a table Analysis: Problem was that when a new tablespace is created a default encryption info is also created and stored to the tablespace. Later a new encryption information was created with correct key_id but that does not affect on IV. Fix: Push encryption mode and key_id to lower levels and create correct encryption info when a new tablespace is created. This fix does not contain test case because, currently incorrect encryption key causes page corruption and a lot of error messages to error log causing mtr to fail. commit a80753594a37538a35df7c02ae80da624578dec4 Author: Jan Lindström Date: Fri Aug 14 15:49:56 2015 +0300 MDEV-8591: Database page corruption on disk or a failed space, Assertion failure in file buf0buf.cc line 2856 on querying a table using wrong default encryption key Improved error messaging to show based on original page before encryption is page maybe encrypted or just corrupted. commit 7145ca477ce7e574a6780f0675c785d3ff75e279 Author: Alexander Barkov Date: Fri Aug 14 11:11:39 2015 +0400 Recording range_mrr_icp.result (forgotten in the patch for MDEV-8613) commit 5cf737c07a959fa3f03fb3c6d0a71ac442e59073 Author: Nirbhay Choubey Date: Fri Aug 14 02:46:32 2015 -0400 MDEV-8464 : ALTER VIEW not replicated in some cases (Additional fix in 10.0-galera branch) THD's lex->definer initially holds "*current_user" for CURRENT_USER(). Use get_current_user() to get the real current user. commit 52f1543ef1e1dc48a26076788e18e223cb34d872 Author: Nirbhay Choubey Date: Fri Aug 14 01:37:21 2015 -0400 Fix for a memory leak. commit e996304189999eae8aeaa6995a80bf486833ed87 Author: Nirbhay Choubey Date: Fri Aug 14 01:31:38 2015 -0400 MDEV-8617: Multiple galera tests failures with --ps-protocol (Additional fixes in 10.0-galera branch) * Reset THD's PS members before returning when node is not ready. * Update galera_suspend_slave.test commit e99bc0d1e21a2048b8fda1719e778ee8ffd1adcc Author: Alexander Barkov Date: Fri Aug 14 09:23:03 2015 +0400 Removing unused String_copier::copy_fix. Fixing misleading comments in String_copiers::well_formed_copy(). commit 8a18bb969432242b7431231ff9cd1fb6fc8a707f Merge: 91acc8b16fd c18e0dab8a2 Author: Nirbhay Choubey Date: Fri Aug 14 01:17:57 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit c18e0dab8a24db9d8f84fef328c27a28939a6ef5 Author: Nirbhay Choubey Date: Fri Aug 14 00:01:18 2015 -0400 MDEV-8617: Multiple galera tests failures with --ps-protocol In galera cluster, when myisam replication is enabled (wsrep_replicate_myisam=ON), DML statements are replicated in open_tables(). However, in case of prepared statements, for an INSERT, open_tables() gets invoked twice. Once for COM_STMT_PREPARE (to validate and prepare INSERT) and later for COM_STMT_EXECUTE. As a result, the command gets replicated twice. Same happens for REPLACE, UPDATE and DELETE commands. Fixed by adding a check to not replicate during 'prepare' phase. Also changed the order of conditions to make it more efficient. Lastly, in order to support wsrep_dirty_reads, made changes to allow COM_STMT_XXX commands to continue past initial check even when wsrep is not ready. commit 0750b2df37fb7d6d28e192e3046b4c406ff42779 Author: Alexander Barkov Date: Thu Aug 13 16:41:02 2015 +0400 MDEV-8613 Full table scan for WHERE indexed_varchar_column <=> 'bad-character' commit 60985e5375ae7e8143f0ae4f6c70f1833d268f76 Author: Alexander Barkov Date: Thu Aug 13 14:25:51 2015 +0400 MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan commit e998dffde7af2ac8b751b7d4ad22fd4bf08489f9 Author: Nirbhay Choubey Date: Wed Aug 12 17:47:25 2015 -0400 MDEV-8598 : Failed MySQL DDL commands and Galera replication RENAME TABLE, unlike other DDLs, was getting replicated before the access check was performed. As a result, the command could get get replicated and thus executed on other nodes, even if it fails on the originating node due to permission issues. Fixed by moving the logic to check user privileges before replicating the command. commit 9d884fd3d3fadd5ad31ecfee915877b98258e546 Author: Alexander Barkov Date: Wed Aug 12 17:28:45 2015 +0400 MDEV-8599 "WHERE varchar_field LIKE temporal_const" does not use range optimizer commit 6e091dc7ff06f9ff0bbe834f6be338f5b695ed81 Author: Alexander Barkov Date: Wed Aug 12 14:43:17 2015 +0400 Splitting a static function get_func_mm_tree() into virtual methods in Item_bool_func descendants, which gives some advantages: - Removing the "bool inv" parameter, as its now available through "this" for Item_func_between and Item_func_in, and is not needed for the other Item_func_xxx. - Removing casts - Making a step to data types plugings commit 9a64262db2b5b7195fbfb048f814ca25a0b7a526 Author: Alexander Barkov Date: Wed Aug 12 10:52:12 2015 +0400 Removing RANGE_OPT_PARA::cond Its initialization in Item_func_xxx::get_mm_tree() is redundant: the pointer to the current function is passed to get_mm_tree() anyway. commit 86a3613d4e981c341e38291c9eeec5dc9f836fae Author: Alexander Barkov Date: Mon Aug 10 11:46:41 2015 +0400 MDEV-8441 Bad SHOW CREATE TABLE output for a table with a virtual column commit 840aefc6a34a57c572fc6c37ea16648e8dd6a1e6 Author: Nirbhay Choubey Date: Sun Aug 9 14:16:50 2015 -0400 MDEV-8590: Fix embedded build failure commit cd1a11ace3b4a4b034307590d58cc7a9d37004f6 Author: Nirbhay Choubey Date: Sat Aug 8 15:04:15 2015 -0400 MDEV-7205 : Galera cluster & sql_log_bin = off don't work While sql_bin_log=1(0) is meant to control binary logging for the current session so that the updates to do(not) get logged into the binary log to be replicated to the async MariaDB slave. The same should not affect galera replication. That is, the updates should always get replicated to other galera nodes regardless of sql_bin_log's value. Fixed by making sure that the updates are written to binlog cache irrespective of sql_bin_log. Added test cases. commit 91acc8b16fdd8409765f32b5453851366552a709 Merge: 4c69dc81169 0403790722e Author: Nirbhay Choubey Date: Sat Aug 8 14:21:22 2015 -0400 Merge tag 'mariadb-10.0.21' into 10.0-galera commit 46ad86f6a35aff59ecb68a23dba228e5796e935a Author: Jan Lindström Date: Sat Aug 8 12:49:20 2015 +0300 MDEV-8582: innodb_force_primary_key option does not force PK or unique key Analysis: Handler used table flag HA_REQUIRE_PRIMARY_KEY but a bug on sql_table.cc function mysql_prepare_create_table internally marked secondary key with NOT NULL colums as unique key and did not then fail on requirement that table should have primary key or unique key. commit 3307eaab68bf4818116a4fdd10b1a4f3427ea2ae Author: Jan Lindström Date: Sat Aug 8 10:39:01 2015 +0300 MDEV-8582: innodb_force_primary_key option does not force PK or unique key Analysis: Handler table flag HA_REQUIRE_PRIMARY_KEY alone is not enough to force primary or unique key, if table has at least one NOT NULL column and secondary key for that column. Fix: Add additional check that table really has primary key or unique key for InnoDB terms. commit 05bcb088bf52b3c23c358ae129278146d1dba213 Author: Jan Lindström Date: Sat Aug 8 10:09:45 2015 +0300 MDEV-8583: Empty lines in encryption logging Removed extra line break. commit 18b0176a058d7e6cc9a4f6886f32460345df8d0c Author: Jan Lindström Date: Fri Aug 7 15:21:20 2015 +0300 MDEV-8410: Changing file-key-management to example-key-management causes crash and no real error MDEV-8409: Changing file-key-management-encryption-algorithm causes crash and no real info why Analysis: Both bugs has two different error cases. Firstly, at startup when server reads latest checkpoint but requested key_version, key management plugin or encryption algorithm or method is not found leading corrupted log entry. Secondly, similarly when reading system tablespace if requested key_version, key management plugin or encryption algorithm or method is not found leading buffer pool page corruption. Fix: Firsly, when reading checkpoint at startup check if the log record may be encrypted and if we find that it could be encrypted, print error message and do not start server. Secondly, if page is buffer pool seems corrupted but we find out that there is crypt_info, print additional error message before asserting. commit 5b9dd459fb94d44b8852870e89a64d0f953f2eb3 Merge: af2f7ce3f91 fa51f70dc68 Author: Nirbhay Choubey Date: Fri Aug 7 17:02:51 2015 -0400 Merge tag 'mariadb-5.5.45' into 5.5-galera commit 3025c42605af4d3341d0df155525dc174fe10843 Author: Sergei Petrunia Date: Fri Aug 7 17:41:35 2015 +0300 Make ANALYZE FORMAT=JSON show execution time for filesort element. commit 4c69dc8116950d6bf0b09bfbc31a86d89831a364 Author: Nirbhay Choubey Date: Thu Aug 6 00:36:40 2015 -0400 MDEV#7501 : alter table exchange partition is not replicated in galera cluster Added logic to replicate ALTER TABLE EXCHANGE PARTITION to other nodes in the cluster. commit afd59b575a75ebbc57f71ce2865fdff85e3e233b Merge: dbd205797b7 5ca061e65f4 Author: Kristian Nielsen Date: Tue Aug 4 15:47:30 2015 +0200 Merge branch 'mdev8302-3' into 10.1 commit dbd205797b7ee4373972d9d2014bf24e5a01b094 Merge: 35a019837e0 9b9c5e890c1 Author: Kristian Nielsen Date: Tue Aug 4 12:39:22 2015 +0200 Merge MDEV-8302 into 10.1 commit 82cecb1c983737191804dfd170cafdf436158f80 Author: Nirbhay Choubey Date: Fri Jul 31 11:21:57 2015 -0400 MDEV-8240 : Unknown option 'table_type' when using Connect Engine on MGC Fix for 'reorder' compiler warning. commit 0abde01f5e9a61cc482711b9b5f04a9815401ddb Author: Nirbhay Choubey Date: Wed Jul 29 18:04:40 2015 -0400 MDEV-8240 : Unknown option 'table_type' when using Connect Engine on MGC MariaDB Galera server's (MGC) handlerton & THD structures have some extra wsrep members as compared to MariaDB server. As a result, when plugins from packages, built along with MariaDB server like Connect & OQGraph are loaded and accessed by MGC, the objects may get initialized improperly. Fixed by moving the wsrep-additions to the end of the structure. commit 35a019837e0290af45962484b4ddc1d6a92ac654 Author: Sergey Vojtovich Date: Mon Feb 9 13:41:24 2015 +0400 MDEV-5096 - Wrong error message on attempt to kill somebody else's query ID Attempting to kill query owned by different user now returns better error: "You are not owner of query N" instead of "You are not owner of thread N". commit d517886482158f7f4525b55b7899ad6bab882768 Merge: 53623d932a8 26f249f6db8 Author: Sergei Golubchik Date: Thu Jul 23 15:48:26 2015 +0200 Merge branch 'bb-10.1-serg' into 10.1 commit 26f249f6db8098f161e19a08930d3c227281ea9a Author: Sergei Golubchik Date: Thu Jul 23 10:55:24 2015 +0200 compilation failures on Windows commit 0ae8bae98fd6e4c1074021a9340feaa69e0b361a Author: Sergei Golubchik Date: Wed Jul 22 18:46:36 2015 +0200 fix for 32-bit tests commit 3b040a06ede62553560bd374b727c6187e5629a7 Author: Olivier Bertrand Date: Wed Jul 22 15:49:38 2015 +0200 Fix (?) retrieving integer arguments in JSON UDF's modified: storage/connect/jsonudf.cpp commit f425c71aba5a52e603fde8582838e3d89771c032 Author: Otto Kekäläinen Date: Wed Jul 22 13:53:28 2015 +0300 Merge documentation parts in debian/control from downstream commit 5a3d75220994ca4c54ecb1283f24a30c37b7a63b Author: Otto Kekäläinen Date: Wed Jul 22 13:45:43 2015 +0300 Make autobake-deb.sh to omit .git directory from source tar.gz This is useful for developers who run autobake-deb.sh directly from the source tree as the resulting source tar package will be 90% smaller and all operations regarding it consequently 10x faster. commit 220b4f2fc2545b7f8448485324db623aff54fee0 Author: Otto Kekäläinen Date: Wed Jul 22 13:15:36 2015 +0300 Merge (most) build dependencies in debian/control with downstream * dpatch cannot be removed yet, as packaging standard isn't updated * we don't want to remove libssl at all, as in upstream we rather use system provided OpenSSL than bundled, non-system updated and less commonly trusted YaSSL * keep versioned dependencies, they might prove helpful when building for multiple distros and releases commit 16be184123c53c738ce962463e50d0ee52208b4f Author: Otto Kekäläinen Date: Wed Jul 22 10:43:55 2015 +0300 Extend debian/control build dependencies to max For tracking purposes this step is committed first before the unnecessary dependencies are trimmed away. libpcre3-dev (>= 2:8.35-3.2~) is however omitted (compared to downstream Debian packaging) as it is not available in precise and we don't want to break builds on precise yet. commit 61e31aa5d46c850ce3cd1679f9ed32d610e3d794 Author: Otto Kekäläinen Date: Wed Jul 22 00:24:29 2015 +0300 Remove files from debian/* that are unrelevant for this upstream repo * README and NEWS are very old and mostly plain wrong and not needed * Lintian-overrides are relevant only in actual Debian QA systems * watch file was plain wrong and anyway relevant only in downstream distros commit 6809fdb7413473bd94385f0d13680ee26c17661a Author: Otto Kekäläinen Date: Tue Jul 21 23:37:05 2015 +0300 Update autobake.sh to match control file location. Drop lucid and squeeze support. commit 53623d932a89dd4760fd28db42956b341ac451ed Author: Jan Lindström Date: Wed Jul 22 08:42:52 2015 +0300 MDEV-8522: InnoDB: Assertion failure in file fil0fil.cc line 475 Analysis: In fil_crypt_space_needs_rotation we first make sure that tablespace is found and then separately that it is normal tablespace. Thus, tablespace could be dropped between these two functions calls. Fix: If space is not found from fil_system return tablespace type ULINT_UNDEFINED and naturally do not continue rotating space. commit af9509d0d8edafa1f5c4896cc75165a378649dfe Author: Otto Kekäläinen Date: Tue Jul 21 23:24:05 2015 +0300 debian/*: wrap and sort for cleaner diffs commit 82e64fde07caa9cc2e175fadeda72f3948aee437 Author: Otto Kekäläinen Date: Tue Jul 21 23:13:05 2015 +0300 Remove debian/dist/* and have just one version Use the slightly better Ubuntu version in both Ubuntu and Debian and latest versions of Debian don't have problems with AppArmor files included in packaging. commit 62b5a561910f8001c288bcc75c11516a4d061cd3 Author: Jan Lindström Date: Tue Jul 21 12:51:14 2015 +0300 MDEV-8501: encryption.create_or_replace fails in buildbot on P8 builders Analysis: There is race between drop table and encryption threads that could cause encryption thread to enter mutex that has been already released. Fix: When destroying crypt_data first enter the mutex and set crypt data unavailable, then release the memory and clean up the data. This should make the race more unprobable. Additionally, added big_test for create_or_replace as it could fail testcase timeout if you have slow I/O (tested that testcase passes with --mem). commit 3ff9634b43672ed78facacf23ff6785f7fb960b9 Author: Sergei Golubchik Date: Mon Jul 20 20:28:32 2015 +0200 MDEV-8508 mroonga fails embedded tests in 10.1 as a workaround until the bug is fixed don't run mroonga tests in --embedded mode by default commit 3d4c69d22485036425086e4835a42d7c21b74e07 Author: Sergei Golubchik Date: Mon Jul 20 19:47:46 2015 +0200 compiler warning WARN_DEPRECATED_NO_REPLACEMENT(NULL, ...) was causing a warning, because it expanded into NULL->variables.errmsgs[...] commit 82c6b259a59a6c0932f4198fcbfad5865545de25 Merge: e35fd20910a 06913d01626 Author: Sergei Golubchik Date: Mon Jul 20 19:07:59 2015 +0200 Merge https://github.com/Kentoku/MariaDB/tree/10.1 into 10.1 commit e35fd20910ac4c92d70e7b2f96bfe9050985d4c5 Merge: 6d3bd6588e7 6771b818a38 Author: Sergei Golubchik Date: Mon Jul 20 18:14:31 2015 +0200 Null-merge branch 'github/10.0-galera' into 10.1 because the actual merge was already done in dced5146bdfc46e200ba35a86c3c55fb60972e33 as a patch commit af2f7ce3f915c4686ef04294b00c6f4885503f5e Author: Nirbhay Choubey Date: Sun Jul 19 22:51:19 2015 -0400 MDEV-8464 : ALTER VIEW not replicated in some cases In galera, like other DDLs, CREATE/ALTER VIEW commands are recreated and replicated during parsing. The ALGORITHM clause is internally set to VIEW_ALGORITHM_INHERIT if its not explicitly specified by the user. But since its not a valid type to be used in a command, it leads to an assertion failure. The solution is to not include the ALGORITHM clause in the command if its not explicitly specified (or INHERIT). commit 6d3bd6588e725362098054e07f8f5994d5ab4bfa Author: Nirbhay Choubey Date: Sun Jul 19 21:33:12 2015 -0400 MDEV-8492: Windows builds fail on current 10.1 In non-wsrep builds, wsrep_running_threads should be defined to (0). commit c57edf3b9a2743e801858ca2e8c001311076e78f Author: Elena Stepanova Date: Mon Jul 20 00:28:22 2015 +0300 MDEV-8500 sys_vars.sysvars_innodb '32bit,xtradb' fails The version in sysvars_innodb,32bit,xtradb.rdiff was not updated commit 70467884486ffa780eccb8f631c0e467e51f1951 Author: Kristian Nielsen Date: Sun Jul 19 10:31:24 2015 +0200 Fix build failures. commit 13dbb6fa9ed735ff58c368961c642ce643b26784 Merge: d258f5ff043 44c4b2304b0 Author: Kristian Nielsen Date: Sun Jul 19 09:30:36 2015 +0200 Merge MDEV-8496 into 10.1 commit d258f5ff0435cbd8b000226dc7dc3ec4e9b79cbc Author: Elena Stepanova Date: Fri Jul 17 19:20:50 2015 +0300 MDEV-8495 encryption.innodb_first_page fails sporadically in buildbot The test did not wait until the server shuts down commit a392c79552f1a728426b6664f434fe818a894e03 Author: Olivier Bertrand Date: Thu Jul 16 11:05:20 2015 +0200 Fix and Enhance remote indexing: - Apply to ODBC tables as well as MYSQL tables - Fix and enhance the CheckCond routine Make ReadKey and MakeKeyWhere handle all conditions modified: storage/connect/.gitattributes modified: storage/connect/.gitignore modified: storage/connect/connect.cc modified: storage/connect/connect.h modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/mycat.cc modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/xobject.cpp modified: storage/connect/xobject.h modified: storage/connect/xtable.h Add some new tests: storage/connect/mysql-test/connect/r/endian.result storage/connect/mysql-test/connect/r/mysql_index.result storage/connect/mysql-test/connect/t/endian.test storage/connect/mysql-test/connect/t/mysql_index.test commit 0ad00c66d2898b5ce71a2aa166f42623608321ac Author: Monty Date: Thu Jul 16 10:26:01 2015 +0300 Fix for MySQL bug #77448 Inconsistent handling of RAND() in WHERE and HAVING Problem was that for queries of type: select rand() r, rand() p, rand() = rand() from a having r = p The optimizer thought that r = p was same as rand() = rand() and this would always be true. The problem was that when testing if two expressions are equal, we didn't take into account no determinstic functions. The fix is to not compare non deterministic functions as equal. commit 872a953b228e93553ed056d8fa035ff06e884bc8 Author: Monty Date: Wed Jul 15 16:27:14 2015 +0300 MDEV-8469 Add RESET MASTER TO x to allow specification of binlog file nr Other things: - Avoid calling init_and_set_log_file_name() when opening binary log. - Remove newlines early when reading from index file. - Ensure that reset_logs() will work even if thd is 0 (Can happen on startup) - Added thd to sart_slave_threads() for better error handling. commit df0498fd76897c0e034ab3f0598972f0e2419b02 Author: Nirbhay Choubey Date: Tue Jul 14 21:38:17 2015 -0400 Update sys_vars.sys_vars_wsrep result. commit ee9bdcf79aea0fbed7ff9605cc9689f1c8924b21 Author: Nirbhay Choubey Date: Tue Jul 14 17:33:22 2015 -0400 Binlog SE doesn't implement abort_transaction(), so skip warning. commit e2041167346bd91d796c739cf7ab9de052283cb7 Author: Nirbhay Choubey Date: Tue Jul 14 17:21:35 2015 -0400 Check supress_my_ok before sending Ok packet (logic lost during merge). commit 0e2ce3b745e1151462f0d378ddf7c4d87dc285de Author: Nirbhay Choubey Date: Tue Jul 14 17:16:28 2015 -0400 Allow binlog row image column marking even for wsrep binlog emulation. commit dd4d81ddfd36e35b2eac96e07a931276a13db949 Author: Nirbhay Choubey Date: Tue Jul 14 16:58:38 2015 -0400 Update read_pos after reading from the cache. commit dced5146bdfc46e200ba35a86c3c55fb60972e33 Author: Nirbhay Choubey Date: Tue Jul 14 16:05:29 2015 -0400 Merge branch '10.0-galera' into 10.1 commit 75931feabe99595e9659a423e299c4229d3c02ba Author: Alexander Barkov Date: Tue Jul 14 12:00:05 2015 +0400 MDEV-8362 dash '-' is not recognized in charset armscii8 on select where query commit 657f8a8d600a5ae9cd8026286073fd479c2adec7 Author: Alexander Barkov Date: Mon Jul 13 13:16:14 2015 +0400 MDEV-8456 Dead code in Item_cond::fix_fields() and Item_func_between::fix_fields() commit 6771b818a38a72e89d318eb9f1f3a2b8a64f0d5f Author: Nirbhay Choubey Date: Fri Jul 10 19:06:42 2015 -0400 MDEV-8383 : "GRANT role TO user" does not replicate Enable replication of GRANT/REVOKE ROLE commands across galera nodes. commit f195f93903692d4d4b459a8fb7fce3966f0cbbdc Author: Monty Date: Fri Jul 10 12:49:05 2015 +0300 Cleanups, fixed warnings from valgrind, fixed failing tests (because on changes in WSREP initialization) commit 24881437b7e0e50027361a0462126cd1ba0a5061 Author: Monty Date: Fri Jul 10 09:18:17 2015 +0300 Fixed bug found by bar where we didn't properely check length of last argument for BETWEEN This should not have caused any notable errors in most cases. After fix, we are not using keys to solve MIN/MAX if the string used for comparision is longer thant the column- commit 9bb8b74e99adced1ccb38ced24a96cf2d1040f39 Merge: a6c80143871 77803703431 Author: Monty Date: Thu Jul 9 14:47:32 2015 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 Conflicts: sql/item_subselect.cc Fixed also typo in comment commit a6c801438717b815288acb72513f5e42fe736b7b Author: Monty Date: Thu Jul 9 13:09:36 2015 +0300 Speed and code space optimziation: - Cache variables.lc_messages->errmsgs->errmsgs in variables.errmsgs This gives us 15 byte less code space and 2 memory references for any access to language dependent message, of which there are 500 in the server.. commit 77803703431d79f5dcc2b23b3f878dfdbaf01c2b Author: Alexander Barkov Date: Wed Jul 8 19:20:07 2015 +0400 MDEV-8336 The meaning of NO_ZERO_DATE is not clear for DATETIME. In some cases NO_ZERO_DATE did not allow datetime values with zero date part and non-zero time part (e.g. '0000-00-00 10:20:30.123456'). Allowing values of this kind in all known pieces of the code. commit 8154ef4b16fe140a42f3e90903192bb3b0fec041 Author: Nirbhay Choubey Date: Tue Jul 7 22:26:44 2015 -0400 MDEV-7067: Server outputs Galera (WSREP) information, even if Galera is disabled Additional changes : * On startup, do not initialize wsrep if wsrep_on=0. * On shutdown, stop wsrep replication only if > 0 wsrep threads are running. commit b08c4201facca0501a6f6978068aaee9f9638b16 Author: Alexander Barkov Date: Tue Jul 7 15:59:21 2015 +0400 Removing unused String declaration in Create_field::Create_field commit e4f8cea35627a8383d5d2d9b985038c960c0b19f Author: Alexander Barkov Date: Tue Jul 7 09:15:58 2015 +0400 MDEV-8419 utf32: compare broken bytes as "greater than any non-broken character" commit 7332af49e4ce125a5e316e7e0c82d44df4af54c4 Author: Monty Date: Mon Jul 6 20:24:14 2015 +0300 - Renaming variables so that they don't shadow others (After this patch one can compile with -Wshadow and get much fewer warnings) - Changed ER(ER_...) to ER_THD(thd, ER_...) when thd was known or if there was many calls to current_thd in the same function. - Changed ER(ER_..) to ER_THD_OR_DEFAULT(current_thd, ER...) in some places where current_thd is not necessary defined. - Removing calls to current_thd when we have access to thd Part of this is optimization (not calling current_thd when not needed), but part is bug fixing for error condition when current_thd is not defined (For example on startup and end of mysqld) Notable renames done as otherwise a lot of functions would have to be changed: - In JOIN structure renamed: examined_rows -> join_examined_rows record_count -> join_record_count - In Field, renamed new_field() to make_new_field() Other things: - Added DBUG_ASSERT(thd == tmp_thd) in Item_singlerow_subselect() just to be safe. - Removed old 'tab' prefix in JOIN_TAB::save_explain_data() and use members directly - Added 'thd' as argument to a few functions to avoid calling current_thd. commit a5f4412bd44a16ba4d7ed31194716c0b59eecfeb Author: Nirbhay Choubey Date: Mon Jul 6 11:40:56 2015 -0400 Fix embedded result to reflect increased system variable's max value length. commit 3a606ba210a0433229284fbcd26b7e2336f8f6c5 Author: Alexander Barkov Date: Mon Jul 6 18:59:33 2015 +0400 Fixing a bug in MDEV-8418 (utf16, utf16le) and MDEV-8417 (utf8mb4). Fixing non-BMP characters to have the same weight, as it was before MDEV-8418 and MDEV-8417. commit b2e324a21fbf481bccd15f9ee4bab819afefbed6 Author: Alexander Barkov Date: Mon Jul 6 15:50:56 2015 +0400 MDEV-8416 ucs2: compare broken bytes as "greater than any non-broken character" MDEV-8418 utf16: compare broken bytes as "greater than any non-broken character" commit 35d8ac350d97557d06edd1cffe7ecc28fc68930a Author: Alexander Barkov Date: Mon Jul 6 10:47:39 2015 +0400 MDEV-8417 utf8mb4: compare broken bytes as "greater than any non-broken character" commit 8d4d185a08cd758d552d233c26f68af4caa28388 Author: Monty Date: Sun Jul 5 12:40:16 2015 +0300 Simple optimization and removal of compiler warnings commit 86377d078ef130d3da32c5da31131e519822e139 Author: Monty Date: Sun Jul 5 12:39:46 2015 +0300 Fixes done while working on MDEV-4119: Fixed several optimizer issues relatied to GROUP BY: a) Refering to a SELECT column in HAVING sometimes calculated it twice, which caused problems with non determinstic functions b) Removing duplicate fields and constants from GROUP BY was done too late for "using index for group by" optimization to work c) EXPLAIN SELECT ... GROUP BY did wrongly show 'Using filesort' in some cases involving "Using index for group-by" a) was fixed by: - Changed last argument to Item::split_sum_func2() from bool to int to allow more flags - Added flag argument to Item::split_sum_func() to allow on to specify if the item was in the SELECT part - Mark all split_sum_func() calls from SELECT with SPLIT_SUM_SELECT - Changed split_sum_func2() to do nothing if called with an argument that is not a sum function and doesn't include sum functions, if we are not an argument to SELECT. This ensures that in a case like select a*sum(b) as f1 from t1 where a=1 group by c having f1 <= 10; That 'a' in the SELECT part is stored as a reference in the temporary table togeher with sum(b) while the 'a' in having isn't (not needed as 'a' is already a reference to a column in the result) b) was fixed by: - Added an extra remove_const() pass for GROUP BY arguments before make_join_statistics() in case of one table SELECT. This allowes get_best_group_min_max() to optimize things better. c) was fixed by: - Added test for group by optimization in JOIN::exec_inner for select->quick->get_type() == QUICK_SELECT_I::QS_TYPE_GROUP_MIN_MAX item.cc: - Simplifed Item::split_sum_func2() - Split test to make them faster and easier to read - Changed last argument to Item::split_sum_func2() from bool to int to allow more flags - Added flag argument to Item::split_sum_func() to allow on to specify if the item was in the SELECT part - Changed split_sum_func2() to do nothing if called with an argument that is not a sum function and doesn't include sum functions, if we are not an argument to SELECT. opt_range.cc: - Simplified get_best_group_min_max() by calcuating first how many group_by elements. - Use join->group instead of join->group_list to test if group by, as join->group_list may be NULL if everything was optimized away. sql_select.cc: - Added an extra remove_const() pass for GROUP BY arguments before make_join_statistics() in case of one table SELECT. - Use group instead of group_list to test if group by, as group_list may be NULL if everything was optimized away. - Moved printing of "Error in remove_const" to remove_const() instead of having it in caller. - Simplified some if tests by re-ordering code. - update_depend_map_for_order() and remove_const() fixed to handle the case where make_join_statistics() has not yet been called (join->join_tab is 0 in this case) commit 7ab7f5327a11c9d167fe4300b3d4abe38b704f48 Author: Alexander Barkov Date: Fri Jul 3 19:08:18 2015 +0400 Fixing a typo in the previous commit. commit fff30e26c32b8f629bbeb512ff746722525ff7a3 Author: Alexander Barkov Date: Fri Jul 3 18:40:04 2015 +0400 Adding UTF8 related macros to reduce duplicate code. commit aeb8d713f43b8304521629343aa9feb5cd0feae3 Author: Alexander Barkov Date: Fri Jul 3 17:30:15 2015 +0400 Removing unused code in ctype-utf8.c commit 9ad8ff666c4876de270f80f180b42eceac76b6f0 Author: Alexander Barkov Date: Fri Jul 3 17:24:16 2015 +0400 MDEV-8415 utf8: compare broken bytes as "greater than any non-broken character" commit 95d07ee408abd98769093759a076f4665a176d77 Author: Alexander Barkov Date: Fri Jul 3 10:33:17 2015 +0400 MDEV-8215 Asian MB3 charsets: compare broken bytes as "greater than any non-broken character" commit 302bf7c4664b904482ecc133476e822d497b114d Author: Sergei Petrunia Date: Thu Jul 2 13:33:08 2015 +0300 Tabular ANALYZE must get its data from execution tracker commit 28a8ba089fa3ebc11ed6649ee07536c1d30b4791 Author: Jan Lindström Date: Thu Jul 2 12:00:25 2015 +0300 Fix test failure seen on P7/P8 innodb-encrypt-tables update/validate function used incorrect type. commit 64424f98866648900afd2039a21e6e228da1e002 Author: Sergei Petrunia Date: Thu Jul 2 10:24:02 2015 +0300 Update test results commit f0ce8482c1e591a18b280c5f8fa82c4c98142e8a Author: Nirbhay Choubey Date: Wed Jul 1 22:52:59 2015 -0400 Adjust result files to reflect increased system variable's max value length. commit 06913d016268c4d0d7e19d19cbe6ca96a7f20e18 Author: Kentoku SHIBA Date: Thu Jul 2 04:12:21 2015 +0900 Update Mroonga to the latest version on 2015-07-02T04:12:21+0900 commit 031930489360b24032fd151c71292026b3747f32 Merge: 9d2aa2b3093 447416d1f39 Author: Sergei Petrunia Date: Wed Jul 1 20:11:43 2015 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 9d2aa2b3093e315f02e42943589f47447c67bbd8 Author: Sergei Petrunia Date: Wed Jul 1 20:03:29 2015 +0300 MDEV-7811: EXPLAIN/ANALYZE FORMAT=JSON should show subquery cache Fixes over the original patch: - Fix variable/class/other names - Fix the JSON output to be in line with the output of other JSON constructs we produce commit 447416d1f390511fbf39c5076dd8a914f7444ec1 Author: Jan Lindström Date: Wed Jul 1 16:23:22 2015 +0300 MDEV-8406: Test failure on encryption.innodb-page_encryption_log_encryption in P7/P8 Used wrong type for encryption_key_id and page_compression_level in table options. Make explicit casts for calls also. commit 93198fefe0a856032e694def48a460780811228b Author: VicenÈ›iu Ciorbaru Date: Wed Jul 1 16:22:41 2015 +0300 [MDEV-6877] Update test results to accound for binlog_row_image variable. mysqld--help was not updated for binlog row image. commit f35386d6f3809e0dbe28ec5d1da152a03048e4f6 Author: Alexander Barkov Date: Wed Jul 1 15:37:52 2015 +0400 Checking in range_mrr_icp.result forgotten in the previous patch. commit 92627e74cad75bdb318dab9542310e889c17e748 Author: Jan Lindström Date: Wed Jul 1 10:20:16 2015 +0300 Add show warnings to test to find out the reason for create failure. commit c6aee27b73232fc6ba3e8b55adbb0abba4f0171b Author: Oleksandr Byelkin Date: Wed Mar 25 18:27:10 2015 +0100 MDEV-7811: EXPLAIN/ANALYZE FORMAT=JSON should show subquery cache commit 498a264d19f041c36d71e41a32c16ac40a014a3e Author: VicenÈ›iu Ciorbaru Date: Tue Jun 30 19:51:09 2015 +0300 [MDEV-6877] Update test results to accound for binlog_row_image variable. commit 84cefe24552cb5009192067bf4796f1be9ff5c4a Author: Jan Lindström Date: Tue Jun 30 09:16:09 2015 +0300 MDEV-8396: InnoDB: Assertion failure in file fil0crypt.cc line 2052 Logic error, NULL pointer was referenced. commit d1307bde651a02535405531aa9abd576b625311c Author: Jan Lindström Date: Tue Jun 30 08:34:31 2015 +0300 MDEV-8395: InnoDB: Assertion failure in file fil0pagecompress.cc line 539 (SIGFPE) File block size might be 0 and used on modulo operator. Make sure that file block size is initialized to 512. commit 1a3321b6496dcdbac47efb48e7b66aa23fd8e0f7 Author: VicenÈ›iu Ciorbaru Date: Tue Jun 30 14:42:46 2015 +0300 [MDEV-6877] Added basic tests for binlog_row_image using minimal and noblob values commit 4d856e362ec6f740cc4e916218bfc3c1c1eb12e4 Author: VicenÈ›iu Ciorbaru Date: Tue Jun 30 14:30:38 2015 +0300 [MDEV-6877] Added tests for binlog_row_image using noblobs switch commit d817267ae6469f3cccbe08a55c5d10afd1bdb42f Author: VicenÈ›iu Ciorbaru Date: Fri May 29 17:19:53 2015 +0300 [MDEV-6877] Change replication event loop to account for empty events When writing rows with a minimal row image, it is possible to receive empty events. In that case m_curr_row and m_rows_end are the same, however the event implies an insert into the table with the default values associated for that table. commit 50955075bba0c9623f362dce9496fa914ff45df5 Author: VicenÈ›iu Ciorbaru Date: Tue Apr 14 15:05:14 2015 +0300 [MDEV-6877] Fixed Assertion Error, when receiving an empty event Due to how events are created with a minimal binlog_row_image, it is possible to receive empty write events because all the columns in the table have a default value. (For example an auto-increment) Make sure we account for that. commit ca276729bc46a2eb79bcddce83f76adab5f64d76 Author: VicenÈ›iu Ciorbaru Date: Mon Apr 6 17:25:52 2015 +0300 [MDEV-6877] Fixed Update_rows_log_event to correctly apply update log events Update_rows_log_event must make use of the after image bitmap when detecting which columns to update. commit 8a1b7c9c6530bfcf832cedb6fe3436636e7e4e9f Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 23:14:49 2015 +0300 [MDEV-6877] Removed unnecesary bitmap in binlog_write_row The bitmap is now deduced from the table's read and write set. commit 8bd5301a1e89aae84791c00fe810c8af7429b734 Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 23:03:30 2015 +0300 [MDEV-6877] Add binlog writing according to columns The logging function now writes to the binlog according to the bitmap columns implied by the binlog_row_image variable. commit edff3f3fa91eb0433d94385cbe119e62c4a2afdb Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 20:46:21 2015 +0300 [MDEV-6877] Update Update, Delete and Write row log event The row events no longer require columns arguments. commit 724d5ae5f13d1414a0d4149918547ae50556b894 Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 20:25:22 2015 +0300 [MDEV-6877] Update binlog_prepare_pending_rows_events to use comparison function When deciding which binlog events are pending, make use of the bitmap compare function instead. commit a7d181a023ae51a3bef40c3740ef38de89e06adc Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 19:31:51 2015 +0300 [MDEV-6877] Added a bitmap compare function for binlog_row_image The function compares bitmaps according to the binlog_row_image variable setting. commit c096caee71b35198d9f1fb35d1fbd5ea796cf878 Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 19:22:41 2015 +0300 [MDEV-6877] Removed unneded code from rpl_injector The rpl_injector code is now considered dead code. This patch only removes the minimum number of function calls to allow implementing binlog_row_image. The other functions are to be removed in a subsequent patch. commit e53ad95b733e5a3b67b31d231616b619b634c6da Author: VicenÈ›iu Ciorbaru Date: Thu Apr 2 19:09:40 2015 +0300 [MDEV-6877] Added mark_columns_per_bitmap_row_image Depending on which binlog_row_image we are using, we must mark columns which to update differently both in the before image as well as the after image. commit b9d1d348dd5f84e26732139ed8cfe0a4146ced4f Author: VicenÈ›iu Ciorbaru Date: Sat Mar 21 20:44:53 2015 +0200 [MDEV-6877] Added test suite for binlog_row_image sys var commit 3ed519ff05fe6e5f6e1970194ed5510812c253b1 Author: VicenÈ›iu Ciorbaru Date: Sat Mar 21 20:43:24 2015 +0200 [MDEV-6877] Added binlog_row_image system variable The system variable is present but it does not do anything yet. commit 768620ee5c71742e2ea00063ebe1d3cdb6cc81e9 Author: Alexander Barkov Date: Tue Jun 30 12:56:31 2015 +0400 MDEV-8189 field<>const and const<>field are not symmetric commit 1b2f9126b838b75a651406eaf3d7269613b123a0 Author: Nirbhay Choubey Date: Mon Jun 29 17:28:50 2015 -0400 Increase field value max length to 2048 to avoid truncation of wsrep_provider_options' value. Also increase the max value length for SYSTEM_VARIABLES schema table. commit 7923c0cff2fa6bc4e5f38584caae0cdddf580549 Author: Jan Lindström Date: Mon Jun 29 20:03:57 2015 +0300 Fix test failure where the environment was not fully restored. commit 79af0b3823aa91d30914a7e3378bf644995bea7f Author: Jan Lindström Date: Mon Jun 29 14:10:37 2015 +0300 MDEV-8393: InnoDB: Assertion failure in file fil0crypt.cc line 2109 Crypt data was used when it was already freed. Delete crypt data more thorougly when freed. commit 4fac6269172eab2be0490a12936248113d14848d Author: Jan Lindström Date: Mon Jun 29 12:48:42 2015 +0300 MDEV-8390: innodb.innodb-flush-changed-page-bitmaps crashes Analysis: Flush changed page bitmaps calls log_online_follow_redo_log that later calls log_group_read_log_seg with release_mutex = true and that causes the log_sys mutex being released before log_decrypt_after_read function that later required log_sys mutex. Fix: Enter log_sys mutex before log_decrypt_after_read if mutex is released and release the mutex after the function if we acquired it before function call. commit 08fa60e5f3643cd87bb1e4578071f4db3557f776 Author: Sergey Vojtovich Date: Mon Jun 29 12:06:00 2015 +0400 MDEV-8382 - Processlist returns random numbers in Time column Time column of SHOW PROCESSLIST was returned in microseconds after rev. 8f603bc. Revert original timescale (seconds). commit a0f5f407eb7dfd7a2d7669e4f61245c72b1e0583 Author: Sergey Vojtovich Date: Thu Jun 25 14:21:16 2015 +0400 MDEV-8339 - Server crash during table cache eviction TDC_element::free_tables_back() had pre-lfhash leftover code, which referenced TDC_element::free_tables via TDC_element::share. This is not correct as share may be NULL (newly inserted or to be removed), instead access free_tables directly. commit 0865e3deab7be2bd49128906fe4f495460ebcbca Author: Sergey Vojtovich Date: Wed Jun 24 14:58:17 2015 +0400 MDEV-7792 - SQL Parsing Error - UNION AND ORDER BY WITH JOIN ORDER BY against union may confuse name resolution context, causing valid SQL statements to fail. The purpose of context change was presumably intended for the duration of gathering field list for ORDER BY. However it isn't actually required (name resolution context is never accessed by the latter). See also alternative solution (in MySQL 5.7): 92145b95. commit ad9b3263d3c5e4784008cc748ae1af8494da3f05 Author: Jan Lindström Date: Mon Jun 29 08:49:58 2015 +0300 MDEV-8391: encryption.innodb-page_encryption_compression fails Test create_or_replace should make sure that background decrypt operation is finished and flush all dirty pages using restart to clean up the database before ending. commit 7567b9fa10985a57339e8f0dbaf6e654c7f65c93 Author: Sergei Golubchik Date: Sun Jun 28 18:51:40 2015 +0200 update tests to pass commit 4d4f2ed2e1eab9c18c1188806e98446166e4f666 Author: Alexander Barkov Date: Sun Jun 28 18:23:15 2015 +0400 Moving Item_bool_func::add_key_fields_optimize_op() to Item_bool_func2. It's now needed outside of Item_bool_func2 any more. commit e04f6e7e3adbca3fb3bfe6f95d936e7580c5d470 Merge: ee0237fe89c 26162c71c5c Author: Sergei Golubchik Date: Sun Jun 28 15:23:33 2015 +0200 Merge branch 'bb-10.1-serg' into 10.1 commit ee0237fe89c64b995e7979c315de5a006fe2951a Author: Alexander Barkov Date: Sun Jun 28 14:29:51 2015 +0400 MDEV-8330 Get rid of Item_func::select_optimize() and Item_func::optimize_type commit 26162c71c5c2532ab08020146d4e6c32fb06a8e8 Author: Sergei Golubchik Date: Sun Jun 28 09:03:13 2015 +0200 rename {sys_vars,sql_plugin_services}.h -> *.ic commit 55b96d27089ee809dd0a4c9b3e0e3adb5a731bd4 Author: Sergei Golubchik Date: Sun Jun 28 08:51:53 2015 +0200 bump the VERSION to 10.1.6 and related changes fix two #if MYSQL_VERSION_ID > 100105 commit d1a11568c7c187b8fb62be92a3276ec0f1a89df9 Author: Sergei Golubchik Date: Sat Jun 27 20:38:05 2015 +0200 cleanup: safer versions of PSI no-op macros commit 658992699b204da04382142e77af042c8a33a334 Merge: fe7e334f3e2 a6087e7dc1e Author: Sergei Golubchik Date: Sat Jun 27 20:35:26 2015 +0200 Merge tag 'mariadb-10.0.20' into 10.1 commit fe7e334f3e238368e18fc2ccb98b3357ecb1e03e Author: Sergei Golubchik Date: Fri Jun 26 23:11:26 2015 +0200 cleanup: remove unused function argument commit c583360359e8cc6da82ed9c9fbb0e6091618e2fe Author: Sergei Golubchik Date: Fri Jun 26 23:06:06 2015 +0200 unittest: encrypted temporary IO_CACHE commit 31eed4759ba30ceacdcc2aa5e12b126460318c8e Author: Sergei Golubchik Date: Thu Jun 25 13:05:46 2015 +0200 cleanup: use WRITE_CACHE for view frm files SEQ_READ_APPEND is for two threads (reader and writer) simultaneously accessing the IO_CACHE commit 1ce71c847804c08c23435193763a1aa5cfa51861 Author: Sergei Golubchik Date: Fri Jun 19 20:58:26 2015 +0200 MDEV-7832 Add status variables to track CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE Pretend that CREATE TABLE and CREATE TEMPORARY TABLE are two different commands internally. The user doesn't need to know that they both are SQLCOM_CREATE_TABLE. Same for DROP [TEMPORARY] TABLE commit e24caa758890e0a753c0be9293a09f5d2931e377 Author: Sergei Golubchik Date: Fri Jun 19 20:57:39 2015 +0200 small cleanup * keep all com_xxx constants together in struct system_status_var * fix an outdated comment in sql_cmd.h * fix an off-by-one bug in mysqld.cc commit c47acc21aa5b92d301d30a6c5fee3838111246c3 Author: Sergei Golubchik Date: Fri Jun 19 20:47:09 2015 +0200 remove unused function and array commit 794a895c4c12bc45321c3c7000441204946d9129 Author: Sergei Golubchik Date: Fri Jun 19 19:46:12 2015 +0200 simplify CREATE TEMPORARY TABLE parser rule as a bonus that makes CREATE TEMPORARY TEMPORARY TABLE illegal commit bfabaf64866203b79b6ef251c89e31219ec05d9d Author: Sergei Golubchik Date: Mon Jun 22 17:17:03 2015 +0200 Deinitialize plugins in the reverse plugin_type_initialization_order Old code worked because plugin locking guaranteed that encryption plugin is deinitialized last. But compiled-in plugins are never locked. This fixes encryption failures on fulltest builder commit ff7a1ff6d74d124e0b7f4bd8cf080ba1f894a62d Author: Sergei Golubchik Date: Sun Jun 21 06:34:58 2015 +0200 fix printf format string commit 8036ad0a08657d074e29035a70e3ab4d4ab5adcf Author: Sergei Golubchik Date: Sun Jun 21 06:33:45 2015 +0200 misc encryption tests fixes * support statically compiled file_key_management when possible * rename encryption.encryption_create_or_replace -> encryption.create_or_replace * delete unnecessary *.opt file (including have_key_management_plugin.inc is enough) * remove unnecessary LOWER() for strings that are compared case insensitively anyway commit 627c6e812bdb3b3acdc5493ce2cc9d47c19480d0 Author: Sergei Golubchik Date: Fri Jun 19 18:10:47 2015 +0200 MDEV-8298 sys_vars.all_vars fails in -DWITH_WSREP=OFF build Disable sys_vars.all_vars test. There's no need to write boilerplate tests for every new system variable, our INFORMATION_SCHEMA.SYSTEM_VARIABLES and sysvar_* tests are now used to show all basic properties of all variables. commit e7620ce4ce93c9c449b6d4ccffb7a6054a40deb4 Author: Sergei Golubchik Date: Fri Jun 19 18:05:10 2015 +0200 MDEV-8281 aes_decrypt crashes in block_crypt() fix aes_decrypt of yassl to support zero-length input commit e20be69eccff6d300ea27c508591dcc47e18932a Author: Sergei Golubchik Date: Sat Jun 27 09:40:42 2015 +0200 update test results and 32-bit rdiffs commit 55d8ee5f707bab41068d79144e6cf4a01c6eea76 Author: Alexander Barkov Date: Fri Jun 26 22:49:49 2015 +0400 MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized Moving Item_func_spatial_rel from Item_bool_func to Item_bool_func2. to make OP(const,field) use indexes. - MBR functions supported OP(const,field) optimization in 10.0, but were inintentionally broken in an earlier 10.1 change that introduced a common parent for Item_func_spatial_mbr_rel and Item_func_spatial_precise_rel. - Precise functions never supported optimization for OP(const,field). Now both MBR and precise functions support OP(const,field) optimization. commit cb5f32ebe3b0c693c99d0e7c1b6bc5d6b0677f48 Author: Alexander Barkov Date: Fri Jun 26 20:00:24 2015 +0400 Moving Item_func_xor out of Item_bool_func2, as it does not need any of the optimizer related functionality. commit 40e5aceaff6bbf71ea212ff514dabb41a929d496 Author: Alexander Barkov Date: Fri Jun 26 17:46:34 2015 +0400 Removing Item_int_func::sargable. Adding virtual implementations of count_sargable_conds() instead for Item_func_in, Item_func_null_predicate, Item_bool_func2. There other Item_int_func descendants that used to set "sargable" to true (Item_func_between, Item_equal) already have their own implementation of count_sargable_conds(). There is no sense to have two parallel coding models for the same thing. commit 436411860ec54fda959910a3c88a1e393e1cee59 Author: Alexander Barkov Date: Fri Jun 26 15:42:49 2015 +0400 Moving ST_RELATE() implementation out of Item_func_precise_spatial_rel, adding a separte class Item_func_spatial_relate for ST_RELATE(). This is a preparatory patch for: MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized commit 4f828a1cac9a9c378a2a9f3c3ef0710eaf11ce02 Author: Alexander Barkov Date: Fri Jun 26 13:40:28 2015 +0400 MDEV-8214 Asian MB2 charsets: compare broken bytes as "greater than any non-broken character" commit d535728165acb2eb55140bb70fa44c458d1ccc06 Author: Jan Lindström Date: Fri Jun 26 11:42:09 2015 +0300 MDEV-8219: enforce_storage_engine cannot be set globally Change session only variable enforce_storage_engine to be session variable and make sure that also global value is used if session variable is not set. commit a4b0063d7b1078a538e16a82132d4b696fa1a3de Author: Alexander Barkov Date: Fri Jun 26 10:58:51 2015 +0400 MDEV-8256 A part of a ROW comparison is erroneously optimized away Item_func_eq's created during conversion of a ROW equality to a conjunction of scalar equalities did not set cmp_context for its arguments properly, so some of these created Item_func_eq could be later erroneously eliminated. commit 4a7afdde868bdfaf012e262eba48d4f519787420 Author: Alexander Barkov Date: Fri Jun 26 10:18:34 2015 +0400 MDEV-8373 Zero date can be inserted in strict no-zero mode through CREATE TABLE AS SELECT timestamp_field commit 115904c2c86a15bd07f4a33b0b43f6a3d6928304 Author: Alexander Barkov Date: Fri Jun 26 10:16:51 2015 +0400 MDEV-7824 [Bug #68041] Zero date can be inserted in strict no-zero mode through a default value commit 874df5092b958ca5657cf890703003d5fe63cc91 Author: Jan Lindström Date: Fri Jun 26 08:33:14 2015 +0300 Fix failing test case. commit 9111ab7127f4e87220ca46a5f845b566c3633d69 Author: Alexey Botchkov Date: Thu Jun 25 13:16:27 2015 +0500 GIS-related tests started to fail as some related functions don't return NULL-s anymore, and actually they're not BOOLEAN. Fixed. commit 42bc08b347d2e4341952f4c7bcded7a15e1b4566 Author: Alexander Barkov Date: Thu Jun 25 12:51:32 2015 +0400 MDEV-8229 GROUP_MIN_MAX is erroneously applied for BETWEEN in some cases commit 1f4a89b10ca8df61ec51fcc87e1203dc72579759 Author: Nirbhay Choubey Date: Wed Jun 24 23:38:04 2015 -0400 Do print SST log messages. commit 5467b12dc3894c36eba092430a785806e0d008c9 Author: Nirbhay Choubey Date: Wed Jun 24 23:28:42 2015 -0400 MDEV-7903 : xtrabackup SST failing with maria-10.0-galera Remove master-bin.state file on joiner node during SST. commit 9f00950d2ad9be5533e66a5fa87a795a9574585f Author: Nirbhay Choubey Date: Wed Jun 24 23:25:22 2015 -0400 MDEV-7631 : Invalid WSREP_SST rows appear in mysqld-bin.index file Try not to release 0 (STDIN_FILENO) file descriptor as it can incorrectly get reused by streams opened later. commit 0f4478105f5027ce589a0f08c6019d906d632029 Author: Nirbhay Choubey Date: Wed Jun 24 17:02:33 2015 -0400 Add close-on-exec flag to open(), socket(), accept() & fopen(). commit 565960816ec09d5712de276b1ef5402bf71b9fa7 Merge: d43df4a33ae b89de2b2ce8 Author: Kristian Nielsen Date: Wed Jun 24 17:18:12 2015 +0200 Merge MDEV-8354 into 10.1 commit 70714d3597ec9ffa742cc9e173d4ad32f294cc51 Merge: 46024098be1 71d1f35847a Author: Nirbhay Choubey Date: Tue Jun 23 16:46:12 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit 71d1f35847a575239deff856590bf6f13afd74ed Author: Nirbhay Choubey Date: Tue Jun 23 13:48:39 2015 -0400 Update SELinux policy to allow UDP for multicast repl in galera. commit d43df4a33ae38d29ca7a471c98368b2ab562b50e Author: Alexey Botchkov Date: Tue Jun 23 15:06:23 2015 +0500 These functions can never return NULL. commit b7ff2f1b59c42171ff50fc682e8f723f0713d688 Author: Jan Lindström Date: Tue Jun 23 14:36:24 2015 +0300 MDEV-7472: Implementation of user statements for handling the xtradb changed page bitmaps Introduce a new dummy INFORMATION_SCHEMA.CHANGED_PAGE_BITMAPS table to XtraDB with reset_table callback to allow FLUSH NO_WRITE_TO_BINLOG CHANGED_PAGE_BITMAPS to be called from innobackupex. commit d3b7eb7b99ef7dae79c20b5beb63acdfdf6d8046 Author: Alexey Botchkov Date: Tue Jun 23 11:57:05 2015 +0500 MDEV-7528 GIS: Functions return NULL instead of specified -1 for NULL arguments. The behaviour required by the standard seems too weird to expect. commit 3e4126e9d6b21d2f330a365b0847999346485863 Merge: fb3e31203f7 9b57b214c42 Author: Alexey Botchkov Date: Tue Jun 23 11:30:39 2015 +0500 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 9b57b214c421351eae2eb62048af28f8969a9039 Author: Sergey Vojtovich Date: Thu May 21 13:08:46 2015 +0400 MDEV-8199 - first_breadth_first_tab() takes 0.07% in OLTP RO This is an addition to original patch: cleanups for next_breadth_first_tab(). Overhead change: next_breadth_first_tab() 0.04% -> out of radar commit 45f41b52e8f27e52388bb5e3fb6fbe4d93de161d Author: Sergey Vojtovich Date: Thu May 21 12:30:41 2015 +0400 MDEV-8199 - first_breadth_first_tab() takes 0.07% in OLTP RO Split first_breadth_first_tab() into JOIN::first_breadth_first_optimization_tab() and JOIN::first_breadth_first_execution_tab(). This allows to eliminate function call and one condition. Adjusted callers accordingly. Overhead change: first_breadth_first_tab() 0.07% -> out of radar next_breadth_first_tab() 0.04% -> 0.04% JOIN::cleanup() 0.15% -> 0.11% JOIN::save_explain_data_intern() 0.28% -> 0.24% commit 84568c296520f399da23f260151a7512393eb03b Author: Sergey Vojtovich Date: Wed May 20 12:04:32 2015 +0400 MDEV-8030 - Apc_target::disable() locks mutex twice Moved Apc_target::destroy(), Apc_target::enable() and Apc_targe::disable() definitions to my_apc.h so that they can be inlined. Apc_targe::disable() now calls Apc_target::process_apc_requests() only if there're APC requests. This saves one pthread_mutex_lock() call. Overhead change: Apc_target::disable 0.04% -> out of radar Apc_target::enable 0.03% -> out of radar Apc_target::process_apc_requests 0.02% -> out of radar pthread_mutex_lock 0.43% -> 0.42% pthread_mutex_unlock 0.26% -> 0.25% commit fb3e31203f74ec95c99e9ec4123debf67d8815e4 Author: Alexey Botchkov Date: Mon Jun 22 23:33:35 2015 +0500 MDEV-7925 Inconsistent behavior of ST_Touches with a POINT as one of arguments. Some cases of the feature's borders were treated incorrectly. commit 0357791e3c291c47fe128954dac45c271f721b2a Author: VicenÈ›iu Ciorbaru Date: Mon Jun 22 08:44:46 2015 +0300 MDEV-8280: crash in 'show global status' with --skip-grant-tables The crash was caused by attempting to use a hashtable without it getting initialized, due to the --skip-grant-tables switch. commit 46024098be1d7887134a3a3d8d289dd7711c56dc Merge: 41d40029875 a6087e7dc1e Author: Nirbhay Choubey Date: Sun Jun 21 23:54:55 2015 -0400 Merge tag 'mariadb-10.0.20' into 10.0-galera commit 41d40029875bfd7f4cd6a5255e05a3c93103220f Author: Nirbhay Choubey Date: Sun Jun 21 23:09:10 2015 -0400 Remove duplicate script added due to bad merge. commit 327409443fa5631b98e65b0c1cce1cfb6e05f723 Merge: fc716dc5a5a 5a44e1a4024 Author: Nirbhay Choubey Date: Sun Jun 21 21:50:43 2015 -0400 Merge tag 'mariadb-5.5.44' into 5.5-galera commit cbb8b2d033359fb6e4ebfa00e059b47e60442b8e Author: Sergei Petrunia Date: Sat Jun 20 05:01:16 2015 +0300 More testcases. commit ebe2bd74fe7e30306feefae7acf201d18cbec267 Author: Sergei Petrunia Date: Sat Jun 20 04:20:18 2015 +0300 MDEV-7836: ANALYZE FORMAT=JSON should provide info about GROUP BY ANALYZE should also record remove_duplicates() operation. commit fc716dc5a5abd6997310256a1f846e39ea5bf312 Author: Nirbhay Choubey Date: Fri Jun 19 19:25:15 2015 -0400 MDEV-8260 : Issues related to concurrent CTAS * Wait for aborted thd (victim) to release MDL locks * Skip aborting an already aborted thd * Defer setting OK status in case of CTAS * Minor cosmetic changes * Added a test case commit f33173d19e7ff25c7b185b23172e248ee5df7b4c Author: Sergei Petrunia Date: Fri Jun 19 21:31:16 2015 +0300 MDEV-8282: crash in filesort() with simple ordered delete Handle the case where the optimizer decides to use handler->delete_all_rows(), but then this call returns HA_ERR_UNSUPPORTED and execution switches to regular row-by-row deletion. commit 12d9fe14bea38eaa2ff0f5edeea22d4c7a5debed Author: Sergey Vojtovich Date: Wed Jun 17 13:09:22 2015 +0400 MDEV-7956 - handler::rebind_psi() takes 0.07% in OLTP RO Do not call handler::rebind_psi() and handler::unbind_psi() when performance schema is compiled out. Overhead change: handler::rebind_psi 0.04% -> out of radar handler::unbind_psi 0.03% -> out of radar open_table 0.21% -> 0.18% close_thread_table 0.05% -> 0.05% commit 8f603bcbcac4a9091b6adbca3fd3655a947e759a Author: Sergey Vojtovich Date: Wed Jun 17 18:55:38 2015 +0400 MDEV-7952 - clock_gettime() takes 0.24% in OLTP RO Initialize abs_timeout when it is about to be used. This saves one my_hrtime() call on hot path (when we acquire MDL lock without waiting). When filling I_S.PROCESSLIST use THD::start_utime/THD::utime_after_query instead of THD::start_time. This allows us to save 2 clock_gettime() calls. Overhead change: __clock_gettime 0.13% -> 0.11% (122 -> 76 calls per OLTP RO transaction) my_interval_timer 0.07% -> 0.06% my_hrtime 0.04% -> 0.01% commit 2bc6e29afeea374aa0ef4bc36c7a7b649c20d959 Author: Sergey Vojtovich Date: Fri Jun 19 15:04:58 2015 +0400 MDEV-7943 - pthread_getspecific() takes 0.76% in OLTP RO Pass THD to Sort_and_group_tracker::report_sorting(). This reduces number of pthread_getspecific() calls from 292 to 290. commit 360176f397c08392589b75da62e91c7e79c7c367 Author: Sergey Vojtovich Date: Thu Jun 18 18:01:56 2015 +0400 MDEV-7943 - pthread_getspecific() takes 0.76% in OLTP RO Pass THD to Item_field (and all derivatives) constructors. This reduces number of pthread_getspecific() calls from 322 to 292. commit b85e5efca3032c73b86223ba8799d3be98e5bea9 Author: Sergey Vojtovich Date: Tue Apr 28 15:20:48 2015 +0400 MDEV-7943 - pthread_getspecific() takes 0.76% in OLTP RO Pass THD to find_all_keys() and Item_equal::Item_equal(). In MRR use table->in_use instead of current_thd. This reduces number of pthread_getspecific() calls from 354 to 320. commit 2b253ed41fb606de3c6d8573f95f69ae2faf18d3 Author: Sergey Vojtovich Date: Wed Jun 17 12:37:19 2015 +0400 MDEV-8324 - MariaDB fails to build with performance schema disabled Various fixes to let MariaDB compile with performance schema disabled. commit 8c44fd63ac61161e92e7feb55d693d72aebac68d Author: Nirbhay Choubey Date: Fri Jun 19 00:17:25 2015 -0400 MDEV-8239 : Idle threads post-execution end up in closing tables state Set thd's state to 'committed' only after it has done closing tables (called indirectly by relay_group_info::cleanup_context()). commit 366cda49370eedb50dbb53ee53d3cd907c59e76d Author: Alexander Barkov Date: Thu Jun 18 23:27:44 2015 +0400 Adding "const" qualifier into a few methods in Field. commit 091f67738e2bede5df2001eedd4be76d9473370d Author: Alexander Barkov Date: Thu Jun 18 22:16:44 2015 +0400 Removing duplicate code: Adding a protected method Field_temporal_with_date::validate_for_get_date() and reusing it in a few places. commit f5ddffd83e627cc0f6a24dfe4d8fc2e0c983bf78 Author: Jan Lindström Date: Thu Jun 18 19:58:57 2015 +0300 MDEV-8156: Assertion failure in file log0crypt.cc line 220 on server restart Instead of asserting print informative error message to error log and return failure from innodb_init causing the server to shutdown. commit 6050ab658696925f2a031b901eb398fff65fa92a Author: Nirbhay Choubey Date: Thu Jun 18 09:59:09 2015 -0400 MDEV-6829 : SELinux/AppArmor policies for Galera server Add SELinux policy and AppArmor profile under policy/. commit e2a59eba5d8ca8c2d34699ac7871a26435587b9b Author: Sergei Petrunia Date: Thu Jun 18 14:52:17 2015 +0300 Make dbug_print_item() print conditions in siccint form commit caf4291d2945bb99939402ef9e0a00958cfa07ca Author: Sergei Petrunia Date: Thu Jun 18 14:51:50 2015 +0300 Remove garbage comment commit eb2c170bb03fb7c98d3bd864bae46ddfb8c3acb5 Author: Jan Lindström Date: Thu Jun 18 08:38:33 2015 +0300 MDEV-8303; Dumping buffer pool noisy in the logs. Added new dynamic configuration variable innodb_buf_dump_status_frequency to configure how often buffer pool dump status is printed in the logs. A number between [0, 100] that tells how oftern buffer pool dump status in percentages should be printed. E.g. 10 means that buffer pool dump status is printed when every 10% of number of buffer pool pages are dumped. Default is 0 (only start and end status is printed). commit b94eaff8d90a60b9dea3b5b68fbde3d35563127b Author: Jan Lindström Date: Wed Jun 17 09:12:26 2015 +0300 MDEV-8310: Encryption bogus message still in 10.1.5 Moved warning print to debug builds only because on production these messages are unnecessary. commit 6a92fa4be53b03e854e3506b1e3a0839938af135 Merge: b1b0db294f4 93c039dd3ca Author: Kristian Nielsen Date: Mon Jun 15 08:28:04 2015 +0200 Merge branch 'mdev8294' into 10.1 commit b1b0db294f40590bbdfb84449dca507a6fa0ad0f Merge: f965cae5fb0 682ed005c57 Author: Kristian Nielsen Date: Wed Jun 10 12:42:18 2015 +0200 Merge MDEV-8294 into 10.1 commit f965cae5fb04a9fd06a939a8f2b52228a62ce9fa Author: Nirbhay Choubey Date: Fri Jun 5 11:43:05 2015 -0400 MDEV-7110 : Add missing MySQL variable log_bin_basename and log_bin_index Add log_bin_index, log_bin_basename and relay_log_basename system variables. Also, convert relay_log_index system variable to NO_CMD_LINE and implement --relay-log-index as a command line option. commit c94789c3d38831fb7ad0781b97b28abb8a17a165 Author: Alexander Barkov Date: Tue Jun 9 15:35:25 2015 +0400 Adding a test for: MDEV-8167 XOR returns bad results for an indexed column The bug itself was earlier fixed by one of the earlier changes. commit b0928711e048a164fcc0e7bf64a4190a82f09b57 Author: Alexander Barkov Date: Tue Jun 9 15:02:53 2015 +0400 Adding a test for "MDEV-6973 XOR aggregates argument collations". The bug itself was earlier fixed by this patch: commit 3709c7fc6d46c624c24523907eb2a0ad8a1e5062 MDEV-8222 "string_field LIKE int_const" returns a wrong result in case of UCS2 MDEV-8257 Erroneous "Impossible where" when mixing decimal comparison and LIKE commit 70b82efd20ec6682a6ede8552b1109d04d372e0c Author: Jan Lindström Date: Mon Jun 8 19:36:35 2015 +0300 MDEV-8273: InnoDB: Assertion failure in file fil0pagecompress.cc line 532 Analysis: Problem was that actual payload size (page size) after compression was handled incorrectly on encryption. Additionally, some of the variables were not initialized. Fixed by encrypting/decrypting only the actual compressed page size. commit 4a6a61cb8190ad5b8fc3993b15e0fa48bcb730a5 Author: Jan Lindström Date: Mon Jun 8 08:09:33 2015 +0300 MDEV-8268: InnoDB: Assertion failure in file buf0buf.cc line 5842 failing assertion ut_a(free_slot != NULL); Analysis: Problem is that there is not enough temporary buffer slots for pending IO requests. Fixed by allocating same amount of temporary buffer slots as there are max pending IO requests. commit d7f3d889de2a4f2a828de288175e7095bc838b6b Author: Jan Lindström Date: Fri Jun 5 08:41:10 2015 +0300 MDEV-8272: Encryption performance: Reduce the number of unused memcpy's Removed memcpy's on cases when page is not encrypted and make sure we use the correct buffer for reading/writing. commit f744b2a15ff3a8e2b93ae4f17ffe5a22af9bcd88 Author: Alexander Barkov Date: Tue Jun 9 12:08:46 2015 +0400 MDEV-8283 crash in get_mm_leaf with xor on binary col commit 3a9a3b98b729b9095e6f24ff0595299ad2b3d24a Author: Olivier Bertrand Date: Mon Jun 8 00:03:52 2015 +0200 Fix test txt files line endings commit 7482f073ae8677e7fcfd2bb60087bd76dfc8a8d9 Author: Olivier Bertrand Date: Sat Jun 6 19:23:06 2015 +0200 Commit od last modifications made for version 10.0 commit 1c756512b0d67e39961ee3c54872af5041f08248 Merge: 5d038d37348 f8fa5fe1bc9 Author: Olivier Bertrand Date: Fri Jun 5 23:54:19 2015 +0200 Commit win and CONNECT resolved files commit 5d038d373489217f748e5068f6b6357c83fb051a Author: Olivier Bertrand Date: Fri Jun 5 23:33:23 2015 +0200 commit win/ changes commit 93fc04ff1dc613a9ad75ccc57988a6b57b94b6cb Author: Sergei Petrunia Date: Sat Jun 6 00:32:27 2015 +0300 MDEV-6995: EXPLAIN JSON and ORDER BY, GROUP BY, etc - Make ANALYZE correctly remember and report filesort() calls - Temp.table use is collected but only basic info is reported. commit f8fa5fe1bc9023e0e9fac5b05515b94ed04289cb Merge: 9dee994d992 f7002c05ae4 Author: Olivier Bertrand Date: Fri Jun 5 23:24:39 2015 +0200 Commit merge resolve commit 2b2c61cc794954ce179e7ef468ee6b57becc287f Author: Olivier Bertrand Date: Fri Jun 5 17:21:04 2015 +0200 Commit changes to json_udf.inc commit f7002c05ae4e4a09bc6859ccc568064cfd6bb268 Author: Jan Lindström Date: Wed Jun 3 13:10:18 2015 +0300 MDEV-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash Analysis: Problem is that both encrypted tables and compressed tables use FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION to store required metadata. Furhermore, for only compressed tables currently code skips compression. Fixes: - Only encrypted pages store key_version to FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION, no need to fix - Only compressed pages store compression algorithm to FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION, no need to fix as they have different page type FIL_PAGE_PAGE_COMPRESSED - Compressed and encrypted pages now use a new page type FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED and key_version is stored on FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION and compression method is stored after FIL header similar way as compressed size, so that first FIL_PAGE_COMPRESSED_SIZE is stored followed by FIL_PAGE_COMPRESSION_METHOD - Fix buf_page_encrypt_before_write function to really compress pages if compression is enabled - Fix buf_page_decrypt_after_read function to really decompress pages if compression is used - Small style fixes commit 2a3166feff2ab25b4481dac51561a4f7f590e8c2 Author: Olivier Bertrand Date: Wed Jun 3 17:54:11 2015 +0200 Fix swapping key numeric values on Big Endian machines. Fix typo error in CntIndexRange (kp instead of p) Change version date modified: storage/connect/connect.cc modified: storage/connect/ha_connect.cc commit 5a9e2e62bf2e788eeb289ef00bdbe38919515523 Merge: 36d2bd6a15a 30fd69e6058 Author: Olivier Bertrand Date: Wed Jun 3 16:59:45 2015 +0200 Merge branch '10.1' of https://github.com/Buggynours/MariaDB into 10.1 commit 36d2bd6a15ae55da9939b052e3d7a31fe0cf7e75 Author: Olivier Bertrand Date: Wed Jun 3 16:58:42 2015 +0200 Handle ODBC table null values modified: tabodbc.cpp commit cd70bed05e506ce1ca3535ada265c4d09f633b49 Author: Sergei Golubchik Date: Wed Jun 3 11:12:50 2015 +0200 fix for 32-bit tests commit 6d5b723bdc3e04978619b9673fca266e0426916f Merge: 3eb8bc01b68 9eff9ed5c58 Author: Nirbhay Choubey Date: Tue Jun 2 13:27:39 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit 51d67633ef52044314afff1370e9b2e9894595ff Author: Sergei Golubchik Date: Wed May 27 20:53:41 2015 +0200 AES-GCM support in file_key_management plugin commit 0f0092720f4371556044695fa90a69b5e54a14cf Author: Sergei Golubchik Date: Wed May 27 20:53:16 2015 +0200 my_aes_encrypt_gcm() and my_aes_decrypt_gcm() commit ebc5e00641ea63d91a65921ea827f448064f9a7e Author: Sergei Golubchik Date: Wed May 27 19:41:29 2015 +0200 my_aes_get_size() return unsigned, not signed. return a value large enough for GCM commit 487e5f45908c04d63a9becf1078ecaeaf658f0ae Author: Sergei Golubchik Date: Wed May 27 12:18:29 2015 +0200 file_key_management plugin: complain if key id 1 is not found and don't recommend aes_ctr if it's unavailable commit 432b78c90376aac4fda94317fd20eced33d08230 Author: Sergei Golubchik Date: Wed May 27 12:08:13 2015 +0200 just like tempfiles: use key id 2 for temp Aria tables introduce ENCRYPTION_KEY_SYSTEM_DATA and ENCRYPTION_KEY_TEMPORARY_DATA constants; use them everywhere. commit d9340d6c8e1b227044fc90bc40c5da1d1f6b0dcc Author: Sergei Golubchik Date: Wed May 27 00:18:20 2015 +0200 MDEV-8126 encryption for temp files IO_CACHE tempfiles encryption commit 318c826e932af69a864726efd24819d1cfa8dc8a Author: Sergei Golubchik Date: Tue May 26 22:09:40 2015 +0200 always use my_b_pread() instead of mysql_file_pread() when working with IO_CACHE's, don't access IO_CACHE::file directly commit 6309a30dc96f6c3615b8c5609f07f9bc3898352c Author: Sergei Golubchik Date: Fri May 22 14:07:35 2015 +0200 my_b_fill, inline my_b_* functions instead of hairy macros commit 196e8529837558a72baf31d012285cc283b8e95d Author: Sergei Golubchik Date: Mon May 18 11:54:55 2015 +0200 misc IO_CACHE cleanups * remove unused (and not implemented) WRITE_NET type * remove cast in my_b_write() macro. my_b_* macros are function-like, casts are responsibility of the caller * replace hackish _my_b_write(info,0,0) with the explicit my_b_flush_io_cache() in my_b_write_byte() * remove unused my_b_fill_cache() * replace pbool -> my_bool * make internal IO_CACHE functions static * reformat comments, correct typos, remove obsolete comments (ISAM) * assert valid cache type in init_functions() * use IO_ROUND_DN() macro where appropriate * remove unused DBUG_EXECUTE_IF in _my_b_cache_write() * remove unnecessary __attribute__((unused)) * fix goto error in parse_file.cc * remove redundant reinit_io_cache() in uniques.cc * don't do reinit_io_cache() if the cache was not initialized in ma_check.c * extract duplicate functionality from various _my_b_*_read functions into a common wrapper. Same for _my_b_*_write * create _my_b_cache_write_r instead of having if's in _my_b_cache_write (similar to existing _my_b_cache_read and _my_b_cache_read_r) * don't call mysql_file_write() from my_b_flush_io_cache(), call info->write_function() instead commit 1841557e407038e3611b0788eaf70fd3d8eb043e Author: Sergei Golubchik Date: Wed May 27 21:43:25 2015 +0200 myisam/aria: don't mess with IO_CACHE::file that is, don't create a "temporary" IO_CACHE with file==-1 and manually swap it later to the valid file descriptor. commit 80e61ae21e2373ee73407f91f596b11c2c46e7d9 Author: Sergei Golubchik Date: Sat May 16 08:48:52 2015 +0200 cleanup: LOAD DATA replication support in IO_CACHE remove some 14-year old code that added support for LOAD DATA replication to IO_CACHE: * three callbacks, of which only two were actually used and that were only needed for LOAD DATA replication but were tested in every IO_CACHE instance * an additional opaque void * argument in IO_CACHE, also only used for LOAD DATA replication, but present everywhere * the code to close IO_CACHE prematurely in LOAD DATA to have these callbacks called in the correct order and a long comment explaining what will happen if IO_CACHE is not closed prematurely * a variable to track whether IO_CACHE was closed prematurely (to avoid double-closing it) commit 91dab5ddb6accbb256e7089aea8ba38e66a1b0cf Author: Sergei Golubchik Date: Tue Jun 2 18:09:53 2015 +0200 fix cmake dependencies perfschema after 5.6 merge depends on sql_yacc.h commit 72d01f24260045de558e84f941c48ed135cdb437 Author: Sergei Golubchik Date: Tue Jun 2 12:55:00 2015 +0200 remove few #ifdefs in innodb/xtradb commit 5fc53b7cfed0135e12cedb18c83823b8318f9267 Author: Sergey Vojtovich Date: Tue Jun 2 15:39:14 2015 +0400 MDEV-8202 - st_select_lex::master_unit() takes 0.17% in OLTP RO To make st_select_lex::master_unit() inlinable: - moved it's definition to sql_lex.h - removed base class virtual master_unit() declaration since this method is specific to st_select_lex Overhead change: st_select_lex::master_unit() 0.17% -> out of radar execute_sqlcom_select() 0.13% -> 0.12% JOIN::save_explain_data_intern() 0.27% -> 0.23% JOIN::optimize_inner() 0.76% -> 0.72% JOIN::exec_inner() 0.30% -> 0.24% JOIN::prepare() 0.30% -> 0.29% JOIN::optimize() 0.05% -> 0.05% commit adb952f548be1cf07ee12a8876ee2f26d0737458 Author: Sergey Vojtovich Date: Tue Jun 2 15:37:04 2015 +0400 MDEV-8192 - THD::set_command() takes 0.05% in OLTP RO Moved THD::set_command() definition to sql_class.h so that it can be inlined. Overhead change: THD::set_command 0.05% -> out of radar commit d298b02233b6f6be71208418bec6243123593c3c Author: Sergey Vojtovich Date: Tue Jun 2 15:35:02 2015 +0400 MDEV-8191 - THD::set_query() takes 0.07% in OLTP RO Moved THD::set_query() definition to sql_class.h so that it can be inlined. Overhead change: THD::set_query 0.07% -> out of radar commit 3709c7fc6d46c624c24523907eb2a0ad8a1e5062 Author: Alexander Barkov Date: Tue Jun 2 15:42:01 2015 +0400 MDEV-8222 "string_field LIKE int_const" returns a wrong result in case of UCS2 MDEV-8257 Erroneous "Impossible where" when mixing decimal comparison and LIKE commit 30fd69e6058169b35d1a00ae362b4f60329b6738 Author: Olivier Bertrand Date: Tue Jun 2 11:53:22 2015 +0200 Handle ODBC table null values modified: tabodbc.cpp commit e8ea671c2523f56fce0eacabbba05689aa4824f9 Author: Olivier Bertrand Date: Tue Jun 2 10:34:51 2015 +0200 Commit changes pulled from ob-10.0 commit 8f92a70e214837f092b9e0c06b645654377f03d6 Author: Sergei Golubchik Date: Tue Jun 2 09:26:16 2015 +0200 update for 32-bit, again commit 0d54cb12eb77c4c8c90e9833ec3df47c70c0ade7 Author: Sergei Golubchik Date: Mon Jun 1 21:35:02 2015 +0200 compilation failure on windows commit 2133230305f754b5c25295852a401c6a79aff2c3 Author: Sergei Golubchik Date: Mon Jun 1 21:31:31 2015 +0200 avoid ulong sysvars, prefer uint or ulonglong ulong is not portable - different width on different architectures commit 78c10ccad8b913f91831c3cd8cb62e5930943556 Author: Sergei Golubchik Date: Mon Jun 1 17:31:39 2015 +0200 MDEV-7913 main.openssl_6975 'tlsv10' fails in buildbot on Wheezy and Precise version_ssl_library should show the version of openssl library that is being used, not the one that server was compiled with. commit 9c41b35b6aa7eba86273f8634dd6d633b140211e Author: Sergei Golubchik Date: Mon Jun 1 16:33:41 2015 +0200 MDEV-8220 Server crashes if started with --enforce-storage-engine option commit d60257454213ac465c94b441fca477524b7dee82 Merge: fce4ab0ab40 528378920b8 Author: Sergei Golubchik Date: Mon Jun 1 16:01:42 2015 +0200 Merge remote-tracking branch 'github/10.1' into 10.1 commit fce4ab0ab405e112035bda98176c5834200d26df Author: Sergei Golubchik Date: Mon Jun 1 16:01:23 2015 +0200 generalize ER_TABLE_NEEDS_UPGRADE to work for views too commit 5091a4ba755250ed8e35f4f5a39a118d476cd8f1 Merge: 84eaf0911f3 0880284bf71 Author: Sergei Golubchik Date: Mon Jun 1 15:51:25 2015 +0200 Merge tag 'mariadb-10.0.19' into 10.1 commit 528378920b803efd7ba4d3f54fc998cfa8a5c5c9 Author: Jan Lindström Date: Sun May 31 08:10:07 2015 +0300 Fix test warnings by adding global supression to InnoDB warnings. commit 13235a549dfba54683520bf21f47df5e676792a8 Author: Jan Lindström Date: Sun May 31 07:53:20 2015 +0300 Fix compiler warning. commit 59815a268b37a9859c31d6add4546f4c6a7ef6aa Author: Jan Lindström Date: Fri May 22 08:24:59 2015 +0300 MDEV-7484: Log Time not consistent with InnoDB errors nor with MySQL error log time format commit 84eaf0911f311acba797c265ef7508ab6c108b35 Author: Sergei Golubchik Date: Sat May 30 14:06:17 2015 +0200 MDEV-7913 main.openssl_6975 'tlsv10' fails in buildbot on Wheezy and Precise don't run this test on 1.0.1c commit 3839e91223528cb3435f48e13cf4832dfd009a84 Author: VicenÈ›iu Ciorbaru Date: Sat May 30 12:13:45 2015 +0300 MDEV-8248: mysqldump incorrect identifier quoting during equality comparison Use quote_for_equal to correctly escape characters. commit ae4b24340d8f6d23ef7f4a82df3f981d65d9b060 Author: VicenÈ›iu Ciorbaru Date: Thu Mar 19 15:16:22 2015 +0200 MDEV-6714 mysqldump slow with tables in big databases mysqldump now attempts to make use of the INFORMATION_SCHEMA tables. If the table name is not found with a case sensitive search, it fallbacks to a case insensitive search. commit c6b42128215662b231e60e35c8bc1e0830e733ed Author: Sergei Golubchik Date: Sat May 30 09:13:49 2015 +0200 temporarily disable failing test commit 0f01bf267680244ec488adaf65a42838756ed48e Author: Oleksandr Byelkin Date: Thu May 28 07:59:57 2015 +0200 MDEV-8241: Debug build on Windows is broken: error LNK2019: unresolved external symbol pthread_detach referenced in function ma_checkpoint_init pthread_detach() replaced with pthread_detach_this_thread() pthread_detach_this_thread() definition fixed commit c1c22c043b5981aa767120a67b754c2ba4fbfe1f Author: Sergei Golubchik Date: Fri May 29 21:23:52 2015 +0200 update test results (yes, we no longer add all variables to sys_vars suite!) commit 903cfde149778daf67d21144a1172e1ef998599e Author: Nirbhay Choubey Date: Fri May 29 11:26:46 2015 -0400 MDEV-7067: Server outputs Galera (WSREP) information, even if Galera is disabled * mysqld_safe: Since wsrep_on variable is mandatory in 10.1, skip wsrep position recovery if its OFF. * mysqld: Remove "-wsrep" from server version * mysqld: Remove wsrep patch version from @@version_comment * mysqld: Introduce @@wsrep_patch_version commit 1b00edc49a2f1e0a1995fc0562639d90d4c19ca2 Author: Oleksandr Byelkin Date: Thu May 21 16:31:24 2015 +0200 MDEV-7011: MAX_STATEMENT_TIME has no effect in a procedure after a previous successful statement Do not reset timer inside stored procedures and functions. commit 34e01f80e4b68aa4fc9791637c516cdafdf03d5b Author: Sergei Golubchik Date: Thu May 28 10:03:12 2015 +0200 restore innodb_encrypt_tables validation function that was apparently lost in 20c23048: commit 20c23048c1d2f28942f2f99e4150a58b6545c0cd Author: Jan Lindström Date: Sun May 17 14:14:16 2015 +0300 MDEV-8164: Server crashes in pfs_mutex_enter_func after fil_crypt_is_closing This also reverts 8635c4b4: commit 8635c4b4e66712558330d9534491af0c9025e4dc Author: Jan Lindström Date: Thu May 21 11:02:03 2015 +0300 Fix test failure. commit 5443b9db21e0d38672928d58d631dbd6decbb319 Author: Alexander Barkov Date: Thu May 28 16:00:05 2015 +0400 Moving "bool abort_on_null" from Item_bool_func2 to Item_func_eq, as it's not used by the other Item_bool_func2 descendands. commit 979c5049ef6fdd55c29fa5170a96c62d2a8a6823 Author: Jan Lindström Date: Thu May 28 07:52:27 2015 +0300 MDEV-8242: encryption.innodb_page_encryption_key_change fails in buildbot Forgot that echo will also expand variables and path might be different. commit ab5094beabb9cde484fdfa442965c79e44167e38 Author: Alexander Barkov Date: Wed May 27 21:41:02 2015 +0400 Fixing typos in DBUG_ENTER() comments. commit 5991efc38222b53a66c64587f71c2941288011ac Author: Alexander Barkov Date: Wed May 27 21:32:35 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step #8: Adding get_mm_tree() in Item_func, Item_func_between, Item_func_in, Item_equal. This removes one virtual call item->type() in queries like: SELECT * FROM t1 WHERE c BETWEEN const1 AND const2; SELECT * FROM t1 WHERE c>const; SELECT * FROM t1 WHERE c IN (const_list); commit a25ccd4f83912e02091abe1cba8515266483559b Author: Jan Lindström Date: Wed May 27 15:37:13 2015 +0300 MDEV-8238: Tables with encryption=yes using file_key_management plugin are not encrypted Analysis: Problem was that encryption was skipped. Fixed by making sure that tables with ENCRYPTED=YES are encrypted. commit 2bea4bd9ed7ebdee60a70918816c46d2cf3362b9 Author: Jan Lindström Date: Tue May 26 14:59:39 2015 +0300 MDEV-8233: InnoDB: Assertion failure in fil_page_decompress with encrypted tables Analysis: Problem was that used compression method needs to be stored to the page. Fixed by storing compression method after key_version to the page. commit 0dc14257cbdf0f40cbe36bdc7019a477ff02c931 Author: Alexander Barkov Date: Wed May 27 12:03:20 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step #7 (mostly preparatory for the next step #8): Splitting the function get_mm_parts() into a virtual method in Item. This changes a virtual call for item->type() into a virtual call for item->get_mm_tree(), but also *removes* one virtual call Item_cond::functype(), which used to distinguish between COND_AND_FUNC vs COND_OR_FUNC. commit 58d7e35f592392fc793611379f40f649919d3869 Author: Jan Lindström Date: Wed May 27 11:00:46 2015 +0300 Fixed innodb_scrub_background test. commit 1734bea8b3f6419033fe403b38bb583a9eb0f16a Merge: 8c0ea281bfe 903f8dc72d3 Author: Kristian Nielsen Date: Tue May 26 15:56:32 2015 +0200 Merge with latest 10.1 commit 8c0ea281bfe456d81e24725f380dc6ad7ef62a0d Author: Jan Lindström Date: Tue May 26 16:09:36 2015 +0300 MDEV-8213: encryption.encryption_force, encryption.encrypt_and_grep fail with valgrind warnings (Invalid read) Analysis: Problem was that code used old pointer. Fixed by using correct pointer. commit 903f8dc72d3b8c8036bb8fbeec51d503b732b4cf Merge: 5bd25a9c530 e5f1e841dc3 Author: Kristian Nielsen Date: Tue May 26 15:03:22 2015 +0200 Merge MDEV-8147 into 10.1 commit 5bd25a9c530dc5d059f6153abf36639c0e213cb0 Author: Alexander Barkov Date: Tue May 26 11:59:17 2015 +0400 A helper patch for "MDEV-8228 Move Item_func_like out of Item_bool_func2" - Changing Comp_creator::create() and create_swap() to return Item_bool_rowready_func2 instead of Item_bool_func2, as they can never return neither Item_func_like nor Item_func_xor - Changing the first argument of Comp_create::create() and create_swap() from THD to MEM_ROOT, so the method implementations can now reside in item_cmpfunc.h instead of item_cmpfunc.cc and thus make the code slightly easier to read. commit b3aece9b99c2d6c230725f8d1557b95e6bcffd80 Author: Jan Lindström Date: Mon May 25 09:38:47 2015 +0300 MDEV-8209: encryption.encrypt_and_grep fails in buildbot and outside Problem is that when encryption/decryption is marked done on memory cache, dirty pages might not be physically written. Fixed by adding sleep on test. commit 9eff9ed5c58e782abf383a52a7e691a55b4798a2 Author: Nirbhay Choubey Date: Sun May 24 13:30:49 2015 -0400 MDEV-8208 : Sporadic SEGFAULT on startup During server start, as wsrep initialization happens before plugin_init(), segfault may occur if wsrep THDs try to access the uninitialized maria_hton. commit 536112dd30bbe68e1b0624ed68fbf96e333d9f80 Author: Jan Lindström Date: Thu May 21 15:07:19 2015 +0300 MDEV-8195: InnoDB: Error: trying to access tablespace 11262 page no. 7, InnoDB: but the tablespace does not exist or is just being dropped. Analysis: Problem was that we did try to read from tablespace that was being dropped. Fixed by introducing a new function to find a tablespace only if it is not being dropped currently and adding this check before trying to read pages from tablespace. commit 8635c4b4e66712558330d9534491af0c9025e4dc Author: Jan Lindström Date: Thu May 21 11:02:03 2015 +0300 Fix test failure. commit 137ba7d6f9c661f544ba1c71adcbfdd60a3dee75 Author: Jan Lindström Date: Thu May 21 08:14:35 2015 +0300 Fix compiler error. commit 925b64124acb50e144af5001cc97724d12ce5d40 Author: Jan Lindström Date: Wed May 20 20:32:10 2015 +0300 MDEV-8182: Failing assertion: 1 == UT_LIST_GET_LEN(space->chain) Analysis: At fil_spage_get_space there is small change that space is found from tablespace list but we have not yet created node for it (and added it to space->chain) and as we hold fil_system mutex here fil_node_create can't continue. Fixed by allowing UT_LIST_GET_LEN(space->chain) == 0|| 1 and introducint two new functions that access filespace list and before returning space check that node is also created. commit 3e55ef26d49a900782d2c2bb2c03470faed6ec9d Author: Jan Lindström Date: Wed May 20 13:35:51 2015 +0300 MDEV-8173: InnoDB; Failing assertion: crypt_data->type == 1 Make sure that when we publish the crypt_data we access the memory cache of the tablespace crypt_data. Make sure that crypt_data is stored whenever it is really needed. All this is not yet enough in my opinion because: sql/encryption.cc has DBUG_ASSERT(scheme->type == 1) i.e. crypt_data->type == CRYPT_SCHEME_1 However, for InnoDB point of view we have global crypt_data for every tablespace. When we change variables on crypt_data we take mutex. However, when we use crypt_data for encryption/decryption we use pointer to this global structure and no mutex to protect against changes on crypt_data. Tablespace encryption starts in fil_crypt_start_encrypting_space from crypt_data that has crypt_data->type = CRYPT_SCHEME_UNENCRYPTED and later we write page 0 CRYPT_SCHEME_1 and finally whe publish that to memory cache. commit 893631a8c188817e3294edc11de2087630dde801 Author: Olivier Bertrand Date: Wed May 20 12:39:17 2015 +0200 All the last changes made in the ob-10.0 branch including also changes of line endings of some test files commit 44cd6f22d4fdf7df8da6bb00caf6493f715854bc Author: Oleksandr Byelkin Date: Wed May 20 11:36:26 2015 +0200 MDEV-7921: main.sp_sync fails in buildbot with valgrind Part 2: detauch service thread. commit c1fb91ef7386d09cc1f61a7c2a653e66200c82af Author: Oleksandr Byelkin Date: Mon May 18 17:34:50 2015 +0200 MDEV-7921: main.sp_sync fails in buildbot with valgrind Part 1: first 2 cases of valgrind complain. context_analysis_only can be used on non-started LEX (opening tables) obviouse fixes in DBUG and is_lex_started assignment. commit 80333ad847d9f1708fa02fb47a976e96f014bc50 Author: Jan Lindström Date: Wed May 20 07:57:55 2015 +0300 Add missing requirement to test case and remove unnecessary output. commit bb15b9e29b33041b95f3dfa7b984de123162f2d3 Author: Alexander Barkov Date: Tue May 19 17:03:18 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO commit bac6bbab804b6e5428fe9413069148c1dd701a3e Author: Vicentiu Ciorbaru Date: Tue May 19 12:04:09 2015 +0000 [MDEV-8063]: Fix incorrect commit. The previous commit did not contain the reviewed changes and introduced a behaviour problem for the explain statement. This fixes the issue. commit 29c7aff76784ff2b8329387f69c73e7282f28b2a Author: VicenÈ›iu Ciorbaru Date: Mon May 18 01:35:47 2015 +0000 MDEV-8063: Unconditional ANALYZE DELETE does not delete rows When detecting a statement that can make use of ha_delete_all_rows(), we refrained from running the statement when being presented with the analyze or explain prefix. commit 20c23048c1d2f28942f2f99e4150a58b6545c0cd Author: Jan Lindström Date: Sun May 17 14:14:16 2015 +0300 MDEV-8164: Server crashes in pfs_mutex_enter_func after fil_crypt_is_closing or alike Analysis: Problem was that tablespaces not encrypted might not have crypt_data stored on disk. Fixed by always creating crypt_data to memory cache of the tablespace. MDEV-8138: strange results from encrypt-and-grep test Analysis: crypt_data->type is not updated correctly on memory cache. This caused problem with state tranfer on encrypted => unencrypted => encrypted. Fixed by updating memory cache of crypt_data->type correctly based on current srv_encrypt_tables value to either CRYPT_SCHEME_1 or CRYPT_SCHEME_UNENCRYPTED. commit 0bfae356d4f774c939a5642cd19ee6bfc682b8e7 Author: Nirbhay Choubey Date: Sat May 16 11:11:26 2015 -0400 MDEV-8166 : Adding index on new table from select crashes Galera cluster In wsrep, CTAS should be handled like a regular transaction. Added a test case. commit 476dfb16034f1af4c99e683fd612eec16ab1661a Author: Sergei Golubchik Date: Sat May 16 08:55:21 2015 +0200 update big tokudb test results after dd8f93195 that is, after commit dd8f931957e0c6fb538fffff76f40239e624096c Author: Sergei Golubchik Date: Fri Apr 10 02:36:54 2015 +0200 be less annoying about sysvar-based table attributes do not *always* add them to the create table definition, but only when a sysvar value is different from a default. also, when adding them - don't quote numbers commit 9cc7eb3226dc9bcadf42b57786d6e4380221b67a Author: Sergei Golubchik Date: Sat May 16 16:27:36 2015 +0200 upate test results after 2300fe2e that is, after commit 2300fe2e0ed59e36046bb867cc7499bf4c3d7c27 Author: Sergei Golubchik Date: Wed May 13 21:57:24 2015 +0200 Identical key derivation code in XtraDB/InnoDB/Aria commit 54672a4f1ec876cf4ae8e1b87cbb1f66698cbac0 Author: Sergei Golubchik Date: Fri May 15 09:54:41 2015 +0200 MDEV-8043 innodb tablespace encryption "use after free" bug, when a thread replaces space->crypt_data and frees the old crypt_data object while it's being used by another thread. commit e5989d52a770c85dac0d82b0a926042a0d328374 Author: Sergei Golubchik Date: Thu May 14 12:27:49 2015 +0200 InnoDB: simplify innobase_compression_algorithm_validate() commit 8815fb3d45c1e9551a6fcb8a76e61a33795e6e7f Author: Sergei Golubchik Date: Thu May 14 12:25:47 2015 +0200 MDEV-8158 InnoDB: Failing assertion: new_state->key_version != ENCRYPTION_KEY_VERSION_INVALID on dynamic change of encryption variables don't allow to enable srv_encrypt_tables if no encryption plugin is loaded commit 8827eb83259015ad5965e9b7456200129daad175 Author: Sergei Golubchik Date: Thu May 14 10:35:30 2015 +0200 MDEV-8162 func_str crashes on SELECT AES_DECRYPT(AES_ENCRYPT(...)) on line 107 encrypting 0 byte string *is* possible commit 8258a34800832b1713711d12f6a836c2fc5af19e Author: Sergei Golubchik Date: Thu May 14 10:13:03 2015 +0200 InnoDB: check if scrubbing is enabled before scanning the tablespace commit a94cabd503aab31afd99b99e3d1d0ace221c004a Author: Sergei Golubchik Date: Thu May 14 08:37:34 2015 +0200 MDEV-8159 InnoDB: Failing assertion: key_state->key_id to simplify various checks, set crypt_data->key_id even for not encrypted tablespaces commit 2300fe2e0ed59e36046bb867cc7499bf4c3d7c27 Author: Sergei Golubchik Date: Wed May 13 21:57:24 2015 +0200 Identical key derivation code in XtraDB/InnoDB/Aria * Extract it into the "encryption_scheme" service. * Make these engines to use the service, remove duplicate code. * Change MY_AES_xxx error codes, to return them safely from encryption_scheme_encrypt/decrypt without conflicting with ENCRYPTION_SCHEME_KEY_INVALID error commit 3eb8bc01b6876dc9dbacb82179127a58f4b86e79 Merge: 14b816a5c88 8fdf8f00c71 Author: Nirbhay Choubey Date: Thu May 14 21:53:48 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit 14b816a5c8899e9c7cbccf7dd394032af0896223 Author: Nirbhay Choubey Date: Thu May 14 21:48:54 2015 -0400 Disabling some more sporadically failing galera tests. commit 8fdf8f00c714471d499c0e9206940f3f2e8a22f3 Author: Nirbhay Choubey Date: Thu May 14 14:25:02 2015 -0400 mysql-wsrep#38 : wsrep_sst_xtrabackup-v2 script causes innobackupex to ..print a false positive stack trace into the log Suppress the stacktrace that innobackupex dumps on receiving SIGPIPE. commit 632f2307f775d255bab948de2178feb85fcac970 Author: Alexander Barkov Date: Thu May 14 17:42:40 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step#5: changing the function remove_eq_conds() into a virtual method in Item. It removes 6 virtual calls for Item_func::type(), and adds only 2 virtual calls for Item***::remove_eq_conds(). commit fb3e9352a42338f4221caa7e0cb6c6f62eb9f2be Author: Sergey Vojtovich Date: Thu May 14 12:44:07 2015 +0400 MDEV-7999 - PROFILING routines take 0.2% when profiling disabled This is an addition to original patch. Embedded server does extra calls of PROFILING::start_new_query() and PROFILING::finish_current_query(), which cause DBUG_ASSERT(!current) failure. Removed these extra calls: dispatch_command() does all needed job. commit 18f88d6d94ce9f65991e011c978c79d990498704 Author: Sergey Vojtovich Date: Wed Apr 22 14:18:51 2015 +0400 MDEV-7943 - pthread_getspecific() takes 0.76% in OLTP RO Avoid calling current_thd from thd_kill_level(). This reduces number of pthread_getspecific() calls from 776 to 354. Also thd_kill_level(NULL) is not permitted anymore: this saves one condition. commit f8cacd03a79e56746434f7c12e2ed8dd6a534b8e Author: Jan Lindström Date: Wed May 13 11:41:22 2015 +0300 MDEV-8143: InnoDB: Database page corruption on disk or a failed file read Analysis: Problem was that we did create crypt data for encrypted table but this new crypt data was not written to page 0. Instead a default crypt data was written to page 0 at table creation. Fixed by explicitly writing new crypt data to page 0 after successfull table creation. commit be2038e3cb2f37504cc2094e79beb8b1d33bc69e Author: Alexander Barkov Date: Wed May 13 17:08:24 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step 4 (there will be more) commit 16b6ec2e377f8f3dcac76e8c172ed9daa797d311 Author: Sergei Golubchik Date: Tue May 12 09:43:26 2015 +0200 MDEV-8130 Wrong error code/message while encrypting a partitioned InnoDB table when checking for a flag, use & not == commit def48e623a858f9ca798cd872a7399ef37396066 Author: Sergei Golubchik Date: Mon May 11 21:05:02 2015 +0200 MDEV-8141 InnoDB: background encryption thread uses FIL_DEFAULT_ENCRYPTION_KEY * check key version per key id (that is, per tablespace). * wake encryption thread when a tablespace needs re-encryption commit 6e4c22af7c16c3e743eb1ec60e10bdebe967d8f9 Author: Sergei Golubchik Date: Mon May 11 14:21:44 2015 +0200 example encryption plugin supports key ids show that two keys can be different if they have different ids or different versions. commit acd992d4b7fafa40a1c7a85b64238829b831e0bf Author: Sergei Golubchik Date: Sun May 10 20:57:16 2015 +0200 MDEV-8022 Assertion `rc == 0' failed in ma_encrypt on dropping an encrypted Aria table fix encryption of the last partial block * now really encrypt it, using key and iv * support the case of very short plaintext (less than one block) * recommend aes_ctr over aes_cbc, because the former doesn't have problems with partial blocks commit bea3f30d46c7611db26ebeb6143cd0ef96d91695 Author: Sergei Golubchik Date: Sun May 10 19:57:43 2015 +0200 move AES_CTR to its own greatly simplified function * don't use do_crypt() for stream cipher AES_CTR * rename do_crypt to block_crypt to emphasize its specialization commit a583976e78298141e074c2a6b3d6c7c842642781 Author: Sergei Golubchik Date: Sun May 10 11:44:08 2015 +0200 MDEV-8015 InnoDB: Failing assertion: new_state->key_version != ENCRYPTION_KEY_VERSION_INVALID InnoDB: refuse to start if encryption is requested but no encryption plugin is available commit b4777bfc11e5d9b49c01f1ee0eedf0d579cf6915 Author: Sergei Golubchik Date: Mon May 11 19:03:19 2015 +0200 cleanup, use encryption_key_id_exists() where appropriate commit 66380916ee44b046d0481a31971bdeac249d883b Author: Sergei Golubchik Date: Sun May 10 11:03:33 2015 +0200 MDEV-7993 file_key_management_filekey doesn't work as expected with FILE: chomp the secret, as read from the file. remove trailing CR and LF bytes. commit a35b538bdefd2d933cbcaa5cc0868f47c9f3e7c5 Author: Sergei Golubchik Date: Sat May 9 19:13:18 2015 +0200 MDEV-8040 make aria encryption use real keys applied upstream patch commit ab8415d9835c750e7b9c71595744c95d4426d591 Author: Sergei Golubchik Date: Sat May 9 12:31:53 2015 +0200 move encryption tests to a dedicate suite remove few tests for variables that never existed (merge error) commit b22959903b89e798f8804ec9a815c88f75915cd9 Author: Sergey Vojtovich Date: Wed Apr 22 13:29:56 2015 +0400 MDEV-7943 - pthread_getspecific() takes 0.76% in OLTP RO Added THD argument to select_result and all derivative classes. This reduces number of pthread_getspecific calls from 796 to 776 per OLTP RO transaction. commit 8345bc692192788c25ec004134a3a095437aeb1c Author: Alexander Barkov Date: Wed May 13 15:34:20 2015 +0400 MDEV-8152 is_columns_is_embedded test fails Recording --ps and --embedded tests (a postfix for MDEV-7807) commit 9851a8193f6f469b8d7cfea9333adf0008026d9f Author: Sergey Vojtovich Date: Wed May 13 15:28:34 2015 +0400 MDEV-8001 - mysql_reset_thd_for_next_command() takes 0.04% in OLTP RO Removed yet more mysql_reset_thd_for_next_command(). Call THD::reset_for_next_command() directly instead. commit 4d1ccc42890029e07048772579af97072e0fa3d5 Author: Sergey Vojtovich Date: Fri Apr 17 14:30:15 2015 +0400 MDEV-7951 - sql_alloc() takes 0.25% in OLTP RO sql_alloc() has additional costs compared to direct mem_root allocation: - function call: it is defined in a separate translation unit and can't be inlined - it needs to call pthread_getspecific() to get THD::mem_root It is called dozens of times implicitely at least by: - List<>::push_back() - List<>::push_front() - new (for Sql_alloc derived classes) - sql_memdup() Replaced lots of implicit sql_alloc() calls with direct mem_root allocation, passing through THD pointer whenever it is needed. Number of sql_alloc() calls reduced 345 -> 41 per OLTP RO transaction. pthread_getspecific() overhead dropped 0.76 -> 0.59 sql_alloc() overhed dropped 0.25 -> 0.06 commit c4d2c4e844717d9d5b2c0e4f0f9cfc7cc2c24fa6 Author: Sergey Vojtovich Date: Thu Apr 16 18:38:26 2015 +0400 MDEV-7964 - delete_dynamic() takes 0.12% in OLTP RO delete_dynamic() was called 9-11x per OLTP RO query + 3x per BEGIN/COMMIT. 3 calls were performed by LEX_MASTER_INFO. Added condition to call those only for CHANGE MASTER. 1 call was performed by lock_table_names()/Hash_set/my_hash_free(). Hash_set was supposed to be used for DDL and LOCK TABLES to gather database names, while it was initialized/freed for DML too. In fact Hash_set didn't do any useful job here. Hash_set was removed and MDL requests are now added directly to the list. The rest 5-7 calls are done by optimizer, mostly by Explain_query and friends. Since dynamic arrays are used in most cases, they can hardly be optimized. my_hash_free() overhead dropped 0.02 -> out of radar. delete_dynamic() overhead dropped 0.12 -> 0.04. commit 7cfa803d8ec9f4f79d44c8dafc675a79f5b3eb88 Author: Sergey Vojtovich Date: Wed Apr 15 18:32:34 2015 +0400 MDEV-8001 - mysql_reset_thd_for_next_command() takes 0.04% in OLTP RO Removed mysql_reset_thd_for_next_command(). Call THD::reset_for_next_command() directly instead. mysql_reset_thd_for_next_command() overhead dropped 0.04% -> out of radar. THD::reset_for_next_command() overhead didn't increase. commit 5cfb6b479efd05fafc77caf94d60240b879d5073 Author: Sergey Vojtovich Date: Wed Apr 15 18:12:23 2015 +0400 MDEV-7999 - PROFILING routines take 0.2% when profiling disabled PROFILING::start_new_query() optimizations: - no need to check "current": added assertion instead - "enabled" now means "is enabled currently" instead of "was enabled at query start". Old meaning was useless, new meaning echoes OPTION_PROFILING so that start_new_query() can be defined in sql_profile.h. - remnants of start_new_query() moved to sql_profile.h so it can be inlined PROFILING::start_new_query() overhead dropped 0.08% -> out of radar. PROFILING::set_query_source() optimizations: - no need to check "enabled": !enabled && current is impossible - remnants of set_query_source() moved to sql_profile.h so it can be inlined PROFILING::set_query_source() overhead dropped 0.02% -> out of radar. PROFILING::finish_current_query() optimizations: - moved "current" check out to sql_profile.h so it can be inlined PROFILING::finish_current_query() overhead dropped 0.10% -> out of radar. commit 55d5af733d97808a1479b185c029ac0121c0f158 Author: Sergey Vojtovich Date: Wed Apr 15 11:29:01 2015 +0400 MDEV-7945 - THD::enter_stage() takes 0.48% in OLTP RO THD::enter_stage() optimizations: - stage backup code moved to THD::backup_stage(), saves one condition - moved check for "new_stage" out to callers that actually need it - remnants of enter_stage() moved to sql_class.h so it can be inlined THD::enter_stage() overhead dropped 0.48% -> 0.07%. PROFILING::status_change() optimizations: - "status_arg" is now checked by QUERY_PROFILE::new_status() - no need to check "enabled": !enabled && current is impossible - remnants of status_change() moved to sql_profile.h so it can be inlined PROFILING::status_change() overhead dropped 0.1% -> out of radar. commit c9c8e0554f43154775c8a3b755a329a5a6035664 Author: Nirbhay Choubey Date: Tue May 12 23:43:06 2015 -0400 Update galera/disabled.def & some more test fixes. commit 7003776e739d2f49cba4bb39cceaea184dcfc38f Author: Elena Stepanova Date: Tue May 12 03:44:10 2015 +0300 MDEV-8144 percona.innodb_sys_index test fails Restoring the line affected by 5.5=>10.0 merge commit 6ae27e40985ef8c647ac2271c091f67511fb421f Merge: c6c9a69ccee 014fe12c03a Author: Nirbhay Choubey Date: Tue May 12 18:50:59 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit c8ad5b2f1223d8bb6edcdcb56317172206c9fd8e Author: Nirbhay Choubey Date: Tue May 12 17:15:16 2015 -0400 MDEV-8151 : wsrep.foreign_key, wsrep.pool_of_threads, .. wsrep.binlog_format, wsrep.mdev_6832 fail in buildbot Galera-3.9 logs an additional warning in the error log if it fails to find gvwstate.dat file. Update wsrep/suite.pm. commit 014fe12c03a2fdcbd2eb6bab39118de1cee02693 Author: Nirbhay Choubey Date: Tue May 12 14:19:30 2015 -0400 Fix for debug build failure Do not use format function attribute for sql_print_xxx() family of functions as they use a MariaDB-specific extension of printf instead of one provided by the system. commit 18fee8b8f8b7cdf3d58075c9734e9ace23e2dbec Author: Nirbhay Choubey Date: Tue May 12 17:05:41 2015 -0400 Revert last commit. commit c6c9a69ccee3325cfdd77d0dcd49259a574363b0 Author: Nirbhay Choubey Date: Tue May 12 16:56:06 2015 -0400 Fix for some more test failures. commit 8c54182ec4d8f00a164530d35c9769ccb5267bcb Author: Alexey Botchkov Date: Tue May 12 15:09:28 2015 +0500 MDEV-7926 Server crashes in get_geometry_column_record on concurrent SELECT FROM I_S.GEOMETRY_COLUMNS with join and DDL. The bug was that open_tables() returned error in case of thd->killed() without properly calling thd->send_kill_message() to set the correct error. This was fixed already in get_schema_column_record, so the code was just copied to get_geometry_column_record. commit 048039e0b2052cec0b72e6a442ef73e6b118437a Author: Nirbhay Choubey Date: Mon May 11 15:42:20 2015 -0400 Fix for build failure. commit 58e8db2eb398a812e2894d28db4173a4f67fea06 Author: Jan Lindström Date: Mon May 11 14:29:14 2015 +0300 MDEV-7942: InnoDB: abuse of UNIV_LIKELY()/UNIV_UNLIKELY() UNIV_LIKELY()/UNIV_UNLIKELY() hints are supposed to improve branch prediction. Currently, they're expected to work only if cond evaluates to TRUE or FALSE. However there're a few conditions that may evaluate to different values, e.g.: page/page0zip.cc: if (UNIV_LIKELY(c_stream->avail_in)) { page/page0zip.cc: if (UNIV_LIKELY(c_stream->avail_in)) { dict/dict0mem.cc: if (UNIV_LIKELY(i) && UNIV_UNLIKELY(!table->col_names)) { Fixed these conditions so that they evaluate TRUE/FALSE. commit 6e4920164426543082d02cde4c60bd29cbd54f99 Author: Kristian Nielsen Date: Mon May 11 12:47:43 2015 +0200 Fix compilation warnings in -DWITH_WSREP=OFF build. commit 8bedb638d7078c007b58bea4196c3749028192b4 Author: Kristian Nielsen Date: Mon May 11 11:55:58 2015 +0200 MDEV-8113: Parallel slave: slave hangs on ALTER TABLE (or other DDL) as the first event after slave start In optimistic parallel replication, it is not safe to try to run a following transaction in parallel with a DDL statement, and there is code to prevent this. However, the code was missing the case where the DDL is the very first event after slave start. In this case, following transactions could run in parallel with the DDL, which can cause the slave to hang or even corrupt slave in unlucky cases. commit ecfc3de57ee6a498b30ca8f59fdb952ab38f5698 Author: Jan Lindström Date: Mon May 11 09:21:04 2015 +0300 MDEV-8129: Compilation warnings in log0crypt.cc Fix incorrect types and compiler warnings. commit 83ca074c7501335a643cf2a7583b1c2233234755 Author: Olivier Bertrand Date: Sun May 10 12:52:28 2015 +0200 Last commit was done with wrong files commit 9dee994d992b3930f0d29197aed82771bf910c47 Author: Olivier Bertrand Date: Sun May 10 11:58:23 2015 +0200 Get rid of GCC warnings about unused parameters modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/block.h modified: storage/connect/catalog.h modified: storage/connect/colblk.cpp modified: storage/connect/colblk.h modified: storage/connect/connect.cc modified: storage/connect/filamap.cpp modified: storage/connect/filamdbf.cpp modified: storage/connect/filamfix.cpp modified: storage/connect/filamtxt.cpp modified: storage/connect/filamtxt.h modified: storage/connect/filamvct.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.h modified: storage/connect/ha_connect.c modified: storage/connect/jsonudf.cpp modified: storage/connect/mycat.h modified: storage/connect/myconn.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabcol.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/table.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/taboccur.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabsys.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabtbl.h modified: storage/connect/tabutil.cpp modified: storage/connect/tabutil.h modified: storage/connect/tabvct.cpp modified: storage/connect/tabvir.cpp modified: storage/connect/tabvir.h modified: storage/connect/tabxcl.cpp modified: storage/connect/tabxcl.h modified: storage/connect/tabxml.cpp modified: storage/connect/tabxml.h modified: storage/connect/valblk.cpp modified: storage/connect/valblk.h modified: storage/connect/value.cpp modified: storage/connect/value.h modified: storage/connect/xindex.cpp modified: storage/connect/xindex.h modified: storage/connect/xobject.h modified: storage/connect/xtable.h commit e11cad9e9dd3ae0be61aec1bb50b0ddc867b10be Merge: 99f496ae65a 0880284bf71 Author: Nirbhay Choubey Date: Sat May 9 17:09:21 2015 -0400 Merge tag 'mariadb-10.0.19' into 10.0-galera commit e1868fd61335129d648794389258de2ac021eb91 Author: Sergei Golubchik Date: Thu May 7 22:18:34 2015 +0200 MDEV-8115 mysql_upgrade crashes the server with REPAIR VIEW on REPAIR don't do table-specific stuff for views (because even if the view has a temp table opened for it, it's not opened all the way down the engine. In particular, Aria crashes in maria_status() because MARIA_HA* info - that is table->table->file->file - is NULL) commit 5fdb14542ae44aa2f0bae512e8305f791c977ca1 Author: Sergei Golubchik Date: Sat May 9 11:19:36 2015 +0200 MDEV-8021 "InnoDB: Tablespace id 4 encrypted but encryption service not available. Can't continue opening tablespace" on server restart when there are encrypted tables key id was written in the wrong place on the tablespace first page (thus its value could not be read back later) commit d259376fd88c86c7386a50f81353d43a12cf15c2 Author: Jan Lindström Date: Thu May 7 19:13:22 2015 +0300 MDEV-8041: InnoDB redo log encryption Merged new version of InnoDB/XtraDB redo log encryption from Google provided by Jonas Oreland. commit 99f496ae65a56d587e24c88df85aae7e7cfce70e Author: Nirbhay Choubey Date: Tue Apr 28 11:53:57 2015 -0400 Fix for some failing tests commit e69fbd4e38d36853b7e72a9d6a3afe7210874436 Author: Nirbhay Choubey Date: Tue Apr 21 13:22:08 2015 -0400 Post-merge fix commit 3331d4e07efca993b3f34fa06b8a03b41b6b690d Author: Nirbhay Choubey Date: Tue Apr 21 13:17:17 2015 -0400 Merge galera tests from github.com/codership/mysql-wsrep commit 608a1ce5b184f617d45c69095e1fae7b39402853 Author: Alexey Yurchenko Date: Sat Mar 28 13:57:38 2015 +0200 Refs codership/mysql-wsrep#33 - change const initialization to assignment to follow the genral style of the file. commit 58bbe9b0049638e1df12ab7443b233dcc25d0be9 Author: Philip Stoev Date: Thu Mar 12 05:06:33 2015 -0700 Fix suite/galera/t/galera_var_OSU_method.test commit 504ff56ece2c3e3d18d905ca2a56a5c384f2fb43 Author: Philip Stoev Date: Thu Mar 12 02:52:56 2015 -0700 Adjust tests now that wsrep_OSU_method is a session variable. commit 00afd63984c91cabcfed748d834351ca54b7e50d Author: Teemu Ollakka Date: Thu Mar 12 10:25:34 2015 +0200 refs codership/mysql-wsrep#90 made wsrep_OSU_method session variable commit 03a8f83e2c6c80658c7863b452847dd04dfc5dda Author: Philip Stoev Date: Wed Mar 11 04:33:12 2015 -0700 Add tests for galera/mysql-wsrep#90 commit 2df5ff2691a80873f44e779658c9a5d41c6c7e13 Author: Teemu Ollakka Date: Wed Mar 11 13:04:00 2015 +0200 refs codership/mysql-wsrep#90 - fixed race in OSU Make sure that thd uses the same method to begin and end OSU operation. commit c16ec074196aee32326a8015f49c0b8bae25111f Author: Alexey Yurchenko Date: Thu Mar 26 23:19:52 2015 +0200 Refs codership/mysql-features#33 - this fixes a bug where wsrep_start_position_update() would pass local_uuid and local_seqno to wsrep_sst_received() instead of real, submitted position. commit 0115ca2ae1c0ce06b3de6cc8c4f7f8a06220cff6 Author: Teemu Ollakka Date: Thu Mar 26 10:25:58 2015 +0200 refs codership/mysql-wsrep#98 fixed sidno initialization Sidno initialization was skipped in wsrep_sst_received() if the received position matched to current position. However, sidno initialization must be done every time server is started to add inverted group uuid into sidno map. commit 4ed9ddd30eefbedb4bb2f96a0f0eb2ab18d283a0 Author: Alexey Yurchenko Date: Mon Mar 23 23:27:28 2015 +0200 Refs codership/mysql-wsrep#33 1. factored XID-related functions to a separate wsrep_xid.cc unit. 2. refactored them to take refrences instead of pointers where appropriate 3. implemented wsrep_get/set_SE_position to take wsrep_uuid_t and wsrep_seqno_t instead of XID 4. call wsrep_set_SE_position() in wsrep_sst_received() to reinitialize SE checkpoint after SST was received, avoid assert() in setting code by first checking current position. commit f5bce5a6003e0591c822f217b63dc6b65a73000a Author: Teemu Ollakka Date: Wed Mar 18 14:56:46 2015 +0200 codership/mysql-wsrep#67 - total order isolation for FLUSH The following FLUSH commands are now executed under total order isolation: * FLUSH DES_KEY_FILE * FLUSH HOSTS * FLUSH PRIVILEGES * FLUSH QUERY CACHE * FLUSH STATUS * FLUSH USER_RESOURCES commit 0fdfca693702dafe69a1b33afb804aa0545dd81b Author: Teemu Ollakka Date: Tue Feb 10 18:27:21 2015 +0200 refs codership/mysql-wsrep#60 explicit braces around empty body commit 226c249ab396cbc57abb155183a8b86b712e4d63 Author: sjaakola Date: Thu Jan 29 11:06:44 2015 +0200 refs codership/mysql-wsrep#53 - fencing LOAD DATA splitting related commit to not happen with ALTER processing commit f725b0c49d23b9520d4e622c0291073943268ae1 Author: Philip Stoev Date: Tue Dec 16 00:30:26 2014 -0800 LP1378355 - Reduce memory consumption slightly. commit da298348406747dcaf431dd5641b0d53590f5e83 Author: Philip Stoev Date: Tue Dec 16 00:22:55 2014 -0800 LP1378355 - Address review feedback, do not pass --defaults-group-suffix for mysqldump SST commit 7d550c76be13c58551e203f4eeb4f87ebd58ba4b Author: Philip Stoev Date: Mon Dec 15 04:45:58 2014 -0800 LP1378355 - Pass the value of --defaults-group-suffix to xtrabackup during SST commit 9d15689d1f529b493cd9f01fbd2271c3ff81497d Author: Alexey Yurchenko Date: Wed Dec 10 23:29:28 2014 +0200 Refs #25 - made sure signals that may be set to ignored in mysqld were set to default in the child process. commit 14b6172075eda88675d8b34951e0ee5f3f5874e3 Author: Alexey Yurchenko Date: Tue Dec 9 22:13:14 2014 +0200 Going more MTR-friendly - for SST prefer to use mysql client, mysqldump and my_print_defaults from the local build tree. commit 91417b404716e3c409a0a551a232c063d04f85a9 Author: sjaakola Date: Mon Nov 17 23:47:14 2014 +0200 refs #7 - merged fix from 5.5 branch. However, 5.6 branch has not (yet) surfaced similar applier hang as 5.5 commit 13a9bcc6be4cb2e27c81c7e42bb534d8d1947870 Author: sjaakola Date: Thu Nov 13 14:04:23 2014 +0200 refs #11 #13 - skipping TOI, if all affected tables are temporary commit 21bc3e3fdab516b86fbc1c33966d068471460ce2 Author: sjaakola Date: Wed Nov 12 14:59:04 2014 +0200 refs #2 - added binlog stmt cache reset after commit. This is needed for non-InnoDB statements commit 9fdae3eb60746a07ade11236e513d393969e7afd Author: dirtysalt Date: Fri Oct 31 15:55:18 2014 +0800 Refs #8: preserve gvwstate.dat for pc recovery feature commit 0f405f216efcf7ca000cbf032a6a0a19b3de03cd Author: Teemu Ollakka Date: Wed Oct 29 17:08:51 2014 +0200 refs #6 fixed compilation errors with -DWITH_DEBUG=1, removed unwanted files commit ab54f5a8b99bd14cc3ee7c70968327a896066944 Author: Vicentiu Ciorbaru Date: Fri May 8 17:31:54 2015 +0300 Fix win/ files to be stored with LF in repository On Windows, the files get checked out with CRLF thanks to .gitattributes. commit 5ae8d06df498037cff864c28076b42c02577e382 Author: Vicentiu Ciorbaru Date: Fri May 8 17:27:41 2015 +0300 Update .gitattributes commit 91ee98a8c88d2595d903e70cd4e1824dffb9e43c Author: Alexander Barkov Date: Fri May 8 00:34:06 2015 +0400 MDEV-7807 information_schema.processlist truncates queries with binary strings Adding a new column INFORMATION_SCHEMA.PROCESSLIST.INFO_BINARY. commit 0fcc350f732af1a3f3cbc97abf341e1bdde0d3e2 Author: Sergey Vojtovich Date: Wed Apr 8 10:55:51 2015 +0400 MDEV-7922 - ERROR 1939 (HY000): Engine PERFORMANCE_SCHEMA failed to discover table Performance schema discovery fails if connection has no active database set. This happened due to restriction in SQL parser: table name with no database name is ambiguous in such case. Fixed by temporary substitution of default database with being discovered table database. commit 3832bda1ba9f31294d57b565030ea3f5d35e6a82 Author: Jan Lindström Date: Thu May 7 14:00:14 2015 +0300 Fix compiler error if compiler does not support c99 style initializers. commit 7ed673f35c4b9baf7d343a4ad0d64ed6a9df912a Author: Sergey Vojtovich Date: Tue Mar 17 19:49:04 2015 +0400 MDEV-7793 - Race condition between XA COMMIT/ROLLBACK and disconnect XA COMMIT/ROLLBACK of XA transaction owned by different thread may access freed memory if that thread disconnects at the same time. Also concurrent XA COMMIT/ROLLBACK of recovered XA transaction were not serialized properly. commit b97568503640d62987daae6304d39302257ffcbb Merge: bad81f23f68 3d801e606bc Author: Jan Lindström Date: Wed May 6 16:48:17 2015 +0300 Merge pull request #54 from openquery/MDEV-8053-c99-style-for-structure-members-10.1 c99 style for assigning structure members commit bad81f23f68b2193ad4f443fb0e20b56c7c86f68 Author: Jan Lindström Date: Wed May 6 15:16:28 2015 +0300 MDEV-8046: Server crashes in pfs_mutex_enter_func on select from I_S.INNODB_TABLESPACES_ENCRYPTION if InnoDB is disabled Problem was that information schema tables innodb_tablespaces_encryption and innodb_tablespaces_scrubbing where missing required check is InnoDB enabled or not. commit 2f25c653ade1e73aa2b1aa77af9a4898bacb2330 Author: Jan Lindström Date: Wed May 6 14:09:10 2015 +0300 MDEV-8074: Failing assertion: mutex->magic_n == MUTEX_MAGIC_N in file sync0sync.cc line 508 Problem was that e.g. on crash recovery fil_space_crypt_close_tablespace and fil_space_crypt_mark_space_closing access mutex that is not yet initialized. Mutex is naturally initialized only if encryption is configured. commit 31c069eb4d00f1b30f1c0d6ca3ab855914693853 Merge: 539b3ca87d9 ef99edf1a87 Author: Kristian Nielsen Date: Wed May 6 12:46:33 2015 +0200 Merge MDEV-8103 into 10.1 commit 1db5b849ab59cb631eb3ab5e1130be08c4fa4a92 Author: Olivier Bertrand Date: Tue May 5 18:38:54 2015 +0200 - Fix a regression bug on (XML) HTML tables. modified: tabxml.cpp added: xml_html.test xml_html.result beers.xml coffee.htm - Fix MDEV-7935 by suppressing error resetting code in delete_or_rename_table. However, the issue is that this code was added because without it an assertion was raised in some cases. Unfortunately I can't remember what were these cases. Therefore fixing it in this case will perhaps make a new crash happening on another cases. modified: ha_connect.cc - Add the UDF Json_Array_Delete. modified: jsonudf.cpp commit 539b3ca87d97d15fcf1076ce1e4a83d5b00d9c26 Author: Alexander Barkov Date: Tue May 5 09:30:17 2015 +0400 - Moving Item_func_spatial_mbr_rel from Item_bool_func2 to Item_bool_func, as Item_func_spatial_mbr_rel needs nothing from Item_bool_func2. - Renaming Item_func_spacial_rel (the class that implements precise spacial relations) to Item_func_spatial_precise_rel - Adding a new abstract class Item_func_spatial_rel as a common parent for Item_func_spatial_precise_rel and Item_func_spatial_mbr_rel. commit 2fe4d0e6cde260b772da5e0c3dbad4bd4ab5bee3 Author: Alexander Barkov Date: Tue May 5 01:09:47 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step #3: Splitting the function check_equality() into a method in Item. Implementing Item::check_equality() and Item_func_eq::check_equality(). Implement Item_func_eq::build_equal_items() in addition to Item_func::build_equal_items() and moving the call for check_equality() from Item_func::build_equal_items() to Item_func_eq::build_equal_items(). commit d2562004c5ac118b399475195b08f17fe673e481 Merge: 42f99d00eee 4c87f727734 Author: Nirbhay Choubey Date: Mon May 4 13:50:52 2015 -0400 Merge tag 'mariadb-5.5.43' into 5.5-galera commit 42f99d00eee0023184c6d985fa6f4e7a9717c3d8 Author: Teemu Ollakka Date: Wed Mar 18 21:17:31 2015 +0200 codership/mysql-wsrep#67 - total order isolation for FLUSH The following FLUSH commands are now executed under total order isolation: * FLUSH DES_KEY_FILE * FLUSH HOSTS * FLUSH PRIVILEGES * FLUSH QUERY CACHE * FLUSH STATUS * FLUSH USER_RESOURCES This patch was backported from mysql-wsrep/5.6 commit cdea608d9a27701d76d0deec49976aa0a08b1a56 commit f3efc63283a232bfe3dc74d45a7ca4a3fcc683c8 Author: Teemu Ollakka Date: Tue Feb 10 18:27:21 2015 +0200 refs codership/mysql-wsrep#60 explicit braces around empty body commit 70d6236afd55b74211fee507c5af6b2b631c3f26 Author: sjaakola Date: Tue Feb 10 00:47:02 2015 +0200 refs codership/mysql-wsrep#55 - To avoid compiler warming: sql/sql_parse.cc: In function 'bool do_command(THD*)': sql/sql_parse.cc:758:20: error: 'packet_length' may be used uninitialized in this function [-Werror=maybe-uninitialized] if ((WSREP(thd) && packet_length == packet_error) || [ commit f6b1e0fe0a33c724839abab74ae07bbbd41a23e6 Author: Teemu Ollakka Date: Thu Feb 5 14:38:03 2015 +0200 refs #55 fixed debug build compilation errors commit b02d73656000107250b288c77668ce671fdacb10 Author: Alexey Yurchenko Date: Wed Dec 10 23:29:28 2014 +0200 Refs #25 - made sure signals that may be set to ignored in mysqld were set to default in the child process. commit c72ed05cdc215c14e41d0466a3d50d2c1a3a2033 Author: Alexey Yurchenko Date: Wed Dec 10 01:45:50 2014 +0200 This commit * improves MySQL client version check making it no less than required as opposed to exactly as required. * adds event table copying to ensure same results as with rsync SST. commit 822c00536d461d56e81dd9c519ec5ec1cde9536a Author: Alexey Yurchenko Date: Tue Dec 9 22:13:14 2014 +0200 Going more MTR-friendly - for SST prefer to use mysql client, mysqldump and my_print_defaults from the local build tree. commit 2a6e1230e3a709ac91ac299ec81a18fb37538e4b Author: Nirbhay Choubey Date: Mon Mar 30 17:58:41 2015 -0400 refs #7 - handling lock queue granting in BF-BF conflict situation Merge fix to xtradb. commit 68fe3a39ac7f8c93b4c710b56403b9792b822c23 Author: sjaakola Date: Sun Nov 16 16:26:36 2014 +0200 refs #7 - handling lock queue granting in BF-BF conflict situation commit 51744b3f80a025a8c20c3aeb80741375a115d649 Author: dirtysalt Date: Fri Oct 31 15:55:18 2014 +0800 Refs #8: [5.5] preserve gvwstate.dat for pc recovery feature commit 9090c3efcae0874219b990e73568e41e021a3352 Author: Alexander Barkov Date: Mon May 4 18:31:24 2015 +0400 Adding a test for Item_default_value in WHERE condition: WHERE DEFAULT(col) It seems this was not covered yet. commit 462bca365ad3e8cda99b044bcf63d3ec5dc78bd9 Author: Alexander Barkov Date: Mon May 4 18:12:31 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step 2c: After discussion with Igor, it appeared that Item_field and Item_ref could not appear in this context in the old function build_equal_item_for_cond: else if (cond->type() == Item::FUNC_ITEM || cond->real_item()->type() == Item::FIELD_ITEM) The part of the condition checking for Item_field::FIELD_ITEM was a dead code. - Moving implementation of Item_ident_or_func_or_sum::build_equal_items() to Item_func::build_equal_items() - Restoring deriving of Item_ident and Item_sum_or_func from Item_result_field. Removing Item_ident_or_func_or_sum. commit 13c0a6067738265c50b03958e497a3ab0e881b78 Author: Olivier Bertrand Date: Sat May 2 15:49:02 2015 +0200 Fix MDEV-8090 in tabmysql.cpp commit 6dda9e04faf682e617242f4771e7b88c89bd64d4 Author: Olivier Bertrand Date: Fri May 1 18:53:50 2015 +0200 Same as last 10.0 commit commit 53382ac128d9571b5f779bf625567fc3ea0b475e Author: Jan Lindström Date: Fri May 1 14:23:08 2015 +0300 MDEV-8079: Crash when running MariaDB Debug with InnoDB on Windows Problem was that std::vector was allocated using calloc instead of new, this caused vector constructor not being called and vector metadata not initialized. commit ff1e0821d1174428dd70331bd864de1334ab0567 Author: Sergey Vojtovich Date: Thu Apr 30 12:36:39 2015 +0400 MDEV-8073 - Build error in sql/mdl.cc on OS X 10.10 C++03 seem to require default constructor for const objects even though they're fully initialized. There is defect report for this: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 Apparently some compilers (e.g. gcc) addressed this defect report, while some (e.g. clang) did not. Added empty default constructor to MDL_scoped_lock and MDL_object_lock classes. Also replaced lf_hash_search_using_hash_value() with lf_hash_search(). The latter will call mdl_key->hash_value() anyway. commit 499deca7fc7e8185434eaaf6923f600e18d95d90 Author: Alexander Barkov Date: Wed Apr 29 17:53:27 2015 +0400 A clean-up for c8141f53140054282306d17459310fbca94cbf0e MDEV-7950 Item_func::type() takes 0.26% in OLTP RO (Step#2) - Item_ref was doing unnecessary extra job after the "MDEV-7950 Step#2" patch. Fallback to Item::build_equal_items() if real_type() is not FIELD_ITEM. Note, Item_ref::build_equal_items() will most likely be further simplified. Waiting for Sanja and Igor to check a possibly dead code. - Safety: Adding Item_sum::build_equal_items() with ASSERT, as Item_sum should never appear in build_equal_items() context. commit 9cdf5c2bfd362764444bb3658ec23490658f16fb Merge: c8141f53140 9088f26f204 Author: Kristian Nielsen Date: Wed Apr 29 11:30:26 2015 +0200 Merge branch '10.0' into 10.1 commit 8aa84821b48c501afdfb46dbe5600dbe5b4bb5d0 Author: Nirbhay Choubey Date: Tue Apr 28 18:59:11 2015 -0400 MDEV-8057: Galera conflicts with InnoDB buffer pool dump Avoid creating innodb buffer pool dump/load thread if mysqld is started with wsrep recovery mode (--wsrep-recover). (Merged fix for lp:1305955 from lp:percona-xtradb-cluster) commit c8141f53140054282306d17459310fbca94cbf0e Author: Alexander Barkov Date: Tue Apr 28 14:06:07 2015 +0400 MDEV-7950 Item_func::type() takes 0.26% in OLTP RO Step#2: 1. Removes the function build_equal_items_for_cond() and introduces a new method Item::build_equal_items() instead, with specific implementations in the following Items: Item (the default implementation) Item_ident_or_func_or_sum Item_cond Item_cond_and 2. Adds a new abstract class Item_ident_or_func_or_sum, a common parent for Item_ident and Item_func_or_sum, as they have exactly the same build_equal_items(). 3. Renames Item_cond_and::cond_equal to Item_cond_and::m_cond_equal, to avoid confusion between the member and local variables named "cond_equal". commit 3d801e606bcb38e08e13801471aa8df972babf7d Author: Daniel Black Date: Mon Apr 27 21:08:52 2015 +1000 c99 style for assigning structure members commit 46816996c827a2b588c4b76565a1977771ac0522 Author: Alexander Barkov Date: Sun Apr 26 01:46:55 2015 +0400 Moving members' initialization from LEX::init_last_field to constructor Create_field::Create_field(). commit ecb009b2cb947c8b25d6e11f58726b3e9034b541 Author: Alexander Barkov Date: Sat Apr 25 00:54:00 2015 +0400 Adding Type_std_attributes to reduce some duplicate code. TODO: move some methods from Item to Type_std_attributes. commit 04fb09d7811606e1a1a8f646532e1b379d50b217 Author: Alexander Barkov Date: Fri Apr 24 12:59:21 2015 +0400 Deriving Item_row from Item_args and sharing more code between Item_func, Item_sum, Item_row. commit c2dd88ac85e6b1fe63ac36465f62a784cf6b4d4a Merge: fc1f301e913 b616991a68c Author: Kristian Nielsen Date: Thu Apr 23 14:40:10 2015 +0200 Merge MDEV-8031 into 10.1 commit 44b44dd1d73c5da4e3b6ed7935c79ca88b61fdc8 Author: Nirbhay Choubey Date: Wed Apr 22 18:30:27 2015 -0400 Comments for wsrep_exec_mode's. commit 581b49dd3d3e2e253812bb24fa881148675320b4 Author: Nirbhay Choubey Date: Wed Apr 22 18:13:30 2015 -0400 MDEV-7995 : DMLs not getting replicated with log-bin=OFF & binlog-format != ROW This bug is a side-effect of fix for MDEV-6924, where we completely stopped a statement-based event from getting into the binlog cache when binary logging is not enabled (and thus, wsrep_emulate_binlog mode = 1). As a result, the SBR events were not replicated. Fixed by allowing the SBR events to be written into the binlog cache. Note: Only DMLs were affected as DDLs are replicated via TOI. Merged galera_create_trigger.test from github.com/codership/mysql-wsrep. commit fc1f301e91367be5de7b5dc510acb1a6e22d59b5 Author: Alexander Barkov Date: Wed Apr 22 12:40:23 2015 +0400 MDEV-8024 Remove excessive update_used_tables() calls commit e7a7ea7ec107089c42315064fa238ec2cca92110 Merge: 6876a7dc4e2 47605287546 Author: Kristian Nielsen Date: Tue Apr 21 10:31:39 2015 +0200 Merge branch '10.0' into 10.1 commit 6876a7dc4e22c019643fe18affc6fa8d991dbb14 Author: Kristian Nielsen Date: Mon Apr 20 15:37:45 2015 +0200 Bump VERSION following 10.1.4 release commit d4e3aa4c6f4fb467b7f1adacd8ea9f71339cffe0 Author: Kristian Nielsen Date: Mon Apr 20 14:23:55 2015 +0200 After-merge fixes: .result file update commit a15a4d674d0729f0b8eadc023ecd1b0ad0aebd88 Merge: 791b0ab5db4 14d15785d19 Author: Kristian Nielsen Date: Mon Apr 20 13:22:51 2015 +0200 Merge MDEV-7802 into 10.1 commit 791b0ab5db47528d93cdaf534114e417ff06b66a Merge: c6d08ecce3e 519ad0f7e35 Author: Kristian Nielsen Date: Mon Apr 20 13:21:58 2015 +0200 Merge 10.0 -> 10.1 commit c6d08ecce3e7c18ecaae973c67bd2e547e0db4dd Merge: 18715befd29 bc902a2bfc4 Author: Alexander Barkov Date: Mon Apr 20 11:45:22 2015 +0400 Merge commit 'bc902a2bfc46add0708896c07621e3707f66d95f' into 10.1 commit b3f9838f5b0fc69a759862314befa6c12439b5aa Author: Olivier Bertrand Date: Sun Apr 19 12:15:58 2015 +0200 Update 10.1 with changes from 10.0 commit 18715befd292a9e2b1d862d1c343ae09c6540904 Author: Kristian Nielsen Date: Fri Apr 17 19:48:55 2015 +0200 Post-merge fix: build error in innodb-enabled build. commit 5f233c55d0584e618d4db31ab57eb29b3a6cab5f Merge: 22a7b4dee0b 167332597f0 Author: Kristian Nielsen Date: Fri Apr 17 15:19:27 2015 +0200 Merge 10.0 -> 10.1. commit 167332597f03f73057fbb4684687a013596181bd Merge: 8125db1d9ae 702fdc52fa0 Author: Kristian Nielsen Date: Fri Apr 17 15:18:44 2015 +0200 Merge 10.0 -> 10.1. Conflicts: mysql-test/suite/multi_source/multisource.result sql/sql_base.cc commit 22a7b4dee0bad4ec2c7fd235a0f46fe745ace71a Author: Alexander Barkov Date: Fri Apr 17 16:26:08 2015 +0400 Removing duplicate code/declarations: Removing "Field *result_field" from Item_field and Item_ref, and deriving Item_ident and Item_ref from Item_result_field instead. commit 14d15785d1931e0f4d2487f6c43a721b1b057b9c Author: Kristian Nielsen Date: Fri Apr 17 12:45:55 2015 +0200 MDEV-7802: Omit one test which could fail on very loaded host. commit 8125db1d9ae489162f08560f42c60c10a316afbc Author: Alexander Barkov Date: Fri Apr 17 12:36:31 2015 +0400 Moving fix_length_and_dec() from Item_result_field to Item_func_or_sum, as the other decendants of Item_result_field (Item_avg_field, Item_variance_field, Item_cache_wrapper) don't need fix_length_and_dec(). commit 99898c6f760c7b9678906f4830451eb57f37e899 Author: Alexander Barkov Date: Fri Apr 17 09:52:44 2015 +0400 Minor reorganization in Item hierarchy, to remove duplicate code. - Adding a new class Item_args, represending regular function or aggregate function arguments array. - Adding a new class Item_func_or_sum, a parent class for Item_func and Item_sum - Moving Item_result_field::name() to Item_func_or_sum(), as name() is not needed on Item_result_field level. commit 0095697784a12cbb269238b354ac6f31800418fb Author: Nirbhay Choubey Date: Thu Apr 16 16:29:02 2015 -0400 MDEV-7996 : CURRENT_USER definer does not replicate for triggers THD's lex->definer initially holds "*current_user" for CURRENT_USER(). As a result when wsrep tries to create the trigger query, it incorrectly uses "*current_user". Fixed by calling get_current_user() to get the real current user. Merged galera_create_trigger.test from github.com/codership/mysql-wsrep. commit 3c4668c519999e002182a8c48cde93c3ebfaddd7 Author: Nirbhay Choubey Date: Wed Apr 15 23:06:03 2015 -0400 wsrep_sst_mysqldump : Fix server version and a syntax error commit d051f6c36beaf6c7ea269d6c174cca7482f3e823 Author: Nirbhay Choubey Date: Wed Apr 15 11:12:12 2015 -0400 MDEV-6594: Use separate domain_id for Galera transactions Post-fix : A typo and better error handling. commit a1f3356bf375495e29faabedd01dce0736d20993 Author: Nirbhay Choubey Date: Wed Apr 15 10:21:46 2015 -0400 Update galera package name/version for debian commit 0c6904258ba94380f722ac2b93c2bad3bc0d3f41 Merge: f6f253bddc6 5d2b85a297e Author: Kristian Nielsen Date: Tue Apr 14 14:10:37 2015 +0200 Merge MDEV-7975 into 10.1 commit f6f253bddc6f0f48526e9341cf351a4129b285ff Author: Sergei Petrunia Date: Tue Apr 14 04:02:45 2015 -0700 Fix a typo, s/false/NULL/. commit 201c985be56f375677df9275d38f18a20cf41029 Author: Alexander Barkov Date: Mon Apr 13 22:36:49 2015 +0400 MDEV-7886 CREATE VIEW IF NOT EXISTS produces a wrong warning commit ed349270657f4f8224845078a0448824a0fdc54d Author: Kristian Nielsen Date: Mon Apr 13 14:38:25 2015 +0200 MDEV-7936: Assertion `!table || table->in_use == _current_thd()' failed on parallel replication in optimistic mode Additional 10.1-specific test case. commit 2de8db6296fb5d5ea90f646b465b6afe33c32286 Merge: 8a01a0acb33 60d094aeacb Author: Kristian Nielsen Date: Mon Apr 13 14:28:07 2015 +0200 Merge MDEV-7936 into 10.1 commit 8a01a0acb332c36c8e1c63027fb9e65587ed2784 Author: Alexander Barkov Date: Mon Apr 13 11:26:49 2015 +0400 MDEV-7920 main.group_min_max fails in buildbot with valgrind commit d8a4a8363533cb19a33c046e631c920ab18895fd Merge: 7ac2f1fbf1c 2bbf3b89f66 Author: Sergei Petrunia Date: Sun Apr 12 10:48:20 2015 +0200 Merge branch 'bb-10.1-explain-analyze' into 10.1 commit 7ac2f1fbf1cd9764a3e048eb3fb89ea6b8c063da Author: Sergei Petrunia Date: Sun Apr 12 10:30:10 2015 +0200 Update test results after previous pushes commit 2bbf3b89f66e391b126108fc3c4d4a5d2e440a38 Author: Sergei Petrunia Date: Sun Apr 12 06:07:58 2015 +0200 MDEV-7836: ANALYZE FORMAT=JSON should provide info about GROUP/ORDER BY Fix EXPLAIN FORMAT=JSON to produce output that's not worse than the tabular form. commit cc8da9b75aa8ed99be8ef5a7a765c9a4fb059014 Merge: 771dec39fdf a445b83d73c Author: Sergei Petrunia Date: Sun Apr 12 05:34:30 2015 +0200 Merge ../10.1-explain-analyze into bb-10.1-explain-analyze commit a445b83d73c18b64cfbf6256d8f6ae44d6c7356f Merge: 0719df781e5 d214c83b5e5 Author: Sergei Petrunia Date: Sun Apr 12 05:16:48 2015 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 771dec39fdf5e00ddabbb2febe34c38804a6ef10 Merge: 0719df781e5 d214c83b5e5 Author: Sergei Petrunia Date: Sun Apr 12 05:07:39 2015 +0300 Merge branch '10.1' into bb-10.1-explain-analyze commit 0719df781e5600bceeaaec0e97367f4420a491d0 Merge: 4938b822634 37e87b58739 Author: Sergei Petrunia Date: Sun Apr 12 04:59:34 2015 +0300 Merge commit 4938b822634b173c0d7ef882f721b553b223fadd Author: Sergei Petrunia Date: Sun Apr 12 04:48:42 2015 +0300 MDEV-7836: ANALYZE FORMAT=JSON should provide info about GROUP/ORDER BY Provide basic info about sorting/grouping done by the queries. commit d214c83b5e50f17fd60e853272491c4312df1169 Author: Sergei Golubchik Date: Sat Apr 11 10:22:26 2015 +0200 mtr: make search_pattern_in_file.inc more verbose report when a pattern is found do not abort, but merely report when a pattern is not found commit 4e15146fe66f75e4b0289dd0142c71f697ffa44c Author: Sergei Golubchik Date: Sat Apr 11 10:13:49 2015 +0200 update tokudb test results after dd8f93195 that is, after commit dd8f931957e0c6fb538fffff76f40239e624096c Author: Sergei Golubchik Date: Fri Apr 10 02:36:54 2015 +0200 be less annoying about sysvar-based table attributes do not *always* add them to the create table definition, but only when a sysvar value is different from a default. also, when adding them - don't quote numbers commit 4a7472bbf25471a3ffe6ad1b17fd9f4c27e8aaab Author: Sergei Golubchik Date: Sat Apr 11 00:28:42 2015 +0200 fix a crash in innodb.innodb-wl5522-zip,xtradb dereferencing of the uninitialized pointer bpade->slot (when compiled without UNIV_DEBUG) commit a73676b2e600d32f45e0181237c31e91df1483b4 Merge: 24341cb6cb8 135f203d289 Author: Sergei Golubchik Date: Fri Apr 10 19:32:14 2015 +0200 Merge branch '10.1' into bb-10.1-serg commit 24341cb6cb8614f6b282ca05cfa3b8474743b5ed Author: Sergei Golubchik Date: Fri Apr 10 18:01:53 2015 +0200 add encryption plugins to deb packages commit 135f203d28910621a4720b5d71a5513f5882523b Author: Alexander Barkov Date: Fri Apr 10 17:04:44 2015 +0400 A cleanup for the contributed patch for MDEV-7816 ALTER with DROP INDEX and ADD INDEX .. COMMENT='comment2' ignores the new comment commit d2ed256ef7c1abd8ae81b455aa00a7e30703e529 Author: Sergei Golubchik Date: Fri Apr 10 14:24:58 2015 +0200 move debug_ and example_key_management plugins to test component commit 899c5c32cf87166ec945750e45209f1f0c14cca8 Author: Sergei Golubchik Date: Fri Apr 10 13:39:29 2015 +0200 smarter MY_CHECK_AND_SET_COMPILER_FLAG If a flag is supported only for C or C++ - add it to the corresponding compiler option list. Old behavior was to add always to both, but only if supported in both. commit 87b46dcdc9c7f452c896d698c2d6d6d051b165fe Author: Sergei Golubchik Date: Fri Apr 10 13:30:12 2015 +0200 disable scrubbing tests on windows unportable, use grep commit 23e90e9a22a3f4d40ad8b4e33382e84f4be58455 Merge: 37e87b58739 4feaa06c842 Author: Alexander Barkov Date: Fri Apr 10 15:17:44 2015 +0400 Merge branch 'MDEV-7816' of git://github.com/f4rnham/server into 10.1 commit 7d49e6940e8db23864eb9e3fb1df0d90edd4278a Author: Sergei Golubchik Date: Fri Apr 10 09:46:21 2015 +0200 fix "use mutex before initialization" bug in example_km plugin that for some reasons worked on linux, but crashed on windows commit 966b236612662de5a36f86221bd54227e7f62730 Author: Sergei Golubchik Date: Thu Apr 9 21:04:05 2015 +0200 add support for --innodb-encrypt-tables=FORCE this will prevent user from creating tables with ENCRYPTED=OFF commit da06baa11f8b632bff22c90201334394aa0e4f4f Author: Sergei Golubchik Date: Thu Apr 9 20:44:56 2015 +0200 mtr: *.opt files, always enable innodb-encrypt-log because one is supposed always to use it with innodb-encrypt-tables commit dab6c8374442513d0aae3b09627e2995739f770c Author: Sergei Golubchik Date: Thu Apr 9 18:30:05 2015 +0200 allow srv_encrypt_tables and ENCRYPTED=YES to be used together commit bc9f118e29a96454cfa55cb80cc347804601ddd7 Author: Sergei Golubchik Date: Thu Apr 9 17:59:34 2015 +0200 rename table attribute ENCRYPTION=ON/OFF to ENCRYPTED=YES/NO commit ea764f5f520b83f4327d6f9955004a2ee8d41267 Author: Sergei Golubchik Date: Thu Apr 9 14:09:06 2015 +0200 s/innodb_default_encryption_key/innodb_default_encryption_key_id/ and make it a session variable, not global, as any decent default sysvar for a table attribute should be commit 92ff5236193e257d2366d4de6bc160a44bf3d97a Author: Sergei Golubchik Date: Fri Apr 10 02:39:36 2015 +0200 change ENCRYPTION_KEY_ID to be HA_TOPTION_SYSVAR instead of manually implenting "default from a sysvar" in the code commit dd8f931957e0c6fb538fffff76f40239e624096c Author: Sergei Golubchik Date: Fri Apr 10 02:36:54 2015 +0200 be less annoying about sysvar-based table attributes do not *always* add them to the create table definition, but only when a sysvar value is different from a default. also, when adding them - don't quote numbers commit eb29a63e4508359a44a29c192fae347196d5a6d3 Author: Sergei Golubchik Date: Thu Apr 9 11:14:57 2015 +0200 SET STATEMENT timestamp=xxx .... fix sys_var->is_default() method (that was using default_val property in a global sys_var object to track per-session state): * move timestamp to a dedicated Sys_var_timestamp class (in fact, rename Sys_var_session_special_double to Sys_var_timestamp) * make session_is_default a virtual method with a special implementation for timestamps * other variables don't have a special behavior for default values and can have session_is_default() to be always false. commit 0a9052f591a04e617ad58ee1b19dfc3ed7084147 Author: Sergei Golubchik Date: Thu Apr 9 00:37:54 2015 +0200 Store the key id in the tablespace and read it back commit 97d5de4ccfa75af899e764dbd1c3f4b7ea370311 Author: Sergei Golubchik Date: Thu Apr 9 00:37:47 2015 +0200 Add encryption key id to the API as a distinct concept which is separate from the encryption key version commit 5dffda3ccc72d026f0ac2eea63b5e1424cc1eca1 Merge: 129e9601794 d2b87801b68 Author: Sergei Golubchik Date: Thu Apr 9 19:27:40 2015 +0200 Merge branch 'bb-10.1-jan-encryption' into bb-10.1-serg With changes: * update tests to pass (new encryption/encryption_key_id syntax). * not merged the code that makes engine aware of the encryption mode (CRYPT_SCHEME_1_CBC, CRYPT_SCHEME_1_CTR, storing it on disk, etc), because now the encryption plugin is handling it. * compression+encryption did not work in either branch before the merge - and it does not work after the merge. it might be more broken after the merge though - some of that code was not merged. * page checksumming code was not moved (moving of page checksumming from fil_space_encrypt() to fil_space_decrypt was not merged). * restored deleted lines in buf_page_get_frame(), otherwise innodb_scrub test failed. commit 129e960179443be84757dfb57ed0959f4146340f Author: Sergei Golubchik Date: Thu Apr 9 19:06:11 2015 +0200 fix log_blocks_crypt() to actually decrypt the encrypted log It used to double-encrypt it, relying on the fact that second encrypt() call was (like XOR) negating the effect of the first one. commit d6b912c64dab5f070347546ddf1f34deadbf4ecf Author: Sergei Golubchik Date: Thu Apr 9 00:26:37 2015 +0200 update XtraDB/InnoDB plugin maturity to match the server because of encryption changes - make it beta and let it mature together with the server commit 3a2ec3fca61b1f99c307a82bc650c65b0c721d91 Author: Sergei Golubchik Date: Wed Apr 8 22:07:37 2015 +0200 make innodb_encryption_debug test more robust commit f130da7b0014d539d9f05127dbc08826e30cd497 Author: Sergei Golubchik Date: Sun Apr 5 17:37:06 2015 +0200 clarify/simplify new innodb sysvars: help texts commit 87cf86519ebf5e4fc07e5bbf615e39c465d5cd52 Author: Sergei Golubchik Date: Sun Apr 5 17:33:32 2015 +0200 clarify/simplify new innodb sysvars: innodb-scrub-force-testing rename to innodb-debug-force-scrubbing commit 19e76814b76dc0d3af600dc0ffbae116dbf116ca Author: Sergei Golubchik Date: Sun Apr 5 17:29:43 2015 +0200 clarify/simplify new innodb sysvars: innodb-scrub-log-interval rename to innodb-scrub-log-speed commit 72c8b3fcb27adc91a013f8850d9a2af5dccf179b Author: Sergei Golubchik Date: Sun Apr 5 13:16:59 2015 +0200 small cleanups as per review commit 4d40a7d133b1e5a3241ec673721687158e235be0 Author: Sergei Golubchik Date: Wed Apr 1 22:15:11 2015 +0200 remove now-empty my_aes.{h,cc} move remaning defines to my_crypt, add MY_ namespace prefix commit 65e782607031721b22397010bd7be57bbd5f6439 Author: Sergei Golubchik Date: Wed Apr 1 21:25:02 2015 +0200 renames to follow single consistent naming style with namespace prefixes commit c0878f64c5c39b9cc21f66a401040a708f4f0792 Author: Sergei Golubchik Date: Wed Apr 1 18:26:19 2015 +0200 remove wrappers in encryption_keys.cc invoke plugin methods directly commit bb1b61b312088ba9f5f2cb606594b6f33c284402 Author: Sergei Golubchik Date: Tue Mar 31 19:32:35 2015 +0200 encryption plugin controls the encryption * no --encryption-algorithm option anymore * encrypt/decrypt methods in the encryption plugin * ecnrypt/decrypt methods in the encryption_km service * file_km plugin has --file-key-management-encryption-algorithm * debug_km always uses aes_cbc * example_km changes between aes_cbc and aes_ecb for different key versions commit 9ccafffc29526ea30151eb3e62901bfdb77aaf84 Author: Sergei Golubchik Date: Fri Mar 27 09:45:22 2015 +0100 rename "encryption key management plugin" to "encryption plugin" because it's going to do more than just key management commit 6d3dace7d95bfa9627e524787d076124afc7e773 Author: Sergei Golubchik Date: Wed Apr 8 10:57:32 2015 +0200 mtr: don't disable tests in suite.pm unnecessary only those tests should be disabled in suite.pm that cannot be disabled from mysqltest files (e.g. when the server is started with a special command-line option - unknown option will abort the server before mysqltest will start its checks). commit 37e87b587396319e607fb8626b6f2a74e66d25a4 Author: Sergei Petrunia Date: Thu Apr 9 16:47:04 2015 +0300 MDEV-6382: ANALYZE $stmt and security Add test coverage. The issue itself has been fixed already. commit b05383cb1440d2a6508d5254e0617e0dccf49898 Author: Oleksandr Byelkin Date: Wed Apr 8 20:14:48 2015 +0200 MDEV-7835: ANALYZE FORMAT=JSON should show buffer sizes commit 697194461ad2031420bc1aaf8a03432dbf2acd66 Author: Oleksandr Byelkin Date: Wed Apr 8 10:13:36 2015 +0200 MDEV-7856: EXPLAIN FORMAT=JSON should show partitions commit abba4184e68f2ae652f1be19b04f32efb2cb354a Merge: 66ff1632f53 15a2b5aab1a Author: Kristian Nielsen Date: Thu Apr 9 10:05:27 2015 +0200 Merge MDEV-7940 into 10.1 commit 66ff1632f53ef2378c2f2546e0716547ee5d3217 Author: Sergei Petrunia Date: Wed Apr 8 16:25:01 2015 +0300 MDEV-7860: EXPLAIN FORMAT=JSON crashes for loose scan query (Based on original patch by Sanja Byelkin) Make the code that produces JSON output handle LooseScan quick select. The output we produce is compatible with MySQL 5.6. commit 82b9eb5e3aec2738411293c9aea498b05e21a715 Merge: 7ee1a41ce1c b3c7c8cde8a Author: Kristian Nielsen Date: Wed Apr 8 15:11:44 2015 +0200 Merge MDEV-7910 into 10.1 commit 7ee1a41ce1c7409790bd27ce34dc61e540acb472 Author: Kristian Nielsen Date: Wed Apr 8 13:15:04 2015 +0200 MDEV-7888, MDEV-7929: Parallel replication hangs sometimes on ANALYZE TABLE or DDL Follow-up patch with 10.1-specific changes. Add test cases that more closely resembles the original bug report (which uses the 10.1-specific --slave-parallel-mode=optimistic). Also fix the code so that ANALYZE statements are now marked as DDL, and will not be attempted to speculatively run in parallel with other transactions. commit 48c10fb5f768dd2860d7107e8bd45f5b4a3a7b18 Merge: 2b475b567e9 3b961347db2 Author: Kristian Nielsen Date: Wed Apr 8 11:04:24 2015 +0200 Merge MDEV-7888 and MDEV-7929 into 10.1. commit 6a3932fdd0709deed103327511be618104178593 Author: Sergei Golubchik Date: Tue Mar 31 19:53:57 2015 +0200 use key derivation procedure for all encryption algorithms commit ef5b4889c2bc1d463291d4d80091c79183ec1196 Author: Sergei Golubchik Date: Tue Mar 31 19:00:51 2015 +0200 optimize encryption api only one encryption key lookup in most cases instead of three (has_key, get_key_size, get_key). commit c91e3260e2678078c0bb29d8daa90fb52cefaab7 Author: Sergei Golubchik Date: Mon Mar 30 18:00:50 2015 +0200 tests for file_key_management plugin key file parser commit e02749aaf5559384ef130e53aaaf02a33e5bcac3 Author: Sergei Golubchik Date: Sat Mar 28 13:25:25 2015 +0100 completely rewrote file_key_management plugin numerous issues fixed: * buffer overflows * error conditions aren't checked (crash if file doesn't exist) * accessing random unallocated memory * hard-coded password * arbitrary hard-coded key id limit * incomprehensible error messages (for key_id == 0 it reported "The key could not be initialized", for syntax errors the message was "Wrong match of the keyID, see the template", for a key id larger than hard-coded limit the message was "No asked key", and there was an error "Is comment" for a comment). * tons of small mallocs, many are freed few lines down in the code * malloc(N) and new char[N] are used both, even in the same function * redundant memory copies * pcre - "I can solve it with regular expressions" - with incorrect regexes * parser context stored in a singleton * keys are stored as strings and are strlen-ed and hex2bin-ed on every get_key() request * lots of useless code (e.g. sprintf instead of a pointer assignment, checking of the file length to read a part of it in a fixed buffer, multiplying by sizeof(char) in many places, etc) * this list is not exhaustive commit 9bda4bc52a1c36ec61589e9006edc3f8ac5fec0b Author: Sergei Golubchik Date: Mon Mar 30 14:16:34 2015 +0200 report a plugin loading offset at dlopen time not an address of some arbitrarily chosen symbol; not when plugin is successfully loaded (which means - no info when plugin->init failed); commit beea77869557486aa3ece65b57b7807f72fcbc75 Author: Sergei Golubchik Date: Mon Mar 30 17:13:42 2015 +0200 copy-paste bug in service_sha1.h commit 32e5304bff0effeef3354ebf6fd25fe0eb4ae124 Author: Sergei Golubchik Date: Sat Mar 28 18:05:53 2015 +0100 mtr: fix testname,combination syntax to work in many-combination case in particular, "innodb.innodb-page_encryption,xtradb" should select these three tests: innodb.innodb-page_encryption 'cbc,xtradb' [ pass ] 35563 innodb.innodb-page_encryption 'ctr,xtradb' [ pass ] 36858 innodb.innodb-page_encryption 'ecb,xtradb' [ pass ] 36741 and deselect all innodb_plugin tests. This was not the case, because the %test_combs hash was destructively modified in the loop commit 5fcba6eb264e0f0af2eb83502bc8da031bef567f Author: Sergei Golubchik Date: Sat Mar 28 10:55:31 2015 +0100 small cleanup * my_aes.h doesn't compile without my_global.h * typo in a comment * redundant condition * if encryption plugin fails, there's no encryption_key_manager at plugin deinit time * encryption plugin tests must run when plugin.so is present, not when a plugin is active (otherwise the test will be skipped when plugin fails to initialize). commit 88632726e88471d492a6125f0cd4a4a3c25a6923 Author: Sergei Golubchik Date: Fri Mar 27 15:58:02 2015 +0100 rename plugins to remove "_plugin" from the plugin name commit 817a63f273a3797bf2cb6317d89fca196c0b0bfc Author: Sergei Golubchik Date: Thu Mar 26 17:40:52 2015 +0100 pass the correct key length to encryption routines commit 2643cc545fe76ee59883497cf50fc64c7be975b2 Author: Sergei Golubchik Date: Thu Mar 26 17:20:23 2015 +0100 Don't crash the server if en-/decryption fails in Aria commit f379c9a8203233f4c2eb2c9a4c6dae819bd4b78c Author: Sergei Golubchik Date: Thu Mar 26 17:00:49 2015 +0100 remove Aria-only handler flag commit 39865322c6026ecd0c935ba2884c20799eef7e5f Author: Sergei Golubchik Date: Thu Mar 26 15:57:08 2015 +0100 remove a google specific script commit 7a387c01586ae5107f2c2c64d3cdd420de83e168 Author: Sergei Golubchik Date: Thu Mar 26 15:37:40 2015 +0100 table->keep_row_order no longer need to force DYNAMIC_RECORD for temporary Aria tables. It can use a faster BLOCK_RECORD commit 5d8dbee97ba41fc36358cec94ae05e53a8bde0f8 Author: Sergei Golubchik Date: Thu Mar 26 14:01:39 2015 +0100 remove get_iv() from the key management plugin API now IVs are always handled internally commit c238e68d96cb61ff404ab8cf0e21898d832604a9 Author: Sergei Golubchik Date: Thu Mar 26 11:12:02 2015 +0100 move debug_use_static_encryption_keys and debug_encryption_key_version to a plugin commit b937574293ee731dc7b5c949d27fede1f5d17db5 Author: Sergei Golubchik Date: Wed Mar 25 19:36:10 2015 +0100 remove old my_aes_encrypt/decrypt and simplify Item_func_aes_encrypt/decrypt commit 91f7363e4baff9debe43cf039fe4525c43aee4cc Author: Sergei Golubchik Date: Wed Mar 25 19:35:22 2015 +0100 yassl padding commit f444d13a3bd861ec86530e22cd861f25e2b350df Author: Sergei Golubchik Date: Wed Mar 25 16:11:16 2015 +0100 my_aes* functions: support for different key lengths to: different key lengths commit 2b475b567e93c9a2438a835f2236ec3672e7769c Author: Sergei Petrunia Date: Wed Apr 8 03:33:48 2015 +0300 MDEV-7927: Server crashes in in Time_and_counter_tracker::incr_loops - JOIN::save_explain_data should also set JOIN::tracker (it already sets join_tab[0].tracker). This is needed for UNIONs inside subqueries. commit d2b87801b68e81ae4225f90bbcab03c7e35aea01 Author: Jan Lindström Date: Thu Apr 2 16:52:30 2015 +0300 Fix test failure on these scrub tests. commit 4865fd105a56540587d065826ce652fb0850f876 Author: Jan Lindström Date: Thu Apr 2 13:49:50 2015 +0300 InnoDB/XtraDB Encryption cleanup Step 5: -- Rename encryption_key -> encryption_key_id -- Remove unnecessary code -- Fix few bugs found -- Fix test cases and results files commit af768c2f228f90c949c6dae94d34a7296ffd943c Author: Jan Lindström Date: Wed Apr 1 22:03:14 2015 +0300 InnoDB/XtraDB Encryption code cleanup Step 4: -- Review fixes -- Rename pages_page_* to pages_* -- Remove unnecessary code commit 71ec0463af4fb7658d2f37d3a054e50fa49cfb2a Author: Jan Lindström Date: Wed Apr 1 20:33:50 2015 +0300 Encryption cleanup Step 3: -- Make encrytion_algorithm changeable by SUPER -- Remove AES_ECB method from encryption_algorithms -- Support AES method change by storing used method on InnoDB/XtraDB objects -- Store used AES method to crypt_data as different crypt types -- Store used AES method to redo/undo logs and checkpoint -- Store used AES method on every encrypted page after key_version -- Add test commit 0ba9fa35bc119cbded96cd8587427be195603cec Author: Jan Lindström Date: Wed Apr 1 19:37:00 2015 +0300 InnoDB/XtraDB Encryption cleanup Step 2: -- Introduce temporal memory array to buffer pool where to allocate temporary memory for encryption/compression -- Rename PAGE_ENCRYPTION -> ENCRYPTION -- Rename PAGE_ENCRYPTION_KEY -> ENCRYPTION_KEY -- Rename innodb_default_page_encryption_key -> innodb_default_encryption_key -- Allow enable/disable encryption for tables by changing ENCRYPTION to enum having values DEFAULT, ON, OFF -- In create table store crypt_data if ENCRYPTION is ON or OFF -- Do not crypt tablespaces having ENCRYPTION=OFF -- Store encryption mode to crypt_data and redo-log commit b4a4d82396dce58496a9d0741fec505452d753f6 Author: Jan Lindström Date: Wed Apr 1 11:50:21 2015 +0300 InnoDB/XtraDB Encryption cleanup. Step 1: -- Remove page encryption from dictionary (per table encryption will be handled by storing crypt_data to page 0) -- Remove encryption/compression from os0file and all functions before that (compression will be added to buf0buf.cc) -- Use same CRYPT_SCHEME_1 for all encryption methods -- Do some code cleanups to confort InnoDB coding style commit 0df8c0aa5ed1a6d3869783a30cbe71521cffa4e4 Merge: 129822a2b73 6be0f803114 Author: Sergei Petrunia Date: Tue Apr 7 12:02:58 2015 +0300 Merge branch 'bb-10.1-explain-analyze' into 10.1 commit 6be0f803114630cdeeb07f1458d1d62f2a3bea5f Merge: 2af935c8ec2 7d9e94e2e6c Author: Sergei Petrunia Date: Tue Apr 7 12:01:43 2015 +0300 Merge branch 'bb-10.1-explain-analyze' of github.com:MariaDB/server into bb-10.1-explain-analyze commit 129822a2b7324684d045bf93f46c825e2a3550e0 Merge: 7d9e94e2e6c 2af935c8ec2 Author: Sergei Petrunia Date: Tue Apr 7 12:00:23 2015 +0300 Merge branch 'bb-10.1-explain-analyze' into 10.1 commit 2af935c8ec238f57d4ed909a8876031bd36dbb4d Author: Sergei Petrunia Date: Tue Apr 7 01:29:17 2015 +0300 MDEV-7899: 10.1 is 3% slower than 10.0 in OLTP RO - Remove ANALYZE's timing code off the the execution path of regular SELECTs. - Improve the tracker that tracks counts/execution times of SELECTs or DML statements: = regular execution just increments counters = ANALYZE will also collect timings. commit 7d9e94e2e6c32b906d1d8469e58bc04b8da1c121 Author: Sergei Petrunia Date: Mon Apr 6 19:37:37 2015 +0300 MDEV-7916: main.analyze_format_json fails in buildbot on labrador Make the test work on case insensitive FS commit eb83e9405f9f537ff49f6d325942133460aa510c Author: Elena Stepanova Date: Mon Apr 6 19:13:33 2015 +0300 MDEV-7917 main.log_tables fails sporadically in buildbot #2 mysql.slow_log table has an extra column in 10.1, so the test table copy should too -- added the column. commit 2f6d63f063d1c5dd0bec01b489df51f72213c2bc Merge: 2936fb127d5 3674c363a7e Author: Sergei Petrunia Date: Mon Apr 6 18:56:39 2015 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 2936fb127d551a1abd6f30bdfd50a8a9bcf4e41b Author: Sergei Petrunia Date: Mon Apr 6 18:54:08 2015 +0300 MDEV-7919: main.explain_json* fail in buildbot with valgrind Correctly initialize Explain_node::connection_type, remove unused Explain_node constructor. commit 3674c363a7e77e534c3e0d28659dc614c53fbcbc Author: Jan Lindström Date: Mon Apr 6 12:45:35 2015 +0300 MDEV-7918: A number of tests fail in valgrind builder with "InnoDB: Error: Requested state 6 current state 4 old_state 4" Problem with this state transfer is that different state transfers are protected with different mutexes. commit 48a77e61880aeb6f18162f2ab0a5b03386cf5010 Author: Olivier Bertrand Date: Sun Apr 5 14:03:35 2015 +0200 Make this repository aligned with 10.0 one commit 3bbe2057da977b3197e19ceede87b4e79b542b59 Author: Sergei Golubchik Date: Wed Mar 25 09:47:26 2015 +0100 yassl support commit 2f8d101f9eb5193a8a1d5ab5cc8e52d7b52007a4 Author: Sergei Golubchik Date: Tue Mar 24 20:43:20 2015 +0100 unify my_{en|de}crypt_{cbc|ecb|ctr}. no yassl support yet. commit 27cc252bb73436957120a964734a794ab3fd64ef Author: Sergei Golubchik Date: Tue Mar 24 13:52:43 2015 +0100 simplify my_crypt.cc, remove duplicate code commit 6a7ee5a5a540f2c69c8b56448e06098d368ecdb4 Author: Sergei Golubchik Date: Thu Mar 26 17:16:37 2015 +0100 encryption cleanup: small changes * comments * move my_bytes_to_key() and my_aes_hex2uint() into file_key_management_plugin * rename HA_INSERT_ORDER -> HA_PRESERVE_INSERT_ORDER * remove unused variables and declarations * fix casts * don't link innodb with pcre * remove redundant entries from aria's TARGET_LINK_LIBRARIES commit 87604c4cadac0c9f86068d7f0075bb3cdeabdf0b Author: Sergei Golubchik Date: Mon Mar 9 19:53:47 2015 +0100 encryption cleanup: delete obsolete files they should've been deleted long ago, but weren't commit 16a7738bc98098033fc6e524654a008b9d2830d8 Author: Sergei Golubchik Date: Fri Mar 13 18:52:10 2015 +0100 MDEV-6819 st_mysql_show_var::value should be void* not char* followup commit 0cbe0c9c6da982210eb1dbbedb575038ea32d3e6 Author: Sergei Golubchik Date: Wed Mar 11 12:28:26 2015 +0100 remove one cmake MESSAGE (one generally should not do that, these messages are printed on every cmake run) commit 47c344b00fa6878e5d1ce4235f8016a1ec995967 Author: Sergei Petrunia Date: Sat Apr 4 00:47:10 2015 +0300 MDEV-7904: ANALYZE FORMAT=JSON doesn't print r_rows for union output Print r_rows. There is no table tracking for reading from tmp table, yet. commit a220905083c382bec096dd1435b6620d348bbfeb Author: Oleksandr Byelkin Date: Thu Apr 2 18:19:33 2015 +0200 MDEV-7833:ANALYZE FORMAT=JSON and Range checked for each record commit 7f613ebdb6865e2d1304d20977764b523f6a5080 Author: Alexander Barkov Date: Fri Apr 3 15:43:55 2015 +0400 MDEV-7284 INDEX: CREATE OR REPLACE commit 118fc5c68835fdfefe6b8d8efb4c04977bb3130a Merge: 575dd775046 ca2f2b71511 Author: Jan Lindström Date: Fri Apr 3 08:50:59 2015 +0300 Adjust test timeout to let long semaphore wait signaling to happen. commit 0695fdd9df3501a02ae473c23992345c19342aa8 Author: Daniel Black Date: Fri Apr 3 01:34:30 2015 +1100 mdev-7802-binlog_groupcommit_stats Update the description of each test case as to why it is counted in the correct binlog_group_commit_trigger_* variable. Updated rpl_parallel_multilevel2.test to identify that 3 groups occur in statement and mixed replication and one group in row based replication. commit 575dd775046b7dd53330bcb01b81dceeffeb2e88 Author: Nirbhay Choubey Date: Wed Apr 1 18:25:40 2015 -0400 MDEV-7867: Add binlog header to GRA_.log file commit 1d5220d1124111f563f9faec355c9343f6e40849 Author: Daniel Black Date: Wed Apr 1 22:47:36 2015 +1100 binlog_group_commit_* status variables update remove group_commit_reason_immediate rename group_commit_reason_transaction to group_commit_trigger_lock_wait rename group_commit_reason_usec to group_commit_trigger_timeout rename group_commit_reason_count to group_commit_triggger_count commit dd7026a703aabdbe0430bf5f32c6f4f5c6d9c240 Author: Daniel Black Date: Wed Apr 1 21:51:55 2015 +1100 All updates to binlog_status_group_commit_reason* are under LOCK_prepare_ordered commit ca2f2b71511df1dc256949329ea7e89d812f16bf Author: Jan Lindström Date: Tue Mar 31 09:54:40 2015 +0300 Adjust test wait timeout. commit cbc5157feb9801310e458f7ed10983ad478c881e Author: Jan Lindström Date: Tue Mar 31 09:00:01 2015 +0300 MDEV-7878: innodb_scrub_background fails sporadically in buildbot (Failing assertion: offset > 0 && offset < UNIV_PAGE_SIZE) Problem was that when encrypted space was flushed page 0 is also updated but crypt data offset was sometimes not calculated. commit f573b65e4173a90a738682837e2f0020c76827ff Merge: 59df1009222 880f2273fdc Author: Kristian Nielsen Date: Mon Mar 30 15:10:29 2015 +0200 Merge MDEV-7847 and MDEV-7882 into 10.0. Conflicts: mysql-test/suite/rpl/r/rpl_parallel.result sql/rpl_parallel.cc commit 59df1009222a73fbd184987d1c8700f86b30792b Author: Alexander Barkov Date: Mon Mar 30 10:57:44 2015 +0400 Removing Item_string::m_cs_specified and making Item_string::is_cs_specified() virtual instead. commit 49220f76aa9d8c4af3842353142d9843fd4433a5 Author: Elena Stepanova Date: Mon Mar 30 01:11:14 2015 +0300 Increased the version number commit bf963d3b52e4aa25f9052e1e4c7ddf2ecee4143b Author: Elena Stepanova Date: Mon Mar 30 01:09:59 2015 +0300 MDEV-7874 deb package installation fails with "dpkg: dependency problems prevent configuration of mariadb-server" Added usr/share/mysql/maria_add_gis_sp_bootstrap.sql to the file lists commit b2a1187307b7f7f79138cf87a21f84a836fca2a0 Author: Oleksandr Byelkin Date: Thu Mar 26 10:48:56 2015 +0100 MDEV-7812: ANALYZE FORMAT=JSON UPDATE/DELETE doesnt print the r_total_time_ms Tracking total time added in UPDATE/DELETE Fixed selectivity calculation in UPDATE/DELETE Macro definitions of time tracting fixed. commit 84a4db263a1d98e9a2f3c6b5816a9b6b9a019128 Merge: 555915faa9f d7445ea6dfb Author: Nirbhay Choubey Date: Sat Mar 28 17:29:10 2015 -0400 Merge branch '5.5-galera' into 10.0-galera commit d7445ea6dfbd3be390792c636f755d3bb40d5fbf Author: Nirbhay Choubey Date: Fri Mar 27 20:35:37 2015 -0400 MDEV-7194: galera fails to replicate DDL queries when using binlog_checksum Restore fix for MDEV-4328 (revno: 3391) that got accidentally overwritten while merging : http://bazaar.launchpad.net/~codership/codership-mysql/5.5-23/revision/3900 Added a test case. commit 9b8f86f8958116030de5a4e6ab75011cca251dfc Author: Sergei Petrunia Date: Fri Mar 27 23:44:06 2015 +0300 Better comments commit 47c26d5aeeae79276142746128c4b28f6693553d Author: Jan Lindström Date: Fri Mar 27 11:36:43 2015 +0200 Skip necessary encryption tests if required plugin is not found. commit 50eee6050464e4a7737841245956a4d6c9c2dea9 Author: Alexander Barkov Date: Thu Mar 26 20:44:12 2015 +0400 Preparatory refactoring for: MDEV-6218 Wrong result of CHAR_LENGTH(non-BMP-character) with 3-byte utf8 - Moving get_text() as a method to Lex_input_stream. - Moving the unescaping part into a separate function, this piece of code will later go to /strings most likely. - Removing Lex_input_string::yytoklen, as it's not needed any more. commit 4feaa06c842b0ae1cc8ab2d6e7f0bbd00c000e87 Author: f4rnham Date: Thu Mar 26 00:00:12 2015 +0100 MDEV-7816 ALTER with DROP INDEX and ADD INDEX .. COMMENT='comment2' ignores the new comment Consider two indexes different if their comments differ commit 01d7da6785284383b2c04f2d4474feccebb0bb6f Author: Oleksandr Byelkin Date: Wed Mar 25 19:11:46 2015 +0100 MDEV-7834: ANALYZE FORMAT=JSON output column should be named ANALYZE commit e15d792697ab30ac9a96aa0a8db20a0006246004 Author: Sergei Petrunia Date: Wed Mar 25 21:20:06 2015 +0300 Trivial test results updates commit 3841e921ba469fbd7050b41ea0e753ab184c98b0 Merge: 34fcc28e7b8 f42064a172e Author: Sergei Petrunia Date: Wed Mar 25 21:07:23 2015 +0300 Merge branch 'bb-10.1-explain-analyze' into 10.1 commit 34fcc28e7b89034f50b0fe15df738c02c7608a0d Merge: 651a142ad02 71bbff8de37 Author: Sergei Petrunia Date: Wed Mar 25 19:34:08 2015 +0300 Merge pull request #33 from k0da/mdev-7839 Fix BigEndian build for Cassandra SE commit 71bbff8de374f828ac9b319f8f110b30954730ae Author: Dinar Valeev Date: Wed Mar 25 17:21:52 2015 +0100 Fix BigEndian build On BigEndian build fails with: [ 109s] /home/abuild/rpmbuild/BUILD/mariadb-10.0.17/storage/cassandra/ha_cassandra.cc:890:22: error: invalid conversion from 'longlong* {aka long long int*} ' to 'long long int' [-fpermissive] [ 109s] value->x.long_value= (longlong *)*cass_data; [ 109s] ^ This commit fixes it Signed-off-by: Dinar Valeev commit f42064a172e062e04243ed4e4c2113b93bfc9136 Author: Sergei Petrunia Date: Wed Mar 25 12:20:16 2015 +0300 Fix valgrind failure: correclty clean up handler::tracker commit 651a142ad02dc51926f8159d9e923552f782612e Author: Alexander Barkov Date: Wed Mar 25 13:06:04 2015 +0400 MDEV-7831 Bad warning for DATE_ADD(timestamp_column, INTERVAL 10 SECOND) commit 6a204546ef91aa90dedb6b47353bbb568f0531b0 Author: Nirbhay Choubey Date: Tue Mar 24 16:41:04 2015 -0400 MDEV-7798: mysql.server init script can't stop mysqld when WSREP is turned off wsrep threads should be always be checked for existence & stopped on server shutdown. commit bd2ae787ea273169dc88db62bc1e66d56cbe9a4c Author: Kristian Nielsen Date: Tue Mar 24 16:33:51 2015 +0100 MDEV-7825: Parallel replication race condition on gco->flags, possibly resulting in slave hang The patch for optimistic parallel replication as a memory optimisation moved the gco->installed field into a bit in gco->flags. However, that is just plain wrong. The gco->flags field is owned by the SQL driver thread, but gco->installed is used by the worker threads, so this will cause a race condition. The user-visible problem might be conflicts between transactions and/or slave threads hanging. So revert this part of the optimistic parallel replication patch, going back to using a separate field gco->installed like in 10.0. commit 664ce4c507f015311dfe9a4f12c074dcfd365e48 Author: Sergei Petrunia Date: Tue Mar 24 17:35:29 2015 +0300 Fix linking: move the inline functions commit 4106dfe89b772a78dfc39b79082dd08158cf91ad Merge: ec68494beb1 77e16ce7d65 Author: Sergei Petrunia Date: Tue Mar 24 16:26:42 2015 +0300 Merge branch 'bb-10.1-explain-analyze' into 10.1 commit 77e16ce7d65793451c640014b342d23a28fc1060 Author: Sergei Petrunia Date: Tue Mar 24 16:17:41 2015 +0300 MDEV-7648: Extra data in ANALYZE FORMAT=JSON $stmt Switch from relying on PERFORMANCE_SCHEMA to using our own hooks for counting the time spent reading rows from tables. commit b273e4a5c0e2342cf407d451466df164adfb36c6 Author: Sergei Petrunia Date: Tue Mar 24 13:22:03 2015 +0300 Better comments commit ec68494beb151bc01ff6885476d2d4aeab3fe345 Author: Alexander Barkov Date: Mon Mar 23 17:38:55 2015 +0400 MDEV-7677 my_charset_handler_filename has a wrong "ismbchar" member commit 464947e6323dc1e473532b641335e903a36c1d6c Author: Olivier Bertrand Date: Sun Mar 22 11:31:10 2015 +0100 - Fix a bug that caused a crash when doing delete on a json table with wrong syntax file - Suppress MYSQL_SUPPORT preprocessor variable commit 4fbba0982436aa871b57facc008a18527c10aacc Author: VicenÈ›iu Ciorbaru Date: Sat Mar 21 19:54:06 2015 +0200 MDEV-7813 analyze_stmt fails with --embedded flag set Moved the privilege checking code which does not apply for embedded to a separate test case. commit 3578419b778876fc1e7ec2a6994b9273b5d2b166 Author: Jan Lindström Date: Fri Mar 20 12:38:53 2015 +0200 MDEV-7797: file_key_management_plugin uses static IV for a key Currently crypt data is written to file space always. Use that to obtain random IV for every object (file). Beatify code to confort InnoDB coding styles. Conflicts: storage/innobase/fil/fil0crypt.cc storage/xtradb/fil/fil0crypt.cc commit 0c26c0032c9654570021094fa64b2816dc4ac9ea Author: Alexander Barkov Date: Fri Mar 20 13:51:41 2015 +0400 A preparatory patch for MDEV-7284 INDEX: CREATE OR REPLACE. Removing "bool Key::create_if_not_exists" and deriving Key from DDL_options instead. commit 2a2cc164784b10a6c87f626a98b3363a976a5eb7 Author: Alexander Barkov Date: Fri Mar 20 11:46:44 2015 +0400 Refactoring in sql_yacc.yy. A pre-requirement patch for MDEV-7801 Unexpected syntax error in ALTER TABLE t1 ADD INDEX TYPE BTREE MDEV-7284 INDEX: CREATE OR REPLACE commit e3795318abd912288d34bb7f30cdb5dce615c781 Author: VicenÈ›iu Ciorbaru Date: Fri Mar 20 09:10:59 2015 +0200 MDEV-5214 Status variables for number of global/db/table/column/role grants Updated information_schema test result; commit ce0427a622d4d6114c60a63c1842f41f40664339 Author: Nirbhay Choubey Date: Thu Mar 19 20:41:57 2015 -0400 Update galera.global_suppressions with galera warnings. commit 1a329935374c799750ebe5cff56809789dd40539 Author: VicenÈ›iu Ciorbaru Date: Wed Mar 18 20:36:58 2015 +0200 MDEV-5214 Status variables for number of global/db/table/column/role grants Implemented the status variables for use with the feedback plugin. commit f8381d9382b02a53fc3a9fd0f8457c5668e9491c Author: Nirbhay Choubey Date: Thu Mar 19 09:47:20 2015 -0400 MDEV-6069: Remove old logic for 3.23-to-higher upgrades from upgrade SQL scripts Fix for failing tests. * Update mysql_system_tables_fix.sql to makeup the differences in system tables in 5.1.17 (main.system_mysql_db_fix50117) * Removed system_mysql_db tests for versions 5.0.30 & 4.1.23. commit b3438f24a17a28b2d396208a1bb072199cef5f39 Author: Jan Lindström Date: Thu Mar 19 14:09:49 2015 +0200 MDEV-7803: Encryption metadata (crypt_data) is written to InnoDB file space page 0 even when encryption is not enabled commit 7733b247e1fae603b8a439cf03bc47c345a88370 Author: Olivier Bertrand Date: Thu Mar 19 12:21:08 2015 +0100 Same changes than in version 10.0.17 commit 41c337a17174debc7821993b4e790b897835ba81 Author: Daniel Black Date: Thu Mar 19 21:47:51 2015 +1100 add group_commit_reason_immediate to binlog_commit_wait test commit 81113dae1747e2dd75ff95761d0853dd4387e814 Merge: 69ae5065278 64a290dc316 Author: Jan Lindström Date: Thu Mar 19 10:22:27 2015 +0200 Merge branch '10.1' into bb-10.1-jan commit f3eb1d0e274c7d1adc89c556e21af2cf4e6c2736 Author: Daniel Black Date: Thu Mar 19 19:21:22 2015 +1100 rpl_parallel_multilevel2 can be 1 or 3 binlog groups commit 64a290dc316c405ccc9b9dfb7ab72ce770935cf1 Author: Jan Lindström Date: Thu Mar 19 10:18:40 2015 +0200 MDEV-7797: file_key_management_plugin uses static IV for a key Currently crypt data is written to file space always. Use that to obtain random IV for every object (file). Beatify code to confort InnoDB coding styles. commit bab0bdbb5c1221bac03082d27318deb524808ebb Author: Jan Lindström Date: Thu Mar 19 07:07:56 2015 +0200 Introduce two debug crash points while writing crypt data to test redo operations. commit 54287adc27a573a4a564e73ee1eea8aaab3b19cb Author: Daniel Black Date: Thu Mar 19 15:26:58 2015 +1100 MDEV-7802 Add status binlog_group_commit_reason_* The following global status variables where added: * binlog_group_commit_reason_count * binlog_group_commit_reason_usec * binlog_group_commit_reason_transaction * binlog_group_commit_reason_immediate binlog_group_commit_reason_count corresponds to group commits made by virtue of the binlog_commit_wait_count variable. binlog_group_commit_reason_usec corresponds to the binlog_commit_wait_usec variable. binlog_group_commit_reason_transaction is a result of ordered transaction that need to occur in the same order on the slave and can't be parallelised. binlog_group_commit_reason_immediate is caused to prevent stalls with row locks as described in log.cc:binlog_report_wait_for. This immediate count is also counted a second time in binlog_group_commit_reason_transaction. Overall binlog_group_commits = binlog_group_commit_reason_count + binlog_group_commit_reason_usec + binlog_group_commit_reason_transaction This work was funded thanks to Open Source Developers Club Australia. commit e28a241907aa7a511b65b196703efaeea71e1dc4 Author: Alexander Barkov Date: Wed Mar 18 17:10:48 2015 +0400 MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences commit a471b7098f50e21565ce4c86efcb05d8310e1d62 Author: Sergey Vojtovich Date: Wed Mar 18 15:25:34 2015 +0400 Fixed innodb and innodb_bug59641 failures on PPC64. innodb_buffer_pool_pages_total depends on page size. On Power8 it is 65k compared to 4k on Intel. As we round allocations on page size we may get slightly more memory for buffer pool. Sort XA RECOVER as rows order depend on endianness. commit 5e6905bb7f1c80e5cc368bb917f6e15afc73a269 Author: Jan Lindström Date: Tue Mar 17 10:59:25 2015 +0200 Replace static usage of AES_CTR with current encryption algorithm. commit b0542b78c866fb32383f759914b10f060d0e14cd Author: Alexey Botchkov Date: Tue Mar 17 14:56:14 2015 +0400 Installation fix. commit 015994f226cfa94e6d339fdc0de670a054f631b4 Author: Alexey Botchkov Date: Tue Mar 17 14:44:59 2015 +0400 MDEV-7515 GIS: No AddGeometryColumn or DropGeometryColumn in the tree. Installation scripts added to setup the required SP-s with the mysql_install_db. commit 69ae50652784178f98a308b50ce8afc94f9ab301 Merge: e7b1d7350f4 97037da7161 Author: Jan Lindström Date: Tue Mar 17 11:00:28 2015 +0200 Merge branch '10.1' into bb-10.1-jan commit 97037da7161a5a6bff3753a465a4af37496c9ca5 Author: Jan Lindström Date: Tue Mar 17 10:59:25 2015 +0200 Replace static usage of AES_CTR with current encryption algorithm. commit ccc7297fe94af1129c717f91d31fa075d54a0371 Author: Alexey Botchkov Date: Tue Mar 17 12:56:38 2015 +0400 Test result fixed. commit 4ba16ea4bc2b4c6e489d03d05f3baece497d49b0 Merge: a3e68b4a558 be1c5660f45 Author: Kristian Nielsen Date: Tue Mar 17 09:24:22 2015 +0100 Merge MDEV-6981 and MDEV-6981 (from danblack) into MariaDB 10.1 commit a3e68b4a558e1dd0ff61e497316cb6a32d3de410 Author: Jan Lindström Date: Fri Mar 13 14:18:07 2015 +0200 MDEV-7772: SIGSEGV on my_aes_encrypt_cbc when -DWITH_SSL=bundled Two problems: - Read/Write outside of buffer at memcpy() because of incorrect parameters . OPENSSL_assert(EVP_CIPHER_CTX_iv_length(&ctx.ctx) == iv_length); // ECB does not use IV, thus incorrect assertion Added: mysql-test/include/encryption_algorithms.combinations to run tests with methods cbc, ecb and ctr in those systems where they are available (see suite.pm). commit 5e6f12366abb02143ef57b6ff99285d81e3b3a36 Author: Nirbhay Choubey Date: Mon Mar 16 21:50:20 2015 -0400 MDEV-6069: Remove old logic for 3.23-to-higher upgrades from upgrade SQL scripts Removed pre-5.1 tweaks & logics from mysql_system_table_fix.sql. commit 0d7bc1edf35ce0bf91c70cbae8a53930959c4e68 Author: Oleksandr Byelkin Date: Mon Mar 16 21:01:58 2015 +0100 32 bit test fix commit fec94a6b44902092ac0294e1b51e1c7d5ee11cc8 Author: Sergey Vojtovich Date: Mon Mar 16 22:54:43 2015 +0400 MDEV-7728 - Improve xid cache scalability by using lock-free hash This is an addition to original patch. Some platforms are strict about atomic op argument signedness. commit e6f67c64cda4e4ca4f1463ae65f301358ed356a7 Author: Alexander Barkov Date: Mon Mar 16 21:55:10 2015 +0400 MDEV-6572 "USE dbname" with a bad sequence erroneously connects to a wrong database commit 73d042755345bbc113f6711ce03fd932e72aacd7 Author: Olivier Bertrand Date: Mon Mar 16 17:22:50 2015 +0100 Changes to avoid compiling error with Visual Studio 2008 Adding files to ignore commit 4cb86b79dd61b51ab09811a8c5ef383a16638fc9 Author: Sergey Vojtovich Date: Mon Mar 16 18:54:45 2015 +0400 MDEV-7728 - Improve xid cache scalability by using lock-free hash Spider support for new xid cache implementation. commit 6bd24deab46efc7d67401ac1b30194f03a03ad02 Author: Sergey Vojtovich Date: Mon Mar 16 18:44:06 2015 +0400 MDEV-7728 - Improve xid cache scalability by using lock-free hash XID cache is now based on lock-free hash. Also fixed lf_hash_destroy() to call alloc destructor. Note that previous implementation had race condition when thread was accessing XA owned by different thread. This new implementation doesn't fix it either. commit be1c5660f45503ab911cc72797ff9fee10d0db8f Author: Kristian Nielsen Date: Mon Mar 16 15:02:05 2015 +0100 MDEV-6981: feature request MASTER_GTID_WAIT status variables Missing .result file update. commit 1f8efee58467d05c76ac366226634d181cc72153 Merge: ef4d8db5ece 9362dd43ff6 Author: Kristian Nielsen Date: Mon Mar 16 14:54:16 2015 +0100 Merge MDEV-7198: status variable for Slave_skipped_errors commit ef4d8db5ece5edfe3574561a8cec70863d390c91 Author: Kristian Nielsen Date: Mon Mar 16 14:40:29 2015 +0100 MDEV-6981: feature request MASTER_GTID_WAIT status variables Review fixes: - Coding style - Fix bad .result file - Fix test to be tolerant of different timing. - Fix test to give better info in case of unexpected timing. commit 0e717c5bf424a7411030d625499485a821591830 Merge: 18e9c314e43 fa5809ce109 Author: Kristian Nielsen Date: Mon Mar 16 13:41:11 2015 +0100 Merge branch 'mdev-6981-master_gtid_wait-status-variables' of https://github.com/openquery/mariadb-server into danblack Conflicts: sql/mysqld.cc commit 9362dd43ff6f08d3cde4f62c11aa0588ed84eee1 Author: Daniel Black Date: Mon Mar 16 23:15:36 2015 +1100 additional slave_skip_errors status commit 51ea3939b4b5dfd3b72c4b1a6e6a9681a10f21e6 Author: Daniel Black Date: Mon Mar 16 23:06:30 2015 +1100 Complete test for status slave_skipped_errors commit 18e9c314e43271debf58f3c3e5bf454eab655799 Author: Sergey Vojtovich Date: Tue Feb 10 14:05:49 2015 +0400 MDEV-6650 - LINT_INIT emits code in non-debug builds Replaced all references to LINT_INIT with UNINIT_VAR and LINT_INIT_STRUCT. Removed LINT_INIT macro. commit e7b1d7350f42a00a9920c704ae9099c2a2fe0821 Author: Jan Lindström Date: Mon Mar 16 12:47:32 2015 +0200 Introduce only one combinations file and and rule for aes_ctr to suite.pm so that it is not used if not available. commit 10554ca6cbb6a02098b0cc1a55fb5426164ef348 Author: Alexey Botchkov Date: Mon Mar 16 12:02:21 2015 +0400 Test results fixed. commit f48dc5ccc7246c5ca9ebad2acc2d1d56a3470f9d Author: Alexander Barkov Date: Mon Mar 16 12:14:31 2015 +0400 Moving the conversion code from String::well_formed_copy() to my_convert_fix() - a new function in /strings. commit c4b268add0475c6633f35eaf8cf4c7fbcad298f6 Author: Jan Lindström Date: Mon Mar 16 09:14:13 2015 +0200 InnoDB cleanup. Remove empty statements i.e. extra ; characters. commit da4b52432a773aaa1ec9a6e231b19f77595f69f7 Author: Alexey Botchkov Date: Sun Mar 15 23:00:05 2015 +0400 MDEV-7512 GIS: ST_ synonyms for functions are not consistent. Checked for missing synonims, added those found. commit 874f0d77594cf9d042daf1e95ea297d3680261fe Author: Alexey Botchkov Date: Sun Mar 15 22:27:45 2015 +0400 Test result fixed. commit 37345bd9dde7fb948c439e73fbec5a88385162b2 Author: Alexey Botchkov Date: Sun Mar 15 22:20:38 2015 +0400 MDEV-7529 GIS: ST_Relate returns unexpected results for POINT relations. Problem was that we considered the point itself as the 'border' object. Instead of that the 'border' of a POINT is an empty set, and the point is the 'interior'. Another error fixed by the way - not all operations of the resulting function were properly allocated. commit 6cf20936531dba4d45fa7e6d54e8dd89065f516b Author: Olivier Bertrand Date: Sun Mar 15 14:31:43 2015 +0100 - Commit changes to .gitignore commit ca3041883725393baa6c645050ef926d782eb3a8 Author: Alexey Botchkov Date: Sun Mar 15 11:17:50 2015 +0400 MDEV-7514 GIS: PointOnSurface returns NULL instead of the point. Need to take into account cases of a polygon shaped as a very thin line. commit a21ef88d2a358904f0cdf9cadc701cb263b5e317 Author: Oleksandr Byelkin Date: Wed Mar 11 11:02:13 2015 +0100 MDEV-6954: SET STATEMENT rand_seedX = ...FOR ... makes the next rand() to return 0 The variables now return real values. They can't be made usual variables because they do not have DEFAULT value. commit 41106b229e027890e0fb02e6ba6c2be11fe3469a Author: Oleksandr Byelkin Date: Fri Mar 13 16:32:47 2015 +0100 MDEV-6997: SET STATEMENT last_insert_id FOR ... does not affect the value written to the binlog Problem was in reinitialization of first_successful_insert_id_in_prev_stmt_for_binlog after setting variables. commit 197afb413fcc9f06b5e5e6ef41ce980d108b354f Author: Alexander Barkov Date: Fri Mar 13 16:51:36 2015 +0400 MDEV-6566 Different INSERT behaviour on bad bytes with and without character set conversion commit 7c21ea9f502ded155c12a0ee3c5ff0602e9d4c9a Author: Jan Lindström Date: Fri Mar 13 14:18:07 2015 +0200 MDEV-7772: SIGSEGV on my_aes_encrypt_cbc when -DWITH_SSL=bundled Two problems: - Read/Write outside of buffer at memcpy() because of incorrect parameters . OPENSSL_assert(EVP_CIPHER_CTX_iv_length(&ctx.ctx) == iv_length); // ECB does not use IV, thus incorrect assertion Added: mysql-test/include/have_file_key_management_plugin.combinations ( to run with aes_cbc and aes_ecb) mysql-test/include/have_openssl_ctr.combinations ( to run with aes_cbc, aes_ecb and aes_ctr) commit 702fba1511c90ea9c72b6c00122e0f31a05237b4 Author: Alexey Botchkov Date: Fri Mar 13 16:10:31 2015 +0400 MDEV-7510 GIS: IsRing returns false for a primitive triangle. The problem is in the IsSimple function. If the first and the last points of a curve coincide it's and exception and the line is still 'simple'. commit 75d65b5f4e5428310e57155903602801d7d86ee2 Author: Alexander Barkov Date: Fri Mar 13 15:48:39 2015 +0400 MDEV-6989 BINARY and COLLATE xxx_bin comparisions are not used for optimization in some cases commit bd2105855ac03cb3d4705342b01a3361a45a5f7c Author: Alexander Barkov Date: Fri Mar 13 13:52:07 2015 +0400 Adding "const" qualifier to Item::compare_collation() commit 4d0e52189ca945c94146035c2733d85c9c6fd18d Author: Jan Lindström Date: Fri Mar 13 09:38:08 2015 +0200 MDEV-7770: Online DDL progress output contains incorrectly printed index names Index names were not formatted correctly. commit bb3115b256113097bcfd0d80213e160339e4b00b Author: Alexander Barkov Date: Thu Mar 12 18:12:15 2015 +0400 MDEV-6990 GROUP_MIN_MAX optimization is not applied in some cases when it could commit 129c82bb5916d05ece4efad55e8dede3005559b4 Author: Alexey Botchkov Date: Thu Mar 12 17:50:23 2015 +0400 MDEV-7334 valgrind warning "unitialized bytes" in 10.1. The 'srid' field's copying was missing in the copying Create_field::Create_field() constructor. commit 8249dcaaebf8cd1944bd4ab7ccaa8b199e76d6f9 Author: Jan Lindström Date: Tue Mar 10 08:28:51 2015 +0200 MDEV-6858: enforce_storage_engine option Merge from Percona Server enforced use of a specific storage engine authored by Stewart Smith. Modified to be session variable and modifiable only by SUPER. Use similar implementation as default_storage_engine. commit ba3573cae8f0d269452cc6213f1a8243e455830e Author: Alexander Barkov Date: Thu Mar 12 13:40:52 2015 +0400 Clean-up: - Renaming Item::is_bool_func() to is_bool_type(), to avoid assumption that the item is an Item_func derivant. - Deriving Item_func_spatial_rel from Item_bool_func rather than Item_int_func commit a71e2d23bd08ca041a953df44f2235a8ef20bfcc Author: Oleksandr Byelkin Date: Tue Feb 17 12:54:51 2015 +0100 MDEV-7006 MDEV-7007: SET STATEMENT and slow log fixed embedded server tests MDEV-7009: SET STATEMENT min_examined_row_limit has no effect MDEV-6948:SET STATEMENT gtid_domain_id = ... FOR has no effect (same for gtid_seq_no and server_id) old values of SET STATENENT variables now saved in its own Query_arena and restored later commit dab12366b1c7ee4e3477ac9dd37ea6c24113cf5b Author: Oleksandr Byelkin Date: Wed Feb 25 21:29:13 2015 +0100 MDEV-6956:SET STATEMENT default_master_connection = ... has no effect the problem was in assigning default value during parsing. commit e91bc2e91d649d4650fc4d8961edc3280d1203fe Author: Alexander Barkov Date: Thu Mar 12 11:40:37 2015 +0400 MDEV-7759 NULLIF(x,y) is not equal to CASE WHEN x=y THEN NULL ELSE x END commit fa5809ce109a8966059ea3cbda982cf2f160c430 Author: Daniel Black Date: Thu Mar 12 06:43:38 2015 +1100 Add Master_gtid_wait_{count,time,timeouts} status MASTER_GTID_WAIT function needs some status to evaluate its use. master_gtid_wait_count indicates how many times the function is called. master_gtid_wait_time indicates how much time in microseconds occurred waiting (or timing out) master_gtid_timeouts indicates how many time times this function timed out rather than all successful gtids events being available. commit eac71ced18e281e2b4e6bd9bb1739d227e9d55d2 Author: Daniel Black Date: Thu Mar 12 05:23:05 2015 +1100 Add Slave_skipped_errors to global status This counts the number of times a replication event is ignored due to slave_skip_errors. commit 555915faa9fc5ec0a7df09b51716be027120fa8c Merge: 100249be6aa 7a6cad5221b Author: Nirbhay Choubey Date: Wed Mar 11 13:15:16 2015 -0400 Merge branch '5.5-galera' into 10.0-galera Conflicts: mysql-test/suite/galera/r/rpl_row_annotate.result sql/rpl_rli.cc sql/slave.cc sql/wsrep_applier.cc sql/wsrep_thd.cc commit 80f03abcca0d902a876d10e6c1dc8c4c6d3b2bfa Author: Oleksandr Byelkin Date: Tue Mar 10 10:24:20 2015 +0100 MDEV-7671: Cache VIEW definitions in the TDC (changes of backported patch are very small: strlen removed, error processing fixed, view open statistics added) commit 7a6cad5221b19ed5d54eaca83c16655089734a0e Author: Nirbhay Choubey Date: Wed Mar 11 12:36:00 2015 -0400 Backport fix for MDEV-7673, MDEV-7203 and MDEV-7192 from 10.0-galera commit 3aa1a600bb3cc72dd30edd8f1c41b90e1157a2ed Merge: be73c7ee441 52a1b5a8c23 Author: Oleksandr Byelkin Date: Wed Mar 11 15:15:43 2015 +0100 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit be73c7ee4415af4c1188689e1642a39512c2ecbd Author: Oleksandr Byelkin Date: Wed Mar 11 14:57:30 2015 +0100 MDEV-6951: Erroneous SET STATEMENT produces two identical errors Double error reporting removed. commit 52a1b5a8c23ebd068172c3c18a4f11c690fd1a2c Author: Alexey Botchkov Date: Wed Mar 11 13:05:03 2015 +0400 MY_CHECK_AND_SET_COMPILER_FLAG changes * watch for "redefined macro" warning * don't enable -D_FORTIFY_SOURCE=2 in debug builds (it requires -O) commit 190858d996e7dc90e01fe8a5e7daec6af0012b23 Author: Alexander Barkov Date: Wed Mar 11 12:40:35 2015 +0400 Removing duplicate code: adding Item_func_bool_predicate as a common parent class for Item_func_isnull and Item_func_isnotnull commit 9f4ee16bf351ea2969d73abcdea92e70538c723c Author: Jan Lindström Date: Wed Mar 11 07:29:51 2015 +0200 MDEV-7619: Improve long semaphore wait output Add holder thread_id, file_name and line to output. commit ba43735c6871656d50e6d6fb6dc0d7308e9ea749 Author: Alexey Botchkov Date: Tue Mar 10 22:34:57 2015 +0400 Check for the openssl-dev so the build doesn't fail without it. commit 100249be6aa00288081b2374db105a81cc525daf Merge: 56bbc0a2308 07ff90e99b4 Author: Nirbhay Choubey Date: Tue Mar 10 09:23:03 2015 -0400 Merge branch '5.5-galera' into 10.0-galera Conflicts: storage/innobase/dict/dict0dict.c storage/xtradb/dict/dict0dict.c commit 0ed57e34c76ffa5e457e1abb402ada6352fb52b2 Author: VicenÈ›iu Ciorbaru Date: Wed Mar 4 12:20:10 2015 +0200 MDEV-7025 ANALYZE SELECT/INSERT/UPDATE/DELETE from a view does not check access permissions on the view Added access checking for the ANALYZE statement command. commit c8035da9b8d037b43c27268b37df40e587780bec Author: Jan Lindström Date: Tue Mar 10 14:05:57 2015 +0200 Add more information if page state is not correct. commit 07ff90e99b40f86511651415d13a3299a45a01d4 Author: Nirbhay Choubey Date: Mon Mar 9 22:55:54 2015 -0400 Reduce gcache size to cut down disk usage commit f7d196bb2e605766668895027c48728f03803734 Author: Sergei Golubchik Date: Sun Mar 8 17:22:37 2015 +0100 32bit fix commit e2de804491a62a1b2a414ad9f49a8cde85d4cf9e Merge: 5bff6c5d579 2288b84df46 Author: Sergei Golubchik Date: Sun Mar 8 12:54:42 2015 +0100 Merge branch '10.1' into bb-10.1-serg commit 6c19f51a5fe6bd0dbecf3cb8fd4f88e4f8da477e Author: Jan Lindström Date: Fri Mar 6 11:19:23 2015 +0200 MDEV-7672: Crash creating an InnoDB table with foreign keys Analysis: after a red-black-tree lookup we use node withouth checking did lookup succeed or not. This lead to situation where NULL-pointer was used. Fix: Add additional check that found node from red-back-tree is valid. commit 1626e0d3d48f56bd91239c4fcbc24595ee3a34e3 Author: Sergei Petrunia Date: Sat Mar 7 22:47:28 2015 +0300 MDEV-7648: Extra data in ANALYZE FORMAT=JSON $stmt Show total execution time (r_total_time_ms) for various parts of the query: 1. time spent in SELECTs 2. time spent reading rows from storage engines #2 currently gets the data from P_S. commit 2288b84df46501b89a70d7dc3b46020e0af9a95e Author: Sergei Petrunia Date: Sat Mar 7 20:51:35 2015 +0300 MDEV-7679: ANALYZE crashes when printing WHERE when no default db Fix Item_ident::print() to work when there is no current database commit 66ad265f3b58121d5a48c492dff79f48863df7c0 Author: Sergei Petrunia Date: Sat Mar 7 19:30:19 2015 +0300 MDEV-7674: ANALYZE shows r_rows=0 Change r_rows to be double commit 5bff6c5d579af21ba05ecee3152c620e6c705932 Author: Sergei Golubchik Date: Sat Mar 7 15:32:52 2015 +0100 bison warning: clash on default action: != commit 6d8b74dd0736d95827fd73c1fa965482f293d911 Author: Sergei Golubchik Date: Thu Mar 5 17:11:23 2015 +0100 add a test for drop trigger under --read-only commit 18feb62feeb833494d003615861b9c78ec008a90 Author: Sergei Golubchik Date: Wed Mar 4 10:13:06 2015 +0100 MDEV-6819 st_mysql_show_var::value should be void* not char* commit 20cacb00647cf4e5e170338363f3f09cf2f5b2e6 Author: Sergei Golubchik Date: Thu Mar 5 09:58:08 2015 +0100 fix a crash of innodb.innodb_mutexes,innodb_plugin add forgotten initialization of the mutex name commit 2db62f686e148f09fe5fd0b385fc71f2a3c4a133 Merge: 143f5d91726 d61573d3e5c Author: Sergei Golubchik Date: Sat Mar 7 13:21:02 2015 +0100 Merge branch '10.0' into 10.1 commit 56bbc0a2308355d0d40d0222a399aac3149c5022 Merge: d146605124a e52a58a5cc3 Author: Nirbhay Choubey Date: Fri Mar 6 23:46:35 2015 -0500 Merge branch '5.5-galera' into bb-10.0-galera-merge Conflicts: BUILD/compile-pentium-debug-wsrep BUILD/compile-pentium-wsrep BUILD/compile-pentium64-wsrep CMakeLists.txt client/mysqlcheck.c cmake/cpack_rpm.cmake cmake/install_macros.cmake cmake/os/FreeBSD.cmake cmake/plugin.cmake cmake/wsrep.cmake debian/dist/Debian/control debian/dist/Debian/mariadb-galera-server-10.0.README.Debian debian/dist/Debian/mariadb-galera-server-10.0.postrm debian/dist/Debian/mariadb-galera-server-5.5.README.Debian debian/dist/Debian/mariadb-galera-server-5.5.dirs debian/dist/Debian/mariadb-galera-server-5.5.files.in debian/dist/Debian/mariadb-galera-server-5.5.postinst debian/dist/Debian/mariadb-galera-server-5.5.postrm debian/dist/Debian/mariadb-server-5.5.README.Debian debian/dist/Debian/mariadb-server-5.5.postrm debian/dist/Debian/rules debian/dist/Ubuntu/control debian/dist/Ubuntu/mariadb-galera-server-10.0.README.Debian debian/dist/Ubuntu/mariadb-galera-server-10.0.postrm debian/dist/Ubuntu/mariadb-galera-server-5.5.README.Debian debian/dist/Ubuntu/mariadb-galera-server-5.5.dirs debian/dist/Ubuntu/mariadb-galera-server-5.5.files.in debian/dist/Ubuntu/mariadb-galera-server-5.5.postinst debian/dist/Ubuntu/mariadb-galera-server-5.5.postrm debian/dist/Ubuntu/mariadb-galera-server-5.5.py debian/dist/Ubuntu/mariadb-server-5.5.README.Debian debian/dist/Ubuntu/mariadb-server-5.5.postrm debian/dist/Ubuntu/rules debian/mariadb-galera-server-10.0.NEWS debian/mariadb-galera-server-10.0.config debian/mariadb-galera-server-10.0.logcheck.ignore.paranoid debian/mariadb-galera-server-10.0.logcheck.ignore.server debian/mariadb-galera-server-10.0.logcheck.ignore.workstation debian/mariadb-galera-server-10.0.mysql-server.logrotate debian/mariadb-galera-server-10.0.prerm debian/mariadb-galera-server-5.5.NEWS debian/mariadb-galera-server-5.5.config debian/mariadb-galera-server-5.5.logcheck.ignore.paranoid debian/mariadb-galera-server-5.5.logcheck.ignore.server debian/mariadb-galera-server-5.5.logcheck.ignore.workstation debian/mariadb-galera-server-5.5.mysql-server.logrotate debian/mariadb-galera-server-5.5.mysql.init debian/mariadb-galera-server-5.5.preinst debian/mariadb-galera-server-5.5.prerm debian/mariadb-galera-server-5.5.templates debian/mariadb-galera-test-10.0.links debian/mariadb-galera-test-5.5.dirs debian/mariadb-galera-test-5.5.files debian/mariadb-galera-test-5.5.links debian/mariadb-server-5.5.NEWS debian/mariadb-server-5.5.config debian/mariadb-server-5.5.logcheck.ignore.paranoid debian/mariadb-server-5.5.logcheck.ignore.server debian/mariadb-server-5.5.logcheck.ignore.workstation debian/mariadb-server-5.5.mysql-server.logrotate debian/mariadb-server-5.5.prerm debian/mariadb-test-5.5.links debian/po/POTFILES.in debian/po/ar.po debian/po/ca.po debian/po/cs.po debian/po/da.po debian/po/de.po debian/po/es.po debian/po/eu.po debian/po/fr.po debian/po/gl.po debian/po/it.po debian/po/ja.po debian/po/nb.po debian/po/nl.po debian/po/pt.po debian/po/pt_BR.po debian/po/ro.po debian/po/ru.po debian/po/sv.po debian/po/templates.pot debian/po/tr.po mysql-test/extra/binlog_tests/binlog.test mysql-test/include/mtr_check.sql mysql-test/r/innodb_load_xa_with_wsrep.result mysql-test/r/mysqld--help.result mysql-test/suite/binlog/r/binlog_row_binlog.result mysql-test/suite/binlog/r/binlog_stm_binlog.result mysql-test/suite/galera/galera_2nodes.cnf mysql-test/suite/galera/r/create.result mysql-test/suite/galera/t/create.test mysql-test/suite/perfschema/r/all_instances.result mysql-test/suite/perfschema/r/dml_setup_instruments.result mysql-test/suite/wsrep/r/variables.result mysql-test/suite/wsrep/t/variables.test mysql-test/t/mysqld--help.test mysys/default.c mysys/thr_lock.c scripts/CMakeLists.txt scripts/mysqld_safe.sh scripts/wsrep_sst_common.sh scripts/wsrep_sst_mysqldump.sh scripts/wsrep_sst_rsync.sh scripts/wsrep_sst_xtrabackup-v2.sh sql/event_data_objects.cc sql/events.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/lock.cc sql/log.cc sql/log.h sql/log_event.cc sql/mdl.cc sql/mysqld.cc sql/mysqld.h sql/rpl_record.cc sql/slave.cc sql/sp.cc sql/sql_acl.cc sql/sql_admin.cc sql/sql_alter.cc sql/sql_base.cc sql/sql_class.cc sql/sql_class.h sql/sql_connect.cc sql/sql_insert.cc sql/sql_parse.cc sql/sql_partition_admin.cc sql/sql_prepare.cc sql/sql_repl.cc sql/sql_show.cc sql/sql_table.cc sql/sql_trigger.cc sql/sys_vars.cc sql/transaction.cc sql/wsrep_applier.cc sql/wsrep_binlog.cc sql/wsrep_binlog.h sql/wsrep_hton.cc sql/wsrep_mysqld.cc sql/wsrep_mysqld.h sql/wsrep_priv.h sql/wsrep_sst.cc sql/wsrep_sst.h sql/wsrep_thd.cc sql/wsrep_thd.h sql/wsrep_utils.cc sql/wsrep_var.cc storage/innobase/dict/dict0dict.c storage/innobase/fil/fil0fil.c storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/handler/handler0alter.cc storage/innobase/include/lock0lock.h storage/innobase/include/srv0srv.h storage/innobase/include/trx0sys.h storage/innobase/include/trx0trx.h storage/innobase/lock/lock0lock.c storage/innobase/os/os0file.c storage/innobase/rem/rem0rec.c storage/innobase/row/row0ins.c storage/innobase/row/row0upd.c storage/innobase/srv/srv0srv.c storage/innobase/trx/trx0roll.c storage/innobase/trx/trx0sys.c storage/innobase/trx/trx0trx.c storage/innobase/ut/ut0ut.c storage/tokudb/CMakeLists.txt storage/xtradb/buf/buf0buf.c storage/xtradb/dict/dict0dict.c storage/xtradb/handler/ha_innodb.cc storage/xtradb/handler/ha_innodb.h storage/xtradb/handler/handler0alter.cc storage/xtradb/include/lock0lock.h storage/xtradb/include/srv0srv.h storage/xtradb/include/trx0sys.h storage/xtradb/lock/lock0lock.c storage/xtradb/os/os0file.c storage/xtradb/os/os0proc.c storage/xtradb/rem/rem0rec.c storage/xtradb/row/row0ins.c storage/xtradb/row/row0upd.c storage/xtradb/srv/srv0srv.c storage/xtradb/srv/srv0start.c storage/xtradb/trx/trx0roll.c storage/xtradb/trx/trx0sys.c storage/xtradb/trx/trx0trx.c support-files/mysql.server.sh support-files/mysql.spec.sh wsrep/CMakeLists.txt commit d146605124a3d326f3769fd162e0af0a124266a9 Author: Nirbhay Choubey Date: Fri Mar 6 13:22:15 2015 -0500 MDEV-7673: CREATE TABLE SELECT fails on Galera cluster Enable execution of CREATE TABLE SELECT in total order isolation. Added a test case. Contributed by : Andrew W Elble commit c6acdf7c281f91026cfac549d718511b9ed083aa Author: Nirbhay Choubey Date: Fri Mar 6 13:19:49 2015 -0500 MDEV-7203: replicate_events_marked_for_skip didn't work on Galera cluster OPTION_SKIP_REPLICATION flag needs to be preserved for events received on non-originating nodes. commit 6f9e33ecb020bcf3e6db246bc04a9be153c63dc4 Author: Sergey Vojtovich Date: Fri Dec 26 23:38:45 2014 +0400 MDEV-7273 - 10.1 fails to start up during tc_log initializations on PPC64 log-tc-size is 24K by default. Page size is 64K on PPC64. But log-tc- size must be at least 3 x page size. This is enforced by TC_LOG_MMAP::open() with a comment: to guarantee non-empty pool. This all makes server not startable in default configuration on PPC64. Autosize log-tc-size, so that it's min value= page size * 3, default value= page size * 6, block size= page size. Conflicts: mysql-test/suite/sys_vars/inc/sysvars_server.inc mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result mysql-test/t/mysqld--help.test sql/mysqld.cc sql/sys_vars.cc commit 9af42db6138a555454b7631761b81f8d259f014e Author: Nirbhay Choubey Date: Thu Mar 5 14:14:00 2015 -0500 MDEV-7192: binlog_annotate_row_events not completely compatible with galera Annotate_rows event needs to be preserved until the last Rows event has been applied because after it has been applied thd->query points to the query stored inside this event. commit 73a143ab34be0007cc0fc17cf5fda00fef063c1c Author: Nirbhay Choubey Date: Wed Mar 4 19:52:15 2015 -0500 Update galera package name commit e52a58a5cc338a82a9de446785f81c8f45064fa5 Author: Nirbhay Choubey Date: Wed Mar 4 19:49:17 2015 -0500 Update galera package name commit 143f5d9172647a43cdcf5c27b8a78f32c9f639c0 Author: Jan Lindström Date: Tue Mar 3 17:38:02 2015 +0200 MDEV-7061: Augment innochecksum to give insight of fragmentation Merged https://github.com/facebook/mysql-5.6/commit/615dd07d900ce08948340b6c11e37fd1d2a91065 from https://github.com/facebook/mysql-5.6/ authored by rongrong. Removed C++11 requirement by using std::map instead of std::unordered_set. Add analysis to leaf pages to estimate how fragmented an index is and how much benefit we can get out of defragmentation. commit 2e4dc5a3703c3e8e00cb0b403c9c3118e3d0e4af Author: Kristian Nielsen Date: Wed Mar 4 14:06:44 2015 +0100 after-merge fixes commit 95d72088596c9c58c30ab87781061094309b4460 Merge: f4f37533a09 78c74dbe30d Author: Kristian Nielsen Date: Wed Mar 4 13:48:28 2015 +0100 Merge MDEV-6589 and MDEV-6403 into 10.1. Conflicts: sql/log.cc sql/rpl_rli.cc sql/sql_repl.cc commit f4f37533a09b9776e8d5ac3f3a27957f553c9043 Author: Sergey Vojtovich Date: Wed Mar 4 11:01:32 2015 +0400 Replaced lf-hash element_size hack with initializer function. commit 5c6aa4dea00c4e289491dfa717a25b56ec9441c2 Author: Sergey Vojtovich Date: Fri Feb 27 11:30:35 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Replaced hash with lock-free hash. commit d9e3a9f20e59142666c72c7fb876fbf05b0cf510 Author: Sergey Vojtovich Date: Fri Feb 27 00:01:38 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Extended lf-hash implementation to accept user defined hash function. commit 9c8165fdb46737c5a7205849e9197c4d35f7b5d8 Author: Sergey Vojtovich Date: Thu Feb 26 21:17:33 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Added initializer callback to lf-hash. Needed to initialize properly non-POD types. commit f5bd1d012653f074b7eca7f5bc136e2bcb988980 Author: Sergey Vojtovich Date: Thu Feb 26 18:40:05 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Simplified MDL_object_lock and MDL_scoped_lock dichotomy so that they can be stored in LF_HASH. This was done by moving out their differences to a MDL_lock_strategy structure which is referenced from the MDL_lock object by pointer. commit f475a7f9490a59e38fade4bc334986b6681abc59 Author: Sergey Vojtovich Date: Thu Feb 26 13:12:28 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Replaced m_ref_usage, m_ref_release, m_is_destroyed and m_version with single m_state, which is updated atomically. Needed to get rid of MDL_map::m_mutex. commit ecd3ff9f24d8cf0c51ad564d9c8b335299dcdd9e Author: Sergey Vojtovich Date: Thu Feb 26 13:12:01 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Removed MDL map partitions. Won't be needed when this MDEV is implemented. commit 903160ef5937daab0b13c534e0704be428efb0f0 Author: Sergey Vojtovich Date: Thu Feb 26 13:11:30 2015 +0400 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash" Removed MDL objects cache. Won't be needed when this MDEV is implemented. commit 87b0cc99123e5d6923c77ac3e08c4e9ed0d4d769 Author: Alexander Barkov Date: Wed Mar 4 09:52:01 2015 +0400 MDEV-7286 TRIGGER: CREATE OR REPLACE, CREATE IF NOT EXISTS Based on the patch by Sriram Patil, made under terms of GSoC 2014. commit a7ed8523e35ff2e82701cd1f483c8f665f322f3b Author: Alexander Barkov Date: Wed Mar 4 09:16:43 2015 +0400 Adding a shared include file ctype-mb.ic and removing a number of very similar copies of my_well_formed_len_xxx(), implemented for big5, cp932, euckr, eucjpms, gb2312m gbk, sjis, ujis. commit d8c1165c28ae6ce2e29ecd5492c2540bfd6b2177 Author: Sergei Golubchik Date: Tue Mar 3 11:46:44 2015 +0100 fix failing innodb.innodb-page_encryption_log_encryption again adjust suppression rules after warning message format change commit b1b6101af2f69871ff3f3049c6e42e95ced20544 Author: Alexander Barkov Date: Mon Mar 2 18:24:22 2015 +0400 A preparatory patch for MDEV-6566. Adding a new virtual function MY_CHARSET_HANDLER::copy_abort(). Moving character set specific code into the correspoding implementations (for simple, multi-byte and mbmaxlen>1 character sets). commit 7047bef1ef8c2cf04932b4b1a51a479a746d9a40 Author: Jan Lindström Date: Mon Mar 2 10:55:48 2015 +0200 Use standard InnoDB error mechanism on compression and encryption error messages. commit 1f1f977167c7e749a4f906a878157978907551b0 Author: Sergei Golubchik Date: Sun Mar 1 16:51:34 2015 +0100 Fix test failing when file_key_management_plugin doesn't load * remove useless suppressions from the test file, when a plugin doesn't load, the file isn't executed anyway * add the suppression to mysql-test-run.pl instead commit c3f80a2bff953e18a2252935c45292f2a5013757 Author: Sergei Golubchik Date: Sun Mar 1 16:53:16 2015 +0100 fix new innodb warnings to use the standard innodb warning syntax commit c78f594bbc934a080c5008ddc7a11daf2595a75c Author: Sergei Golubchik Date: Sat Feb 28 13:51:22 2015 +0100 MDEV-6479 stack traces in 10.1 Take into account that PIE binaries are loaded at some offset, so addresses cannot be directly resolved with addr2line. Find this offset and subtract it before resolving an address. commit 7ba2916c552638e3f8ab4cf2945bbfe99f745dd4 Author: Sergei Golubchik Date: Fri Feb 27 21:42:03 2015 +0100 MDEV-7000 Assertion `0' failed in Protocol::end_statement() on executing DDL under innodb_fake_changes=1 correct the if() condition to match the behavior of the old code that this if() was supposed to replace commit ba80708f66fca32c7c2fbc66879177e5590e53fb Author: Sergei Golubchik Date: Fri Feb 27 20:13:51 2015 +0100 MDEV-6960 Server crashes in check_alter_user on setting a default role via PS There were two issues: * set_var_default_role::user was overwritten with a new value, allocated in the thd->mem_root, which is reset between executions. That was causing the crash. Solved by introducing set_var_default_role::real_user * when privilege tables were opened on EXECUTE, the reprepare_observer would abort the statement (as privilege tables are opened using the local TABLE_LIST that doesn't preserve metadata from PREPARE, so reprepare_observer thought they're changed). This issue also applied to SET PASSWORD. Solved by disabling reprepare_observer. commit 7951bb16565e84a87d5289fa3eb4450bdf50ab96 Author: Sergei Golubchik Date: Wed Feb 25 17:34:31 2015 +0100 cleanup: remove unused variables commit 75a27eeaf7a0bcdd3888e1bbaf5d55c573d7696b Author: Nirbhay Choubey Date: Fri Feb 27 23:33:22 2015 -0500 MDEV-4987: Sort by domain_id when list of GTIDs are output Added logic to sort gtid list based on domain_id before populating them in string. Added a test case. commit 34d86ac9ff664972d2031e3fabf6c4a407e32c8a Author: Nirbhay Choubey Date: Fri Feb 27 22:33:41 2015 -0500 MDEV-6594: Use separate domain_id for Galera transactions commit 0f8cb3c399b230dbbf1ab2f8d11538e2ae0c27c1 Author: Nirbhay Choubey Date: Fri Feb 27 22:30:38 2015 -0500 MDEV-7615: Remove --galera-sst-mode option from mysqldump Removed 'galera-sst-mode' option from mysqldump and added logic in wsrep_sst_mysqldump script to retrieve gtid_binlog_state from donor node and send it to the joiner node. commit 4c191de323be14993947197d84057c4d32fda0e6 Author: Nirbhay Choubey Date: Fri Feb 27 22:13:37 2015 -0500 MDEV-7560: wsrep* tests depend on the version of galera library Added an include file to check galera library version. commit aa2904a7f4014cd4790086a2512dc39b533b2a8a Author: Nirbhay Choubey Date: Fri Feb 27 22:13:37 2015 -0500 MDEV-7560: wsrep* tests depend on the version of galera library Added an include file to check galera library version. commit 16c446235ecba3abeaee0fa8e433d882ee833cd7 Author: Nirbhay Choubey Date: Tue Feb 24 21:55:22 2015 -0500 Changes in wsrep_guess_ip() * Changed loopback detection to be done via ifa->ifa_flags * Removed unused function wsrep_guess_address() commit 8ee5668033ed9f4c59cd5bf0b995dd77d326fe36 Author: Nirbhay Choubey Date: Tue Feb 24 21:55:22 2015 -0500 Changes in wsrep_guess_ip() * Changed loopback detection to be done via ifa->ifa_flags * Removed unused function wsrep_guess_address() commit af651c80f7d7b49a141958a68e81f2de90e62f25 Merge: f02fdb6b55a 5c66abf0b0d Author: Nirbhay Choubey Date: Fri Feb 27 17:36:54 2015 -0500 Merge tag 'mariadb-10.0.17' into 10.0-galera Conflicts: storage/innobase/include/trx0trx.h commit 72d7b12b9c9c5ceffef9fff3adc86c149f57f20f Author: Alexander Barkov Date: Fri Feb 27 16:26:12 2015 +0400 Reducing duplicate code and simplifying well formed string copying by adding a new class String_copier. This is a pre-requisite patch for MDEV-6566 and MDEV-6572, to avoid adding more similar code. commit 2d01907c1d6c65ff6d851dec032540f2ff57caae Author: Alexander Barkov Date: Fri Feb 27 13:34:18 2015 +0400 MDEV-7281 EVENT: CREATE OR REPLACE commit 77806da0da65add3a9e1709aa9b14c3496d33dd1 Author: VicenÈ›iu Ciorbaru Date: Thu Feb 26 23:31:35 2015 +0200 Fix incorrect parameter passing to create_tmp_table in create_result_table Create_tmp_table was called incorrectly called in select_materialized_with_stats::create_result_table, having keep_row_order passed for the do_not_open parameter and keep_row_order always set to false. commit d7c6f1191d375f703dd4d7d30d47c8221a9257ee Merge: 018f932024e f37b857f803 Author: Jan Lindström Date: Thu Feb 26 19:41:21 2015 +0200 Try to fix test warning. commit f37b857f803fcc0ae8c3e66a57849df76ffdacee Author: Jan Lindström Date: Thu Feb 26 17:19:51 2015 +0200 Fix test case. commit 018f932024ee92987f56446445776810796a942d Author: Jan Lindström Date: Thu Feb 26 12:09:35 2015 +0200 test commit 2eae6848d9758f7781ea86df2061b473542c33c6 Author: Jan Lindström Date: Wed Feb 25 13:26:57 2015 +0200 MDEV-7572: InnoDB: Assertion failure in log_init_crypt_key if file_key_management_plugin is used Fixed error handling and added disabling InnoDB redo log encryption if encryption key management plugin is not there. commit 702aee649287a1b2c4834794732feaf13960fd58 Author: Sergei Petrunia Date: Wed Feb 25 23:56:44 2015 +0300 MDEV-6323: ‘explain_node’ may be used uninitialized in this function - Remove the compiler warning, add assert statements. - make select_describe() not call mysql_explain_union() for views that were "merged for INSERT". commit 2330107ca886512c2f03696ce086f94beb39d70b Author: Jan Lindström Date: Wed Feb 25 13:26:57 2015 +0200 MDEV-7572: InnoDB: Assertion failure in log_init_crypt_key if file_key_management_plugin is used Fixed error handling and added disabling InnoDB redo log encryption if encryption key management plugin is not there. commit 4fb2f6690748833775b888a49501a7057e827be6 Author: Nirbhay Choubey Date: Tue Feb 24 21:55:22 2015 -0500 Changes in wsrep_guess_ip() * Changed loopback detection to be done via ifa->ifa_flags * Removed unused function wsrep_guess_address() commit da181fee4ec849985b15a758c6b26058a0f5e318 Author: Sergei Golubchik Date: Tue Feb 24 16:26:18 2015 +0100 disable feedback plugin again commit b2862912af1af30158208197f979d5395494bf8f Author: Jan Lindström Date: Sun Feb 22 08:46:22 2015 +0200 Try to stabilize test case. Problem was that test compares number of encryption/compression pages and that will happen if and only if dirty pages are written to the disk. commit 1cc7befc14cd2ad637ffb6fc29fae0f978735acf Author: Jan Lindström Date: Sat Feb 21 21:45:16 2015 +0200 MDEV-7109: Add support for INFORMATION_SCHEMA.INNODB_SEMAPHORE_WAITS MDEV-7399: Add support for INFORMATION_SCHEMA.INNODB_MUTEXES MDEV-7618: Improve semaphore instrumentation Introduced two new information schema tables to monitor mutex waits and semaphore waits. Added a new configuration variable innodb_intrument_semaphores to add thread_id, file name and line of current holder of mutex/rw_lock. commit f02fdb6b55a2b29595cb7e4eed48a51755e967fb Author: Nirbhay Choubey Date: Fri Feb 20 22:11:45 2015 -0500 MDEV-7615: remove galera_sst_mode.result file commit f68ce6860454379f65131046dbba8cd4e65acda1 Author: Nirbhay Choubey Date: Fri Feb 20 17:51:33 2015 -0500 MDEV-7615: Remove --galera-sst-mode option from mysqldump Removed 'galera-sst-mode' option from mysqldump and added logic in wsrep_sst_mysqldump script to retrieve gtid_binlog_state from donor node and send it to the joiner node. commit 360ff3b0da557dc9fdbf3178ccaf084e6cb36cd0 Author: Nirbhay Choubey Date: Fri Feb 20 17:29:03 2015 -0500 Fix for build failures on Power8 commit c6e62acb9e78d28179f922f2c212ae82d390c138 Author: Nirbhay Choubey Date: Fri Feb 20 17:21:15 2015 -0500 Fix for build failures on Power8 commit 69e5f0f42395d0028e75760685cdd7588854f1df Author: Nirbhay Choubey Date: Thu Feb 19 17:48:23 2015 -0500 cleanup: remove duplicate declaration commit a174aaed754b96cefe4a9dd2bb2865f81bad1471 Author: Nirbhay Choubey Date: Thu Feb 19 17:28:18 2015 -0500 cleanup: remove unused THD::COND_wsrep_thd Conflicts: mysql-test/suite/perfschema/r/all_instances.result sql/mysqld.h commit 1e6f46d78f61dbf5cbb13a862ddc0bb6fcaaf41b Author: Nirbhay Choubey Date: Thu Feb 19 17:28:18 2015 -0500 cleanup: remove unused THD::COND_wsrep_thd commit 9152b83973419ea034bb6040703c18b3ee87e084 Author: Jan Lindström Date: Thu Feb 19 17:42:18 2015 +0200 Merged from 10.0-FusionIO: Added support for compression method snappy for page compression. commit bab1c686a464afab46caef7639086acefa43b63c Author: Jan Lindström Date: Thu Feb 19 12:41:10 2015 +0200 Push forgotten file change to fix compiler errors. commit fcc6e12d69e371e160735bcd4fb324f7a382eda3 Author: Nirbhay Choubey Date: Wed Feb 18 19:02:00 2015 -0500 MDEV-7544: Update global_suppressions to include warning related to "gvwstate.dat" commit a518cc4470124854482467de92abdfff69f83baf Author: Nirbhay Choubey Date: Wed Feb 18 18:59:01 2015 -0500 MDEV-7544: Update global_suppressions to include warning related to "gvwstate.dat" commit 860576f4161ab0ea29bf7ecf6dee0e9d10b6fed6 Merge: cd187ecf90e f37bdd9c1a2 Author: Nirbhay Choubey Date: Wed Feb 18 18:07:45 2015 -0500 Merge branch '10.0' into 10.0-galera Merge branch 10.0 till revision: f37bdd9 - Merge remote-tracking branch 'github/10.0' into 10.0 Conflicts: .bzrignore storage/xtradb/CMakeLists.txt commit 3c9137deeb84dff9fa52734fb5fc3966c6746c00 Merge: d8ee54c6332 fdd6c111c25 Author: Nirbhay Choubey Date: Wed Feb 18 17:15:57 2015 -0500 Merge branch '5.5' into 5.5-galera Merge banch 5.5 till revision : fdd6c11 - MDEV-7419 Function cli_safe_read not exported Conflicts: .bzrignore debian/dist/Debian/mariadb-galera-server-5.5.files.in debian/dist/Ubuntu/mariadb-galera-server-5.5.files.in storage/tokudb/CMakeLists.txt support-files/build-tags commit 36c1982a19723e45c00cb0b5eea16d2e4c069c21 Author: Jan Lindström Date: Wed Feb 18 15:23:37 2015 +0200 MDEV-7604: wsrep plugin lists its plugin_maturity as Unknown Changed wsrep plugin from mysql_plugin to maria_plugin to set up plugin_maturity to Stable. commit 4040bf18cfe7c200bc85b5f3afdab498245fcb32 Author: Jan Lindström Date: Wed Feb 18 08:29:38 2015 +0200 MDEV-7593: Default encryption key does not work correctly for page encrypted tables Introduced a new innodb_default_page_encryption_key configuration variable to allow user to set the default key identifier. commit 11536f99f14a2fedb822abb6be3a6ad79ad3abc9 Author: Sergei Golubchik Date: Mon Feb 16 23:18:32 2015 +0100 MDEV-7305 Difficulties building cracklib_password_check put cracklib_password_check into a separate package. build it conditionally on Debian/Ubuntu commit 87eb82d4d52dd9ed1c954b0068898a4ec7a02df2 Author: Sergei Golubchik Date: Mon Feb 16 23:18:00 2015 +0100 cleanup: remove old debian/ubuntu names from debian/* files namely, remove the code to support: etch, lenny, hardy, intrepid, jaunty, karmic, maverick, natty commit a0e93bceb7bdbe52485ac8b822e70748c0b08830 Author: Sergei Golubchik Date: Tue Feb 17 23:49:02 2015 +0100 innodb/xtradb: update nonnull attributes to match the new semantics commit 4da7aa55f6e7844d66899909d76e061426991fac Author: Sergei Petrunia Date: Tue Feb 17 18:43:22 2015 +0300 Add a testcase for EXPLAIN FORMAT=JSON for ROR-union index_merge. commit 3e2849d2a01b06a61407b00989c3f981e62dd183 Author: Sergei Golubchik Date: Fri Feb 13 00:50:30 2015 +0100 update result files commit db227616d2ac4529041f37dbc4b6cd5e0338c4a1 Author: Sergei Golubchik Date: Thu Feb 12 12:26:37 2015 +0100 followup for "MDEV-6248 GUI-friendly cmake options to enable/disable plugins" Remove ONLY_IF clause in MYSQL_ADD_PLUGIN and the requirement that every plugin's CMakeLists.txt *must* do MYSQL_ADD_PLUGIN for PLUGIN_XXX=YES to work. This was very fragile and cannot be relied on. Use a different implementation of =YES check - iterate all PLUGIN_* variables and see which one doesn't have a matching target. Revert all ONLY_IF changes in CMakeLists.txt files. commit 985ef1d42a7b71c72aa3b26d96f0876ac597522f Author: Sergei Golubchik Date: Thu Feb 12 22:33:30 2015 +0100 Don't link plugins with libmysys.a or libmysys_ssl.a we don't want mysys static data structures to be overwritten when a dynamic plugin is loaded. commit 4c9d0b2b0cfb3032382c40cc8a31e1c637279dbc Author: Sergei Golubchik Date: Fri Feb 13 15:04:23 2015 +0100 yassl builds: don't hide mysys_ssl symbols that cannot possibly collide with openssl commit 2043e3d44011ea3664698f880c79791f29fab45d Author: Alexander Barkov Date: Thu Feb 12 17:10:59 2015 +0400 Removing the Hybrid_type_traits framework. It's not used since 5.5. commit 0ed60af42373976d7bf280f89ac408855c816def Author: Jan Lindström Date: Wed Feb 11 19:52:43 2015 +0200 Fix test failure seen on p8-rhel7 commit d72dea1959da32d79ea74f37177a1d9b043faf41 Author: Sergei Golubchik Date: Tue Feb 10 21:08:57 2015 +0100 Revert "Fixing ConnectSE compilation warnings" This reverts commit aa61e4c76e80bf833abc1d340468673c26551252 that broke the compilation on few platforms (e.g. centos5). These warnings are already fixed properly in 10.0-connect. commit aa61e4c76e80bf833abc1d340468673c26551252 Author: Alexander Barkov Date: Tue Feb 10 16:47:42 2015 +0400 Fixing ConnectSE compilation warnings (and failires in maintainer mode). commit 1c801650f83c285dc6bcf9ab26d0847b1de07333 Author: Sergei Golubchik Date: Wed Feb 4 17:09:43 2015 +0100 MDEV-7450 key management plugins don't work with yassl workaround, not a fix: don't build key management plugins in yassl builds commit d78a53ec43835798eb950e781e1423b2a5b3a217 Author: Sergei Golubchik Date: Fri Jan 9 15:59:55 2015 +0100 update 32-bit rdiff files in sys_vars suite commit 093b232a8716a853595731a1ba48391e95f08ff5 Author: Jan Lindström Date: Mon Jan 12 19:24:24 2015 +0200 Do not yet allow encrypted tables with compressed tables. commit e2e809860e8a1ad6a4d82859558cfd89409ac6d4 Author: Jan Lindström Date: Fri Jan 9 12:30:59 2015 +0200 Pass down the information should we encrypt the page at os0file.cc when page compression and google encryption is used. commit e109a662c77ec8f6db42c940d6c82c00d2f9f5d9 Author: Sergei Golubchik Date: Fri Jan 9 15:12:17 2015 +0100 mtr check for openssl support for AES_CTR commit f3da18f635f43fdd4438213750ee97af74400ec0 Author: Sergei Golubchik Date: Thu Jan 8 00:25:05 2015 +0100 cmake-time detection for EVP_aes_128_ctr() because old openssl versions (e.g. on labrador) don't have it commit faad7e0c1899798172d779746dd9bb2c1db89eb9 Author: Jan Lindström Date: Wed Jan 7 15:24:09 2015 +0200 Add test case for combination Google encryption and page compressed tables. commit 21430e43786edaf5b689c8b4aed49341bb7021c8 Author: Sergei Golubchik Date: Fri Jan 2 22:53:54 2015 +0100 encryption keys service commit cf8bf0b68e1c4281535813d4087680296138271c Author: Sergei Golubchik Date: Mon Jan 5 13:36:14 2015 +0100 encryption key management plugin api commit c8997c39b4fac47eb580ea31f97a421bfc399e28 Author: Sergei Golubchik Date: Mon Jan 5 13:27:44 2015 +0100 initialize plugins in the specific order by plugin type but do MyISAM first - to read mysql.plugin table commit 9cdf494197ae53fef5712ab9cbdecbed98462f1f Author: Jan Lindström Date: Mon Dec 29 21:55:20 2014 +0200 Fixed XtraDB implementation of encryption and page encryption. commit d7d589dc01f6d70d1518b74d46fd3b75e76267f5 Author: Monty Date: Mon Dec 22 16:53:17 2014 +0200 Push for testing of encryption commit 3a3ec744b5a31318a00821dc0ed6da8af49fda25 Author: Monty Date: Mon Dec 22 02:02:38 2014 +0200 cleanups done as part of adding encryption - Fixed compiler warnings - Added include/wait_for_binlog_checkpoint.inc, as suggested by JonasO - Updated 'build-tags' to work with git (Patch by Serg) commit 01963e5df10eb1439f3b71541832e77dd4e80c64 Author: Sergei Golubchik Date: Mon Jan 26 21:30:34 2015 +0100 fix for cmake builds on windows commit 83c0866082cd630cada815add97bbf2d09ac8ab3 Author: Sergei Golubchik Date: Fri Jan 9 14:00:00 2015 +0100 new read-only server variable version_ssl_library commit 0d676fa0b745257673e0f986472209d313aa4dae Author: Sergei Golubchik Date: Wed Feb 4 17:07:47 2015 +0100 minor cleanup: ssl.cmake commit 4280b25ed85dba6e231d483e58a1c90b91730434 Author: Sergei Golubchik Date: Wed Jan 7 12:13:21 2015 +0100 --getopt-prefix-matching command-line option commit 0ce8703e99dabfa95d1cc0cd720c14f68d4cdda5 Author: Sergei Golubchik Date: Mon Jan 5 13:35:55 2015 +0100 password validation plugin API: renames commit 5e17ca565e3d1aa9bbb096c60d01eadfef651ddb Author: Sergei Golubchik Date: Mon Jan 5 16:54:00 2015 +0100 don't mention bzr in "make distclean" warning message commit df37215efb698e46368db2581197758732cf17d3 Author: Sergei Golubchik Date: Mon Jan 5 18:18:33 2015 +0100 small cleanup of my_default.c commit c7d9f11c8b1fd1557af4387eb4b3ab660b137537 Author: Sergei Golubchik Date: Tue Feb 10 00:45:37 2015 +0100 update test results for embedded commit 4c69a6fff267f4c80ef1b360985b831932353c10 Author: Vicențiu Ciorbaru Date: Mon Feb 9 17:16:55 2015 +0200 MDEV-6918 Create a way to see a user's default role. Added an extra column to i_s_applicable_roles, named IS_DEFAULT. The column displays which role is the default role for the user querying the table. commit bceb0b0be10bfbcd49981fa48981ca9b491b868e Author: Sergei Golubchik Date: Sun Feb 8 20:44:46 2015 +0100 MDEV-7151 ha_archive.so missing from .deb add missing plugins to debs commit f13939061d468a47985dee0268652a6fe2db7862 Merge: 8672339328c 3b267eb6465 Author: Sergei Golubchik Date: Sat Feb 7 16:14:21 2015 +0100 Merge branch 'bb-10.1-merge' into 10.1 commit 8672339328c30c894b4062f94c4fb0510fb20f9a Author: Kristian Nielsen Date: Fri Feb 6 10:02:02 2015 +0100 MDEV-6676: Optimistic parallel replication Adjust the configuration options, as discussed on the maria-developers@ mailing list. The option to hint a transaction to not be replicated in parallel is now called @@skip_parallel_replication, consistent with @@skip_replication. And the --slave-parallel-mode is now simplified to have just one of the following values: none minimal conservative optimistic aggressive This reflects successively harder efforts to find opportunities to run things in parallel on the slave. It allows to extend the server with more automatic heuristics in the future without having to introduce a new configuration option for each and every one. commit 734c4c01439488781837196ff09ad5f2c5276ead Author: Kristian Nielsen Date: Fri Feb 6 08:31:38 2015 +0100 Add error handling on realpath() call. (Without this, it happened for me that realpath() failed returning undef for the default vardir. This in turn caused mysql-test-run.pl to delete the source mysql-test/ directory.) commit 2deaa292e71630325d4c1d7aedfb2678fe356ba1 Author: Daniel Black Date: Wed Feb 4 13:57:09 2015 +0100 MDEV-7201: parallel threads resizing - potential race condition to access freed memory pool->threads is freed before being reassigned the new pool. Although not really a memory barrier I though it prudent to keep the pool thread count to be the lower of the old/new thread list before the new threads is allocated. commit 3b267eb6465479c8ac9cdb5a68c4a9ffac68d979 Author: Sergei Golubchik Date: Fri Feb 6 20:18:40 2015 +0100 after-merge fixes for test cases commit 324cd36bd2950b88bc4ef84c436ca3aa5428be72 Author: Sergei Golubchik Date: Fri Feb 6 18:06:46 2015 +0100 disable -Werror in the maintainer mode until we're ready for it commit 2a1470a0ed4665e4a2602c5905042ac6732c2562 Author: Sergei Golubchik Date: Fri Feb 6 16:16:38 2015 +0100 wsrep: check options as early as possible to be able disable wsrep before any further code that uses it (e.g. initialized binlog when wsrep is enabled) commit c877610e16ef8f922bc5c2e0aef31e968a66d4ab Author: Sergei Golubchik Date: Fri Feb 6 16:15:17 2015 +0100 wsrep: ha_abort_transaction() does NOT end the transaction commit 8e7649867f23ef4fca5ddb6678a66e414026ef7b Merge: f9448bcb215 7cda4bee0ef Author: Sergei Golubchik Date: Fri Feb 6 16:14:23 2015 +0100 Merge 10.0-galera into 10.1 commit f9448bcb2153aac614ecb260a4dd7f27b04f17a2 Author: Sergei Golubchik Date: Thu Feb 5 19:18:09 2015 +0100 small cleanups commit 32b0b6434b368d722c21861888e18f393f7af11b Author: Sergey Vojtovich Date: Thu Feb 5 13:58:30 2015 +0400 MDEV-7177 - Server hangs on shutdown after InnoDB error (main.plugin_loaderr fails in buildbot) There was a race condition in timer functionality of query timeouts. Race was as following: main thread: init_thr_timers() timer handler thread: my_thread_init() main thread: end_thr_timer()/timer_thread_state= ABORTING timer handler thread: timer_thread_state= RUNNING, continue normal op main thread: waits indefinitely for timer handler thread to go down The original idea of the fix is to set RUNNING state in main thread, before starting timer handler thread. But it didn't survive further cleanups: - removed "timer_thread_state" and used "thr_timer_inited" for this purpose - removed unused "timer_thread_running" - removed code responisble for "timer handler thread" shutdown synchronization, use pthread_join() instead. commit 451e9b7a50ccbced8beca81e53ae5427fac5e594 Author: Sergey Vojtovich Date: Thu Feb 5 13:54:55 2015 +0400 MDEV-7499 - System variables have broken default values on big endian INFORMATION_SCHEMA.SYSTEM_VARIABLES.DEFAULT_VALUE had broken values on big endian. Default value is internally stored as longlong, while I_S references it's pointer (longlong *) according to variable type (e.g. int, my_bool, etc). This works well on little endian, but on big endian we always get 0 for such variables. commit b08126aad1a33ec0ad3491b061e888908d1edfe5 Author: Jan Lindström Date: Thu Feb 5 08:52:17 2015 +0200 MDEV-7178: wsrep* tests fail in buildbot This is temporal test fixt to avoid concurrent IST for now until the actual issue https://github.com/codership/galera/issues/204 is fixed. commit ad433e17f97ee6593346adfea38018f7af1c34f5 Author: Elena Stepanova Date: Thu Feb 5 02:44:03 2015 +0300 MDEV-7255 Failures in engines/* tests With commit 227510e039b4e (parser cleanup: don't store field properties in LEX, use Create_field directly) it became possible to create columns DOUBLE(0,0) and alike commit 41dc186aa8a5340c78e783a635a95173cc46a697 Author: Jan Lindström Date: Wed Feb 4 19:31:16 2015 +0200 MDEV-6633: Remove magic dependencies for InnoDB compression methods Added options for each compression type that can be disabled i.e. bzip2, lz4, lzma and lzo. commit bfe703a45888107936c184076eaead28b8b8a90a Author: Sergei Golubchik Date: Tue Feb 3 18:19:56 2015 +0100 don't let current_thd to point to a destroyed THD * reset current_thd in THD::~THD, otherwise my_malloc_size_cb_func() might access THD after it was destroyed. * remove now redundant set_current_thd(0) calls that follow delete thd. commit d0fb9580e0b2400d633b672e881a9d661cafb07f Author: Sergei Golubchik Date: Tue Feb 3 09:31:13 2015 +0100 Update test results after the last push. Again. This reverts commit 06c16904459db6b46518e2f4ac6e21327d336cfd. commit d8eba59d9c30046ac949290a6147da058102d8f8 Author: Monty Date: Tue Feb 3 00:47:39 2015 +0200 Commit one file that I forgot in last commit commit 80ce0c1c9c234dc53b963659690a1a8368b52124 Author: Sergei Golubchik Date: Sun Feb 1 13:43:19 2015 +0100 cleanup: ha_checktype() * error reporting was never needed * avoid useless transformaton hton to db_type to hton * in many cases the engine was guaranteed to exist, add asserts * use ha_default_handlerton() instead of ha_checktype(DB_TYPE_DEFAULT) commit 06c16904459db6b46518e2f4ac6e21327d336cfd Author: Sergei Golubchik Date: Mon Feb 2 18:02:43 2015 +0100 revert test changes from "cleaned up code for setting slave_parallel_mode" but keep the code cleanup. as it turns out, it didn't change the behavior, which is good :) commit 51bdfb01d884514195766b52e39a3d1d07791a09 Author: Sergei Golubchik Date: Mon Feb 2 09:04:16 2015 +0100 trivial cleanup: be explicit about extern variables commit 9efd0207e4f1cac7a84699a5d770bebbfa82f191 Author: Sergei Golubchik Date: Mon Feb 2 09:03:40 2015 +0100 fix the code to compile commit cd9e69ec709ad960e40633f09dc9660fa5866929 Author: Monty Date: Sun Feb 1 22:39:59 2015 +0200 Cleaned up code for setting slave_parallel_mode Now this works the same way as all other multi source variables. commit 0ee879ff8ac1b80cd9a963015344f5698a81f309 Author: Monty Date: Sun Feb 1 15:24:22 2015 +0200 Improve performance for calculating memory allocation Extend interface for 'show variables' with current scope commit 67b24a2374fed4a7533d14cc443afa0f4e9febc7 Author: Monty Date: Thu Jan 29 15:36:25 2015 +0200 Remove some allocations not needed for internal temporary tables. commit e7870122f332b1f5e876c1d79a34da61c1f6bbed Author: Monty Date: Thu Jan 29 15:35:52 2015 +0200 Ignore tokudb binaries commit 6a3fee211f0595e0adcdf058b36c4231035a4a53 Merge: b2ceedc9fb7 edf34f38ac4 Author: Sergei Golubchik Date: Sun Feb 1 12:39:59 2015 +0100 Merge remote-tracking branch 'refs/remotes/github/10.1' into 10.1 commit b2ceedc9fb7c12159448cd7ad5db62e1226a2c43 Author: Sergei Golubchik Date: Sat Jan 31 16:35:50 2015 +0100 main.ctype_ucs2 --ps: Item_func_nullif should use m_args0_copy metadata in case args[0] changes between PREPARE and EXECUTE commit f122cca4df7e63744524ab9d5814e1bc26e1d3bd Author: Sergei Golubchik Date: Sat Jan 31 16:01:20 2015 +0100 main.null --ps: Item_null doesn't need charset converter in particular, not the one that destructively changes Item's charset (meaning different metadata for PREPARE and EXECUTE) commit 6f12cfdc5e10f4e41e0ee44a0d0a5db2706a7bf3 Author: Sergei Golubchik Date: Sat Jan 31 15:14:59 2015 +0100 fix semisync plugin locking: rpl.rpl_semi_sync_uninstall_plugin failed commit 863cfb3fa5153e7754279324ba7e66a4cfdac805 Author: Sergei Golubchik Date: Sat Jan 31 15:04:37 2015 +0100 small cleanup, remove a useless function commit b050354ffb15e4e27498b169ec723da4d8aa8da6 Author: Sergei Golubchik Date: Sat Jan 31 12:54:07 2015 +0100 compiler warnings commit f299da89babddc78a06efff918d815bc3b9562d8 Author: Sergei Golubchik Date: Fri Jan 30 21:12:26 2015 +0100 rpl.rpl_parallel: after-merge fix * fix the test to pass * rearrange tests in a file to allow it to auto-merge in the future commit 4b21cd21fef2763d757aa15681c9c9a7ed5db3c9 Merge: 0b049b40124 a06624d61f3 Author: Sergei Golubchik Date: Sat Jan 31 21:48:47 2015 +0100 Merge branch '10.0' into merge-wip commit edf34f38ac4fad7996bf19cd9ac669d2a6825400 Author: Oleksandr Byelkin Date: Thu Jan 29 22:43:07 2015 +0100 MDEV-7024: Assertion `! is_set()' failed in Diagnostics_area::set_eof_status on executing ANALYZE SELECT via PS select_send::is_result_interceptor() should return FALSE because it return results to the client. commit 51feb6fa99ebf027b74e2e01fb1839df97f76070 Author: Oleksandr Byelkin Date: Thu Jan 29 12:47:13 2015 +0100 MDEV-7023: Error 2027: Malformed packet and assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_INT24 || field_types[field_pos] == MYSQL_TYPE_LONG' failure in Protocol_text::store_long The problem was that sp_head::MULTI_RESULTS was not set correctly for ANALYZE statement. commit cd187ecf90e9988e5a729a1a4db7239e3baa2e6c Author: Nirbhay Choubey Date: Tue Jan 27 20:22:06 2015 -0500 Add cmake check for getifaddrs. commit d8ee54c63321e81ef99465bbadc8e4fb45fe7569 Author: Nirbhay Choubey Date: Tue Jan 27 20:02:43 2015 -0500 Add cmake check for getifaddrs. commit 47d8001c672a161eaa9e498889a365c5601850e7 Author: Nirbhay Choubey Date: Tue Jan 27 16:54:24 2015 -0500 MDEV-7476: Allow SELECT to succeed even when node is not ready Added a SESSION-only system variable "wsrep_dirty_reads" to allow SELECT queries to pass even when the node is not prepared to accept queries (wsrep_ready=OFF). Added a test case. commit 950d69610aff4b2ee2cfe83113d339eac1ba0668 Author: Nirbhay Choubey Date: Tue Jan 27 16:25:18 2015 -0500 MDEV-7322: Option to allow setting the binlog_format with Galera At session scope, allow binlog_format to be changed to values other than ROW with a warning. commit 9b7e3801f4d3b241d525c7f2d6f0e2aedb35e3cc Author: Nirbhay Choubey Date: Tue Jan 27 16:22:29 2015 -0500 MDEV-7476: Allow SELECT to succeed even when node is not ready Added a SESSION-only system variable "wsrep_dirty_reads" to allow SELECT queries to pass even when the node is not prepared to accept queries (wsrep_ready=OFF). Added a test case. commit 5b6f637caafba84457b91e08ce9c4f3fc6e8202f Author: Nirbhay Choubey Date: Tue Jan 27 14:17:40 2015 -0500 MDEV-7322: Option to allow setting the binlog_format with Galera At session scope, allow binlog_format to be changed to values other than ROW with a warning. commit 0b049b40124d72d77c008d4441e4db2e77f0f127 Author: Jan Lindström Date: Tue Jan 27 15:40:50 2015 +0200 Fix test failure on innodb_stats_fetch_nonexistent. commit 7cda4bee0ef7c8a3ec85e94bc1443ceaba3a64e8 Merge: ea229eb6bb2 fb71449b101 Author: Nirbhay Choubey Date: Mon Jan 26 22:54:27 2015 -0500 maria-10.0.16 merge bzr merge -r4588 maria/10.0 commit ea229eb6bb29ee7b11a7d28a7d4c80a593cb1d3b Author: Nirbhay Choubey Date: Mon Jan 26 22:48:02 2015 -0500 Minor test modifications. commit 248c662cd7b7421f0a87c21a3903395c99c04939 Author: Nirbhay Choubey Date: Mon Jan 26 22:43:46 2015 -0500 Minor test modifications. commit e6f35f15115283f6d446af25a5c33e615c6afe7c Author: Nirbhay Choubey Date: Mon Jan 26 11:58:16 2015 -0500 Backported changes done in wsrep_guess_ip() from 10.1. commit f9e7f82d153e568c0d795b8f8a1d911fa4dbc9ab Author: Nirbhay Choubey Date: Mon Jan 26 11:44:39 2015 -0500 Backported changes done in wsrep_guess_ip() from 10.1. commit 53b9f755aff1d6ef5753e0fbca50859126927752 Author: Nirbhay Choubey Date: Sat Jan 24 18:46:48 2015 -0500 MDEV-7374 : Losing connection to MySQL while running ALTER TABLE Backport from 10.1. commit fffc9f585ddaed46dc3d157ebde3c1aeeb8a8c8c Author: Nirbhay Choubey Date: Sat Jan 24 18:39:21 2015 -0500 MDEV-7374 : Losing connection to MySQL while running ALTER TABLE Backport from 10.1. commit 0105bf349a44f33fff3410af1db31d4c6116f14a Author: Nirbhay Choubey Date: Thu Jan 22 18:00:37 2015 -0500 MDEV-7476: Allow SELECT to succeed even when node is not ready Added a SESSION-only system variable "wsrep_dirty_reads" to allow SELECT queries to pass even when the node is not prepared to accept queries (wsrep_ready=OFF). Added a test case. commit b5201200407e6d69ddceb5f482d966f95f5b30ac Merge: f6e1906ced5 dd80c22c2d9 Author: Nirbhay Choubey Date: Wed Jan 21 10:57:46 2015 -0500 MDEV-7123 : MariaDB 10.0.14 Galera node shutdown with signal 11 wsrep-patch uses same connection name for constructing Master_info objects. As a result all existing wsrep Master_info objects refer to same rpl_filter object. This could lead to race when multiple threads try to delete/destruct Master_info object, as they would all try to delete the same relay_log object. Fixed by adding a check in Master_info's destructor to not free the "wsrep" rpl_filter, so that its reused by current & subsequent wsrep threads and later reclaimed by free_all_rpl_filters() during server shutdown. commit f6e1906ced57cdc77f4e4374d74ef658f861ac05 Author: Nirbhay Choubey Date: Sun Jan 18 18:16:36 2015 -0500 MDEV-7470: MariaDB-Galera-server uses 'tar', but 'tar' is not in the dependency list Added tar to the dependency list. commit 887628acee72e8082285f6fa33e5e261e22d7f48 Author: Nirbhay Choubey Date: Fri Jan 16 13:53:23 2015 -0500 Test changes (backported from 10.1). commit bb93d46241d4c563844ffd7455ac2336a28bd66f Author: Nirbhay Choubey Date: Fri Jan 16 13:52:30 2015 -0500 Test changes (backported from 10.1). commit ab440b0fb7302d707ba0ba41382bf911404db1cb Author: Sergei Golubchik Date: Thu Jan 15 14:59:20 2015 +0100 update sysvars_server_embedded,32bit.rdiff commit 90f2ec5122789e30874947e43729d3b602201f6b Author: Sergei Golubchik Date: Thu Jan 15 14:57:50 2015 +0100 bugfix: incorrect cast causing random memory write options->app_type was set to mysql_sysvar_t* pointer, later changed to sys_var* pointer, and even later dereferenced as sys_var*. But for PLUGIN_VAR_NOSYSVAR variables the pointer wasn't changed to sys_var*, so mysql_sysvar_t* pointer was dereferenced (and updated!) as if it was sys_var*. This caused maria.maria-gis-recovery test failure on x86 (fulltest2). commit b4daf8efac1342c461f28cdf59e75ff397a562f4 Author: Sergei Golubchik Date: Thu Jan 15 14:41:24 2015 +0100 split an assert commit de4cfabe5f26fccea6b92e3233e8b1fcdd0df9c8 Author: Sergei Golubchik Date: Thu Jan 15 08:36:13 2015 +0100 sort a non-deterministic test result commit a1e3eaf953346b708817f2233124648863873919 Author: Sergei Golubchik Date: Tue Jan 13 11:00:40 2015 +0100 fix a duplicate macro definition commit fe0112e2522750493eb3cb89ad3bf4985f311279 Author: Jan Lindström Date: Wed Jan 14 19:24:37 2015 +0200 MDEV-7424: InnoDB: Assertion failure in thread 139901753345792 in file buf0mtflu.cc line 439 Analysis: At shutdown multi-threaded flush sends a exit work items to all mtflush threads. We wait until the work queue is empty. However, as we did not hold the mutex, some other thread could also put work-items to work queue. Fix: Take mutex before adding exit work items to work queue and wait until all work-items are really processed. Release mutex after we have marked that multi-threaded flush is not anymore active. Fix test failure on innodb_bug12902967 caused by unnecessary info output on xtradb/buf/buf0mtflush.cc. Do not try to enable atomic writes if the file type is not OS_DATA_FILE. Atomic writes are unnecessary for log files. If we try to enable atomic writes to log writes that are stored to media supporting atomic writes we will end up problems later. commit abf400e810900b84c0f9a9095917809f7eec40dd Author: Nirbhay Choubey Date: Tue Jan 13 13:12:05 2015 -0500 MDEV-6771 : Incorrect Size for Transfer Reported to pv xargs may split the input and execute them in batches for large number of files. As a result xtrabackup sst script may feed incorrect size to pv. Fixed by piping the files to du directly (du --files0-from=-). [Based on suggestions from Brad Jorgensen] commit 33b4fab8679a2e34a97e167a2a88dc5ea0a5686a Author: Nirbhay Choubey Date: Tue Jan 13 13:10:07 2015 -0500 MDEV-6771 : Incorrect Size for Transfer Reported to pv xargs may split the input and execute them in batches for large number of files. As a result xtrabackup sst script may feed incorrect size to pv. Fixed by piping the files to du directly (du --files0-from=-). [Based on suggestions from Brad Jorgensen] commit 2de9427ccfb1256e6c63810b845ebfedc101890f Author: Kristian Nielsen Date: Tue Jan 13 14:18:23 2015 +0100 MDEV-7391: rpl.rpl_semi_sync, rpl.rpl_semi_sync_after_sync_row fail in buildbot The problem was caused by a merge error (incorrect conflict resolution) when the MDEV-7257 patch was merged into 10.1. The incorrect merge put two code blocks in the wrong order. This caused a race that was seen as sporadic test failures. (The problem was that binlog end position was updated before running after_flush hook; this way it was possible for the binlog dump thread to send a transaction to a slave without requesting semi-sync acknowledgement. Then when no acknowledgement was received, semisync replication would be disabled on the master.) commit e695db0f2d97cbba2832e0f3dc25af5add1f16ac Author: Sergei Golubchik Date: Mon Jan 12 17:03:45 2015 +0100 MDEV-7437 remove suport for "atomics" with rwlocks commit 1f0ad6c6b3421a815ea6373c66aaf693852342cf Author: Alexander Barkov Date: Tue Jan 13 11:50:33 2015 +0400 MDEV-7288 USER/ROLE: CREATE OR REPLACE, CREATE IF NOT EXISTS, DROP IF EXISTS commit a68ad5d50f5a3a6f7ef4d573e889aa97cfc6d749 Author: Sergei Golubchik Date: Wed Jan 7 11:36:46 2015 +0100 MDEV-7325 make lf_hash_delete(), lf_hash_search(), and lf_hash_iterator() never to return OOM if lf_hash_delete() and lf_hash_search() cannot create a new bucket because of OOM, they'll start the search from the parent bucket. As for lf_hash_iterate() - it only ever uses bucket number 0, so if it cannot create *that* bucket, the hash must surely be empty. commit 2a4a5d890e933a7e993bb5d7625d26ab8b3d5317 Author: Sergey Vojtovich Date: Mon Jan 12 13:30:30 2015 +0400 MDEV-7426 - federated.federated_server fails Fixed error path of close_cached_connection_tables() to unlock mutex. commit 517c5c9e8935d4bfce27c42007bc3e9ec02bddaa Author: Jan Lindström Date: Mon Jan 12 09:30:49 2015 +0200 MDEV-7262: innodb.innodb-mdev7046 fail on BuildBot Test causes OS error printout and we need to supress this error message on tests. commit 2501a0ea59509ff5b8644adbe229ae16a8a11718 Author: Sergei Golubchik Date: Sun Jan 11 16:37:25 2015 +0100 MDEV-7364 - mysqld --help --verbose prints random values for "debug" better fix that doesn't make debug-dbug variable to disappear from mysqld --help output (this fact is used by have_debug.inc) and shows correctly what dbug value was set on the command line. commit 3fcbd7cb47b1b251d3d541c9e67c1a0b7d53fdc0 Author: Sergei Golubchik Date: Sun Jan 11 15:49:23 2015 +0100 cleanup: remove unused THD::COND_wsrep_thd commit 1182aeb096aa509a04ce60df61289cfef184b4f6 Author: Nirbhay Choubey Date: Fri Jan 9 21:52:16 2015 -0500 MDEV-7271 : rpl.rpl_domain_id_filter fails sporadically in buildbot Use save_master_gtid.inc/sync_with_master_gtid.inc to sync slave with master instead of log position. commit 66278951761e973761fa037178ecf67562f0db2e Author: Sergei Golubchik Date: Thu Jan 8 21:26:56 2015 +0100 MDEV-6731 No ALGORITHM information in I_S.VIEWS commit b111d9884747001937f9272675536ece5254f1d3 Author: Sergei Golubchik Date: Thu Jan 8 16:53:36 2015 +0100 MDEV-5533 increase the default max thread pool size 500 -> 1000 commit dd80c22c2d97d81abbf08c05576ce420708eccce Author: Nirbhay Choubey Date: Fri Jan 9 00:32:28 2015 -0500 MDEV-7123 : MariaDB 10.0.14 Galera node shutdown with signal 11 wsrep-patch uses same connection name for constructing Master_info objects. As a result all existing wsrep Master_info objects refer to same rpl_filter object. This could lead to race when multiple threads try to delete/destruct Master_info object, as they would all try to delete the same relay_log object. Fixed by adding a check in Master_info's destructor to not free the "wsrep" rpl_filter, so that its reused by current & subsequent wsrep threads and later reclaimed by free_all_rpl_filters() during server shutdown. commit 86551362229c8f110575234a98598e4e8af7a707 Author: Sergei Golubchik Date: Thu Jan 8 20:26:53 2015 +0100 remove wsrep_hton dependency from innodb/xtradb commit 4ce39dca99568677daf8cedafc2cbaa169e4eb7d Author: Sergei Golubchik Date: Thu Dec 4 17:59:07 2014 +0100 enable feedback plugin by default As requested by Monty commit 743a28ea5714459fe09782dab9a4a7a0b0ff6673 Author: Nirbhay Choubey Date: Wed Jan 7 17:22:53 2015 -0500 MDEV-7129 : Galera duplicate error on autoincrement field primary key Merged fix for https://github.com/codership/mysql-wsrep/issues/18. commit 54b26b494b76804dbaf9f016ccae9c505d0ed4b3 Author: Nirbhay Choubey Date: Wed Jan 7 13:12:31 2015 -0500 MDEV-7129 : Galera duplicate error on autoincrement field primary key Merged fix for https://github.com/codership/mysql-wsrep/issues/18. commit ed0ea644a0770194b6c8a61f9106e44f711dedf6 Author: Nirbhay Choubey Date: Mon Jan 5 17:06:50 2015 -0500 MDEV-7412: Segfault during start with mysqldump SST Added a validity check for my_bind_addr_str before its value is accessed. commit aee3ac48775c1d88fbdd75c24d82e8f5570e65ff Author: Nirbhay Choubey Date: Fri Jan 2 10:02:04 2015 -0500 MDEV-7222: Cluster Node Crash at CREATE DEFINER statement Check whether the definer host string is not null before appending it to the specified buffer. commit 455f77bdbb14d5f41809ef5bbd234ea9fd92f972 Author: Nirbhay Choubey Date: Fri Jan 2 10:01:09 2015 -0500 MDEV-7222: Cluster Node Crash at CREATE DEFINER statement Check whether the definer host string is not null before appending it to the specified buffer. commit 6f4f8c5f8ae55f6fe05990e047c10309d598eb28 Author: Nirbhay Choubey Date: Wed Dec 31 20:58:54 2014 -0500 MDEV-7374 : Losing connection to MySQL while running ALTER TABLE In the special case of ALTER TABLE with >10K rows, wsrep commit should skip if wsrep is not enabled. Added a test case. commit 61f73d40cab40994a1baaacc87c9e81d8e335975 Author: Nirbhay Choubey Date: Wed Dec 31 19:52:35 2014 -0500 MDEV-7397: SIGSEGV on inserting into a key-less table When wsrep is enabled, an md5 hash of the entire row is calculated for tables with no PK. It, however segfaulted as the md5 context object was not properly constructed. Fixed by ensuring that the YaSSL's context object gets constructed explicitly at the specified pre-allocated location (placement) before its used. Added a test case. commit 25aaa652c489839f5ef9e0ff6d067e8c1702970d Author: Nirbhay Choubey Date: Wed Dec 31 19:46:48 2014 -0500 MDEV-6832: ER_LOCK_WAIT_TIMEOUT on SHOW STATUS Synchronous read view should not be needed for SHOW commands. commit 952b575272d47a48a1c55e83d3ff9a548857e564 Author: Nirbhay Choubey Date: Wed Dec 31 19:28:20 2014 -0500 MDEV-6832: ER_LOCK_WAIT_TIMEOUT on SHOW STATUS Synchronous read view should not be needed for SHOW commands. commit dc92032fa33cc1f3bc7fb0f885433826246bcdc0 Author: Sergey Vojtovich Date: Mon Dec 29 15:41:08 2014 +0400 Fixed sysvars_server_embedded test result to reflect new values for query_prealloc_size, query_alloc_block_size and log_tc_size. Fixed incorrect registration of LOCK_binlog_end_pos in PFS. commit 6dbc48ca79e5fdd8d4022b00b862e08a4198155b Author: Sergey Vojtovich Date: Sun Dec 28 19:42:17 2014 +0400 MDEV-7324 - Lock-free hash for table definition cache commit 8883c54ac08a555bc7d9b09395f49893ad4d80b5 Author: Sergei Golubchik Date: Thu Nov 27 23:49:45 2014 +0100 lf_hash_iterate() function commit 48430e46768d6ebe1e103a5ac48ad5361513715f Author: Sergei Golubchik Date: Thu Nov 27 20:51:23 2014 +0100 lf_hash changes, in lfind() casts, etc real changes are: * remove one retry, it is enough to check for DELETED after the key is read * advance 'head' pointer when we see a dummy node to have shorter retries commit c0d4e8a395347e0b4c7167f118ccb9169e1b1f07 Author: Jan Lindström Date: Sun Dec 28 13:54:41 2014 +0200 MDEV-7262: innodb.innodb-mdev7046 fail on BuildBot commit 46f3f93a2c123dcfdb4ab55e8d7141d2c22c26c5 Merge: f65901eef28 78603336699 Author: Jan Lindström Date: Sun Dec 28 12:55:01 2014 +0200 Merge pull request #14 from James-TR/MDEV-7369 Add fix for MDEV-7369 commit 786033366991c1ea2b8a460585096ad8c6a18510 Author: James Taylor Date: Sat Dec 27 03:23:49 2014 +0000 Add fix for MDEV-7369 See also https://mariadb.atlassian.net/browse/MDEV-7369 commit f65901eef28728212a350f61569dc884c747bffc Author: Sergey Vojtovich Date: Fri Dec 26 23:38:45 2014 +0400 MDEV-7273 - 10.1 fails to start up during tc_log initializations on PPC64 log-tc-size is 24K by default. Page size is 64K on PPC64. But log-tc-size must be at least 3 x page size. This is enforced by TC_LOG_MMAP::open() with a comment: to guarantee non-empty pool. This all makes server not startable in default configuration on PPC64. Autosize log-tc-size, so that it's min value= page size * 3, default value= page size * 6, block size= page size. commit 8c616cd347aa7b3fcc2d8defb5e172ad316f432c Author: Sergey Vojtovich Date: Fri Dec 26 19:44:38 2014 +0400 MDEV-7053 - WSREP_STATUS & WSREP_MEMBERSHIP I_S tables wsrep_status was renamed to wsrep_info. Adjusted deb build scripts accordingly. commit db89dd3a8f7b0d868946d25ba98c6f88612d309a Author: Sergey Vojtovich Date: Fri Dec 26 13:07:43 2014 +0400 MDEV-7364 - mysqld --help --verbose prints random values for "debug" getopt value pointer of "debug" variable was pointing to incorrect address: &global_system_variables. Runtime statements like SHOW VARIABLES materialize value from DBUG structures on demand, so they never access getopt value pointer. But mysqld --help --verbose loaded this value from &global_system_variables. Remove "debug" variable from mysqld --help --verbose output by setting value pointer to NULL. commit ae09895c9136ef6455d3bac3f25070a90e1df9c2 Author: Alexey Botchkov Date: Wed Dec 24 10:06:12 2014 +0400 MDEV-7277 Server crashes on creating/opening tables on Windows debug build. The srid variable was used uninitialised when the field wasn't GIS. Only problem is that it makes the debugger unhappy. Still added the initialization. commit 03e0f1f86617c54722cc23f4f5c101d60adfa485 Author: Nirbhay Choubey Date: Tue Dec 23 18:36:33 2014 -0500 MDEV-7053 : WSREP_STATUS & WSREP_MEMBERSHIP I_S tables Addendum : Renamed plugin .so file. commit 0b87de124d716cee7c1aa56f30c7f80c2c2bfcce Author: Jonas Oreland Date: Tue Dec 23 13:38:00 2014 +0100 MDEV-162 Enhanced semisync replication Implement --semi-sync-master-wait-point=AFTER_SYNC|AFTER_COMMIT. When AFTER_SYNC, the semi-sync wait will be done earlier, before the storage engine commit rather than after. This means that a transaction will not be visible on the master until at least one slave has received it. commit 4d8b346e079a27960dbe49e4d0ec4364bed8d30e Author: Jonas Oreland Date: Fri Dec 19 12:36:23 2014 +0100 MDEV-7257: Dump Thread Enhancements Make the binlog dump threads not need to take LOCK_log while sending binlog events to slave. Instead, a new LOCK_binlog_end_pos is used just to coordinate tracking the current end-of-log. This is a pre-requisite for MDEV-162, "Enhanced semisync replication". It should also help reduce the contention on LOCK_log on a busy master. Also does some much-needed refactoring/cleanup of the related code in the binlog dump thread. commit eda3db826f741b6cb62bb6903bd6b55a6aca4c3a Merge: cb47155c68f 0f64a927a93 Author: Nirbhay Choubey Date: Mon Dec 22 20:09:25 2014 -0500 Merge revisions from maria/5.5 (5.5.41) bzr merge -r4393 lp:maria/5.5 commit 96e505e4b7635412739ed39710bcc13cf14aedf5 Author: Nirbhay Choubey Date: Sat Dec 20 19:58:54 2014 -0500 MDEV-7319 : Galera bootstrap (/etc/init.d/mysql bootstrap) returns code 0 on failure Modified init script to return with proper exit status for bootstrap command. [Based on Kenny Rasschaert's suggestion] commit cb47155c68f38c6931fd539a8615373199b4ee64 Author: Nirbhay Choubey Date: Sat Dec 20 19:49:04 2014 -0500 MDEV-7319 : Galera bootstrap (/etc/init.d/mysql bootstrap) returns code 0 on failure Modified init script to return with proper exit status for bootstrap command. [Based on Kenny Rasschaert's suggestion] commit 89b2bc42f405e20af11423b0cf83032fcb2a3de4 Merge: 920bc0aff10 357cb12d87a Author: Nirbhay Choubey Date: Tue Dec 16 20:07:34 2014 -0500 Merge revisions from maria/5.5 bzr merge -r4388 lp:maria/5.5 commit ea01fff5053acc6526bc995c2a3c85474c844508 Author: Alexander Barkov Date: Tue Dec 16 15:31:25 2014 +0400 Fixing test failures caused by the previous commits. Adding "--source include/have_udf.inc" and a few "--replace" commands. commit 2dbd26932d0c22cb333a73262db8135779c6f098 Author: Alexander Barkov Date: Mon Dec 15 17:41:15 2014 +0400 MDEV-7283 UDF: CREATE OR REPLACE, CREATE IF NOT EXISTS, DROP IF EXISTS MDEV-7282 SP: CREATE OR REPLACE, CREATE IF NOT EXISTS commit 3a37c01334ab420d447b66656ee1132384c593fa Author: Nirbhay Choubey Date: Fri Dec 12 17:16:11 2014 -0500 MDEV-6891: Addendum, update company name in copyright notice commit 920bc0aff10b87a8524939c31029653afb94470c Author: Nirbhay Choubey Date: Fri Dec 12 17:14:06 2014 -0500 MDEV-6891: Addendum, update company name in copyright notice commit 48ed8ab2155b31d36358b2efd348f3036a294971 Author: Nirbhay Choubey Date: Fri Dec 12 10:58:38 2014 -0500 MDEV-6891: Update company name commit 756c6f74bf4ba73ccd7d7b824a39745413752520 Author: Nirbhay Choubey Date: Fri Dec 12 10:46:31 2014 -0500 MDEV-6891: Update company name commit 64714ae2c1f8036ca18cefa0c2dc8270d12e522c Author: Nirbhay Choubey Date: Fri Dec 12 10:45:32 2014 -0500 MDEV-6891: Update company name commit 263cf26e8b0c1a8505de54726ba23e1aacc479a4 Author: Elena Stepanova Date: Fri Dec 12 04:42:59 2014 +0400 Increased the version number commit 0b936cda07d17d5baddddbcdfb218d2e16e8cc1a Author: Alexander Barkov Date: Wed Dec 10 16:46:21 2014 +0400 Using Schema_specification_st instead of HA_CREATE_INFO in a few places where the former is enough. commit 4f9f3d4391f7b05877a12ada5d640a34c8bce68b Author: Nirbhay Choubey Date: Wed Dec 10 06:24:56 2014 -0500 empty revision commit 822eb6ca3da3e1e93d4cf4845f3123fa4762e8cc Author: Alexander Barkov Date: Wed Dec 10 13:41:14 2014 +0400 MDEV-7285 SERVER: CREATE OR REPLACE and CREATE IF NOT EXISTS commit 14cfb0acb83b3c9a4a1ae424f80a7bff1a8058b2 Author: Alexander Barkov Date: Wed Dec 10 12:00:25 2014 +0400 MDEV-6409 CREATE VIEW replication problem if error occurs in mysql_register_view An additional debug test, made by Sriram Patil while working on "CREATE VIEW IF NOT EXISTS". commit 60277b8b3cd49792a59ad460920931f146789d0a Author: Alexander Barkov Date: Wed Dec 10 11:32:52 2014 +0400 MDEV-7287 VIEW: CREATE IF NOT EXISTS Forgot to do "git add" for a number of files in the previous commit. commit acdc383445f71060f459f656fe44bafccdd3f07e Author: Alexander Barkov Date: Wed Dec 10 11:06:36 2014 +0400 MDEV-7287 VIEW: CREATE IF NOT EXISTS commit 92a523e5d56264702982435fdd01eb63e37cc4da Author: Alexander Barkov Date: Wed Dec 10 10:40:35 2014 +0400 MDEV-7280 DATABASE: CREATE OR REPLACE A clean-up: require CREATE+DROP privileges for "CREATE OR REPLACE DATABASE", instead of just CREATE privilege. commit 31c7458e1a62ec4961d914b0eb376319a350cca1 Author: Alexander Barkov Date: Wed Dec 10 08:19:19 2014 +0400 MDEV-7280 DATABASE: CREATE OR REPLACE A test clean-up: The "SHOW DATABASES" queries now use "LIKE 'db%'", to display only the databases created during this test, thus exclude the system databases, as some of them can be optional (e.g. performance_schema). commit dd270e43bf84e7dbf2a9ee7c6c3a6de372128e83 Author: Alexander Barkov Date: Wed Dec 10 08:13:08 2014 +0400 MDEV-7280 DATABASE: CREATE OR REPLACE commit 41367e4023d0823624a461597813e6902437f096 Author: Nirbhay Choubey Date: Tue Dec 9 10:35:16 2014 -0500 MDEV-7204: mariadb-galera-server el7 rpms packaging issue, no mariadb-server in provides MDEV-7233: Fix issue with missing dependency socat when installing MariaDB-galera-server on RedhatEL/OracleEL/(Others?) RPM based * Added mariadb-server to "provides" for MariaDB Galera server package. (rpm) * Removed "socat" from MariaDB Galera server's mandatory dependency list. (rpm) * Moved "socat" from mandatory to optional dependency. (deb) commit 86d7512f428393a54251624072702549804f2a75 Author: Nirbhay Choubey Date: Tue Dec 9 10:27:49 2014 -0500 MDEV-7204: mariadb-galera-server el7 rpms packaging issue, no mariadb-server in provides MDEV-7233: Fix issue with missing dependency socat when installing MariaDB-galera-server on RedhatEL/OracleEL/(Others?) RPM based * Added mariadb-server to "provides" for MariaDB Galera server package. (rpm) * Removed "socat" from MariaDB Galera server's mandatory dependency list. (rpm) * Moved "socat" from mandatory to optional dependency. (deb) commit e51e5e940c5c0b2cfd1a9bc07833a933a0460c4e Author: Nirbhay Choubey Date: Mon Dec 8 23:44:53 2014 -0500 Merged patch for lp:1167368 from maria-5.5-galera. commit c6d3f8058db30a6621e36b05564a1b2ae68bec7f Author: Alexander Barkov Date: Mon Dec 8 10:56:08 2014 +0400 MDEV-7112 Split HA_CREATE_INFO commit b372720177cececb499b96b5e6d422b32d85729c Author: Sergei Petrunia Date: Sat Dec 6 20:34:33 2014 +0300 Update test results commit 913b7672c5fe2db750a382685f0810d383b43faa Merge: db21fddc374 eeef80d09f8 Author: Sergei Petrunia Date: Sat Dec 6 20:33:25 2014 +0300 Merge bb-10.1-explain-json into 10.1 commit eeef80d09f8045d99963a2bf2fa92595c55bb26d Author: Sergei Petrunia Date: Sat Dec 6 20:13:38 2014 +0300 EXPLAIN FORMAT=JSON : Fix MDEV-7266, bug in pretty-printer - Single_line_formatting_helper should not accidentally exit the DISABLED state. No JSON construct should be able to move the Single_line_formatting_helper from DISABLED state. commit dc259324d767e10f118c2d14dc905e1bb54aa58a Author: Sergei Petrunia Date: Sat Dec 6 19:27:42 2014 +0300 EXPLAIN JSON: Print out the "expensive constant condition" attached to joins. commit db21fddc3740dfa48f3443751c48282467afac5e Author: Kristian Nielsen Date: Fri Dec 5 16:09:48 2014 +0100 MDEV-6676: Optimistic parallel replication Implement a new mode for parallel replication. In this mode, all transactions are optimistically attempted applied in parallel. In case of conflicts, the offending transaction is rolled back and retried later non-parallel. This is an early-release patch to facilitate testing, more changes to user interface / options will be expected. The new mode is not enabled by default. commit 1e3f09f1638e2bdec6029f6c98317d17d7ca76d1 Author: Sergei Petrunia Date: Sat Dec 6 04:02:30 2014 +0300 MDEV-7264: Assertion `0' failed in subselect_engine::get_identifier() Switch EXPLAIN JSON from using subselect_engine::get_identifier() to the number from Item_subselect::unit. Remove subselect_union_engine::get_identifier() because it was added only for EXPLAIN JSON code. commit 5ee1c25fa8043f81ad744d1c532b8c1dafa3b5ea Author: Sergei Petrunia Date: Sat Dec 6 03:11:03 2014 +0300 EXPLAIN FORMAT=JSON: Full scan on NULL key (join case) commit a80a797686e72644e0ad479fdfd2a3b56c4ddf05 Author: Sergei Petrunia Date: Sat Dec 6 02:23:37 2014 +0300 EXPLAIN FORMAT=JSON: Support "range checked for each record" commit 9cac7649eade35f2e5a52e4107067701de315abc Author: Sergei Petrunia Date: Sat Dec 6 01:11:22 2014 +0300 EXPLAIN FORMAT=JSON: Support range+MRR plans (when MRR is used but BKA is not) commit 3bb02f3e6d70687b02c6902fd6478e8c328608f8 Merge: a4cdd20d49a ffc0ef63164 Author: Nirbhay Choubey Date: Fri Dec 5 12:33:02 2014 -0500 bzr merge -rtag:mariadb-10.0.15 maria/10.0 commit 8fb2c80fdb9868b45ab91c915b32d2c39fd7fcd0 Author: Sergey Vojtovich Date: Fri Dec 5 16:38:48 2014 +0400 Fixed valgrind warnings in delete_dynamic(). Join_plan_state performs out-of-API initialization of DYNAMIC_ARRAY. This is done to postpone actual array initialization till first use, whilst retaining the right to call delete_dynamic(). Since delete_dynamic() now checks DYNAMIC_ARRAY::malloc_flags it should be initialized it as well. commit 78564373fee5e6cccf144b11bc60b0876b4bbd0b Author: Monty Date: Fri Aug 29 14:07:43 2014 +0300 my_alloc.c - Changed 0x%lx -> %p array.c: - Static (preallocated) buffer can now be anywhere my_sys.h - Define MY_INIT_BUFFER_USED sql_delete.cc & sql_lex.cc - Use memroot when allocating classes (avoids call to current_thd) sql_explain.h: - Use preallocated buffers sql_explain.cc: - Use preallocated buffers and memroot sql_select.cc: - Use multi_alloc_root() instead of many alloc_root() - Update calls to Explain commit 3392278c869a9594f13a0b956d34efb600ab0ed0 Author: Sergey Vojtovich Date: Thu Dec 4 17:44:46 2014 +0400 MDEV-7004 - Merge scalability fixes from 10.0-power Preallocate dynamic array and bitmap on mem_root to avoid expensive malloc. This reduces number of allocations from 39 to 31 per OLTP RO transaction. commit eaa8c154e81cb3a9a2623f53482fe2bbd9ffa459 Author: Sergey Vojtovich Date: Thu Dec 4 17:42:32 2014 +0400 MDEV-7004 - Merge scalability fixes from 10.0-power Preallocate dynamic array on THD mem_root to avoid expensive malloc. commit 070a6e7a890e5a73eb38920657c060605e520b55 Author: Monty Date: Fri Aug 29 14:09:51 2014 +0300 - Changed default values of query_prealloc_size and query_alloc_block_size so that a simple query with one join would not have to call my_malloc. - Allow lower limites for query_prealloc_size for testing. - Fixed wrong initialization of trans_alloc_block_size commit 9127784d5ce845c9d66a34eee371cbaf82468d89 Author: Sergey Vojtovich Date: Thu Dec 4 17:35:55 2014 +0400 Cherry pick dynamic array changes from commit: commit 85fd3d901311688e18ffce92ffc78129e5625791 Author: Monty Date: Fri Aug 29 14:07:43 2014 +0300 my_alloc.c - Changed 0x%lx -> %p array.c: - Static (preallocated) buffer can now be anywhere my_sys.h - Define MY_INIT_BUFFER_USED sql_delete.cc & sql_lex.cc - Use memroot when allocating classes (avoids call to current_thd) sql_explain.h: - Use preallocated buffers sql_explain.cc: - Use preallocated buffers and memroot sql_select.cc: - Use multi_alloc_root() instead of many alloc_root() - Update calls to Explain commit 974808772b63563d031f687fd0fd158f83eb94aa Author: Sergey Vojtovich Date: Tue Dec 2 15:03:35 2014 +0400 MDEV-7004 - Merge scalability fixes from 10.0-power All callers of open_cached_file() use 2 characters prefix. Allocating memory for such short string is an overkill. Store it on IO_CACHE structure instead. All callers of open_cached_file() use mysql_tmpdir as dir. No need to allocate memory for it since it is constant and available till server shutdown. This reduces number of allocations from 31 to 27 per OLTP RO transaction. commit 9e9f1da0d2dd5d9de9094d20d0b39e71ec4ce479 Author: Sergey Vojtovich Date: Tue Dec 2 14:59:01 2014 +0400 MDEV-7004 - Merge scalability fixes from 10.0-power Remove call to deprecated set_thread_state. It is noop anyway, but generates function call independently of performance schema state. According to perf this saves ~0.2% of execution time. commit b4ec230917a50cbc1e406f5175189c8359bcb9a0 Author: Sergey Vojtovich Date: Tue Dec 2 14:54:30 2014 +0400 MDEV-7004 - Merge scalability fixes from 10.0-power Preallocate locks on THD mem_root to avoid expensive malloc. commit 9bc5cec0f115d7d0c277a49b91b96109560280f4 Author: Sergey Vojtovich Date: Tue Dec 2 14:50:18 2014 +0400 MDEV-7004 - Merge scalability fixes from 10.0-power Preallocate locks on THD mem_root to avoid expensive malloc. commit faf169d245d05a835ec8ebcf1defb556c85f2766 Author: Sergey Vojtovich Date: Tue Dec 2 14:02:48 2014 +0400 MDEV-6906 - Relaxed memory order for counters Let some atomic counters use relaxed memory order. commit 732d2daf448077a7d3ac88afaf1104f0ba4a9ba5 Author: Sergei Golubchik Date: Thu Dec 4 20:19:15 2014 +0100 fix for 32-bit commit 6ea90367431c5ff7d97530692cd711e5360bd98b Author: Sergei Golubchik Date: Thu Dec 4 20:17:26 2014 +0100 fix out-of-source builds commit e1913ba15a11549207f8b4b0bd70e25dcd39e7c2 Author: Sergei Golubchik Date: Thu Dec 4 15:58:25 2014 +0100 fix set_statement test for windows timestamp has a lower granularity on windows so it needs more time to change. commit 7a474162598c6d708ff969b9fbd85851bac35ec7 Author: Sergei Golubchik Date: Thu Dec 4 14:31:31 2014 +0100 compilation failure on windows commit c4cb15e87ba8cf4f1e7fd8e7cda5c88098ecd515 Author: Alexey Botchkov Date: Wed Dec 3 14:07:43 2014 +0400 MDEV-60 Support for Spatial Reference systems for the GIS data. The GEOMETRY field metadata is stored in the FRM file. SRID for a spatial column now can be stored, it was added to the CREATE TABLE syntax, so the AddGeometryData() stored procedure is now possible. Script adding the required Add/DropGeometryColumn sp-s added. commit c4655cf862b24fe040280e38cb71d3b5d25f049b Author: Sergei Golubchik Date: Fri Nov 14 13:46:21 2014 +0100 cleanup: comments referring to non-extistent Item classes commit 65f0a8d4873e79534a5e56341c4df0f22ae533c2 Author: Sergei Golubchik Date: Sat Nov 8 18:47:05 2014 +0100 cleanup: sort and reorder %union elements in sql_yacc.yy commit 227510e039b4ec6bff3096a4b9b39847551dab1a Author: Sergei Golubchik Date: Sat Nov 8 17:37:19 2014 +0100 parser cleanup: don't store field properties in LEX, use Create_field directly length/dec/charset are still in LEX, because they're also used for CAST and dynamic columns. also 1. fix "MDEV-7041 COLLATION(CAST('a' AS CHAR BINARY)) returns a wrong result" 2. allow BINARY modifier in stored function RETURN clause 3. allow "COLLATION without CHARSET" in SP/SF (parameters, RETURN, DECLARE) 4. print correct variable name in error messages for stored routine parameters commit d1522af72dad1965b8a8a37415545014ba743f49 Author: Sergei Golubchik Date: Thu Dec 4 13:06:57 2014 +0100 update 32-bit rdiff's commit 0fe39b6856a108bca2e0767df94d9a429d5f8203 Author: Jan Lindström Date: Thu Dec 4 12:40:19 2014 +0200 MDEV-7262: innodb.innodb-mdev7046 and innodb-page_compression* fail on BuildBot If persistent trim is not used some OS require that we write full page. commit 8360e1a5b5e44debcc7aeaa10331278eb6273176 Author: Sergei Golubchik Date: Wed Dec 3 23:51:47 2014 +0100 MDEV-6712 THD specifics for plugins thd_specifics service commit 0c7d773fca1497ce4edae0a72c6f01348b0ca9be Author: Sergei Golubchik Date: Tue Nov 25 22:22:55 2014 +0100 test for two password validation plugins when many plugins are active, all must approve the password commit 78cb6e34ad99186bf302520d914ec2e84fbc6946 Author: Sergei Golubchik Date: Tue Nov 25 21:48:13 2014 +0100 cracklib_password_check plugin commit 7516a3c7f44fe45aaa6599c7e3135c7ef4f1c9ef Author: Sergei Golubchik Date: Tue Nov 25 18:47:44 2014 +0100 strict_password_validation commit b81404671998009c25a56cc83aa7bf098ef9d964 Author: Sergei Golubchik Date: Tue Nov 25 10:07:59 2014 +0100 validate SET PASSWORD commit dccd85e7c72b873d3824be5ef1dcba8a7bb777e7 Author: Sergei Golubchik Date: Mon Nov 24 21:02:57 2014 +0100 cleanup: s/(OLD_)?PASSWORD/&_SYM/g commit 8934794a7043d3d62422613df26df9b37e450e0b Author: Sergei Golubchik Date: Tue Nov 25 18:53:40 2014 +0100 password validation function in sql_acl.cc commit c98b2b393db7559e04b69a649e38716f46ce5dbd Author: Sergei Golubchik Date: Tue Nov 25 21:58:14 2014 +0100 password validation plugin type and a simple plugin commit b5357f025b071574f07d307f37957df2931d83d5 Author: Sergei Golubchik Date: Tue Nov 25 19:05:49 2014 +0100 GRANT: calculate pasword hash in sql_acl.cc don't do it in the parser, one should not make run-time decisions (like, checking thd->variables.old_passwords variable) during parsing. commit 7bd9eb1f410be849edef2be3548ec9cd14d67c3a Author: Sergei Golubchik Date: Mon Nov 24 16:55:56 2014 +0100 parser: store the password hash in LEX_USER::auth, not in ::password * indeed, "username IDENTIFIED BY PASSWORD hash" is the same as "username IDENTIFIED VIA mysql_native_password USING hash" * LEX_USER::password can now be used for plain-text passwords commit 91ad0cd5801ed16670f1f6d31d1d3dbd1be104d2 Author: Sergei Golubchik Date: Mon Nov 24 16:53:51 2014 +0100 sql_acl.cc: better recognize the context to tell the role from a user REQUIRE and MAX_QUERIES_PER_HOUR can not possibly apply to a role commit bc603c604daaf8c4e7b31c9ad1b4724f9ab3f450 Author: Sergei Golubchik Date: Mon Nov 24 15:10:51 2014 +0100 bugfix: IDENTIFIED BY clause was lost in some GRANT variants commit 61820bca9b4a4caa30127b17bca93d2bf37217ff Author: Sergei Golubchik Date: Mon Nov 24 14:07:42 2014 +0100 cleanup: sql_acl.cc * remove no-op check_password_policy() and references to it * add 'static' to functions that need it * remove unused function check_acl_user() commit f5722f5851bb4603040d5010aeeb98244cc2789f Author: Sergei Golubchik Date: Sun Nov 23 20:30:56 2014 +0100 cleanup: normalize LEX_USER to get rid of different representation of the same thing username IDENTIFIED BY PASSWORD xxx username IDENTIFIED VIA mysql_native_password USING xxx etc also check for valid strlen(xxx) commit c1204da1c72bb51c0b4904704b69411f7ce391e3 Author: Sergei Golubchik Date: Sun Nov 23 19:36:08 2014 +0100 cleanup: bool_variable= -1; -> bool_variable= true; commit 7f856f0a8204e8faa41b3778a0aa103acd8ef331 Author: Sergei Golubchik Date: Fri Nov 21 17:53:16 2014 +0100 remove unsupported service file commit 4027e3b88580e011b799cd4c2d7b94b400ba6f73 Author: Sergei Golubchik Date: Fri Nov 21 14:45:25 2014 +0100 don't load plugin of unsupported types commit 77e3cb7dc1d1b3b3a59179cf9ae8833c88309821 Author: Sergei Golubchik Date: Thu Oct 23 21:01:52 2014 +0200 cleanup: sql_plugin.cc * test for opt->name being non-NULL *before* dereferencing it * remove unused argument in cleanup_variables() * simplify commit bdb222bcc46faa9fd6b57021de330ff9bfcdf61e Author: Sergei Golubchik Date: Wed Dec 3 14:25:01 2014 +0100 update 32-bit rdiff's commit 23fa0a367bcdc0d07dde1c5c397c42d2d40a9169 Author: Sergei Golubchik Date: Sat Nov 29 19:49:42 2014 +0100 fix a comment commit fc40f81edaee5d01dbaf6a3499147bde70bf01e8 Author: Sergei Golubchik Date: Sat Nov 29 00:53:09 2014 +0100 a case of uninitialized variable commit e4f973930c6fd8d76c7ad4f2e0769336e555ef67 Author: Sergei Golubchik Date: Sat Nov 29 00:52:48 2014 +0100 MDEV-6999 Remove or deprecate unused variables commit 6a2fbdf948af3e72be577daaac89e9a3ce69a682 Author: Sergei Golubchik Date: Sat Nov 29 00:29:40 2014 +0100 MDEV-6979 simplify trigger rules for RBR triggers Rows_log_event::write_row - don't optimize DELETE+INSERT into UPDATE if RBR triggers are used commit 1bd1c29ea0ec51d2efefcadbc1ca217aff9f7610 Author: Sergei Golubchik Date: Fri Nov 28 22:39:22 2014 +0100 MDEV-6895 switch to dynamic libjemalloc.so commit 0438f1254090f65290b3d58a7c2722d1c5311afd Author: Sergei Golubchik Date: Thu Nov 27 09:45:10 2014 +0100 MDEV-6980 OUT parameters in PREPARE revert the patch for "out parameters in prepare" commit 717a264ef4d74fdb9723fc2e713878d26c7d3a8e Author: Sergei Golubchik Date: Wed Nov 26 20:49:24 2014 +0100 MDEV-6894 Enable SEQUENCE engine by default commit 69d700ace31887714be026b7c1526ee7832fba94 Author: Sergei Golubchik Date: Wed Nov 26 20:34:40 2014 +0100 MDEV-5871 support assisted discovery in oqgraph v3 commit 2ef0312cd97a6cd6973a3e1221c127adf669bd72 Author: Sergei Golubchik Date: Wed Nov 26 20:33:50 2014 +0100 oqgraph cleanup: remove casts commit 2ae7541bcf93985302bc7efb2629e6f623ccfc64 Author: Sergei Golubchik Date: Wed Nov 19 09:13:38 2014 +0100 cleanup: s/const CHARSET_INFO/CHARSET_INFO/ as CHARSET_INFO is already const, using const on it is redundant and results in compiler warnings (on Windows) commit 0d30423900dd3a384f061c32f6ec3de9c11cdde9 Author: Sergei Golubchik Date: Wed Nov 19 08:55:06 2014 +0100 cleanup: reuse MY_CHECK_AND_SET_COMPILER_FLAG in sphinx/CMakeLists.txt commit d2a78def63687ca7068acd9ec3bb4e45b14d49c6 Author: Sergei Golubchik Date: Tue Nov 18 11:36:15 2014 +0100 cleanup: ptr_cmp 1. don't cast size_t* to int* 2. remove long obsolete register specifier commit 20c3b2ff807b07610ed9012f31fce0ba68d522b0 Author: Sergei Golubchik Date: Sun Nov 16 13:15:35 2014 +0100 MDEV-6311 Add errors on CREATE SERVER fail CREATE SERVER foreign data wrapper is "mysql" and neither HOST nor SOCKET are specified. Also default PORT to 3306 (again, only for foreign data wrapper "mysql") commit 97a913e31c161dbd18f4fcb9cc00f23640497e03 Author: Sergei Golubchik Date: Sun Nov 16 13:12:58 2014 +0100 cleanup: freshen up CREATE SERVER code * pass LEX_STRING's from the parser, don't ignore the length only to strlen later * init LEX::server_options only for SERVER commands, not for every statement * don't put temporary values into a global persistent memroot but really it's just scratching a surface commit a50ddebb5cfa7b79540d155e8e41c7a07c4c3fbf Author: Nirbhay Choubey Date: Wed Dec 3 22:30:48 2014 -0500 MDEV-6593 : domain_id based replication filters Implementation for domain ID based filtering of replication events. commit 7bf4f9f7f66192f07fa46ed30c38f8842502fc4f Author: Sergei Golubchik Date: Wed Dec 3 21:33:34 2014 +0100 followup for MDEV-6996, update tests and results commit 24a6b413489e82971673d2a68e754fc30add3f9c Author: Jan Lindström Date: Wed Dec 3 13:45:21 2014 +0200 Move page initialization to better place. commit 316d8c7fc8ab8c33ffddc898667f409bc86c7d5a Author: Sergei Golubchik Date: Wed Dec 3 11:58:33 2014 +0100 compiler warning commit ec4137c62b00a2bad91dd108f5782b206fe86a8b Merge: 1caee393076 bafe529af76 Author: Sergei Golubchik Date: Wed Dec 3 11:37:26 2014 +0100 Merge branch '10.1' into bb-10.1-merge commit bafe529af76a915f43dbf6a3fb8dc610a4ea121b Author: Jan Lindström Date: Wed Dec 3 11:41:48 2014 +0200 Fix Windows compiler error. commit d4aef382fd9e3cc10ed687cc981b43aac1f29281 Author: Jan Lindström Date: Wed Dec 3 10:41:52 2014 +0200 Fix compiler failure on fallocate function and used flags. commit 1caee393076dc642a7d8e1283377b59ef8f52dbd Author: Sergei Golubchik Date: Tue Dec 2 22:25:53 2014 +0100 disable mroonga temporarily: see MDEV-7246 commit 853077ad7e81be1ade20b4beab1b95d5766d87b1 Merge: bf3b4a23f75 2b5db1d5bcd Author: Sergei Golubchik Date: Tue Dec 2 22:25:16 2014 +0100 Merge branch '10.0' into bb-10.1-merge Conflicts: .bzrignore VERSION cmake/plugin.cmake debian/dist/Debian/control debian/dist/Ubuntu/control mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/null.result mysql-test/r/old-mode.result mysql-test/r/union.result mysql-test/t/join_outer.test mysql-test/t/null.test mysql-test/t/old-mode.test mysql-test/t/union.test packaging/rpm-oel/mysql.spec.in scripts/mysql_config.sh sql/ha_ndbcluster.cc sql/ha_ndbcluster_binlog.cc sql/ha_ndbcluster_cond.cc sql/item_cmpfunc.h sql/lock.cc sql/sql_select.cc sql/sql_show.cc sql/sql_update.cc sql/sql_yacc.yy storage/innobase/buf/buf0flu.cc storage/innobase/fil/fil0fil.cc storage/innobase/include/srv0srv.h storage/innobase/lock/lock0lock.cc storage/tokudb/CMakeLists.txt storage/xtradb/buf/buf0flu.cc storage/xtradb/fil/fil0fil.cc storage/xtradb/include/srv0srv.h storage/xtradb/lock/lock0lock.cc support-files/mysql.spec.sh commit 01590005ba44f350f63b70a7ceb9f69095b293d5 Author: Jan Lindström Date: Tue Dec 2 19:25:58 2014 +0200 Fix buildbot valgrind errors on test innodb.innodb-page_compression_tables Problem was that temporal buffers allocated for page compression are not initialized and rest of the page that is actually writen was als not initialized after previous usage. commit 3502d7412148d543082aad3c72bbadf742f0a60d Author: Oleksandr Byelkin Date: Tue Dec 2 10:59:44 2014 +0100 MDEV-7015: SET STATEMENT old_passwords has no effect Decision about algorihtm moved on prepare phase. Made possible to add mpore password algorithms. commit 53ff66fe31ee4e0fa646f646cee10095390471af Author: Oleksandr Byelkin Date: Tue Dec 2 09:04:09 2014 +0100 MDEV-6996: SET STATEMENT default_week_format = .. has no effect Change constant with a system variable. commit d6e881643508b77ae482014a061927f91f4a8eec Author: Sergei Petrunia Date: Tue Dec 2 10:35:28 2014 +0300 Make analyze_format_json.test work on case-insensitive FS. commit b3d930b39c1d874d269a256e7ae05ae3e1956d4d Merge: 8722b6de4dc 149e8a7b28c Author: Sergei Petrunia Date: Tue Dec 2 02:26:55 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 149e8a7b28cb883dd3f2dc9353760a97b526fb71 Author: Sergei Petrunia Date: Tue Dec 2 02:26:25 2014 +0300 Update test results after fix for MDEV-7245 commit 8722b6de4dc7c895692323db124ac4f9c7745291 Author: Sergei Petrunia Date: Tue Dec 2 02:14:17 2014 +0300 Code cleanup commit fc2871acbe5396fc8087b55ecaa0028301b0db3d Author: Sergei Petrunia Date: Tue Dec 2 01:58:22 2014 +0300 Update test results. commit 0000695025dea9740842ea57a5d79cd56d880405 Author: Sergei Petrunia Date: Tue Dec 2 01:40:10 2014 +0300 EXPLAIN FORMAT=JSON Add support for semi-join strategies: FirstMatch, DuplicateWeedout, LooseScan. commit a35b05399ef20de3c0d5e521a62b5e297c6ccd1e Author: Sergei Petrunia Date: Tue Dec 2 01:22:16 2014 +0300 EXPLAIN FORMAT=JSON: Do set usable_key_parts for key in the temp. table If we didn't do it, SJ-Materialization table would appear to EXPLAIN JSON code as having different keyparts than it actually has. This caused unpredictable content in "used_key_parts" commit 5c5a8b1cc8c2241e82635aeb1476f911fca6e904 Merge: 753718c2019 54392f0a223 Author: Sergei Petrunia Date: Tue Dec 2 00:32:31 2014 +0300 Merge ../10.1 into bb-10.1-explain-json commit 54392f0a223121fd95ae00590370909415dbdd96 Author: Sergei Petrunia Date: Tue Dec 2 00:18:57 2014 +0300 MDEV-7245: Incorrect display of subquery cache in union.result - Do set nest_level and nest_level_base for fake_select_lex objects. commit 753718c20194f9f04432a5657a661eb6e9440483 Author: Sergei Petrunia Date: Mon Dec 1 21:35:31 2014 +0300 EXPLAIN FORMAT=JSON: support SJ-Materialization - Switch Explain data structure from "flat" representation of SJ-Materialization into nested one. - Update functions that print tabular output to operate on the nested structure. - Add function to generate JSON output. commit bf3b4a23f75de50e0f1ab4a562e5801dabc7305b Author: Sergei Golubchik Date: Mon Dec 1 16:43:09 2014 +0100 fix mysqld_safe to work local function variable was overwriting the global one. also remove unused variable expansion. commit dbbe8310964266f78882c926ec363a10066d1824 Author: Sergei Golubchik Date: Mon Dec 1 15:25:07 2014 +0100 don't skip wsrep position recovery silently control scripts (mysqld_safe for example) want to know whether a recovery was successful or not. total silence is too suspicious to be trusted. commit aa4ad1c6b048d8254c47ab248d1e2a60a71b7c96 Author: Sergei Golubchik Date: Mon Dec 1 13:43:17 2014 +0100 update result files commit bb070f9367403611c473ad28e9e4cedec882f76f Author: Sergei Golubchik Date: Mon Dec 1 10:31:31 2014 +0100 MDEV-7188 main.signal_demo3 and sys_vars.max_sp_recursion_depth_func fail in biuldbot on labrador with Thread stack overrun reduce stack requirememnts for CALL by just a little bit commit 2b40a389a5d82cfea7fabf1f34ff2737b4d65cfa Author: Nirbhay Choubey Date: Sun Nov 30 21:13:41 2014 -0500 MDEV-4412 : SLOW QUERY LOG - add affected rows (UPDATE / DELETE) in slow query log Added Rows_affected to slow query log & mysql.slow_log table. commit b16b072186764da468dd947b33a8299b7f4c1a8a Author: Sergei Golubchik Date: Sun Nov 30 09:26:32 2014 +0100 Make test results stable. (just like in the test below) commit 2e728c706982e80d90658363f0cf022194b1e8f8 Author: Sergei Golubchik Date: Sun Nov 30 08:32:36 2014 +0100 rdiff not needed anymore commit 3e792e6cbccb5d7bf5b84b38336f8a40ad232020 Author: Nirbhay Choubey Date: Sun Nov 30 01:05:34 2014 -0500 MDEV-4018 : Feature Request: microseconds in GET_LOCK() Updated MDL_context's lock methods to accept double precision lock_wait_timeout. commit 5298e21c32666f558b2ecdfee12df493d87d4e07 Author: Nirbhay Choubey Date: Sun Nov 30 00:12:45 2014 -0500 MDEV-6961: mysqld should terminate when started with --wsrep-recover Fixed the condition to make sure mysqld process terminates when started with wsrep-recover. commit f7708d683036a1471bcdaa25580ac995edfa9f49 Author: Sergei Golubchik Date: Sat Nov 29 22:29:03 2014 +0100 fixes for --embedded commit c46eadb2b33ca152525a18d9b5425fedbef7f277 Author: Sergei Petrunia Date: Sat Nov 29 03:28:46 2014 +0300 EXPLAIN FORMAT=JSON: support EXPLAIN FORMAT=JSON INSERT ... commit e235bb864d2b8daae3dc7061249f59fb0127bdc5 Author: Sergei Petrunia Date: Sat Nov 29 03:07:24 2014 +0300 ANALYZE FORMAT=JSON: better output and tests - Print r_loops - Always print r_* members. Print NULL values if no scans took place - Added testcases. commit 0b5d989c894a14ebcb786940fafd025e31523d8b Author: Sergei Petrunia Date: Sat Nov 29 01:08:18 2014 +0300 EXPLAIN FORMAT=JSON: Add support for non-merged semi-joins commit 2ac3b39e68bf6bf1b56e6eafd290c0a78368d0be Author: Sergei Petrunia Date: Fri Nov 28 22:23:29 2014 +0300 EXPLAIN FORMAT=JSON: support derived tables commit 3a5e080d4dbe58675e6324eaa807bc2c7aa8795d Author: Sergei Petrunia Date: Fri Nov 28 16:46:05 2014 +0300 Make explain_json.test pass on case-insensitive FS. commit d5fbfb9a93704ebe4b1df37f74850a7464140991 Author: Sergei Petrunia Date: Fri Nov 28 02:36:31 2014 +0300 EXPLAIN FORMAT=JSON: Add support for single-table UPDATE/DELETE. commit d0d6284cab70af148269d95744f615454cac24bb Author: Alexey Botchkov Date: Fri Nov 28 00:29:37 2014 +0400 MDEV-4045 Missing OGC Spatial functions. Missing GIS functions added: IsRing() PointOnSurface PointOnSurface Relate Distance Intersection ConvexHull Other old OpenGis standard inconsistencies fixed. commit 461dbd80d2ea96034f330dd238282d2167ed2c4d Author: Sergei Petrunia Date: Thu Nov 27 23:10:44 2014 +0300 EXPLAIN FORMAT=JSON: support join buffering - Basic support for JOIN buffering - The output is not polished but catches the main point: tab->select_cond and tab->cache_select->cond are printed separately. - Hash join support is poor still. - Also fixed identation in JOIN_TAB::save_explain_data commit 7b55b67de5fdfe91283357fe6c7ccc3f9e355925 Author: Jan Lindström Date: Thu Nov 27 20:11:14 2014 +0200 MDEV-7228: innodb.innodb-page_compression_tables, innodb.innodb-page_compression_zip, innodb.innodb_stats_create_on_corrupted fail with embedded server Problem is that tests restart the server and "shutdown_server" looks for pid file # which is not there with embedded mode. Fix tests so that they are not run with embedded mode. commit 37c444e1a079b25d0a34efbbc2fadfae17999966 Author: Sergei Petrunia Date: Thu Nov 27 19:32:48 2014 +0300 EXPLAIN FORMAT=JSON: further development Writing JSON: - Fix a bug in Single_line_formatting_helper - Add Json_writer_nesting_guard - safety class EXPLAIN JSON support - Add basic subquery support - Add tests for UNION/UNION ALL. commit 3d5f97fd708e12201636179baee2c8bc0093c109 Merge: 55e99b29339 3c5ce8a0a32 Author: Sergei Petrunia Date: Thu Nov 27 00:51:54 2014 +0300 Merge ../10.1-explain-json-r4 into 10.1 commit 55e99b29339dae833448ded6d0ca3d31f673d02a Author: Alexander Barkov Date: Wed Nov 26 13:28:46 2014 +0400 MDEV-7162 main.mysqld--help fails in buildbot on Windows: commit 98a78c460f3e7951712255e68a6dce614551683d Author: Jan Lindström Date: Tue Nov 25 09:11:48 2014 +0200 MDEV-7181: innodb.innodb_defrag_concurrent fails in buildbot Problem was that test tried to calculate number of pages on buffer pool and operations done to them. This is not realible way on buildbot. commit afe6d88d78ddd31aec3e74d8470a492d77da3f18 Author: Jan Lindström Date: Mon Nov 24 21:29:12 2014 +0200 MDEV-7167: innodb.innodb_bug12902967 fails in buildbot on Windows Problem is that there is additional error message from function that is not really needed now. commit 96b031b56387799aa9132a0a9bc7cb8986f67a41 Author: Jan Lindström Date: Mon Nov 24 20:27:43 2014 +0200 MDEV-7169: innodb.innodb_bug14147491 fails in buildbot on Windows Problem is that test could open Microsoft C++ Client Debugger windows with abort exceptin. Lets not try to test this on windows. commit 8ba3585b47ee678de16dd7d4ec063e76fe7b7b1d Author: Jan Lindström Date: Mon Nov 24 19:42:39 2014 +0200 MDEV-7168: Tests innodb.innodb_stats_create_table innodb.innodb_stats_drop_locked fail and innodb.innodb_stats_fetch_nonexistent fails in buildbot on Windows Analysis: Problem is that innodb_stats_create_on_corrupted test renames mysql.innodb.index_stats and all the rest are dependend on this table. Fix: After rename back to original, restart mysqld to make sure that table is correct. commit 1ac12df0cb064ad7f2ad87804c1d2d80c9cfa6c5 Author: Jan Lindström Date: Mon Nov 24 15:20:23 2014 +0200 MDEV-7164: innodb.innodb-alter-table-disk-full fails in buildbot on Windows Analysis: Test case uses Linux specific error codes. Fix: Can't run test case with Windows currently because requires to inject error to system. commit c0a00a2dcfd71500b7d53e49340d1c4695c3382e Author: Alexey Botchkov Date: Mon Nov 24 12:25:56 2014 +0400 MDEV-7171 funcs_1.is_tables_is and main.information_schema-big fail in buildbot. test results updated with the new GIS-related IS tables. commit 1a05bb4010aed7c8353f5d75be0b1cfc520e87cc Author: Jan Lindström Date: Mon Nov 24 10:01:49 2014 +0200 MDEV-7166: innodb.innodb-page_compression_zip fails in buildbot Analysis: If innodb_use_trim is not enabled or system does not support fallocate to make persistent trim, we should always write full page not only partial pages. commit deffb95bc2849b016e309a1d5803d13d3ceff05a Author: Nirbhay Choubey Date: Sun Nov 23 09:55:57 2014 -0500 MDEV-7161: Build failure in buildbot on work-amd64-valgrind Fix for embedded build failure. Also added wsrep_info plugin library to server debian package. commit 369c02674cb024ceb1995433913ef2fb32f815ca Author: Nirbhay Choubey Date: Sat Nov 22 14:33:51 2014 -0500 MDEV-7053: WSREP_STATUS & WSREP_MEMBERSHIP I_S tables wsrep_info INFORMATION_SCHEMA plugin to provide WSREP_STATUS and WSREP_MEMBERSHIP tables. commit 3c5ce8a0a32a74cd8e0ddc81bcfacf7c85f0d90a Author: Sergei Petrunia Date: Fri Nov 21 21:44:06 2014 +0300 Make testsuite to pass - Drop all tables in explain_json.test - Tabular form should print ref='' when type='fulltext' (another peculiarity of the traditional EXPLAIN format) - String_list::append_str should allocate memory for \0, too - Some temporary code for EXPLAIN JSON and join buffering. commit 305dd8e5fba804d8006d34ca7cb05bec5a3b45e6 Author: Sergei Petrunia Date: Fri Nov 21 20:45:18 2014 +0300 Better comments commit 1f3724a5831cd6529f4917b0a977d456465c68fe Author: Sergei Petrunia Date: Thu Nov 20 21:09:57 2014 +0300 Better comments commit cbc318fcf3680c01dca1320b87f625124a497528 Author: Alexander Barkov Date: Thu Nov 20 21:29:11 2014 +0400 Removing some duplicate code: deriving Item_func_opt_neg from Item_bool_func. commit 52b3d95f2a6408466ba89dbdbb45cea59027af49 Author: Alexander Barkov Date: Thu Nov 20 12:56:47 2014 +0400 Deriving Item_bool_func from Item_bool_func2. commit 969f4918451324bf833836570c7b617456065840 Author: Alexander Barkov Date: Thu Nov 20 11:59:00 2014 +0400 MDEV-7005 NULLIF does not work as documented MDEV-7146 NULLIF returns unexpected result with a YEAR field commit a4cdd20d49a5a6ca0eb7346b7b9e898ac5e7995b Author: Nirbhay Choubey Date: Wed Nov 19 13:33:37 2014 -0500 MDEV-7131: [PATCH] wsrep_guess_ip doesn't compile on OpenBSD Extend platform check to include OpenBSD. (Contributed by: Jonathan Matthew) commit 9f4abde608006ade7de3209fa1127bf20d4b2907 Author: Alexander Barkov Date: Wed Nov 19 21:34:51 2014 +0400 Sharing similar code between Item_func_ifnull and Item_func_if commit b432c7bc4226af87a0de1ea3b4dc5a5accbfee0a Author: Jan Lindström Date: Wed Nov 19 14:58:48 2014 +0200 MDEV-7133: InnoDB: Assertion failure in dict_tf_is_valid Problem is that page compressed tables currently require atomic_blobs and that feature is not availabe currently for row_format=redundant. Fix: Disallow page compressed create option if table row_format=redundant. commit 6f65d2d11433b0bfa30d5a4cd9178a7aaaea05f6 Author: Nirbhay Choubey Date: Mon Nov 17 11:56:03 2014 -0500 MDEV-6924 : Server crashed on CREATE TABLE ... SELECT Do not allow server to start if binlog_format is set to a format other than ROW. Also restrict the change of GLOBAL/SESSION binlog_format value at runtime. commit c68e73b53fa2e1d6c60930f5f85f0ac52dabc825 Author: Nirbhay Choubey Date: Mon Nov 17 09:55:53 2014 -0500 MDEV-6924 : Server crashed on CREATE TABLE ... SELECT Do not allow server to start if binlog_format is set to a format other than ROW. Also restrict the change of GLOBAL/SESSION binlog_format value at runtime. commit 7bf391c2059f452eafb424336faa30d402f92b67 Author: Jan Lindström Date: Mon Nov 17 09:55:55 2014 +0200 MDEV-7108: Make long semaphore wait timeout configurable Merge Facebook commit https://github.com/facebook/mysql-5.6/commit/cd063ab930f05efdba39d504543998512d1bd71f authored by Peng Tian from https://github.com/facebook/mysql-5.6 Introduced a new configuration variable innodb_fatal_semaphore_wait_threshold, it makes the fatal semaphore timeout configurable. Modified original commit so that no MariaDB server files are changed, instead introduced a new InnoDB/XtraDB configuration variable. Its default/min/max vlaues are 600/1/2^32-1 in seconds (it was hardcoded as 600, now its default value is 600, so the default behavior of this diff should be no change). commit ea8322687254fad00143ff7850a67ea8c7f0027e Author: Jan Lindström Date: Wed Nov 12 15:37:52 2014 +0200 MDEV-7088: Query stats for compression based on TRIM size Analysis: Status variables were missing from innodb_status_variables array. Fix: Add missing status variables to the array. commit 1827d9e6d188e3ad53e057a583ebed02767b65ac Author: Oleksandr Byelkin Date: Fri Oct 24 10:13:08 2014 +0200 MDEV-5231: Per query variables from Percona Server (rewritten) commit a03dd94be804a4b8b1406696920834bb2c0bedbd Author: Jan Lindström Date: Thu Nov 6 13:17:11 2014 +0200 MDEV-6936: Buffer pool list scan optimization Merged Facebook commit 617aef9f911d825e9053f3d611d0389e02031225 authored by Inaam Rana to InnoDB storage engine (not XtraDB) from https://github.com/facebook/mysql-5.6 WL#7047 - Optimize buffer pool list scans and related batch processing Reduce excessive scanning of pages when doing flush list batches. The fix is to introduce the concept of "Hazard Pointer", this reduces the time complexity of the scan from O(n*n) to O. The concept of hazard pointer is reversed in this work. Academically hazard pointer is a pointer that the thread working on it will declar such and as long as that thread is not done no other thread is allowe do anything with it. In this WL we declare the pointer as a hazard pointer and then if any thread attempts to work on it, it is allowed to do so but it has to a the hazard pointer to the next valid value. We use hazard pointer sol reverse traversal of lists within a buffer pool instance. Add an event to control the background flush thread. The background f thread wait has been converted to an os event timed wait so that it c signalled by threads that want to kick start a background flush when buffer pool is running low on free/dirty pages. commit 84de27709913fa6dcb90f535d54cd866f2ba5b7f Author: Jan Lindström Date: Wed Nov 5 09:18:47 2014 +0200 Fix error message output if posix_fallocate (trim) is not successfull. commit 8b1b62dd8fb7baec93c4396230ea6c3cc3513845 Author: Jan Lindström Date: Tue Nov 4 15:41:39 2014 +0200 Fix compiler failure on Windows. commit 8e27845bb063187acc682d6184b2ec91c9c14786 Author: Alexander Barkov Date: Tue Nov 4 15:02:49 2014 +0400 A follow up fix for MDEV-5528 (forgot to do "git add" for two files in the previous commit for MDEV-5528) commit 251fa7ffc59f236a8c493465519bc70152466385 Author: Jan Lindström Date: Tue Nov 4 12:26:48 2014 +0200 Fix error on trim operation alligment. Furthermore, make sure that we do not return simulated out of file space on read operation, that would cause crash. commit 43f185e171eecdce41e71c548ce0bc2bd6969c0f Author: Alexander Barkov Date: Mon Nov 3 21:45:06 2014 +0400 MDEV-5528 Command line variable to choose MariaDB-5.3 vs MySQL-5.6 temporal data formats commit a245543bc8821b15409b839197d911302fb5bfb0 Author: Alexander Barkov Date: Mon Nov 3 19:05:16 2014 +0400 MDEV-6649 Different warnings for TIME and TIME(N) when @@old_mode=zero_date_time_cast Merging from 10.0 (pre-requisite for MDEV-5528) commit cb37c557688e2f7f0381d02f78976a1b7d1bfd65 Author: Jan Lindström Date: Mon Nov 3 11:18:52 2014 +0200 MDEV-6929: Port Facebook Prefix Index Queries Optimization Merge Facebook commit 154c579b828a60722a7d9477fc61868c07453d08 and e8f0052f9b112dc786bf9b957ed5b16a5749f7fd authored by Steaphan Greene from https://github.com/facebook/mysql-5.6 Optimize prefix index queries to skip cluster index lookup when possible. Currently InnoDB will always fetch the clustered index (primary key index) for all prefix columns in an index, even when the value of a particular record is smaller than the prefix length. This change optimizes that case to use the record from the secondary index and avoid the extra lookup. Also adds two status vars that track how effective this is: innodb_secondary_index_triggered_cluster_reads: Times secondary index lookup triggered cluster lookup. innodb_secondary_index_triggered_cluster_reads_avoided: Times prefix optimization avoided triggering cluster lookup. commit 3c2c03624803abd20e5e4e589fa6b14bd92c29f5 Author: Nirbhay Choubey Date: Wed Oct 29 22:31:19 2014 -0400 MDEV-6939 : Dots in file names of configuration files Use fn_ext2() to get the file extension from last occurrence of FN_EXTCHAR ('.') instead. commit 822dc6f5df21d0905aad943324bcdaefdb11dc60 Author: Nirbhay Choubey Date: Wed Oct 29 22:28:14 2014 -0400 mysys/mf_fn_ext.c: typos & indents commit 2bf3e416fedf9984296da9ff43c7ff54780010d1 Author: Jan Lindström Date: Wed Oct 29 13:49:12 2014 +0200 MDEV-6932: Enable Lazy Flushing Merge Facebook commit 4f3e0343fd2ac3fc7311d0ec9739a8f668274f0d authored by Steaphan Greene from https://github.com/facebook/mysql-5.6 Adds innodb_idle_flush_pct to enable tuning of the page flushing rate when the system is relatively idle. We care about this, since doing extra unnecessary flash writes shortens the lifespan of the flash. commit 58888e2c08935d27249d6d29eda3d4f26a9d9060 Author: Jan Lindström Date: Wed Oct 29 10:42:27 2014 +0200 MDEV-6935: Change the default value for innodb_log_compressed_pages to false Merge Facebook commit ca40b4417fd224a68de6636b58c92f133703fc68 authored by Steaphan Greene from https://github.com/facebook/mysql-5.6 Change the default value for innodb_log_compressed_pages to false Logging these pages is a waste. We don't want this to be enabled. One caution here: If the zlib version used by innodb is changed, but the running version is still the previous version, and the running version crashes, it is possible crash recovery could fail. When crash recovery uses a zlib version at all different than the version used by the crashed instance, it is possible that a redone compression could fail, where the original did not, because the new zlib version compresses the same data to a slightly larger size. Because of the nature of compression, this is even possible when upgrading to a version of zlib which actually peforms overall better compression than the previous version. If this happens, mysql will fail to recover, since a page split can not be safely triggered during crash recovery. So, either the exact zlib version must be controlled between builds, or these rare recovery failures must be accepted. The cost of logging these pages is quite high, so we consider this limitation to be worthwhile. This failure scenario can not happen if there was a clean shutdown. This is only relevant to restarting crashed instances, or starting an instance built via a hot backup too (XtraBackup). commit 2d2d11f02b7ed74672c4976df9335f82697a16f6 Author: Jan Lindström Date: Wed Oct 29 08:39:48 2014 +0200 MDEV-6968: CREATE TABLE crashes with InnoDB plugin Analysis: fil_extend_space_to_desired_size() does not provide file node to os_aio(). This failed on Windows only because on Windows we do not use posix_fallocate() to extend file space. Fix: Add file node to os_aio() function call and make sure that we do not use NULL pointer at os_aio_array_reserve_slot(). Additionally, make sure that we do not use 0 as file_block_size (512 is the minimum). commit b96697d286e477ae8df212bdf0350d3110168499 Author: Jan Lindström Date: Tue Oct 28 14:49:31 2014 +0400 MDEV-6648: InnoDB: Add support for 4K sector size if supported New generation hard drives, SSDs and NVM devices support 4K sector size. Supported sector size can be found using fstatvfs() or GetDiskFreeSpace() functions. commit e48fbd28d298417aae1eb06b3842586598e5dfce Author: Elena Stepanova Date: Tue Oct 28 14:49:31 2014 +0400 Increase the version number commit 5ff6f6f883b8c9c6ae58abe6e8febe6a8b23ce3d Author: Nirbhay Choubey Date: Mon Oct 27 21:19:12 2014 -0400 Added SST scripts to the server package. commit 9646f946e912db02fb75493b48db188476860c8e Author: Jan Lindström Date: Mon Oct 27 16:34:53 2014 +0200 MDEV-6759: innodb valgrind failures Fix failure seen on dict_foreign_remove_partial. commit 0a16fe4ec9add45532b6fd36a1059c33bac14f05 Author: Alexey Botchkov Date: Fri Oct 24 17:12:03 2014 +0500 GIS-related test results updated. commit cc656e4d8538326d85e84adbe48d0a3739d55674 Author: Jan Lindström Date: Wed Oct 22 16:14:25 2014 +0300 Enhance row-merge sort progress logging. commit c3db4459561bc491582bef6bea7b83e9fe464a10 Author: Alexey Botchkov Date: Tue Sep 2 11:31:26 2014 +0500 MDEV-12 OpenGIS: create required tables: GeometryColumns, related views. GEOMETRY_COLUMNS and SPATIAL_REF_SYS tables added to the INFORMATION_SCHEMA. commit c1f5f61c9b651cac80f22319beed13733963c632 Author: Jan Lindström Date: Mon Oct 20 15:53:07 2014 +0300 Make sure that information schema knows also page compressed page type and that we decompress fist page if it is page compressed before really accessing it. commit d24919969a4dcebf5bd206ee2678d23c72ca726a Author: Igor Babaev Date: Sun Oct 19 09:50:50 2014 -0700 Correction for the fix of the bug mdev-6874. commit ec89abfef4d0ceef06e4037e8fa1a3cdad7ca18d Merge: aa0fd5ca53b a4d1783aaee Author: Igor Babaev Date: Fri Oct 17 14:06:54 2014 -0700 Merge branch '10.1' of ../10.1-mdev334 into 10.1 commit a4d1783aaeea6a3e4a46084fde161ff7152fd2da Author: Igor Babaev Date: Fri Oct 17 12:59:28 2014 -0700 Fixed bug mdev-6874. The method subselect_union_engine::no_rows() must take into account the fact that now unit->fake_select_lex is NULL for for select_union_direct objects. commit aa0fd5ca53b381094c03fce4808032c98d0fe0f4 Author: Sergei Petrunia Date: Fri Oct 17 23:24:00 2014 +0400 MDEV-6388: ANALYZE $stmt output in the slow query log Add testcase. commit 47ced6556652beb39cee0f280c3cfb3e39ba74e5 Author: Sergei Petrunia Date: Fri Oct 17 22:47:06 2014 +0400 MDEV-6388: ANALYZE $stmt output in the slow query log Make log_slow_verbosity=explain actually print ANALYZE (that is, EXPLAIN otuput with two extra columns). commit d3bdc142b404426c279dacc1d64684b85c120b38 Merge: d44dd54bc83 1e791384590 Author: Sergei Petrunia Date: Fri Oct 17 14:21:40 2014 +0400 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit d44dd54bc838e6679f451a8faf07a7f44efe2fa4 Author: Sergei Petrunia Date: Fri Oct 17 14:18:10 2014 +0400 MDEV-6400: "ANALYZE SELECT ... INTO @var" doesn't set @var Make ANALYZE work for - ANALYZE SELECT ... INTO @var - ANALYZE INSERT SELECT ...; - ANALYZE SELECT .. INTO OUTFILE commit 1e79138459038c39c85239a825bf1727ef43c156 Merge: 7aed4419638 42f359f9827 Author: Sergei Golubchik Date: Thu Oct 16 00:30:29 2014 +0200 Merge branch 'bb-10.1-merge' into 10.1 commit 42f359f9827340bf430a9f1a0bda9b059951ea08 Author: Sergei Golubchik Date: Wed Oct 15 22:42:08 2014 +0200 after-merge fixes commit be1c17669cb90e18315d7675c8b4d3c906cd64a7 Merge: 041e03e251e fec5ab5a56c Author: Sergei Petrunia Date: Wed Oct 15 17:21:59 2014 +0400 Merge ../10.1 into bb-10.1-explain-json commit f62c12b405ba7ec80b8e2490856b83c6f5899211 Merge: f947f73b2b6 f1afc003eef Author: Sergei Golubchik Date: Wed Oct 15 12:59:13 2014 +0200 Merge 10.0.14 into 10.1 commit cc9d1bd8dc55ddc451cd2a255958fac313fe79d0 Author: Nirbhay Choubey Date: Tue Oct 14 18:04:04 2014 -0400 empty patch commit 7aed441963823191e94da3df069e123dc8794eee Merge: e813f9b9b3a 3c4bb0e8720 Author: Igor Babaev Date: Tue Oct 14 09:41:25 2014 -0700 Merge branch '10.1' of ../10.1-mdev334 into 10.1 commit 3c4bb0e8720b84a14fe4822d1986d01290b9ab44 Author: Igor Babaev Date: Tue Oct 14 09:36:50 2014 -0700 MDEV-334: Backport of UNION ALL optimization from mysql-5.7. Although the original code of mysql-5.7 was adjusted to the current MariaDB code the main ideas of the optimization were preserved. commit e813f9b9b3a087910b94ffeda968b53f9fca4311 Author: Sergey Vojtovich Date: Tue Oct 14 14:58:35 2014 +0400 MDEV-6693 - Atomic operations with explicit memory barrier Added API for atomic operations with explicit memory barrier. Only gcc atomic builtins are currently supported. If they're unavailable, fall back to atomic operations with implicit full memory barrier. commit f947f73b2b6d2bd246b81a9038224d2a85777520 Merge: fec5ab5a56c e3ac16d7210 Author: Sergei Golubchik Date: Mon Oct 13 21:47:56 2014 +0200 Merge branch '10.1' of https://github.com/ottok/server into ottok-10.1 commit fec5ab5a56cb9a45c621207620cc85079cddf537 Author: Sergei Petrunia Date: Sun Oct 12 20:48:07 2014 +0400 MDEV-6396: ANALYZE INSERT/REPLACE is accepted, but does not produce a plan Add ANALYZE STMT handling into INSERT command. commit 5c33632b50ab37641b2b0a60729ffda3dbeac31c Author: Elena Stepanova Date: Sun Oct 12 14:26:27 2014 +0400 engine_condition_pushdown has been deprecated commit 698fcc5cd28f353b083288e7a6317022e758729b Author: Sergei Golubchik Date: Sat Oct 11 16:00:52 2014 +0200 fix unstable test results commit 2f294dbcd8fff29921fd5f4a1d5b57e3ecd808b9 Author: Sergei Golubchik Date: Sat Oct 11 10:18:55 2014 +0200 fix a big test commit 5ca5f92a1d6f4af0b407bc22e89b8ed78be09bc9 Author: Sergei Golubchik Date: Wed Oct 8 09:40:39 2014 +0200 MDEV-5749 Please add a .pc file to MariaDB for easy use via pkg-config commit 7f5e51b940d65cf541403a50af74163b9aed5cb8 Author: Sergei Golubchik Date: Thu Aug 21 18:11:46 2014 +0200 MDEV-34 delete storage/ndb and sql/*ndb* (and collateral changes) remove: * NDB from everywhere * IM from mtr-v1 * packaging/rpm-oel and packaging/rpm-uln * few unused spec files * plug.in file * .bzrignore commit 57dd1f6f3fcbc7a46e1b3e71257987315f7aa687 Author: Sergei Golubchik Date: Mon Sep 15 13:25:53 2014 +0200 MDEV-6108 update userstat feature from percona server TOTAL_SSL_CONNECTIONS columns in CLIENT_STATISTICS and USER_STATISTICS commit 43450fcc4732ae736c6aad020ef1589ece2b992e Author: Sergei Golubchik Date: Mon Aug 25 18:28:40 2014 +0200 rename status_user.test -> userstat.test commit 3182938d22b705d616b83d83dd72c31f24bc365f Author: Sergei Golubchik Date: Mon Aug 25 19:08:55 2014 +0200 move userstat tables to a plugin commit db8af31831beb949dfcf7675b3c6392dc52dc38c Author: Sergei Golubchik Date: Mon Aug 25 19:08:01 2014 +0200 SHOW and FLUSH for I_S tables. Extend existing plugins to support * SHOW QUERY_RESPONSE_TIME * FLUSH QUERY_RESPONSE_TIME * SHOW LOCALE move userstat tables to use the new API instead of hand-coded syntax commit 932eaf31e91cf875e336b8d9332682aca03c6e58 Author: Sergei Golubchik Date: Mon Aug 25 14:22:22 2014 +0200 cleanup: sort struct members by size commit 3f7cc414fed92228c37fd75fcee62ca4e2a170ed Author: Sergei Golubchik Date: Mon Aug 25 09:51:46 2014 +0200 cleanup: remove dead code commit 534cbc1f2affb2953f3ad988b027e5bc116de0eb Author: Sergei Golubchik Date: Mon Aug 25 19:05:38 2014 +0200 cleanup: my_init_dynamic_array2 -> init_dynamic_array2 commit 236556df3fc6ab4be1751f1c611c4ae46a4c82f4 Author: Sergei Golubchik Date: Thu Sep 4 14:38:29 2014 +0200 fix TokuDB not to build ft-index library when disabled commit e24c1c027853be2a8089530b27b8ebf91fdfde5a Author: Sergei Golubchik Date: Thu Sep 4 14:37:43 2014 +0200 cleanup: remove unnecessary hack from federated/CMakeLists.txt commit c006105bbf82cb82d14a64e3a4a9d03b882a5db8 Author: Sergei Golubchik Date: Thu Oct 9 21:43:48 2014 +0200 make sysvars_* tests to work on 32-bit too commit 41756a30d269d984dc7a52e22f35516fe90eca83 Author: Sergei Golubchik Date: Sat Oct 11 10:19:56 2014 +0200 portability fixes for sysvar_* tests commit 2a4e8813f6820ca0771a8d7aa94016fbefa732ac Author: Sergei Golubchik Date: Wed Sep 3 15:16:43 2014 +0200 GLOBAL_VALUE_ORIGIN=AUTO commit 3fa8c279d57e4a23a8ee34f50d5261541bf928e5 Author: Sergei Golubchik Date: Mon Sep 1 20:29:58 2014 +0200 INFORMATION_SCHEMA.SYSTEM_VARIABLES.GLOBAL_VALUE_ORIGIN commit 513f5840f89d061615780a950e5e1a7f176e67d8 Author: Sergei Golubchik Date: Wed Sep 3 20:16:51 2014 +0200 MDEV-6138 show sysvar's help in I_S tables INFORMATION_SCHEMA.SYSTEM_VARIABLES commit beb2422ad8084839294e4c79c227cf0f1eec8244 Author: Sergei Golubchik Date: Wed Sep 3 20:16:13 2014 +0200 cleanup: @@mutex_deadlock_detector -> @@debug_mutex_deadlock_detector commit 15623fd7bb309cf472fddc806793f88df2caa1cc Author: Sergei Golubchik Date: Mon Sep 1 14:46:20 2014 +0200 mysqltest bug: replace_regex /^foo/bar/ didn't work commit a7b2c95a40101f218d6ed608e8703c2ff761ea47 Author: Sergei Golubchik Date: Wed Sep 3 20:05:51 2014 +0200 bugs in sys_var::val_* code 1. @@boolean_var differs from SHOW VARIABLES 2. @@str_var ignored variable charset (which is wrong for path variables that use filesystem charset) 3. @@signed_int_var in the string context was printed as unsigned commit b969a690217f2364cd6c8b55315360223fe1f00b Author: Sergei Golubchik Date: Sun Aug 31 13:39:05 2014 +0200 cleanup: simplify sys_var::val* methods, introduce val_str_nolock() commit a4e7d339af0ea95b8b3c68e2b648294932e8550e Author: Sergei Golubchik Date: Sun Aug 31 13:21:06 2014 +0200 cleanup: VARIABLE_VALUE column should be NOT NULL it can never be set to NULL, so it should not use MY_I_S_MAYBE_NULL flag either commit 5389300f49dd43af8dcf05dae52c1890abed25f6 Author: Sergei Golubchik Date: Fri Aug 29 13:59:08 2014 +0200 cleanup: option_type -> scope commit 99677cc510df14440958a784195679eedb5788a2 Author: Sergei Golubchik Date: Thu Aug 28 20:07:27 2014 +0200 cleanup: move safe_str*() from sql_acl.cc to m_string.h commit 9bd5d54c112c706c4ddd80356444a084dc623225 Author: Sergei Golubchik Date: Thu Aug 28 09:33:00 2014 +0200 correct fix for the old Bug#39955 (warnings in I_S.VARIABLES) old fix only generated a warning for the *first* row in the output commit d281faf9925080741b1069b0e2f0aca1612611cf Author: Sergei Golubchik Date: Wed Aug 27 23:54:51 2014 +0200 cleanup: sql_show.cc commit d508ef789828ed79dec5a568743574cb32e91710 Author: Sergei Golubchik Date: Thu Aug 28 09:23:15 2014 +0200 cleanup: more 'const' qualifiers commit 9ccaa62dd5a975178d02040514f84119f3371c74 Author: Sergei Golubchik Date: Wed Aug 27 23:28:59 2014 +0200 sys_var_pluginvar: populate my_option and misc cleanup commit 28ebc2a72485c4b2956531010bd3ee247ae91df2 Author: Sergei Golubchik Date: Wed Aug 27 20:32:32 2014 +0200 cleanup: sysvar, only one common check_update_type() commit 051c132635555371c57b4dea3d1f9f1ad037342c Author: Sergei Golubchik Date: Wed Aug 27 16:05:54 2014 +0200 cleanup: sysvar, SHOW_VALUE_IN_HELP->GETOPT_ONLY_HELP replace flag SHOW_VALUE_IN_HELP (that's not really an independendent flag, as it should only be used for NO_CMD_LINE sysvars) with a special getopt.id type. commit db2399b0c189d96131bf0ac4997daeda4050d2ff Author: Sergei Golubchik Date: Wed Aug 27 10:23:20 2014 +0200 small cleanup commit 8f15bf9d0c0bc1bb8be2218411ae862a4903ae31 Author: Sergei Golubchik Date: Wed Aug 27 09:40:52 2014 +0200 cleanup: remove hidden I_S.VARIABLES and I_S.STATUS tables their only purpose was to distinguish between SHOW and SELECT and there are cleaner ways of doing it. commit 2fae1b576dd844edfbf6c6477bd6c25e8d1c6332 Author: Sergei Golubchik Date: Mon Sep 8 09:39:43 2014 +0200 prefer to use new flag name when possible commit ab34aecff3c6c9c33ca682c90a79ec60d59f42ed Author: Sergei Golubchik Date: Mon Aug 25 23:13:37 2014 +0200 MDEV-6513 deprecate engine_condition_pushdown value of the @@optimizer_switch * ignore the OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN bit * issue a deprecation warning on 'engine_condition_pushdown=on' * remove unused remains of the old pre-5.5 engine_condition_pushdown variable commit 686f102eb9a9eb4c9b0f713e532b19409b8bbbe6 Author: Sergei Golubchik Date: Wed Aug 20 21:36:23 2014 +0200 MDEV-6609 SQL inside an anonymous block is executed with wrong SQL_MODE MDEV-6606 Server crashes in String::append on selecting sql_mode inside anonymous block commit 30ea6ddda00e75c023c270e9e068591e27354834 Author: Sergei Golubchik Date: Wed Aug 20 20:57:32 2014 +0200 MDEV-6603 SBR failure upon executing a prepared statement with input placeholder under anonymous block Normally, Prepared_statement object rewrites the query on execution to replace ?-placeholders with values. The rewritten query may be written to logs (including binlog) or stored in the query cache. But for compound statements, the whole block is prepared and executed, while contained statements are logged individually. So it doesn't make sense to rewrite the original statement block. Instead, we need to rewrite every contained statement. SP is already doing it to replace SP variables with values. Let it rewrite PS parameters too in the same loop. commit 013f0f6ceca51514a9cbfb599c397e8a4d72934c Author: Sergei Golubchik Date: Wed Aug 20 17:25:44 2014 +0200 cleanup: query rewrites for Item_param and Item_splocal Fix query rewrites in PS code - it was memcpy-ing the same query tail many times. Instead use the same logic as in SP code, copy query pieces into the destination buffer. Extract this logic into a separate class Rewritable_query_parameter with Item_param and Item_splocal inheriting from it. Create a helper class Copy_query_with_rewrite that incapsulates the query rewriting logic, use it in SP and PS. commit d7c1e0ebbd272d6198733e8a71f1c16548733262 Author: Sergei Golubchik Date: Mon Aug 18 21:36:11 2014 +0200 MDEV-5317 Compound statement / anonymous blocks originally based on the patch by Antony T Curtis commit a99af484cd9360c2cea92798bcde594adcf23b7e Author: Sergei Golubchik Date: Wed Aug 13 21:04:05 2014 +0200 MDEV-5317 out parameters in PREPARE "SELECT ... INTO" originally based on the patch by Antony T Curtis commit 278f7fdd7e62b71bb1693c97b69c0ad515da9e2c Author: Sergei Golubchik Date: Tue Aug 19 21:06:20 2014 +0200 cleanup: get rid of (Item_splocal*)item downcast commit 932100c813d9509c36bd6430e1cf853bafaf1dff Author: Sergei Golubchik Date: Sun Aug 17 20:36:40 2014 +0200 cleanup sql_yacc.yy: remove redundant ev_sql_stmt_inner rule commit 60475b8f27eebb4b8159c27ffadc6c1b2679a5c1 Author: Sergei Golubchik Date: Sun Aug 17 20:35:39 2014 +0200 cleanup sql_yacc.yy: rules for the CASE ... END CASE statement commit 319f206d01ecca6ad21ac6eac3b8b534945fb32c Author: Sergei Golubchik Date: Sun Aug 17 13:28:27 2014 +0200 cleanup sql_yacc.yy: s/IF/IF_SYM/ commit 09c1af93642f484e20a9a8a257f581b6b1c82057 Author: Sergei Golubchik Date: Sun Aug 17 20:54:48 2014 +0200 cleanup sql_yacc.yy: reduce code duplication in rules for BEGIN...END with and without label commit d49e11834a952207b2a7bb6df5a5d847f0a5d98e Author: Sergei Golubchik Date: Sun Aug 17 20:51:59 2014 +0200 cleanup sql_yacc.yy: factor out duplicate code in PROCEDURE/FUNCTION/TRIGGER/EVENT grammar commit 352723cd902b739b2ada07ee644421f976e5d2cb Author: Sergei Golubchik Date: Sun Aug 17 20:50:53 2014 +0200 cleanup sql_yacc.yy: rename rules for loops with and without label to follow BEGIN...END rule naming commit 45907bec50a68be75a387cc9392f1a7df760d9d5 Author: Sergei Golubchik Date: Sun Aug 17 20:48:48 2014 +0200 cleanup sql_yacc.yy: remove duplicate code in opt_union rule commit 71485e7c7b82280b390cd9e0eae694c2ca6c09df Author: Sergei Golubchik Date: Sun Aug 17 20:46:46 2014 +0200 cleanup sql_yacc: introduce opt_not rule, combine otherwise duplicate rules commit c655609d1e53b168f2e5479184d290ad97ca6f74 Author: Sergei Golubchik Date: Sun Aug 17 20:37:49 2014 +0200 cleanup sql_yacc.yy: s/YYABORT/MYSQL_YYABORT/ commit fdf32f578c5847ecba6bc38745e0c76a9d05142d Author: Sergei Golubchik Date: Sat Aug 16 08:47:29 2014 +0200 cleanup: param_marker rule in the parser preserve the Item_param type of the param_marker in the parser, don't upcast cast it to Item commit 1e0a11a3c74c9e434ce43edbe3ece3852f539c36 Author: Sergei Golubchik Date: Sat Aug 16 08:46:27 2014 +0200 cleanup: class my_var * split my_var class in three - base my_var and two descencants, move properties into descendants, remove if(), create a virtual method instead * factor out the common code in the select_var_ident parser rule commit 624888b4e63ca73daec2674be32ba088175a5a53 Author: Sergei Golubchik Date: Sat Aug 16 08:17:29 2014 +0200 cleanup: inherit from Sql_alloc instead of copy-pasting its methods into a new class commit 43d1f0b6b918df8d0aa31800caec4bceb1c3426d Author: Sergei Golubchik Date: Fri Aug 15 17:35:07 2014 +0200 cleanup: rename List<> methods prepand() -> prepend() concat() -> append() commit aabb33cc54e6031f7c9f5b2a06566387550fa194 Author: Sergei Golubchik Date: Sat Aug 16 08:17:08 2014 +0200 cleanup: public Item_param::get_settable_routine_parameter() make Item_param::get_settable_routine_parameter() public, because it's public in the parent Item class and all other Item descendants too commit e8fb24664e3382055dca4a0c35fd5aed2d3ed13f Author: Sergei Golubchik Date: Sat Aug 16 08:16:44 2014 +0200 cleanup: use null_lex_str where appropriate commit 6e05aabb9b94d20e5024aed8c398ed70a955de4e Author: Sergei Golubchik Date: Sat Aug 16 08:16:18 2014 +0200 cleanup: case SQLCOM_CALL move SP invocation code out of the huge switch in mysql_execute_command commit 3d9aa6c46700f39033814f8d9fd4c29545d6eacd Author: Sergei Golubchik Date: Wed Oct 8 18:49:34 2014 +0200 Plugin API: increase SHOW_VAR_FUNC_BUFF_SIZE for 64-bit CPUs instead of having it 1K everywhere, make it 1K on 32-bit and 2K on 64-bit. As the latter has larger pointers (and larger sizeof(SHOW_VAR), it needs a larger buffer to store the same amount of SHOW_VARs commit 03ec3511a82e90310c850ea71b395b214cab1645 Author: Sergei Golubchik Date: Wed Oct 8 18:47:16 2014 +0200 cleanup: galera misc cleanups also disable galera-specific output in mysql_tzinfo_to_sql, it'll be enabled later. commit 8596b70f96fc543c2e1cac4bc8cbe58dcc4004e5 Author: Sergei Golubchik Date: Tue Oct 7 20:28:33 2014 +0200 cleanup: simplify the usage of WSREP_FORMAT macro commit d103e359f875e53b7e34fe0c0d58ba9f36b9af50 Author: Sergei Golubchik Date: Wed Oct 8 08:47:22 2014 +0200 followup changes to timeout commit * fix debian patch * update the copyright * rename include guards to follow conventions * restore incorectly deleted test file, add clarification in a comment * capitalize the first letter of the status variable commit e6152f929369758691d863191f58d71d48b3d6c6 Author: Sergei Petrunia Date: Fri Oct 10 21:30:23 2014 +0400 MDEV-6702: analyze_stmt test fails in --embedded 10.1 Provide Protocol_discard::storeXXX functions for all kinds of objects that could be stored. Failure to so would caused crashes in embedded server which attempted to collect the stored info. This also reduces the amount of copy operations for non-embedded case. commit 988f3fbed947af76f9958802d0aae40925f309e4 Author: Sergei Petrunia Date: Fri Oct 10 14:40:21 2014 +0400 MDEV-6846: Test tokudb_mariadb.mdev6657 fails in buildbot Update the testcase so it is still meaningful when fix for MDEV-6657 is present in the code. commit 542968cf0a68070d7b45859a3148a602e2089a35 Author: Nirbhay Choubey Date: Thu Oct 9 18:28:14 2014 -0400 bzr merge -r4015..4026 codership/5.5 commit 068fb8569f2300e4a5c08413a756417d923ecf5f Merge: 59277a7d833 dbda20caffb Author: Nirbhay Choubey Date: Thu Oct 9 17:25:08 2014 -0400 bzr merge -rtag:mariadb-5.5.40 maria/5.5 commit 7dd74fa3a2f167424624bf71d54ff965514239a9 Author: Nirbhay Choubey Date: Wed Oct 8 13:30:45 2014 -0400 MDEV-6481: Yum Upgrade on CentOS 6.5 causes instant crash of MariaDB/Galera mysqld crashes during startup when its started with --wsrep-recover (mysqld_safe.sh). The problem was that during server startup "wsrep" handle is not initialized for --wsrep-recover and since the condition to register wsrep hton depended only on 'wsrep_on' global/session variables (WSREP(thd) macro), it can eventually get registered and calls to wsrep handle's functions (commit, rollback, etc.) can be made (SIGSEGV!). Fixed by adding a check for "wsrep" pointer in WSREP(thd) macro (added by lp:1367173). Additionally, a check for WSREP(thd) (instead of checking the availability of wsrep provider) has been added before invoking wsrep handle's commit & rollback functions. commit 4439d1febfe18687eab5aa97732725c4e312bf49 Merge: 4af97bc0e32 f7c57b4a361 Author: Monty Date: Tue Oct 7 11:40:10 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 Merge with main branch commit 4af97bc0e3290461eb872fcfc0fbf51c00c0c6bf Author: Monty Date: Tue Oct 7 11:39:42 2014 +0300 Removed files that had been accidentally committed Removed compiler warnings commit cc8aed3eb7a671d353c453a255b53e8d91d7fa73 Author: Monty Date: Tue Oct 7 11:37:36 2014 +0300 MDEV 4427: query timeouts Added MAX_STATEMENT_TIME user variable to automaticly kill queries after a given time limit has expired. - Added timer functions based on pthread_cond_timedwait - Added kill_handlerton() to signal storage engines about kill/timeout - Added support for GRANT ... MAX_STATEMENT_TIME=# - Copy max_statement_time to current user, if stored in mysql.user - Added status variable max_statement_time_exceeded - Added KILL_TIMEOUT - Removed digest hash from performance schema tests as they change all the time. - Updated test results that changed because of the new user variables or new fields in mysql.user This functionallity is inspired by work done by Davi Arnaut at twitter. Test case is copied from Davi's work. Documentation can be found at https://kb.askmonty.org/en/how-to-limittimeout-queries/ mysql-test/r/mysqld--help.result: Updated for new help message mysql-test/suite/perfschema/r/all_instances.result: Added new mutex mysql-test/suite/sys_vars/r/max_statement_time_basic.result: Added testing of max_statement_time mysql-test/suite/sys_vars/t/max_statement_time_basic.test: Added testing of max_statement_time mysql-test/t/max_statement_time.test: Added testing of max_statement_time mysys/CMakeLists.txt: Added thr_timer mysys/my_init.c: mysys/mysys_priv.h: Added new mutex and condition variables Added new mutex and condition variables mysys/thr_timer.c: Added timer functions based on pthread_cond_timedwait() This can be compiled with HAVE_TIMER_CREATE to benchmark agains timer_create()/timer_settime() sql/lex.h: Added MAX_STATEMENT_TIME sql/log_event.cc: Safety fix (timeout should be threated as an interrupted query) sql/mysqld.cc: Added support for timers Added status variable max_statement_time_exceeded sql/share/errmsg-utf8.txt: Added ER_QUERY_TIMEOUT sql/signal_handler.cc: Added support for KILL_TIMEOUT sql/sql_acl.cc: Added support for GRANT ... MAX_STATEMENT_TIME=# Copy max_statement_time to current user sql/sql_class.cc: Added timer functionality to THD. Added thd_kill_timeout() sql/sql_class.h: Added timer functionality to THD. Added KILL_TIMEOUT Added max_statement_time variable in similar manner as long_query_time was done. sql/sql_connect.cc: Added handling of max_statement_time_exceeded sql/sql_parse.cc: Added starting and stopping timers for queries. sql/sql_show.cc: Added max_statement_time_exceeded for user/connects status in MariaDB 10.0 sql/sql_yacc.yy: Added support for GRANT ... MAX_STATEMENT_TIME=# syntax, to be enabled in 10.0 sql/structs.h: Added max_statement_time user resource sql/sys_vars.cc: Added max_statement_time variables mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test Removed test as we require all fields in mysql.user table. scripts/mysql_system_tables.sql scripts/mysql_system_tables_data.sql scripts/mysql_system_tables_fix.sql Updated mysql.user with new max_statement_time field commit f7c57b4a3618c99352ade432396390a70b5257fa Author: Nirbhay Choubey Date: Mon Oct 6 15:26:09 2014 -0400 MDEV-6667: Merged fix from maria-10.0-galera. commit 1a7d17311c8325a072e5c912a2eb3fffb95aa97d Merge: 61d8b4a29bd 605b48d3e31 Author: Sergei Petrunia Date: Mon Oct 6 12:21:53 2014 +0400 Merge ../10.1-orderby-fixes into 10.1 commit 61d8b4a29bd6295b9db153a6ebb451346cd5bc64 Author: Nirbhay Choubey Date: Sat Oct 4 13:59:07 2014 -0400 MDEV-6833: SIGSEGV on shutdown with non-default wsrep_slave_threads thd->variables' table_plugin & tmp_table_plugin should be set to NULL for wsrep system threads. Also made a minor change to skip checking of wsrep options if wsrep_on is not set. commit c768af75b768d45fe045444fe316402ba10b4e29 Author: Nirbhay Choubey Date: Sat Oct 4 13:53:33 2014 -0400 Minor modifications - Simplified test cases in wsrep.variables - Fixed a condition in wsrep_check_opts.cc - Fixed an "unbound variable" in wsrep_sst_rsync commit b197066ca02411455590249c5e4910ad5ef2bd9f Author: Nirbhay Choubey Date: Fri Oct 3 21:22:41 2014 -0400 MDEV-6807: InnoDB: Assertion failure in file lock0lock.cc (lock != ctx->wait_lock) Merged patch for lp:1364840. commit 7474e7baa06505c015d0d327ae923add76306a32 Author: Jan Lindström Date: Thu Oct 2 21:01:57 2014 +0300 MDEV-6807: InnoDB: Assertion failure in file lock0lock.cc (lock != ctx->wait_lock) References: lp:1364840 lp:1280896 - reverted a part of fix for lp:1280896 (updating a unique key can cause parallel applying to hang ) in revision #4105. This "BF (brute force) lock skipping" caused regression which surfaced in randgen test for bug lp:1364840 commit ebe4fadcd5d1286d4c29b980185f32db2c5eaf59 Author: Sergei Golubchik Date: Thu Oct 2 18:54:01 2014 +0200 when running mtr tests don't let galera-started rsyncd to log to syslog commit 251239af67dd20b68e95d58122bdb9a2beafe67f Author: Jan Lindström Date: Thu Oct 2 15:09:17 2014 +0300 Fix Windows compiler error 'log2f': identifier not found commit f13cf621472904db6328e5769929b6fc5f08e1cc Author: Sergei Golubchik Date: Tue Sep 30 11:04:38 2014 +0200 don't enable SECURITY_HARDENED on old gcc on CentOS 5 x86 (at least) this results in a binary that cannot load plugins. Draw the line, quite arbitrarily, at gcc 4.6. commit 2156f62d2ecddf48844bfa558c7e9bc33edca53c Author: Sergei Golubchik Date: Mon Sep 29 19:50:56 2014 +0200 portability: use getifaddrs() instead of exec'ing /usr/sbin/ifconfig|grep|sed|awk commit edd1de3d1c348ef9f5bfc4f602692f4e438e7fcb Author: Sergei Golubchik Date: Sun Sep 28 17:50:02 2014 +0200 cleanup: introduce CF_SKIP_WSREP_CHECK remove if() over many COM_xxx values commit b3469520a1b838f08cbebaa8047f2bd3f58fef89 Author: Sergei Golubchik Date: Sun Sep 28 16:43:44 2014 +0200 cleanup: remove OPT_WSREP_START_POSITION and OPT_WSREP_SST_AUTH there is no reason to initialize wsrep start position and auth from inside the get_one_option() callback commit eaec266eb16c8f02835f76ac987fca5de4debd51 Author: Sergei Golubchik Date: Sun Sep 28 12:41:51 2014 +0200 restore and fix wsrep status variables commit 13af416a82796648dffdffbda0da6d60513d7ddf Author: Sergei Golubchik Date: Sun Sep 28 11:08:07 2014 +0200 cleanup: wsrep_check_opts commit 425dc6d2fd80531d553e25790f6a6e7e199445f6 Author: Sergei Golubchik Date: Sun Sep 28 09:13:05 2014 +0200 small cleanup commit 7aabc2ded2b63fed1e149276bfb5f8e0fd7d723f Author: Sergei Golubchik Date: Sat Sep 27 22:29:10 2014 +0200 fixing embedded: WaaS. Wsrep as a Service. commit 8877adb773abeafafcdee18fe30fca1c8589ee2c Author: Sergei Golubchik Date: Fri Sep 26 17:02:47 2014 +0200 fixing embedded: first set of changes (storage engines don't work yet) commit c6b95222c3c614342575f752a6787b83fe6ffaa4 Author: Sergei Golubchik Date: Fri Sep 26 20:03:38 2014 +0200 use MD5 service in innodb/xtradb commit d6141a553c566b3c8f997ae811dd4c00d9019613 Author: Sergei Golubchik Date: Fri Sep 26 20:03:20 2014 +0200 MD5 service commit 11b6452a0f2f0f99bbd7c2767ebca7d043a2f43c Author: Sergei Golubchik Date: Fri Sep 26 18:49:47 2014 +0200 extend SHA1 service. cleanup of sha1 wrappers commit 93b50e64a04efd54ab1ef64f593da0d4a7de6fb6 Author: Sergei Golubchik Date: Fri Sep 26 10:22:44 2014 +0200 cleanup: remove galera/wsrep magic from mtr commit 4bb49d84a9df8c3f29683bfe8503a575bc0ab84b Author: Sergei Golubchik Date: Fri Sep 26 15:54:42 2014 +0200 correct handling on defaults[-extra]-file is SST scripts pass --defaults-file and --defaults-extra-file (whatever was specified, or none) from mysqld down to SST scripts. parse these options in SST scripts and pass them down to mysqldump, my_print_defaults, and xtrabackup commit dc113e2765c19cc3b1dff7c6141701411c93ce42 Author: Sergei Golubchik Date: Fri Sep 26 12:55:56 2014 +0200 fix cmake detection of bfd.h commit d06b5b6a2d37323157bd50060c6ed2bf7f8fe4d8 Author: Sergei Golubchik Date: Fri Sep 26 10:22:18 2014 +0200 disable wsrep by default. fix wsrep not to crash when started disabled commit 4b9bf9d3b87005d6570d76f9de074615d7f8ca36 Author: Sergei Golubchik Date: Fri Sep 26 07:04:33 2014 +0200 bugfix: remove the code that broke XA recovery commit 3620910eeac8f118c9a6cb8a1c0ec23e56fb5d98 Author: Sergei Golubchik Date: Thu Sep 25 23:00:45 2014 +0200 cleanup: galera merge, simple changes commit b04f848176b0d8af41eb3627ba1b6ed4dd3327e3 Author: Sergei Golubchik Date: Sat Sep 20 21:36:51 2014 +0200 cleanup: use is_supported_parser_charset commit 1a731af1941f9df57c90dbad8614c76b65ba688d Author: Sergei Golubchik Date: Fri Sep 19 21:10:06 2014 +0200 cleanup: remove redundant clauses from sys_vars.cc commit b054e4bdb109c6ec7459c26cc81ba964e52cb090 Author: Sergei Golubchik Date: Fri Sep 19 12:51:33 2014 +0200 bugfix: disabling partitioning in already built tree that didn't quite work, WITH_PARTITION_STORAGE_ENGINE was not undefined commit 88cebbdf6dd02113e8ccadd0424b1713d8b6aeb2 Author: Sergei Golubchik Date: Thu Sep 11 10:08:48 2014 +0200 cleanup: remove libedit, move readline to extra/ commit 74a552d5dc74fb54bc9256887cd957a3754bb70c Author: Sergei Golubchik Date: Fri Sep 5 16:08:58 2014 +0200 cleanup: remove table->status from some engines from engines that we don't need to merge from a third-party repository on a regular basis commit fe0ff580009a5d5bdb853224568a7eaaf147f060 Author: Sergei Golubchik Date: Thu Sep 4 21:37:10 2014 +0200 compiler warnings commit 9a57de86beda0032a6dd9f804822e2651eb869bf Author: Nirbhay Choubey Date: Tue Sep 30 18:06:15 2014 -0400 bzr merge -r4123..4144 codership/5.6 commit 605b48d3e311e783ff60644dd468bbabb9a4a15c Author: Sergei Petrunia Date: Tue Sep 30 19:22:27 2014 +0400 MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY - if test_if_skip_sort_order() decides to switch to using an index, or switch from using ref to using quick select, it should set all members accordingly. commit fc2df3c637d51c4ab32132e2d8f63dbe7e80f056 Author: Jan Lindström Date: Tue Sep 30 14:50:34 2014 +0300 MDEV-6812: Merge Kakao: Add global status variables which tell you the progress of inplace alter table and row log buffer usage - (x 100%, it's 4-digit. 10000 means 100.00%) - Innodb_onlineddl_rowlog_rows Shows how many rows are stored in row log buffer. - Innodb_onlineddl_rowlog_pct_used Shows row log buffer usage in percent ( *100%, it's 4-digit. 10000 means 100.00% ). - Innodb_onlineddl_pct_progress Shows the progress of inplace alter table. It might be not so accurate because inplace alter is highly depend on disk and buffer pool status. But still it is useful and better than nothing. - Add some log for inplace alter table XtraDB/InnoDB will print some message before and after doing some task. commit c916085e271cd049537b1e07b36cd060c44750bd Merge: 023366e6eb6 f1afc003eef Author: Nirbhay Choubey Date: Sun Sep 28 20:43:56 2014 -0400 bzr merge -rtag:mariadb-10.0.14 maria/10.0/ commit 0b15557c8fec3de5c3ef3cce2b5ff9340159751f Author: Sergei Petrunia Date: Fri Sep 26 15:54:35 2014 +0400 MDEV-6796: Unable to skip filesort when using implicit extended key Re-work test_if_order_by_key() to work correctly for extended indexes. commit bef30f2e306dc6107f0ec314bf7bde8939c124e1 Author: Jan Lindström Date: Fri Sep 26 12:16:05 2014 +0300 Fix test failures seen on -- innodb-wl5522-debug-zip (path differences win/unix) -- innodb_defragment_fill_factor (stabilise) -- innodb_force_pk (case difference win/unix) commit 236cc6cd49f250a43f0f6a794d5052207b2d9348 Author: Nirbhay Choubey Date: Thu Sep 25 20:59:15 2014 -0400 wsrep-related changes: removed some unnecessary files & minor modifications. commit a756ac61900e28448776427e6ebbb0ef6f48d5cc Merge: 98c95ff1e23 d6a67ce080a Author: Sergei Petrunia Date: Thu Sep 25 22:12:52 2014 +0400 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 98c95ff1e23452395aa58eabf9346d8d1f234000 Author: Sergei Petrunia Date: Thu Sep 25 22:12:18 2014 +0400 Better comments about KEY::ext_key_part_map commit d6a67ce080aaf4238cd531dac83633005d7fbb46 Author: Nirbhay Choubey Date: Thu Sep 25 13:32:55 2014 -0400 Fix for syntax error in debian control file. commit a28c9a5857dc47b74aa739e814fafb9aa7dade6d Author: Nirbhay Choubey Date: Thu Sep 25 11:46:52 2014 -0400 MDEV-6790: 10.1: debian build failure Updated 33_scripts__mysql_create_system_tables__no_test.dpatch to reflect user.default_role. commit 30fab5fb511ac29dcaef1f17a653f461ab32f029 Author: Sergei Petrunia Date: Thu Sep 25 19:14:16 2014 +0400 MDEV-6788: The variable 'role' is being used without being initialized at sql_acl.cc:8840 [re-commit in git] Second variant of the fix: reduce the scope of 'role' variable commit 532334cb11835d18f2705ecfd014659b4a2e8252 Author: Sergei Petrunia Date: Thu Sep 25 18:27:20 2014 +0400 MDEV-6788: The variable 'role' is being used without being initialized at sql_acl.cc:8840 [Re-commit in git] Don't check the value of 'role' variable in the cases where we don't need it. (it may be marked as uninitialized and we get a runtime error). commit 9ce830d641f532a3d318b35f6c3e807c8c57d990 Merge: e74bf079829 3f2d9a902ec Author: Sergei Petrunia Date: Thu Sep 25 14:30:59 2014 +0400 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit e74bf0798297551bc02e6d8cac76e0d13ffdad0e Author: Sergei Petrunia Date: Thu Sep 25 14:29:14 2014 +0400 Better comments commit 3f2d9a902ec93327515ae94ae0c8c0c2c485d15f Author: Monty Date: Wed Sep 24 23:52:17 2014 +0300 Fixed failing test temp_table_frm The problem was that the internal temporary table created for information_schema overflow to MyISAM because it has a row width of > 3000 characters, which filled the in memory temporary tables. Fix was to increase size for the heap table. commit 023366e6eb68edca3858c32e7492788e047d927a Author: Nirbhay Choubey Date: Wed Sep 24 12:17:29 2014 -0400 Moved wsrep_slave_threads to optional settings. commit 59277a7d83374bc293cd58f8be509a81792d829e Author: Nirbhay Choubey Date: Wed Sep 24 12:16:09 2014 -0400 Moved wsrep_slave_threads to optional settings. commit 15ad0d0bb7c62af47ea0d8d98fc59f4ddf4b292e Merge: c7d45c220fe 8707f172e1d Author: Sergei Petrunia Date: Wed Sep 24 12:17:15 2014 +0400 Merge ../10.1-mdev6657 into bb-10.1-orderby-fixes commit c7d45c220feccefdd163fc3e5ded0b057f36c17d Merge: f5d845426eb 8aa88db3c2f Author: Sergei Petrunia Date: Wed Sep 24 12:04:16 2014 +0400 Merge ../10.1-mdev6402 into bb-10.1-orderby-fixes commit f5d845426eb38f0b5641c30d0d3a56c2b6a2b6a0 Author: Sergei Petrunia Date: Wed Sep 24 11:56:22 2014 +0400 Better comments commit e207e5fe272886cccc10bfa8069ead0d9a051083 Author: Nirbhay Choubey Date: Tue Sep 23 14:33:27 2014 -0400 Updated config files: - Removed QC restriction - Added bind-address Fixed file permissions for wsrep_sst_rsync.sh. Removed some unnecessary files. commit 851e428e4e94e22d14fab4694b3135011026f418 Author: Nirbhay Choubey Date: Tue Sep 23 14:03:13 2014 -0400 Updated config files: - Removed QC restriction - Added bind-address Fixed file permissions for wsrep_sst_rsync.sh. commit 4538665a63491a36bdbfa631df7dd457010bc293 Author: Nirbhay Choubey Date: Mon Sep 22 12:15:44 2014 -0400 MDEV-6740 : Galera crash in rpl_sql_thread_info/cached_charset_compare Properly initialized rpl_sql_thread_info for bf threads. Also removed some dead code. commit c4356bfccb972a3b1a8798ba552c92881a3f74e1 Author: Nirbhay Choubey Date: Wed Sep 17 14:59:39 2014 -0400 MDEV-6447: Galera: Enable QC * Added galera/query_cache test * Merged patch for lp:1296403 commit 5589509353bfc3222799cc66881117e95d82d68c Author: Nirbhay Choubey Date: Wed Sep 17 14:39:43 2014 -0400 MDEV-6447: addendum, moving QC code within HAVE_QUERY_CACHE. commit 9a0566b09b075f29ff5f9f8b3a70b473433e6c58 Author: Nirbhay Choubey Date: Wed Sep 17 14:12:00 2014 -0400 MDEV-6447: Galera: Enable QC * Added galera/query_cache test * Merged patch for lp:1296403 commit cf180e7f3d075beac02964d23773631edb0423b8 Author: Nirbhay Choubey Date: Wed Sep 17 09:54:04 2014 -0400 Reverting version change to match the version of supporting packages available on buildbot. commit 99b449bbb816a2467257c60fb6967b615db2ef4f Author: Nirbhay Choubey Date: Wed Sep 17 09:53:06 2014 -0400 Reverting version change to match the version of supporting packages available on buildbot. commit 69bc2d529fd7014be248902f0fb746bdd3162126 Author: Nirbhay Choubey Date: Tue Sep 16 12:58:35 2014 -0400 Updated mysqld--help test and result (MDEV-6717, MDEV-6659). commit 5f3cfbb59d673eb594497121e9fc0d1d4f3e9d2f Author: Nirbhay Choubey Date: Tue Sep 16 12:55:29 2014 -0400 Updated mysqld--help test and result (MDEV-6717, MDEV-6659). commit ac2a2f345391faf60ecb211320be39d453e96d77 Author: Nirbhay Choubey Date: Tue Sep 16 12:42:17 2014 -0400 MDEV-6659: mysqld --help --verbose initializes wsrep Do not initialize/load wsrep subsystem if server is started in help mode. commit 8aa88db3c2f39cadeb8960f514d27cc7f071dcac Author: Sergei Petrunia Date: Fri Sep 12 02:19:49 2014 +0400 MDEV-6402: Optimizer doesn't choose best execution plan when composite... Fix test_if_skip_sort_order() logic: WHEN we use index X, which doesn't produce needed ordering, but there is an index Y which does and has the same prefix as used prefix of X THEN don't just switch to using ref access on Y. If range(Y) would use more key parts, use range(Y). commit d0a5f33ccd986dfc027ac171b6eed3e92d836012 Author: Jan Lindström Date: Thu Sep 11 07:10:37 2014 +0300 Remove incorrect test file. commit 7e2bc140e347ecff90b272a8b2ea9ed1852c5974 Author: Jan Lindström Date: Wed Sep 10 20:19:41 2014 +0300 Remove unnecessary debug output causing unnecessary warnings. commit 595bcb7947716e7b1758ae7c14ef29c5bbb7630e Author: Jan Lindström Date: Wed Sep 10 18:48:26 2014 +0300 Fix merge error on binlog_remove_pending_rows causing failure on binlog_innodb_row test. commit b67e1d3c98a221feb790a666c3ed7e10e02d9e88 Author: Jan Lindström Date: Wed Sep 10 09:44:57 2014 +0300 Adjusted defrag test that fails randomly (timing problem) and fix result of innodb_sys_index test. commit 76d15afb332cef3c44ea8703cc19dc5c5ca02155 Author: Nirbhay Choubey Date: Tue Sep 9 19:19:12 2014 -0400 Minor improvements in mtr and wsrep test files. commit be055b38351797b938d7bf8af5814cbefe4f8b34 Author: Nirbhay Choubey Date: Tue Sep 9 19:05:25 2014 -0400 Minor improvements in mtr and wsrep test files. commit 4ffccff45dfb8e1856c5582913d31c7e18c2f788 Author: Nirbhay Choubey Date: Tue Sep 9 13:43:01 2014 -0400 MDEV-6717 : wsrep_data_home_dir should default to @@datadir Used mysql_real_data_home as wsrep_data_home_dir's default. Added a test case. commit e5267cae8ae4e09aaedeba0fea8408585f1f409f Author: Nirbhay Choubey Date: Tue Sep 9 13:41:22 2014 -0400 MDEV-6717 : wsrep_data_home_dir should default to @@datadir Used mysql_real_data_home as wsrep_data_home_dir's default. Added a test case. commit f3e95caacdd366d2c1300a7044b05d5a91ca1ffa Author: Nirbhay Choubey Date: Tue Sep 9 09:25:47 2014 -0400 MDEV-6699 : wsrep_node_name not automatically set to hostname Fixed by using hostname (glob_hostname) as default value for wsrep_node_name system variable. Added a test case. commit 140fd7adbdf5a998c5e984d3b8e3737587efc680 Author: Nirbhay Choubey Date: Tue Sep 9 09:18:35 2014 -0400 MDEV-6699 : wsrep_node_name not automatically set to hostname Fixed by using hostname (glob_hostname) as default value for wsrep_node_name system variable. Added a test case. commit 6748976d14882bfb6e1261eae635789ee95212a5 Author: Jan Lindström Date: Tue Sep 9 13:35:39 2014 +0300 Fix test failure on rpl_statements test by not listing wsrep variable. commit 8707f172e1d999f87cde6d3d85a320bc569f3618 Merge: c945233a192 bf30585eaf2 Author: Sergei Petrunia Date: Tue Sep 9 13:46:33 2014 +0400 Merge 10.1 into bb-10.1-mdev6657 commit bf30585eaf29139ee471a348fc394162ca3333bd Author: Sergei Petrunia Date: Tue Sep 9 13:26:23 2014 +0400 MDEV-465: Optimizer : wrong index choice: Add a testcase. commit 8bd4716272ef16a4bcd3196ba62f249aa3878998 Merge: 26e048ffd30 f8f8a59c189 Author: Sergei Petrunia Date: Tue Sep 9 13:05:28 2014 +0400 Merge ../10.1-orderby-fixes into 10.1 commit 47fcca0ffcc09623731f3e36d61ccc8da6b0f493 Author: Nirbhay Choubey Date: Mon Sep 8 21:21:37 2014 -0400 MDEV-6667 : Improved handling of wsrep-new-cluster option Code refactoring. Using mysql option handling system to handle 'wsrep-new-cluster' option. commit c0483b00295612372af6b33c6613a1a8bd839096 Author: Nirbhay Choubey Date: Mon Sep 8 14:01:41 2014 -0400 Bumping server version. (10.0.14-galera) commit 6421f5f147c7f68444a499b305a037f17a7f0bd5 Author: Nirbhay Choubey Date: Mon Sep 8 13:58:43 2014 -0400 Bumping server version. (5.5.40-galera) commit 26e048ffd30e05a60a330a708341e1fff0df0a9e Author: Nirbhay Choubey Date: Mon Sep 8 13:19:20 2014 -0400 Merged sys_vars.wsrep_* tests from maria-10.0-galera tree. commit 7c58dd80e599862f42c60186c0c913cb9f64b6b6 Author: Jan Lindström Date: Mon Sep 8 15:12:18 2014 +0300 Fix another set of test failures caused by galera merge. commit d7fd3ffb4d5d3e2dabebb9dcfb6e114ca1431aac Merge: d3ceb934f1e d161546b671 Author: Jan Lindström Date: Mon Sep 8 09:36:15 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit d3ceb934f1e537bedfaa96d157acdbfcf7b7ae67 Author: Jan Lindström Date: Mon Sep 8 09:34:03 2014 +0300 MDEV-6701: InnoDB tests fail in 10.1 Fixed test failures seen on defragment tests, innodb.innodb-wl5522-debug-zip and innodb.innodb_bug12902967. commit d161546b67142cdd5322a4ed160441045ae0cd1e Author: Sergei Petrunia Date: Thu Sep 4 01:12:49 2014 +0400 MDEV-6689: valgrind errors in view.test in 10.1 SHOW COLUMNS and SHOW KEYS commands fill IS_table_read_plan in a special way - they don't set or use lookup_field_vals member. Added a "trivial_show_command" flag that signals that lookup_field_vals has no valid data, made EXPLAIN code honor it. commit 9e63cc07802deb3a83ad79310ebf9a5dab904f18 Author: Jan Lindström Date: Wed Sep 3 18:51:02 2014 +0300 MDEV-6651: MariaDB galera cluster crashes in file row0mysql.cc line 684 DELETE FROM ports WHERE ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516' where table ports have foreign keys. Verified that current 5.5-galera is not affected and added test case to regression set. commit d7f377538fb6133bd3b8aa81e31e266258be5f03 Author: Jan Lindström Date: Wed Sep 3 18:25:49 2014 +0300 MDEV-6651: MariaDB galera cluster crashes in file row0mysql.cc line 684 DELETE FROM ports WHERE ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516' where table ports have foreign keys. Problem is repeatable with 10.0.12-galera but not with 10.0-13-galera. Added test case to regression set. commit c945233a192d559695b83a252b61168e7611ea03 Author: Sergei Petrunia Date: Tue Sep 2 18:54:29 2014 +0400 MDEV-6657: Poor plan choice for ORDER BY key DESC optimization... The problem was caused by the following scenario: - range optimizer picks an index IDX1 which doesn't match the ORDER BY ... LIMIT clause. - test_if_skip_sort_order() decides to switch to index IDX2 which matches the ORDER BY ... LIMIT. - it runs SQL_SELECT::test_quick_select() for the second time to produce an quick select for IDX2. - However, test_quick_select() would figure that full index scan on IDX1 is still cheaper (its calculations ignore the LIMIT n). Fixed this by - passing force_quick_range=true to test_quick_select() - in test_quick_select, don't consider full index scans if the mentioned parameter is true. Numerous changes in .result files are caused by test_quick_select() being run after "early/late NULLs filtering" feature has injected NOT NULL condition. commit e44751b65f4760067d15f8a526e8f97f84810c29 Author: Jan Lindström Date: Fri Aug 29 10:11:08 2014 +0300 Merge revision 3882 from lp:maria/maria-10.0-galera MDEV-6656: Test wsrep.variables hangs Analysis: wsrep_applier_thread shutdown signaling does not always work correctly causing a timing problem where main thread is waiting in a condition variable a signal that all worker threads to end. commit f99f573dc79b5d976e331fecbb83935c21e81ee5 Author: Jan Lindström Date: Fri Aug 29 09:42:13 2014 +0300 MDEV-6656: Test wsrep.variables hangs Analysis: wsrep_applier_thread shutdown signaling does not always work correctly causing a timing problem where main thread is waiting in a condition variable a signal that all worker threads to end. commit 4cccd57849283667d193b324f8fcaafdf9987e5b Author: Nirbhay Choubey Date: Thu Aug 28 23:42:45 2014 -0400 MDEV-6659: mysqld --help --verbose initializes wsrep Do not initialize/load wsrep subsystem if server is started in help mode. commit 5a684f829159bf4d6c2ec76479a33d1e5649b8f9 Author: Jan Lindström Date: Thu Aug 28 07:01:06 2014 +0300 Fix typo. commit eff5ef77dd1b8d2d407fe94b4d296c6c808b43b0 Author: Jan Lindström Date: Thu Aug 28 06:49:58 2014 +0300 Rule for configure wsrep-notify was missing. commit f8f8a59c189254baeb7f90920b6b23da227984e8 Author: Sergei Petrunia Date: Wed Aug 27 23:31:27 2014 +0400 Forgot one file in previous commit commit f883f3ef868fb7471dafdd9b21f1f50ab98bda85 Author: Sergei Golubchik Date: Tue Aug 12 14:05:35 2014 +0200 git: ignore errmsg.sys and typescript, better diff header for C/C++ files commit 422b99ed87cab7b6acdb86be0a8b424db1213af2 Author: Jan Lindström Date: Wed Aug 27 20:00:13 2014 +0300 Fix incorrect merge. commit 8cd08717f6eecd1a7b5c58349d2c8da52e985156 Author: Jan Lindström Date: Wed Aug 27 19:53:19 2014 +0300 Move galera_sst_mode test to correct location. This test tests mysqldump option. commit f1a1683309899e484c0c0d38933530dcd5012c75 Author: Sergei Petrunia Date: Wed Aug 27 20:08:32 2014 +0400 MDEV-6384: It seems like OPTIMIZER take into account the order of indexes in the table When ORDER BY ... LIMIT check whether it should switch from index IDX1 to index IDX2, it should not ignore the fact that IDX2 may have a potential range or ref(const) access. Istead, it should calculate their costs: there is now a saved range optimizer cost and code to re-calculate what best_access_path() calculated for ref(const). /* in current cost model these two can be very different numbers unfortunately */ commit be00e279c6061134a33a8099fd69d4304735d02e Author: Sergei Petrunia Date: Wed Aug 27 18:47:33 2014 +0400 MDEV-6480: Remove conditions for which range optimizer returned SEL_ARG::IMPOSSIBLE Let range optimizer remove parts of OR-clauses for which range analysis produced SEL_TREE(IMPOSSIBLE). There is no need to remove parts of AND-clauses: either they are inside of OR (and the whole AND-clause will be removed), or the AND-clause is at the top level, in which case the whole WHERE (or ON) is always FALSE and this is a degenerate case which receives special treatment. The removal process takes care not to produce 1-way ORs (in that case we substitute the OR for its remaining member). commit 6907da234138e0983b6f553228590dfeef3633ac Author: Jan Lindström Date: Wed Aug 27 15:35:49 2014 +0300 Fix small error on LZMA compression error printout. commit 4fb45aa219d53cd2f047c9c6a9fc1758ba4a359f Author: Jan Lindström Date: Wed Aug 27 15:28:43 2014 +0300 Fix compiler error when WITH_WSREP is not used. commit a60ea193ba00f5af1492d1bc2b15946a330438a5 Author: Jan Lindström Date: Wed Aug 27 15:19:45 2014 +0300 Fix compiler error when WITH_WSREP is not used. commit ab150128ce78fd363f6041277862686a61730b2b Merge: 9534fd83ce6 20e20f6db6f Author: Jan Lindström Date: Wed Aug 27 13:15:37 2014 +0300 MDEV-6247: Merge 10.0-galera to 10.1. Merged lp:maria/maria-10.0-galera up to revision 3880. Added a new functions to handler API to forcefully abort_transaction, producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These were added for future possiblity to add more storage engines that could use galera replication. commit 9d15afdb6156402c7763302c843b94a4c69ad250 Author: Nirbhay Choubey Date: Tue Aug 26 16:23:56 2014 -0400 Merged fix for MDEV-6646 from maria-5.5-galera. commit bc59e4c17fe2db77a0f0faa179b49ce2b0a1ab26 Author: Nirbhay Choubey Date: Tue Aug 26 16:14:46 2014 -0400 Switched wsrep_causal_reads ON for galera test suite. commit aece04a02c25386485c77e7140ab33e51473e366 Author: Nirbhay Choubey Date: Tue Aug 26 15:56:03 2014 -0400 MDEV-6646 : global.wsrep_causal_reads no longer honored During THD initialization, the value of wsrep_causal_reads (now being exclusively handled via wsrep_sync_wait, lp:1277053) was being ignored. Fixed by updating wsrep_sync_wait appropriately. commit 20e20f6db6fe7f752cccdb34c1ac1d54c2f30cec Merge: df4dd593f29 ea4103d94d4 Author: Jan Lindström Date: Tue Aug 26 15:46:19 2014 +0300 Merge branch 'bb-10.1-galera' of github.com:MariaDB/server into bb-10.1-galera commit df4dd593f29aec8e2116aec1775ad4b8833d8c93 Author: Jan Lindström Date: Wed Aug 6 15:39:15 2014 +0300 MDEV-6247: Merge 10.0-galera to 10.1. Merged lp:maria/maria-10.0-galera up to revision 3879. Added a new functions to handler API to forcefully abort_transaction, producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These were added for future possiblity to add more storage engines that could use galera replication. commit 9534fd83ce6dc402132cc304c121c9205b430dda Author: Sergei Petrunia Date: Tue Aug 26 16:24:40 2014 +0400 MDEV-6634: Wrong estimates for ref(const): Update test result commit ea4103d94d4b4c298d55a7a0076d075aa4d45700 Author: Jan Lindström Date: Tue Aug 26 14:32:15 2014 +0300 Add missing test files for new configuration variables. Added a new functions to handler API to forcefully abort_transaction, producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These were added for future possiblity to add more storage engines that could use galera replication. commit bb11eb82d5dce664e151519577df173acb31ee91 Author: Sergey Vojtovich Date: Tue Aug 26 14:57:09 2014 +0400 MDEV-6305 - UNINIT_VAR emits code in non-debug builds Reverted workaround for gcc bug, which was fixed 3 years ago: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772 commit fe4f46727616a6db2cead63a03f2dcb81dfce1f0 Author: Jan Lindström Date: Tue Aug 26 12:32:21 2014 +0300 Merge lp:maria/maria-10.0-galera revisions 3867..3869 and 3871..3879. commit bc5c65f9b468d81d761174a152f762b791b491e8 Author: Nirbhay Choubey Date: Mon Aug 25 17:03:17 2014 -0400 MDEV-6636 : Merged fixes for lp:1167368 and lp:1250805. commit 9b506d4bcb11c0df32993df27597afbedf1eb2ed Author: Jan Lindström Date: Mon Aug 25 09:13:15 2014 +0300 MDEV-6602: rpl.rpl_mdev6020 fails sporadically with SIGABRT Analysis: Problem is that we execute galera code when we are actually executing asyncronoush replication. Fix: Do not execute galera code if wsrep provider is not set. commit 378878e1e929982a829aba27470e4b153cf7970b Author: Sergei Petrunia Date: Sun Aug 24 12:36:51 2014 +0400 MDEV-6634: Wrong estimates for ref(const) and key IS NULL predicate IS [NOT] NULL predicate is sargable within an outer join. Range analysis only uses predicates from ON expressions, which have regular semantics (without null-complemented rows, etc). There is no reason not use IS [NOT] NULL predicates. commit 62f40f49ca0871af8f4b070a1283deaff89bde41 Author: Jan Lindström Date: Fri Aug 22 21:59:56 2014 +0300 Fix merge errors. commit 4521a532f8baed5eda77ae70f2c6f397c8db9787 Author: Jan Lindström Date: Fri Aug 22 08:43:57 2014 +0300 Fix merge error. commit 79180d87bb43374bcecb323aca5a811c6f5cec6b Author: Jan Lindström Date: Thu Aug 21 19:35:13 2014 +0300 Fix Windows compiler errors. commit 21b4dec072b194eaa6d97a8917c1bf5d7434c99d Author: Jan Lindström Date: Thu Aug 21 16:08:51 2014 +0300 Review fixes. commit f1c1c04a34f39bcd6622b9886fb089dd41e51103 Author: Sergey Vojtovich Date: Tue Aug 19 15:18:18 2014 +0400 MDEV-4262 - P_S discovery Discover P_S tables automatically. Most of this patch is code clean-up: - removed tests and code responsible for P_S tables correctness verification - always return error from ha_perfschema::create() - install/upgrade scripts won't create P_S tables anymore commit e7669cf6070567646c190fc87746a86e43da27c2 Merge: 8984bef2e43 0c5e04f0e6f Author: Jan Lindström Date: Mon Aug 18 10:55:01 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 8984bef2e431db42761d3f267b950293cfd864de Author: Jan Lindström Date: Mon Aug 18 10:52:59 2014 +0300 MDEV-6172: Monitor progress of ALTER TABLE ... ADD INDEX, ALGORITHM=INPLACE for InnoDB Added thd_progress calls to row_merge_sort to give some hint how merge sort progresses. commit dc0f1864ae09068dee8c340e4b3a687854c3200f Author: Nirbhay Choubey Date: Fri Aug 15 18:41:36 2014 -0400 Fix for binlog tests. commit de38fcfbb125802413e6bb7df041720f6a63a32f Author: Nirbhay Choubey Date: Thu Aug 14 18:43:04 2014 -0400 Fix for build failure in tokudb. commit f523662cfa8cb916402c9bd9409834f9a9e046e6 Author: Nirbhay Choubey Date: Thu Aug 14 18:19:01 2014 -0400 Fix for some failing rpl tests. commit 041e03e251e783d51ca86e53112e3b87bd2da146 Author: Sergei Petrunia Date: Thu Aug 14 01:12:05 2014 +0400 EXPLAIN FORMAT=JSON: produce used_key_parts, JSON-ish output for index_merge. commit 0680eeae05295c2a343ef3d239a7e5983499643b Author: Nirbhay Choubey Date: Wed Aug 13 11:29:13 2014 -0400 Test modifications * Added a basic test for wsrep_sync_wait system variable. * Separate innodb_load_xa tests for wsrep and non-wsrep builds. * Updated file_contents.test with correct file location * Some coding style related changes. commit 9ee0dca5d9917b3b3e860442d624135de03648d1 Author: Nirbhay Choubey Date: Wed Aug 13 10:41:41 2014 -0400 Updated file_contents.test with correct file location. commit a2d5a54374fe8b80da727782078541433f732324 Author: Nirbhay Choubey Date: Wed Aug 13 10:39:01 2014 -0400 Added a basic test for wsrep_sync_wait system variable. Also made some coding style related changes. commit 0c5e04f0e6f816ae2a6a82f6c6d5fc8bb3c3c997 Merge: 8d3a432f12e 6b47e896c03 Author: Sergei Petrunia Date: Wed Aug 13 18:07:51 2014 +0400 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 8d3a432f12e5fdfbde3368dc5a859ecc3e42621f Author: Sergei Petrunia Date: Wed Aug 13 18:06:53 2014 +0400 MDEV-6575: main.view --ps-protocol fails in ANALYZE code - After PREPARE is done, save the value of thd->select_number (this is what will be assigned to next select_lex object) - Restore the value at each execution of the prepared statement. commit 6b47e896c03bc8c2568b767ac4bbe917ac9f414c Author: Oleksandr Byelkin Date: Wed Aug 13 15:24:32 2014 +0300 Basic test of slave_run_triggers_for_rbr variable added. commit 2062c9a65acc660c03ab07b1358f6bf8aab4488f Author: Jan Lindström Date: Wed Aug 13 09:03:28 2014 +0300 MDEV-6567: Raw debug output in the error log. Removed raw debug output when no error on OS operation has not happened. commit ef4cbd8aecdc618a4db3a8d32f72fd08366adc99 Author: Nirbhay Choubey Date: Tue Aug 12 18:26:45 2014 -0400 Updated WSREP_PATCH_REVNO. commit 5add5855390fde8b8e8730c244d149123d8cf7ec Author: Nirbhay Choubey Date: Tue Aug 12 18:23:53 2014 -0400 Merged r4014 from codership/5.5 commit 305c1ae157de414bbd3e4a89cddbe522eaa1a309 Author: Nirbhay Choubey Date: Tue Aug 12 16:39:10 2014 -0400 Merge of innobase changes to xtradb. (r3871..3873). commit 8ec02bb836ab43d115579e6ba14f669e7dcd3e82 Author: Nirbhay Choubey Date: Tue Aug 12 14:50:26 2014 -0400 bzr merge -c4123 codership/5.6/ (minus http://bazaar.launchpad.net/~codership/codership-mysql/5.6/revision/4122) commit 857abf148149d0d7a73dc6364b5bf3d19e58a7d1 Author: Nirbhay Choubey Date: Tue Aug 12 14:05:44 2014 -0400 bzr merge -r4104..4120 codership/5.6/ commit 38f048a013bcb9c73d74c26af9db4cfdf7299d93 Author: Nirbhay Choubey Date: Tue Aug 12 12:43:56 2014 -0400 bzr merge -r4101..4103 codership/5.6/ commit a9d43d70f5d83ac652fd970f5b2b8dfdb77c1136 Author: Sergei Petrunia Date: Tue Aug 12 18:14:56 2014 +0400 EXPLAIN FORMAT=JSON: produce the 'ref' column. commit 84485dbe7c994ad938cd2ee90d5dee96059192e2 Author: Sergei Petrunia Date: Tue Aug 12 15:02:09 2014 +0400 MDEV-6109: EXPLAIN JSON Add pretty-printing of possible_keys column. commit 8358dd53b7406deaa9f50ad09b16a86b7e367632 Merge: e06e12f5b8d 4105cbf4a23 Author: Nirbhay Choubey Date: Mon Aug 11 23:55:41 2014 -0400 bzr merge -r4346 maria/10.0 (maria-10.0.13) commit e1facda416897c35b9dde90a14d3578f3ca2df9b Author: Nirbhay Choubey Date: Mon Aug 11 17:09:59 2014 -0400 Fix for some failing tests. commit e06e12f5b8dfe0ab2e5976eec1b27b25d318441b Author: Nirbhay Choubey Date: Mon Aug 11 14:31:30 2014 -0400 Added 'have_innodb_disallow_writes.inc'. commit e2b2bde358f434d945e9730acfbc6eedeb9ab8a2 Author: Monty Date: Sun Aug 3 15:26:47 2014 +0300 Made sql_log_slow a session variable mysqldump: - Added --log-queries to allow one to disable logging for the dump sql/log_event.cc: - Removed setting of enable_slow_log as it's not required anymore. sql/sql_parse.cc: - Set enable_slow_log to value of thd->variables.sql_log_slow as this will speed up tests if slow log is disabled. - opt_log_slow_admin_statements can now only disable slow log, not enable it. sql/sql_explain.cc: - Minor cleanup Other things: - Added sql_log_slow to system variables. - Changed opt_slow_log to global_system_variables.sql_log_slow in all files - Updated tests to reflect changes commit 7375f025ee9cd39909c1ec5529ca8c4007b92368 Author: Monty Date: Sun Aug 3 15:16:56 2014 +0300 Changes for using build scripts Removed -DSECURITY_HARDENED=OFF for debug build scripts ignore configure commit b4c74e2ab4c3676dd081421649de83ee0fb0f63c Author: Monty Date: Sun Aug 3 15:12:53 2014 +0300 Change MySQL -> MariaDB inc scripts commit 3bde13932ee53ee765a858e4413bc6c6af296d4b Author: Monty Date: Sun Aug 3 15:12:10 2014 +0300 Minor cleanups, fix compiler warnings commit 33d53c4c24881d4906cacc791c2049faa96a0ee6 Author: Sergei Petrunia Date: Sat Aug 9 06:37:56 2014 +0400 MDEV-6109: EXPLAIN JSON - Add first testcases - Don't overquote when printing conditions - Other small output fixes commit 83f0ddc6294ea8d4e424a540a043bf88ee4a8c8d Merge: d87ffeb4913 5cfd3270ec7 Author: Sergei Petrunia Date: Sat Aug 9 01:52:54 2014 +0400 Merge 10.1 (with ANALYZE) and 10.1-explain-json commit f8420992c0b604ec7b673fc8dc90312af2f800dc Author: Nirbhay Choubey Date: Thu Aug 7 18:29:20 2014 -0400 MDEV-6490: mysqldump unknown option --galera-sst-mode * Merged patches pushed to 10.0. * Additional fix in wsrep_sst_mysqldump.sh to control use of RESET MASTER and mysqldump's galera-sst-mode option based on joiner's @@log-bin value. commit d87ffeb49133aa459e134f09924cd7b7b5013632 Author: Jan Lindström Date: Thu Aug 7 13:44:00 2014 +0300 MDEV-6548: Incorrect compression on LZMA. Analysis: Provided incorrect parameter to output buffer size and incorrectly determined actual payload size after compression. commit 50777e26f048bb2019cdb4439aebda7d530feba4 Author: Jan Lindström Date: Thu Aug 7 13:41:46 2014 +0300 Fix Windows compiler error by disabling for now the nullptr class implementation. commit f64a0c3f859fbaa8160b8ea31a4b548e62a15e0f Author: Nirbhay Choubey Date: Wed Aug 6 19:11:55 2014 -0400 Updated WSREP_PATCH_REVNO. commit f20b1fd5e3fbb74e179d499302eefde545e3e1c1 Author: Nirbhay Choubey Date: Wed Aug 6 17:55:29 2014 -0400 Merge of innobase changes to xtradb. commit b09f1f9e652ad5c805d7a2df3fef3d8e6cc55973 Author: Nirbhay Choubey Date: Wed Aug 6 15:47:17 2014 -0400 bzr merge -r4011..4013 codership-mysql/5.5 commit 4788577c203402ba228f0dbf874ca2becb6b8fa1 Author: Nirbhay Choubey Date: Wed Aug 6 15:45:53 2014 -0400 bzr merge -r3997..4010 codership-mysql/5.5 commit ec91eea8dbae4276ff6e31a0d80c0b523f88ed88 Merge: e4e55f7968d c722e5f25f1 Author: Nirbhay Choubey Date: Wed Aug 6 14:06:11 2014 -0400 Local merge of mariadb-5.5.39 bzr merge -r4264 maria/5.5 Text conflict in sql/mysqld.cc Text conflict in storage/xtradb/btr/btr0cur.c Text conflict in storage/xtradb/buf/buf0buf.c Text conflict in storage/xtradb/buf/buf0lru.c Text conflict in storage/xtradb/handler/ha_innodb.cc 5 conflicts encountered. commit 5ebb396638c48db4002e3f132a56de97d68f0a20 Author: Jan Lindström Date: Wed Aug 6 15:39:15 2014 +0300 MDEV-6247: Merge 10.0-galera to 10.1. Merged lp:maria/maria-10.0-galera up to revision 3867. commit 6dad23f04aa5c8a022193cc74b62652a3c1e3057 Author: Jan Lindström Date: Wed Aug 6 15:28:58 2014 +0300 MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1 Merge https://github.com/kakao/mariadb-10.0 that contains Facebook's implementation for defragmentation facebook/mysql-5.6@a2d3a74 facebook/mysql-5.6@def96c8 facebook/mysql-5.6@9c67c5d facebook/mysql-5.6@921a81b facebook/mysql-5.6@aa519bd facebook/mysql-5.6@fea7d13 facebook/mysql-5.6@09b29d3 facebook/mysql-5.6@9284abb facebook/mysql-5.6@dbd623d facebook/mysql-5.6@aed55dc facebook/mysql-5.6@aad5c82 This version does not add new SQL-syntax and new handler API function. Instead optimize table is mapped to defragment table if innodb_defragment=ON, by default the feature is off. Contains changes authored by Sunguck Lee (Kakao). commit 746c755d423d02a41a8e22a80e84ed4eff260ba4 Author: Nirbhay Choubey Date: Tue Aug 5 19:00:54 2014 -0400 MDEV-6495: local merge from maria-5.5-galera. commit e4e55f7968d961e0cb07800397bc3108f960956a Author: Nirbhay Choubey Date: Tue Aug 5 18:55:05 2014 -0400 MDEV-6495: innodb_flush_log_at_trx_commit=0 as suggestion for galera vs =2 Updated innodb_flush_log_at_trx_commit value in cnfs as per recommendation. commit 30b5a4de5d169cb82829938ffbe60512be89ffef Author: Nirbhay Choubey Date: Thu Jul 31 16:40:32 2014 -0400 MDEV-6492: MariaDB Galera Cluster cant use rsync sst A donor node does a flush tables and then tries to freeze innodb writes before proceeding with SST. However, innodb_disallow_writes was missing in xtradb. Merged 'InnodbFreeze' patch from maria-5.5-galera's to xtradb. Also, merged some changes missing in innobase's os0file.cc. Added a basic test case for innodb_disallow_writes system variable. commit e974b564389af8251c2ba51060e6129e45431586 Author: Jan Lindström Date: Thu Jul 31 11:31:39 2014 +0300 MDEV-6512: InnoDB: Assertion failure in thread 4537024512 in file buf0buf.cc line 2642. Analysis: innodb_compression_algorithm is a global variable and can change while we are building page compressed page. This could lead page corruption. Fix: Cache innodb_compression_algorithm on local variable before doing any compression or page formating to avoid concurrent change. Improved page verification on debug builds. commit 4e3796d720ab37883af63e8a6252b1a36812b5ce Author: Jan Lindström Date: Tue Jul 29 06:10:18 2014 +0300 Fix compiler error on Windows. commit 1f69ff44138ca460b6d6b0172ab664de583132b6 Author: Jan Lindström Date: Fri Jul 25 18:45:14 2014 +0300 Fix compiler error on Windows. commit 56c4b016ad5ee7ec994cde8a27934a89259fe670 Author: Jan Lindström Date: Fri Jul 25 14:37:10 2014 +0300 Fiix random test failures on fil_decompress_page_2 function. Analysis: InnoDB writes also files that do not contain FIL-header. This could lead incorrect analysis on os_fil_read_func function when it tries to see is page page compressed based on FIL_PAGE_TYPE field on FIL-header. With bad luck uncompressed page that does not contain FIL-headed, the byte on FIL_PAGE_TYPE position could indicate that page is page comrpessed. Fix: Upper layer must indicate is file space page compressed or not. If this is not yet known, we need to read the FIL-header and find it out. Files that we know that are not page compressed we can always just provide FALSE. commit 911c4811ded0826386c53a2d6fbbe26a7a304089 Author: Sergei Golubchik Date: Wed Jul 23 12:51:51 2014 +0200 cleanup and updated test results commit bb66e66daa6c92e80a4b390e1e0cdc7fb3891eda Author: Vicentiu Ciorbaru Date: Sun Jul 20 03:23:57 2014 +0000 Changed set_default_role_for test to clean up correctly commit a3550feb49374e29d145de46623a114dc3c3aeba Author: Vicentiu Ciorbaru Date: Sun Jul 20 03:20:15 2014 +0000 Extended create_and_drop_role_invalid_user_table Added extra check for default_role column. commit 5298996180780554589aee4602eba18ff09678d2 Author: Vicentiu Ciorbaru Date: Sun Jul 20 03:14:07 2014 +0000 Fixed comment. commit 64b27c734eed91e2b79701c9c53283d9411f702f Author: Vicentiu Ciorbaru Date: Sun Jul 13 23:57:10 2014 +0000 Added default role implementation commit 43351faf2b229fb2e87331227efb2daf554647a7 Author: Vicentiu Ciorbaru Date: Sun Jul 13 22:22:31 2014 +0000 Added extra error messages for default role. Also fixed wording on one message. commit c55f5d1addd90edd91bf34d13a2d0631a9c1b55c Author: Vicentiu Ciorbaru Date: Fri May 30 17:54:13 2014 +0300 Added default_role column to mysql_system_tables commit 6b9998578ef52d36a524b368222b3321a658a026 Merge: 47daf3b422b fa0628a6aca Author: Jan Lindström Date: Wed Jul 23 11:56:36 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 47daf3b422bb07646b31906e0d3fa3634e861240 Author: Jan Lindström Date: Wed Jul 23 11:55:34 2014 +0300 Fix default value for innodb_compression_algorithm to 0 (uncompressed) to avoid test failures. commit fa0628a6aca07af8e74be539e55940d891914041 Author: Sergei Petrunia Date: Tue Jul 22 19:50:47 2014 +0400 MDEV-6456: Add progress indication for "Reading tablespace information from the .ibd files" # of processed files is printed every 15 sec. commit 05ff47cd4b4a4c37a013b9693ac0f3702aada2e5 Author: Nirbhay Choubey Date: Tue Jul 22 10:04:57 2014 -0400 Local merge of patch for MDEV-6377 from maria-5.5-galera. commit efdf79b44729d73de563e925627ab14d99f4e5d0 Author: Nirbhay Choubey Date: Tue Jul 22 09:43:42 2014 -0400 Local merge of patch for MDEV-4647 from maria-5.5-galera. commit 79750be18783efb7594a8dd011086c9d3a680983 Author: Nirbhay Choubey Date: Tue Jul 22 09:41:10 2014 -0400 MDEV-6377 : Test cases for wsrep system variables. commit 7b69cab89163a8d6e1a7a5cdcb66a66366136d7c Author: Nirbhay Choubey Date: Tue Jul 22 09:27:35 2014 -0400 MDEV-4647: Crash on setting wsep system variables to default The variables' ON_CHECK functions relied on set_var's "value" member, which is NULL for SET ... =default. Fixed by using save_result instead. Also, for many wsrep variables, pointers to their respective global variables were used to provide default values. The patch fixes this by using appropriate macros and string literals. commit dbc79ce0557ad5b7e3f51d7ffb0ffd1bec5b21bf Author: Jan Lindström Date: Mon Jul 21 22:21:30 2014 +0300 MDEV-6354: Implement a way to read MySQL 5.7.4-labs-tplc page compression format (Fusion-IO). Addeed LZMA and BZIP2 compression methods. commit e5cea60933328af408c3d2636eeed0597e6f0e2e Author: Nirbhay Choubey Date: Mon Jul 21 17:27:06 2014 -0400 Local merge of patch for MDEV-3896 from maria-5.5-galera. commit e3ac16d7210de73b2479957117ede6a6732268ad Author: Otto Kekäläinen Date: Sun Jul 20 20:55:44 2014 +0300 Add executable bit to scripts that are supposed to have it. More info at: https://mariadb.atlassian.net/browse/MDEV-6153?focusedCommentId=55397&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-55397 commit 0dadd017501e379546ffe3edae7728b931007be0 Author: Nirbhay Choubey Date: Thu Jul 17 16:22:01 2014 -0400 MDEV-3896: More user-friendly cnf files in MariaDB-Galera rpm/deb packages * Added "galera" as default option group. * Updated deb/rpm server config files to include mandatory and optional settings (as comments) required to configure Galera cluster. commit eaa0fe7cf859ad822f71bbaa2a47b23b4963ba9d Author: Nirbhay Choubey Date: Tue Jul 15 01:01:49 2014 -0400 MDEV-4728: local merge from maria-5.5-galera. commit 9c3f623777237d2a5f6104baf3dc657ef03a747c Author: Nirbhay Choubey Date: Tue Jul 15 00:54:29 2014 -0400 MDEV-4728: MariaDB can't start while bootup Introduced safety checks to ensure mysqld_safe terminates if mktemp fails to create a valid file. commit b77fc5a34327de0bfa0c8a75e55726dfc3b2fd21 Author: Nirbhay Choubey Date: Sat Jul 12 18:21:29 2014 -0400 Merge of patch for MDEV#6399. commit 3ce3647055c0749b6a2029b85f179146b5e8b2be Author: Nirbhay Choubey Date: Sat Jul 12 18:20:45 2014 -0400 MDEV#6399 - Make galera test suite run with --parallel Galera tests used default base/SST ports which led to failures due to port conflicts when run in parallel. Fixed by setting them to ones generated by mtr framework. commit b6a116cede0365924e08d7f668ec3780b9db686b Author: Nirbhay Choubey Date: Fri Jul 11 13:40:39 2014 -0400 Merge of patch for MDEV#5786. commit d2cd778a27f77fcf38585e7a029e005082ea50af Author: Nirbhay Choubey Date: Thu Jul 10 12:51:34 2014 -0400 MDEV-5786: mysql_upgrade on galera replicates "alter table" on system tables With wsrep patch, binary logging is implicitly enabled. This fix makes sure that it is turned off for --skip-write-binlog by swithcing off wsrep_on. commit dc377fcbc0a3da99e02aa55000ab491d01c63fc4 Author: Nirbhay Choubey Date: Wed Jul 9 11:07:23 2014 -0400 Merge of patch for MDEV-6411 from maria-5.5-galera. commit 40bfd20180a392f0c2e56cc99fff9ab3bf3ef87f Author: Nirbhay Choubey Date: Wed Jul 9 11:04:28 2014 -0400 MDEV#6411 - Setting set @@global_wsrep_sst_auth=NULL causes crash Fixed by properly handling the NULL values. commit f98b52aba13d98285d10224260a661128e7fe92f Author: Elena Stepanova Date: Sat Jul 5 15:20:49 2014 +0400 Increased the version number commit 3d1ac121771d61f9d1c944a1caa4e449527725fc Author: Jan Lindström Date: Fri Jul 4 11:59:09 2014 +0300 Add test case for https://bugs.launchpad.net/percona-xtradb-cluster/+bug/1314854 commit 84b3ec1fa4291c792cd63b70a4305e744b12eee4 Author: Jan Lindström Date: Fri Jul 4 11:58:14 2014 +0300 Merge -r4105..4106 from codership/5.6 commit 006cb2a6f95f96e67acc4e8ed7e2ecd97d4678e7 Author: Jan Lindström Date: Fri Jul 4 11:41:09 2014 +0300 Merge -r4102..4103 codership/5.6/ commit 8025d26dc50869bab663978372a1ca6cefa5b382 Author: Sergei Golubchik Date: Fri Jul 4 10:15:49 2014 +0200 remove a couple of old unused #defines commit 01046e7f9255e3ecf5b7084ba5b647d9865d375f Author: Oleksandr Byelkin Date: Wed Jul 2 16:18:28 2014 +0300 RBR triggers enabling in 10.1 commit 04db5aeb097a9733ba31015f09198aea04067ee4 Author: Nirbhay Choubey Date: Mon Jun 30 09:04:46 2014 -0400 Bumping server version. (5.5.39-galera) commit fbf39746525358269b29d05b2ce696e7ff60cbcd Author: Nirbhay Choubey Date: Mon Jun 30 09:03:29 2014 -0400 Bumping server version. (10.0.13-galera) commit b7a5b71fb3c56f3b7ba706935fec5bb30c04f082 Author: Jan Lindström Date: Mon Jun 30 14:02:54 2014 +0300 MDEV-6225: Idle replication slave keeps crashing. Analysis: Based on crashed the buffer pool instance identifier is not correct on block to be freed. Add LRU list mutex holding on functions calling free and add additional safety checks. commit 4ee6bf2203607f6e8aa67267b55f6b7e97ddf02e Author: Sergei Golubchik Date: Sun Jun 29 22:44:12 2014 +0200 deb hack: don't set CASSANDRA_DEB_FILES unless cassandra can be built commit b35c5912b651496ad5797bf85eaef3a431235e68 Author: Jan Lindström Date: Sat Jun 28 13:53:18 2014 +0300 MDEV-6376: InnoDB: Assertion failure in thread 139995225970432 in file buf0mtflu.cc line 570. Analysis: Real timing bug, we should take the mutex before we try to send those shutdown messages, that would make sure that threads doing a unfinished flush (they have acquired this mutex) have time to do their work before we add shutdown messages to work queue. Currently, we just add those shutdown messages to work queue and code assumes that at flush, there is constant number of items to be processed and thus leading to assertion. commit 36e86bac72ca42ba6537211f39dd0556d5dc1084 Author: Sergei Petrunia Date: Fri Jun 27 15:39:44 2014 +0400 Remove out-of-date comments commit c235de12ae3723b96944337bd89ad9cc87f21d8f Author: Sergei Petrunia Date: Thu Jun 26 22:06:41 2014 +0400 MDEV-6394: ANALYZE DELETE .. RETURNING fails with ERROR 2027 Malformed packet (now, the code) Forgot the code commit 9394f2f9b0a95086708237f16bc19bb6e58ebf12 Merge: 3d7eeb63072 c6d29cd30db Author: Sergei Petrunia Date: Thu Jun 26 22:04:04 2014 +0400 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 3d7eeb6307242a7b4a810732322d043b736c5919 Author: Sergei Petrunia Date: Thu Jun 26 22:03:13 2014 +0400 MDEV-6394: ANALYZE DELETE .. RETURNING fails with ERROR 2027 Malformed packet - Add support for DELETE .. RETURNING statement in ANALYZE code. commit c6d29cd30db9053023124bf74f17f6ee9d8e168d Merge: 3e5994868de be885ebe8c3 Author: Jan Lindström Date: Thu Jun 26 20:47:08 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 3e5994868de68f5112e5faf63188e4f53050afd5 Author: Jan Lindström Date: Thu Jun 26 20:45:27 2014 +0300 MDEV-6392: Change innodb_have_lzo and innodb_have_lz4 as a static variables and reduce the number of ifdef's commit be885ebe8c3df78d090c2ad25772959fc2ae9fc9 Author: Sergei Petrunia Date: Thu Jun 26 20:12:18 2014 +0400 Code cleanup, more tests. commit 7ed27e1b8efa2c72ddb554362d76e5b7deb90bbe Author: Nirbhay Choubey Date: Thu Jun 26 12:11:12 2014 -0400 Fix for some failing tests. commit c6be74458fd478b019ac357371d5aee8925fe012 Author: Sergei Petrunia Date: Thu Jun 26 19:09:23 2014 +0400 MDEV-6398: ANALYZE UPDATE does not populate r_rows - In print_explain_row(), do not forget to print r_rows. - Switch Explain_update from using its own counters to re-using Table_access_tracker. - Make ANALYZE UPDATE code structure uniform with ANALYZE DELETE. commit a787edd7e660a00f015ca0a25ded0952085f7451 Author: Sergei Petrunia Date: Thu Jun 26 18:32:18 2014 +0400 MDEV-6395: Make ANALYZE UPDATE/DELETE handle the degenerate query plans. commit 12d6f89b073351169e070355e8db363d0d649749 Author: Sergei Petrunia Date: Thu Jun 26 15:55:25 2014 +0400 MDEV-6393: ANALYZE SELECT crashes ... Don't try printing EXPLAIN if we had an error. commit b7d10e56872f32b437d4d7ef0d1dc1b2ab000d5b Author: Sergei Golubchik Date: Thu Jun 26 12:46:33 2014 +0200 MDEV-5730 enhance security using special compilation options add a comment commit da4f8269bf5919f7a48739dbe5460fe22a768967 Author: Sergei Golubchik Date: Mon Jun 16 21:39:09 2014 +0200 MDEV-5730 enhance security using special compilation options -Wl,-z,relro,-z,now -pie -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 commit 6c0e3ef4503c6121f7d5b6b07dcd2ee035e26032 Author: Sergei Golubchik Date: Mon Jun 16 21:30:48 2014 +0200 cmake cleanup: use MY_CHECK_AND_SET_COMPILER_FLAG. move MY_CHECK_C_COMPILER_FLAG and MY_CHECK_CXX_COMPILER_FLAG to a separate file, introduce MY_CHECK_AND_SET_COMPILER_FLAG, use it where possible. commit afa4c36ca055328f52973d8b8d28a04520ccdc59 Author: Sergei Golubchik Date: Mon Jun 16 21:24:30 2014 +0200 cmake: prefer INSTALL(PROGRAMS over INSTALL(FILES commit 6c9dd841cbe60806ca6cdbc03e60c2e4094cf9f8 Author: Sergei Golubchik Date: Mon Jun 16 22:16:21 2014 +0200 remove unused sql/examples commit b95ec135533b13e921aa8de1b9c769d47b2efe60 Author: Alexey Botchkov Date: Thu Jun 26 11:37:24 2014 +0500 Revert "MDEV-12 OpenGIS: create required tables: GeometryColumns, related views." This reverts commit 0bf9fd89290e2ebd6eb44c36b2885e9e314499b5. commit 648b957f42e0b6600da5456407a563b1218c000b Merge: 0bf9fd89290 68bf3c50525 Author: Sergei Petrunia Date: Thu Jun 26 10:48:08 2014 +0400 Merge branch 'bb-10.1-explain-analyze' into 10.1 commit 68bf3c50525cbb946847a3bc9d163224f5f9214b Author: Sergei Petrunia Date: Thu Jun 26 10:43:58 2014 +0400 Code cleanup commit 18d5a748f17f39ee585c137e41389b460d5df9d5 Author: Sergei Petrunia Date: Thu Jun 26 01:22:50 2014 +0400 MDEV-406: ANALYZE $stmt: Make multi-table UPDATE/DELETE work, code cleanup. commit 0bf9fd89290e2ebd6eb44c36b2885e9e314499b5 Author: Alexey Botchkov Date: Thu Jun 26 00:46:21 2014 +0500 MDEV-12 OpenGIS: create required tables: GeometryColumns, related views. Scripts added that create OpenGIS-required views and tables they're based upon. commit aa224716339ce499731625e9451eda3cfb206283 Merge: 5893ae0b814 787ec317784 Author: Jan Lindström Date: Wed Jun 25 21:00:24 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 Conflicts: storage/xtradb/handler/ha_innodb.cc commit 4a7cacda58a33da48da30e255a12194ee8fa6243 Author: Sergei Petrunia Date: Wed Jun 25 20:47:54 2014 +0400 MDEV-406: ANALYZE $stmt: fix "explain UPDATE view problem". commit 5893ae0b81461da9edcc6d7d0f3bbc55787be446 Author: Jan Lindström Date: Wed Jun 25 19:04:44 2014 +0300 Fix test failure when trying to set compression algorithm to 3 commit 9e1075eea005f0ddcc7c429cf4c9d60e54578ecb Author: Nirbhay Choubey Date: Wed Jun 25 11:22:01 2014 -0400 Follow-up patch for lp:1312618 to fix a segfault. commit 3da81ab97f33c696b03bd41dc664c103e060941b Author: Sergei Petrunia Date: Wed Jun 25 18:35:30 2014 +0400 MDEV-406: ANALYZE $stmt: more testcases, fix memory leak commit 424d5de89de907f37826ec8afb77769fe380d1e4 Merge: 787ec317784 b561a98a87c Author: Sergei Petrunia Date: Wed Jun 25 16:46:42 2014 +0400 Merge bb-10.1-explain-analyze into 10.1 commit b561a98a87c0326dce59eb49c1b4b8f31da21d1e Author: Sergei Petrunia Date: Wed Jun 25 16:01:09 2014 +0400 MDEV-406: ANALYZE $stmt: add some tests for joins commit 7711999d8b89d9bcf394e78a79c3c25013e249d6 Author: Sergei Petrunia Date: Wed Jun 25 15:15:38 2014 +0400 MDEV-406: ANALYZE $stmt: add support for BNL join buffering commit 3bca01930aa5298cf6a8d602e66ddcea054edf50 Author: Jan Lindström Date: Wed Jun 25 08:46:54 2014 +0300 MDEV-6361: innodb_compression_algorithm configuration variable can be set to unsupported value. MDEV-6350: Excessive unnecessary memory allocation at InnoDB/XtraDB startup if LZO is installed. commit c039d9667e5a2d15eed50357e4c7ce586c7de70b Author: Nirbhay Choubey Date: Wed Jun 25 00:45:12 2014 -0400 Fixed a typo and updated mysqld--help test result. commit c3cfb6910a50f7ff094b03f9ef0b5d908f5e4760 Author: Sergei Petrunia Date: Tue Jun 24 23:58:13 2014 +0400 MDEV-406: ANALYZE $stmt: Scans that never executed will have r_rows=NULL commit 06a87d77e62bad8ded0a384a70e13114011bf060 Author: Sergei Petrunia Date: Tue Jun 24 23:38:49 2014 +0400 Fix compile on Windows: use rint() instead of round(). commit 1dd5d31c736709ebd674e308333fad2c1561d708 Author: Sergei Petrunia Date: Tue Jun 24 22:21:34 2014 +0400 MDEV-406: ANALYZE $stmt: fix order_by.test In JOIN_TAB::update_explain_data(), take into account that - the table that may have pre-sorted is the first non-const table - Tables that are eliminated by table elimination are marked as const tables, but are not present in the Explain data structures commit c08de06246f776c557b7795d53e2a956e156f533 Author: Sergei Petrunia Date: Tue Jun 24 19:41:43 2014 +0400 MDEV-406: ANALYZE $stmt: get ANALYZE work for subqueries - "ANALYZE $stmt" should discard select's output, but it should still evaluate the output columns (otherwise, subqueries in select list are not executed) - SHOW EXPLAIN's code practice of calling JOIN::save_explain_data() after JOIN::exec() is disastrous for ANALYZE, because it resets all counters after the first execution. It is stopped = "Late" test_if_skip_sort_order() calls explicitly update their part of the query plan. = Also, I had to rewrite I_S optimization to actually have optimization and execution stages. commit 9a0b80c968f01d50423126ecfd5fd5e793f5d42a Author: Nirbhay Choubey Date: Mon Jun 23 19:14:28 2014 -0400 MDEV#5747: wsrep system variables not listed alphabetically Some wsrep system variables contain uppercase letters in their names, as a result of which they seemed out of order after sorting. Fixed by using case-insensitive string comparison function to perform sorting. commit 787ec317784d58ca00c0c8e772173c66c5145f50 Author: Sergei Golubchik Date: Mon Jun 23 12:09:00 2014 +0200 MDEV-6248 GUI-friendly cmake options to enable/disable plugins * Introduce a set of PLUGIN_xxx cmake options with values NO, STATIC, DYNAMIC, AUTO, YES (abort if plugin is not compiled) * Deprecate redundant and ambiguous WITH_xxx, WITH_PLUGIN_xxx, WITH_xxx_STORAGE_ENGINE, WITHOUT_xxx, WITHOUT_PLUGIN_xxx, WITHOUT_xxx_STORAGE_ENGINE * Actually check whether a plugin is disabled (DISABLED keyword was always present, but it was ignored until now). * Support conditionally disabled plugins - keyword ONLY_IF * Use ONLY_IF for conditionally skipping plugins, instead of doing MYSQL_ADD_PLUGIN conditionally as before. Because if MYSQL_ADD_PLUGIN isn't done at all, PLUGIN_xxx=YES cannot work. commit da9bb66b028da9ef716de7325a5a91fa6216c217 Author: Sergei Golubchik Date: Tue Jun 17 10:59:40 2014 +0200 cmake GUI cleanup mark path-related variables (AIO_LIBRARY, ODBC_LIBRARY, ODBC_INCLUDE_DIR, Thrift_LIBS, Thrift_INCLUDE_DIRS, CRYPTO_LIBRARY, OPENSSL_LIBRARIES, OPENSSL_ROOT_DIR, OPENSSL_INCLUDE_DIR) as advanced - paths are automatically discovered by cmake. mark few choice variables (ENABLED_LOCAL_INFILE, WITHOUT_SERVER, DISABLE_SHARED) as not advanced - they are user choices, not automatically configured values. remove unused BACKUP_TEST variable. commit 242e7f958d7a174d29b06c1c0893c14448111645 Author: Sergei Golubchik Date: Mon Jun 23 16:23:51 2014 +0200 MDEV-4549 [PATCH] Clean up code working with ACL tables * enum values to index different ACL tables, instead of hard-coded numbers (even different in diffent functions). * move TABLE_LIST initialization into open_grant_tables() and use it everywhere * change few my_bool's to bool's commit b9a4569bb4660613a0a4182acc4b0f9565abf56b Author: Nirbhay Choubey Date: Mon Jun 23 10:18:52 2014 -0400 Updated sys_vars.all_vars result file. commit b5a2600e4ba6f4027561bb0a41bac11b1239a856 Author: Nirbhay Choubey Date: Mon Jun 23 09:37:46 2014 -0400 Empty revision to trigger build on buildbot. commit f321d3e5f1433092b9152165ffb74f60783168ec Author: Sergei Golubchik Date: Sat Jun 21 08:56:49 2014 +0200 main.temp_table_frm failure on fulltest (--embedded, when TMPDIR=/tmp) use more restrictive --list_files to hide the usual /tmp garbage commit ce6a63ec41160ef6b7c0110d3f40aea79b8f3129 Author: Sergei Golubchik Date: Fri Jun 20 11:34:24 2014 +0200 MDEV-4260 Don't create frm files for temporary tables * Don't write frm for tmp tables * pass frm image down to open_table_uncached, when possible * don't use truncate-by-recreate for temp tables - cannot recreate without frm, and delete_all_rows is faster anyway commit cc5b3998b6767523792f7e4ec8c9a100db2d06ce Author: Sergei Golubchik Date: Wed Jun 18 11:53:42 2014 +0200 remove HTON_FLUSH_AFTER_RENAME (BDB-ism, unused for years) commit fb8818c1aff9ce67b74f965c019cad93addd811e Author: Sergei Golubchik Date: Tue Jun 17 17:57:18 2014 +0200 Fix CMakeLists.txt for cmake Ninja generator commit 02034e4218836304e81a10523c737b3b25e3ad9c Author: Nirbhay Choubey Date: Thu Jun 19 21:55:19 2014 -0400 Merging fix for MDEV#6296 from maria-5.5-galera. commit 97779a2ef05d2141d2ade2f72f0900dbd9960751 Author: Nirbhay Choubey Date: Thu Jun 19 18:48:20 2014 -0400 bzr merge -r4091..4101 codership/5.6/ commit a76a6601ecb63d452c89202d8ca7f11bf2e0194f Merge: 0f5522c44f9 0c64cd83eb3 Author: Nirbhay Choubey Date: Thu Jun 19 13:12:38 2014 -0400 bzr merge -rtag:mariadb-10.0.12 maria/10.0 commit dc64ba2187fa97d74ee465dd3ca234761b1be7c5 Author: Sergei Golubchik Date: Thu Jun 19 12:02:23 2014 +0200 MDEV-6137 better help for SET/ENUM sysvars Auto-generate the allowed list of values for enum/set/flagset options in --help output. But don't do that when the help text already has them. Also, remove lists of values from help strings of various options, where they were simply listed without any additional information. commit 0f5522c44f9ebb002f203ad1f983b77e3925581c Author: Nirbhay Choubey Date: Wed Jun 18 10:19:18 2014 -0400 MDEV#6316: (post-fix) Using C-style comments in mysqldump. commit 0cb7c19fbe9601f8fe7f83cfb13ea0bf67b75e2b Author: Sergei Golubchik Date: Wed Jun 18 15:00:58 2014 +0200 update sys_vars.innodb_compression_algorithm_basic to pass it checked that the default is lz4. Which only worked on systems that had lz4 and did not have lzo. Now it checks for the default to be zlib, which works on systems that has neither lz4 or lzo. Like our package builders in buildbot. This is intentional, we don't want introduce additional dependencies (lz4, lzo) for our packages just yet. This can (and will) be reconsidered, and this test can (and will) be updated again. commit 5f02051f071180dc53bf9b40dd385eae7606a537 Merge: 89e05141504 cf1a09e42f6 Author: Jan Lindström Date: Tue Jun 17 11:33:50 2014 +0300 Merge branch '10.1' of github.com:MariaDB/server into 10.1 commit 89e0514150433eeb9737e3bb6272b88dd82b8443 Author: Jan Lindström Date: Tue Jun 17 08:40:54 2014 +0300 Fixed test failure introduced by adding a new dynamic configuration variable innodb_compression_algorithm. Removed unnecessary test for removed configuration variable. commit 1fbb70559b45fee8be142e44249e8fc81b8ee3a8 Author: Nirbhay Choubey Date: Mon Jun 16 14:55:14 2014 -0400 MDEV#6316: Fix mysqldump SST method to transfer binlog state to the joiner In mysqldump SST, if Galera nodes are started with --log-bin and -log-slave-updates, the GTID sequence increases as the dump is played on the joiner, leaving behind the donor. This patch introduces a new mysqldump option --galera-sst-mode, which if enabled, would a) Add command to set off binary logging (log_bin=OFF). b) Add command to set @@global.gtid_binlog_state to that of donor. This will help in keeping the GTIDs consistent post-SST across the nodes. commit 20279b0473b959172a3bffe14940f6708dabad30 Author: Nirbhay Choubey Date: Mon Jun 16 10:32:21 2014 -0400 Bumping the revision number. commit 581b889771447f7a9f33d467f0b5ef2aa96e072b Author: Sergei Petrunia Date: Mon Jun 16 13:34:03 2014 +0400 Update analyze_stmt.result after the last commit commit c7ad886a7039306aeb591e542e827a68c3302e29 Author: Nirbhay Choubey Date: Sun Jun 15 13:53:43 2014 -0400 MDEV#6296: runtime adjustment of wsrep_slave_threads creates threads but never removes them When wsrep_slave_threads is changed at runtime, the old "change" value is not taken into account and thus successive SETs can make wsrep_slave_threads value inconsistent with the actual number of applier threads present. commit cf1a09e42f695bcd24dd8a4a928cd1f560c3c00a Author: Sergei Golubchik Date: Sat Jun 14 22:15:52 2014 +0200 MDEV-6107 merge default_tmp_storage_engine Adapt default_tmp_storage_engine implementation from mysql-5.6 New feature (as compared to 5.6), default_tmp_storage_engine=NULL means that temporary tables will use default_storage_engine value. This makes the behavior backward compatible. commit 2edcf8f9ff2a1afb1d2bd5028a93b5f07ef0644e Author: Sergei Golubchik Date: Sun Jun 15 12:19:33 2014 +0200 .gitignore ninja files commit 24133e654d1bb5b2320c224d980b92b21eb47265 Author: Sergei Golubchik Date: Sat Jun 14 18:24:22 2014 +0200 fix bison warnings (clash != <>) commit f61f36b386e8d0c6448297bb84c92e8d9b82be6a Merge: 2caeda44250 55b010233a2 Author: Sergei Golubchik Date: Fri Jun 13 16:10:25 2014 +0200 Merge branch '10.0' into 10.1 Conflicts: CMakeLists.txt VERSION Modified: .gitignore commit 85032e36c66820c851b63b5189bc397404af51c7 Author: Nirbhay Choubey Date: Wed Jun 11 17:13:03 2014 -0400 Modified patch for lp:1310875. commit adc6bd15d575a10c826aa4e752456ef9924db5ec Merge: b441c510a7e 93cc06b20cd Author: Nirbhay Choubey Date: Tue Jun 10 18:41:53 2014 -0400 Merged changeset from codership-mysql/5.5. * bzr merge -r3980..3984 codership-mysql/5.5 * bzr merge -r3985..3997 codership-mysql/5.5 * Fixed a segfault. * Modified wsrep.variables test & fixed a warning in mtr script. commit 93cc06b20cd83f6f84ac152d66214f48462ee1df Author: Nirbhay Choubey Date: Tue Jun 10 18:31:07 2014 -0400 Fixed a warning in mtr script. Updated wsrep.variables test. commit 1410785e8ab283f2592867985b6560329e874f63 Author: Nirbhay Choubey Date: Tue Jun 10 17:35:44 2014 -0400 Fix for a segfault. commit c29cbac2eb06ab4a2bf1aeda65c15fce40a84345 Author: Nirbhay Choubey Date: Tue Jun 10 17:00:32 2014 -0400 bzr merge -r3985..3997 codership/5.5 commit 90ead99572c8168583cb0943792d964cc2a6abd2 Author: Nirbhay Choubey Date: Tue Jun 10 16:33:57 2014 -0400 bzr merge -r3980..3984 codership/5.5 commit b441c510a7ea731e2da0fa9b4cf3e7f1275f841b Merge: d3b2e780d6d 6d75570e99f Author: Nirbhay Choubey Date: Tue Jun 10 16:04:26 2014 -0400 bzr merge -rtag:mariadb-5.5.38 maria/5.5 commit 2357871a213b33417539f14e6c786a3d4b74d7f6 Author: Nirbhay Choubey Date: Mon Jun 9 16:13:30 2014 -0400 Fix for a debian build failure (cherry-picked from 10.0:r4231). commit d3b2e780d6ddee9a4f434ba9928f77127bbbeeb1 Author: Nirbhay Choubey Date: Fri Jun 6 13:49:10 2014 -0400 Updated default load option groups. commit cc66ae6aae4e3e5f121f1b6840213bdc525b609d Author: Nirbhay Choubey Date: Fri Jun 6 13:27:15 2014 -0400 MDEV#6317: Fix rsync SST method to transfer binlog state to the joiner * Merged changes to transfer last binlog file from codership/5.6. * Updated load default option groups. commit 1ebc055f1bf7308de96aa81eba71b58d0af42a4b Author: Nirbhay Choubey Date: Thu Jun 5 23:40:32 2014 -0400 Modified mtr script to skip inclusion of 'galera' test suites if galera library is not specified or found. commit 68deb11a36adfc079e2a64deb49da361dc57561c Author: Nirbhay Choubey Date: Thu Jun 5 23:31:00 2014 -0400 Modified mtr script to skip inclusion of 'galera' test suites if galera library is not specified or found. commit 2caeda442502b5ea2583a0ce15107d171e06dfcd Author: Sergei Petrunia Date: Wed Jun 4 14:43:05 2014 +0400 Amend "make distclean" message to mention "git clean -Xdf" commit 917b22393f16a2143fd0e480473123731be5b6d1 Author: Sergei Petrunia Date: Tue Jun 3 19:04:59 2014 +0400 MDEV-406: ANALYZE $stmt - Testcase for ANALYZE UNION - Provide r_rows for union result. commit 5621aa3230a60c97111f52c03dc31ce7b57d70d6 Author: Sergei Petrunia Date: Tue Jun 3 17:59:01 2014 +0400 MDEV-406: ANALYZE $stmt - Support tracking for UNIONs, temporary-table based ORDER BYs, and both. commit 97d8323210b2c0c453eddeb27a5d6fe69bfa5426 Author: Nirbhay Choubey Date: Mon Jun 2 22:45:41 2014 -0400 Fix for wsrep_sst_xtrabackup-v2.sh script. commit 6fc646ef2f772974fc87f4aec58a760e779952ea Author: Nirbhay Choubey Date: Mon Jun 2 08:26:42 2014 -0400 Fixed a typo in debian control file. commit 26fa9e8294db1d922dea2e5aa25f548b210d6378 Author: Nirbhay Choubey Date: Thu May 29 21:03:10 2014 -0400 Added rsync to galera server's debian/rpm dependency list. commit d939fad23196f7377e456a044ef8efe918f848f9 Author: Nirbhay Choubey Date: Thu May 29 21:02:17 2014 -0400 Added rsync to galera server's rpm dependency list. commit 707f378a1343438e032ddf8968a25c5b5358340f Author: Nirbhay Choubey Date: Thu May 29 15:39:29 2014 -0400 Added rsync to galera server's debian dependency list. commit 7e85cfb50fd95e9b0c7ba6033fcc03d66ff12cd9 Author: Nirbhay Choubey Date: Wed May 28 00:46:21 2014 -0400 MDEV#6266: Changing password fails on galera cluster Added a check to skip ER_PASSWORD_ANONYMOUS_USER in case the SET PASSWORD was executed by wsrep applier thread. commit 5cfd3270ec79238b27765af3062ae7d97f6f06d0 Author: Sergei Petrunia Date: Tue May 27 21:04:45 2014 +0400 MDEV-6109: EXPLAIN JSON - First code, "EXPLAIN FORMAT=JSON stmt" and "ANALYZE FORMAT=JSON stmt" work for basic queries. Complex constructs (e.g subqueries, etc) not yet supported. - No test infrastructure yet commit 0925ab9d88f4328810d25392333a4cac11c6e694 Author: Sergei Petrunia Date: Tue May 27 20:16:51 2014 +0400 MDEV-406: ANALYZE $stmt -Add analyze_stmt.test/result commit eaba1ba4a575c5280d41eaa3deac890dd25d82e4 Author: Sergei Petrunia Date: Tue May 27 20:13:17 2014 +0400 Re-commit in git: MDEV-406: ANALYZE $stmt - Ported the old patch to new explain code - New SQL syntax (ANALYZE $stmt) - ANALYZE UPDATE/DELETE is now supported (because EXPLAIN UPDATE/DELETE is supported) - Basic counters are calculated for basic kinds of queries (still need to see what happens with join buffer, ORDER BY...LIMIT queries, etc) commit c73cd2a5959198348cc73730fbbe846f85c60c1b Author: Nirbhay Choubey Date: Tue May 27 11:04:42 2014 -0400 s/#if/#ifdef commit 8d37bd48c71e0f7edf3b26b112952e70140d392a Author: Nirbhay Choubey Date: Tue May 27 10:11:42 2014 -0400 Fixing a typo s/connection_tcpwrap_errors/connection_errors_tcpwrap, causing build to fail when HAVE_LIBWRAP is enabled. commit 7487f6b397c97bc27cbb6315746006f3df0e291d Author: Nirbhay Choubey Date: Tue May 27 09:07:19 2014 -0400 Removing rsync from the debian build dependency list. commit ef7e1734044c5303348b7c33d2267554190a901e Author: Nirbhay Choubey Date: Tue May 27 09:06:04 2014 -0400 Removing rsync from the debian build dependency list. commit 1e702f3d207bab7452d59d463c49b2ae61a0d10d Author: Sergei Golubchik Date: Tue May 27 14:29:05 2014 +0200 don't include when it's not really needed commit 5a61516afd898f06a1b5504a4cce84cc8c95c9ed Merge: ac4d78432e8 6a85b10dcb3 Author: Sergei Golubchik Date: Mon May 26 21:14:33 2014 +0200 Merge remote-tracking branch 'origin/10.1' into 10.1-serg-merge commit 6a85b10dcb39b41587ce66d0434c651182d33832 Merge: 1016ee9d77e 4e68fafad44 Author: Sergei Golubchik Date: Mon May 26 21:11:53 2014 +0200 merge the compilation fixes from 10.0-FusionIO commit 4e68fafad44fbb5ea57a3cf9a750690d88f6fe1c Author: Sergei Golubchik Date: Mon May 26 20:42:06 2014 +0200 compilation failure on Win64 cannot use &ulint_var (where ulint == unsigned __int64) where (ulong *) is expected (in uncompress() and in "%lu") commit 8eaa1d90a47df52f5abefdd73b4fa64cdb26c59c Author: Sergei Golubchik Date: Mon May 26 20:41:10 2014 +0200 use ENUM not ULONG for innodb-compression-algorithm command-line option commit 50354951084c3bc95dffcfff59fee58d00237da4 Author: Sergei Golubchik Date: Mon May 26 20:31:03 2014 +0200 compilation failure on Windows VS doesn't like #ifdefs inside a macro expansion. move them outside commit 7e7e1bf8aa1a14cc5f12263ae1db2ab488239f63 Author: Sergei Golubchik Date: Mon May 26 20:27:14 2014 +0200 don't include the file that 1) not present everywhere 2) not used anyway commit 9ad97c4b1ef6a2d496d52f7708fcdccc53a6bc90 Author: Sergei Golubchik Date: Mon May 26 20:26:51 2014 +0200 temporarily disable lzo compression commit 45d389fb8416f5a5962eaff9bd6c09c28ee21e7b Author: Sergei Golubchik Date: Mon May 26 20:26:04 2014 +0200 lzo.cmake: don't use the same symbol for two different tests commit ac4d78432e8773df7be49954f92849164af0c4b1 Author: Sergei Golubchik Date: Sun May 25 17:20:15 2014 +0200 more files in .gitignore commit eef1201bcc0064480bf281e8cafa1b3e14dbaa04 Author: Sergei Golubchik Date: Sun May 25 17:17:50 2014 +0200 set version to 10.1.0 commit c2b9d993e33ac5099dfbde775af95e1400f40e87 Merge: a85186d7ab1 1016ee9d77e Author: Sergei Golubchik Date: Sun May 25 10:18:07 2014 +0200 Merge branch '10.1' of bzr::/usr/home/serg/Abk/mysql into 10.1 commit 86e73576dd2ccf7385ac0b5b7b3bbf6d656e71f4 Author: Nirbhay Choubey Date: Sun May 25 00:23:17 2014 -0400 Setting the "Standards-Version" in Debian control file back to 3.8.3. commit bd5ca5e6093046d7e69cc59f0950a7af2c0a7bf2 Author: Nirbhay Choubey Date: Sun May 25 00:18:26 2014 -0400 MDEV#6211: MariaDB-Galera-server uses 'socat', but 'socat' is not in the dependency list Added socat, grep, gawk, iproute, coreutils, findutils to the dependency list. commit 0f10b12b1c819e0653970ee8990d663cd9246179 Author: Nirbhay Choubey Date: Sun May 25 00:07:25 2014 -0400 MDEV#6211: MariaDB-Galera-server uses 'socat', but 'socat' is not in the dependency list Added socat, grep, gawk, iproute, coreutils, findutils to the dependency list. commit 1016ee9d77e8c9cd6e9bd114b808fff66f398255 Merge: 105060e3077 edf1fbd25b8 Author: Jan Lindström Date: Sat May 24 21:37:21 2014 +0300 Merge 10.0 -> 10.1 commit a85186d7ab1b46bea7379e1e45fedeb193cfbcc4 Author: Sergei Golubchik Date: Fri May 23 16:40:10 2014 +0200 split README into the actual README and third-party licenses commit a8e1fa173e1f8eadb49ac51050730c9212daa4cc Author: Sergei Golubchik Date: Thu May 22 11:08:14 2014 +0200 fix file_contents to pass with git commit 3e48269f2a268a3458c0b764d406d58627565d0c Author: Sergei Golubchik Date: Wed May 21 15:30:06 2014 +0200 git support in cmake files commit 05df71abd9c3844aeddfb7261ba71d19e56d94fe Author: Sergei Golubchik Date: Wed May 21 14:50:01 2014 +0200 remove support for per-plugin bzr repositories we don't have closed-source plugins commit 91128dd9f31cd3715744bc053adbf85380103d4a Author: Sergei Golubchik Date: Sat May 24 12:14:06 2014 +0200 remove now-obsolete "5.5+5.6 merge" TODO file commit c39a10bba38edde235abf49166813aa497e028d9 Author: Sergei Golubchik Date: Sat May 24 12:13:03 2014 +0200 add .gitignore commit 6d460760ebda2a7b42c039036497c1c5a18a522d Author: Jan Lindström Date: Fri May 23 08:20:43 2014 +0300 Fix compiler warnings. commit 105060e3077a30950bcefb7a05141176bdd25872 Author: Jan Lindström Date: Fri May 23 08:10:54 2014 +0300 Fix compiler warnings. commit ab4947463e68da1a01bd506f8f280ebdea3f1b46 Author: Nirbhay Choubey Date: Thu May 22 18:31:04 2014 -0400 Merging changes from maria-5.5-galera and some test fixes. bzr merge -r3479..3493 maria-5.5-galera commit 76c6cd033755f318abc547528d00b6f0f2aaefdb Author: Jan Lindström Date: Thu May 22 21:05:35 2014 +0300 Fixed compiler error if LZO is not installed. commit 192790e0e990d32177c61c8c041df25d8cab29ea Author: Jan Lindström Date: Thu May 22 21:03:26 2014 +0300 Fix compiler error if LZO is not installed. commit a64daceb5993cd4e80260e789de271b4d4f184af Author: Jan Lindström Date: Thu May 22 19:48:34 2014 +0300 Fixed compiler errors caused by merge error. commit ff3f63c31fd0be9e70dc5e7babbb71dc06fbc5e8 Author: Jan Lindström Date: Thu May 22 19:01:41 2014 +0300 Fix compiler errors caused by merge error. commit b5cdc5adcfbb0d4380604187192cd089dd3e11b1 Author: Jan Lindström Date: Thu May 22 16:31:31 2014 +0300 Fix some compiler warnings and small errors on code. commit d12dbe77e2328aa346443b22df70c37f78795de3 Merge: 9d399c9f35c 972a14b59a0 Author: Jan Lindström Date: Thu May 22 14:24:00 2014 +0300 MDEV-6246: Merge 10.0.10-FusionIO to 10.1. commit 0bf3ed12a5338f0db4b652f839fee93a28d39195 Author: Nirbhay Choubey Date: Wed May 21 18:10:43 2014 -0400 bzr merge -r4089..4091 codership/5.6 commit 0b98d2fd2ab337d95b6b502b15ea86368c441026 Author: Nirbhay Choubey Date: Wed May 21 17:07:17 2014 -0400 bzr merge -r4065..4088 codership/5.6 commit 0903e2b744f627f57a99edd5d2b6ffdec1ef4a03 Author: Nirbhay Choubey Date: Wed May 21 16:03:58 2014 -0400 Fix for a segfault. commit 645d4025449d960dd20e1e9b22b5d24d12b8a6af Author: Nirbhay Choubey Date: Wed May 21 15:16:15 2014 -0400 Fix for a build failure. commit 81a85ad8d702ddfaf91dc43b5a0bc78857759209 Author: Nirbhay Choubey Date: Wed May 21 15:04:13 2014 -0400 bzr merge -r3985..3991 codership/5.5 commit 99df0fbad5147b02ffed926f50cef11f9427e398 Author: Nirbhay Choubey Date: Wed May 21 14:32:57 2014 -0400 bzr merge -r3968..3984 codership/5.5 (non-Innodb changes only). commit 8a6f4e198a57491bac8cc2aac0f3d455a28d79cd Author: Nirbhay Choubey Date: Wed May 21 12:09:31 2014 -0400 Updated wsrep.variables result. commit 85971707723b45a3bc13d4ea27a7f8bdfe52c327 Author: Nirbhay Choubey Date: Wed May 21 11:59:33 2014 -0400 Added test for MDEV#4953. commit 2f90221ad49eb87b241ffcaf42e315c6a59ae1c3 Author: Nirbhay Choubey Date: Wed May 21 11:23:59 2014 -0400 Fixed a segfault issue by initializing thd's system_thread_info in wsrep applier threads, introduced by MDEV#6156. commit 086af8367ed2499adae378638225ceb14c85f046 Merge: 558995ad84c 1170a540601 Author: Nirbhay Choubey Date: Wed May 21 11:09:55 2014 -0400 bzr merge -r4209 maria/10.0. commit 972a14b59a0ec12b01c9a7f5c8867294fd4f40db Author: Jan Lindström Date: Fri May 16 15:30:13 2014 +0300 Code cleanup after review. commit 9d399c9f35ca5a85152adddc1c88a304f87f660c Author: Jan Lindström Date: Tue May 13 13:28:57 2014 +0300 MDEV-6075: Allow > 16K pages on InnoDB This patch allows up to 64K pages for tables with DYNAMIC, COMPACT and REDUNDANT row types. Tables with COMPRESSED row type allows still only <= 16K page size. Note that single row size must be still <= 16K and max key length is not affected. commit 50d1e45cd49f39231ea9cc87f7c4a17f1617fc2f Author: Nirbhay Choubey Date: Mon May 12 12:45:02 2014 -0400 MDEV#5925: New mariadb-galera-test packages Added logic for generation of 'galera' test packages. commit 558995ad84ca1348dfe681a8d111650225fcc205 Author: Nirbhay Choubey Date: Mon May 12 12:14:27 2014 -0400 MDEV#5942 (Issue 1), MDEV#5903 Updated MYSQL_ADD_PLUGIN cmake macro so that for wsrep builds (WITH_WSREP), components not specified explicitly under CPACK_COMPONENTS_ALL does not get packaged. This is to avoid generation of extra packages for wsrep (galera) build. commit 00b6fff2e7bedad1ecd270d9e86f991bed29482c Author: Nirbhay Choubey Date: Thu May 8 14:45:00 2014 -0400 MDEV#6206: wsrep_slave_threads subtracts from max_connections Decoupled wsrep thread count from connection count. By doing so, the number of wsrep threads (applier/rollbacker) would no longer affect the threads_connected status variable and thus maximum allowable user connections limit would be @@max_connections. Also introduced a new status variable 'wsrep_thread_count' to hold the number of wsrep applier/rollbacker threads. Added a test case. commit 0eb84da14712a9ca820533dbc1d911b3aead1658 Merge: b186575fc09 4a84ee1c250 Author: Sergey Petrunya Date: Thu May 8 13:09:15 2014 +0400 Merge 10.0 -> 10.1 commit 93a403bf1d8819a711d783a186bf226a01a6fcfd Author: Nirbhay Choubey Date: Sat May 3 23:53:19 2014 -0400 Fix for build failure when WITH_WSREP=OFF. commit 5ef55e2c1bd28f284706631334b8c3b158b86731 Author: Nirbhay Choubey Date: Sat May 3 12:58:40 2014 -0400 Added galera, wsrep suites to the default mtr suite list. commit 68a0f28defc772398312445d16e09570900fe27d Author: Nirbhay Choubey Date: Sat May 3 09:18:11 2014 -0400 MDEV-6204: wsrep_sst_rsync timeout when lsof is not installed * Added a check for lsof * Added rsync & lsof to debian dependency list. * Merged r3982 from codership-mysql/wsrep-5.5. commit 3061aa4ead8345cac36c2decb54fe617d6837f2b Author: Nirbhay Choubey Date: Thu May 1 19:19:48 2014 -0400 MDEV-6196 MTR: Do not hardcode path for libgalera_smm.so Introduced an environment variable WSREP_PROVIDER to point to the galera library. Updated the tests. commit bdeb847e9b00ffa4fb8c633632402f7de3922225 Author: Nirbhay Choubey Date: Wed Apr 30 15:40:00 2014 -0400 MDEV-6192 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1286: Unknown storage engine 'InnoDB' Removed 'loose-innodb' option from mysqld booststrap command in debian post-installation script. commit 4515a6d31e954194482cda99204792dcf9ab75a3 Author: Nirbhay Choubey Date: Mon Apr 28 10:33:22 2014 -0400 MDEV#6148 : Updating auto_increment_offset_func.result. commit d6afa8004ec48e4c25d5dfed804d0556cdec587f Author: Jan Lindström Date: Mon Apr 28 07:52:41 2014 +0300 Fixed small error on compression failure error text. commit 29466e2c85f2c1ab628237a3aca0bcf206d941ec Author: Nirbhay Choubey Date: Fri Apr 25 18:23:14 2014 -0400 * Adding wsrep_sst_xtrabackup-v2 to deb server files * Updated .bzrignore commit f36e3d0dab29a9b19662f94b02a81da63a7fde1a Author: Nirbhay Choubey Date: Fri Apr 25 16:14:22 2014 -0400 MDEV#6148 : Updating test result. commit 98519db3416562928c62fc2c05355f1f4ffd9208 Author: Nirbhay Choubey Date: Fri Apr 25 10:58:51 2014 -0400 MDEV#6171: Fix error message for split-brain Using my_message() (instead of my_error()) to send error message to the client. commit 2ab559023acc424a967037f50b7d149d821afb75 Author: Nirbhay Choubey Date: Thu Apr 24 22:52:07 2014 -0400 Fixing file paths in @TOKUDB_DEB_FILES@. commit b186575fc094edf5376e2ae32673d68ee4b2bf4d Merge: 0fcddbc2ae7 010971a761c Author: Igor Babaev Date: Wed Apr 23 23:14:29 2014 -0700 Merge 10.0->10.1 commit 2d340f9a677bb8dc24e9e1601c613a6c10f5c3c4 Author: Jan Lindström Date: Wed Apr 23 19:23:11 2014 +0300 Fixed bug on free buffer space calculation when LZO is used. Fixed bug on function call when InnoDB plugin is used. commit 1950457c14646b108bec1fadb40b75440c3a3d41 Author: Nirbhay Choubey Date: Mon Apr 21 21:45:19 2014 -0400 MDEV#6148 main.flush_read_lock fails due to conflicting read lock TOI was being attempted even when WSREP_ON was not enabled (off). So, with FTWRL in place TOI later gets aborted & thus the failure. Fixed by adding a check to skip TOI if wsrep is not enabled. commit b981c7a927f4a3721b4753d5fa73b966bf2eef96 Author: Nirbhay Choubey Date: Fri Apr 18 19:16:46 2014 -0400 Updated WSREP_PATCH_REVNO. commit dee153c1b8c8949b460a39b8ea8f6edef4795bd2 Author: Nirbhay Choubey Date: Fri Apr 18 16:56:44 2014 -0400 * Removed unnecessary duplicate script files. * Updated failing mtr tests. commit 11324465e099d73b668f558ec1ff360dfe006e5b Author: Jan Lindström Date: Fri Apr 18 07:51:52 2014 +0300 Merge lp:maria/5.5 up to mariadb-5.5.37 revision 4148. commit 43a9e655470182e17a8edf1eecb16a688d66e255 Author: Nirbhay Choubey Date: Thu Apr 17 14:10:22 2014 -0400 MDEV#6132: yum update for MGC-10.0 fails (10.0.7 -> 10.0.10) Fixed the incorrect sed command. commit 271ea3c86eb894fd46145b5c09610a76397a47f6 Merge: 2f46e5b9fc5 41a2ca5c166 Author: Jan Lindström Date: Thu Apr 17 08:22:54 2014 +0300 Merge lp:maria/10.0 up to mariadb-10.0.10 revision 4140. commit b11be0525527fb59f367d95744e8a422d2bddb98 Author: Nirbhay Choubey Date: Wed Apr 16 13:04:03 2014 -0400 MDEV#6079: xtrabackup SST failing with maria-10.0-galera Added logic to skip changing of case for wsrep status variable names. commit 2f46e5b9fc51f0c427634f935b7d922047023628 Author: Jan Lindström Date: Wed Apr 16 16:55:36 2014 +0300 MDEV-6070: FusionIO: Failure to create a table with ATOMIC_WRITES option leaves the database in inconsistent state, Analysis: Problem was that atomic writes variable had incorrect type on same places leading to fact that e.g. OFF option was not regognized. Furthermore, some error check code was missing from both InnoDB and XtraDB engines. Finally, when table is created we have already created the .ibd file and if we can't set atomic writes it stays there. Fix: Fix atomic writes variable type to ulint as it should be. Fix: Add proper error code checking on os errors on both InnoDB and XtraDB Fix: Remove the .idb file when atomic writes can't be enabled to a new table. commit fa18dc394406ad684ab2623e7451c9f3ec7adf08 Author: Jan Lindström Date: Wed Apr 16 13:08:29 2014 +0300 Merge lp:codership-mysql/5.5 -r3961..3980. commit 150e88e8c9b85e3e6ce500a91fd215d231e99881 Merge: 983366e0eef 142c20eda9d Author: Jan Lindström Date: Wed Apr 16 12:13:43 2014 +0300 Merge from lp:maria/5.5 to maria-5.5.37 release revision 4154. commit eec6222a894a298376e2f2f0636d2b3f5719210e Author: Nirbhay Choubey Date: Tue Apr 15 22:31:08 2014 -0400 Adding wsrep_sst_xtrabackup-v2 to the list of files in mariadb-galera-server package. commit df1ee18c272fd2b39543f42f56fc554934e60fb9 Author: Nirbhay Choubey Date: Tue Apr 15 22:16:11 2014 -0400 Fix for build failure. commit 99838736bc7bcbc1a0cfa5441d1ac15d6d34ef4c Author: Nirbhay Choubey Date: Tue Apr 15 14:27:45 2014 -0400 MDEV#6098 mysqldump sst fails on maria-10.0-galera * Removed the unnecessary call to wsrep_cleanup_progress_file, which was returning code 1 and eventually causing SST to fail. * Also initialized the unused WSREP_SST_OPT_CONF to avoid error message. commit 13c73c31c320877bb3a7b7035631ccdd6eee4c2a Author: Jan Lindström Date: Tue Apr 15 14:28:25 2014 +0300 Added support for LZO compression method. Removed: innodb_use_lz4 configuration parameter Added: innodb_compression_algorithm configuration parameter 0 = no compression, 1 = ZLIB, 2 = LZ4, 3 = LZO Fixed issue with incorrect trim calculations commit 24ad467d7f47bf67ca5358506918f12b54167ad5 Author: Nirbhay Choubey Date: Fri Apr 11 13:20:13 2014 -0400 MDEV#6077 : mysqldump sst fails on maria-10.0-galera * As @@have_csv has been removed from 10.0, this patch uses I_S instead to check for the availablilty of CSV engine. * Fixed the client version. commit 4a6f27ad166f741907492e8f360377dd1189dd4d Author: Nirbhay Choubey Date: Thu Apr 10 23:27:08 2014 -0400 Removing unnecessary extra copies of wsrep_sst_xxx scripts. commit 3afc4131124160a3f1b9911162370b658a45ca51 Merge: ba7f73f067b 9d911608f15 Author: Nirbhay Choubey Date: Wed Apr 9 13:50:06 2014 -0400 Local merge (mariadb-galera-10.0.10). commit 9d911608f15005be48dad55440e87a6982067233 Author: Nirbhay Choubey Date: Wed Apr 9 12:25:47 2014 -0400 Fixes for some test failures. commit 421326310168e2b0a83eddcf9520336e1d58ea42 Merge: 9d2e90f3796 41a2ca5c166 Author: Nirbhay Choubey Date: Tue Apr 8 10:36:34 2014 -0400 Merging mariadb-10.0.10. * bzr merge -rtag:mariadb-10.0.10 maria/10.0. commit ba7f73f067b3605ad265c541d71388d6909e40ef Author: Nirbhay Choubey Date: Wed Apr 2 22:35:12 2014 -0400 * Merging fix for lp:1224775 * Removing duplicate code commit 88765c3b4d7357ed5a063abb46cabf72c26e7b32 Author: Jan Lindström Date: Sat Mar 29 16:51:28 2014 +0200 Disable failing test cases that fail because of upstream. commit f4defb0b7b56f16ae7e8c2d94171d1fe68e3755b Author: Seppo Jaakola Date: Sat Mar 29 13:34:50 2014 +0200 References: lp:1299430 - initial support for tokudb replication in master-slave model commit 9d2e90f379654fb65c0eab006213d772302bcff7 Merge: 02ba2bfdb44 a500865c133 Author: Nirbhay Choubey Date: Fri Mar 28 08:26:08 2014 -0400 Merged revision 3471, 3472 & 3473 from maria-5.5-galera. commit 3b61030dc19cdd63e376db1db91f771051b1ac3a Author: Jan Lindström Date: Fri Mar 28 08:42:53 2014 +0200 Fix error on innodb_mtflush_threads parameter. commit 02ba2bfdb444531e6fe61716a4eaeab40e210bbd Merge: 09e30949456 c5f7486654d Author: Nirbhay Choubey Date: Thu Mar 27 16:26:00 2014 -0400 Merging revision from codership-mysql/5.5 (r3928..3968) and codership-mysql/5.6 (r4021..4065). - Also contains fixes for some build failures. commit a500865c133251416604255028802b550d6941a8 Author: Nirbhay Choubey Date: Thu Mar 27 16:22:57 2014 -0400 Merged revision 3471, 3472 & 3473 from maria-5.5-galera. commit 43c6c2ac775d4ebd1967bc3416137a7297d0fe7b Author: Nirbhay Choubey Date: Thu Mar 27 08:22:29 2014 -0400 Merged r3468 from maria-5.5-galera. commit 7fd382f117f48b2224296b03ce62686018ff702d Author: Nirbhay Choubey Date: Thu Mar 27 08:17:24 2014 -0400 Merged r3466 from maria-5.5-galera. commit 0b92fe9c188109c980444114f36bc56c119b84e7 Author: Jan Lindström Date: Thu Mar 27 12:21:16 2014 +0200 Fixed windows compiler errors. commit 8fb80a58bf83877c7fcdda38353bf3634f8691d8 Author: Seppo Jaakola Date: Thu Mar 27 10:56:11 2014 +0200 References lp:1280896 - merged the fix from wsrep-5.6 skipping secondary index dupkey checks for applier commit cd8c3b74bd79a4b815bafc67955f9cdf4dda0208 Merge: f761835b5c1 50273380397 Author: Jan Lindström Date: Thu Mar 27 10:00:30 2014 +0200 Fix bug https://code.launchpad.net/~laurynas-biveinis/percona-server/bug1295268 (Inadequate background LRU flushing for write workloads with InnoDB compression). If InnoDB compression is used and the workload has writes, the following situation is possible. The LRU flusher issues an LRU flush request for an instance. buf_do_LRU_batch decides to perform unzip_LRU eviction and this eviction might fully satisfy the request. Then buf_flush_LRU_tail checks the number of flushed pages in the last iteration, finds it to be zero, and wrongly decides not to flush that instance anymore. Fixed by maintaining unzip_LRU eviction counter in struct flush_counter_t variables, and checking it in buf_flush_LRU_tail when deciding whether to stop flushing the current instance. Fix provided by: Laurynas Biveinis (Percona) Added test cases for new configuration files to get mysql-test-run suite sys_vars to pass. Fix some small errors. commit 502733803979e2109b6dcdcb3d8c5a0ddd6d2363 Author: Jan Lindström Date: Thu Mar 27 09:35:24 2014 +0200 Fix bug https://code.launchpad.net/~laurynas-biveinis/percona-server/bug1295268 (Inadequate background LRU flushing for write workloads with InnoDB compression). If InnoDB compression is used and the workload has writes, the following situation is possible. The LRU flusher issues an LRU flush request for an instance. buf_do_LRU_batch decides to perform unzip_LRU eviction and this eviction might fully satisfy the request. Then buf_flush_LRU_tail checks the number of flushed pages in the last iteration, finds it to be zero, and wrongly decides not to flush that instance anymore. Fixed by maintaining unzip_LRU eviction counter in struct flush_counter_t variables, and checking it in buf_flush_LRU_tail when deciding whether to stop flushing the current instance. Added test cases for new configuration files to get mysql-test-run suite sys_vars to pass. Fix some small errors. commit 09e3094945694277a550cccc8bd1fd11338474b1 Merge: c509f48b8e9 71dafbf9c2c Author: Nirbhay Choubey Date: Wed Mar 26 15:17:51 2014 -0400 Merging wsrep specific changes from InnoDB to xtradb (r3683..3808). commit c509f48b8e9cd0714154722aee2c9b8e62d1bc94 Merge: 7b57c5ea6f1 90e4f7f9d3f Author: Nirbhay Choubey Date: Wed Mar 26 14:32:51 2014 -0400 Merging mariadb-10.0.9. * bzr merge -rtag:mariadb-10.0.9 maria/10.0. commit 90e4f7f9d3f2669ac99f2817f884315bfc86b0a7 Merge: 586fab72f01 5b7cab82195 Author: Nirbhay Choubey Date: Wed Mar 26 14:27:24 2014 -0400 * bzr merge -rtag:mariadb-10.0.9 maria/10.0 * Fix for post-merge build failures. commit c5f7486654d7fd4941b202735799f9a7ec3c15eb Author: Nirbhay Choubey Date: Wed Mar 26 14:13:12 2014 -0400 bzr merge -r4062..4065 codership/5.6 commit 71dafbf9c2cae382c5174bd3ce73472b97013d62 Author: Nirbhay Choubey Date: Wed Mar 26 14:04:50 2014 -0400 Merging InnoDB changes to xtradb (r3783..3808). commit b5871a51e99f2d591e944590f2e2332275064d07 Author: Nirbhay Choubey Date: Wed Mar 26 11:12:38 2014 -0400 * bzr merge -r4027..4061 codership/5.6 * Merged Innodb changes to xtradb commit 7d892f69a565e583eb692d01e2e80a158ee795fe Author: Nirbhay Choubey Date: Tue Mar 25 23:13:30 2014 -0400 bzr merge -r4021..4026 codership-mysql/5.6. commit 0a6924a3f30b1cf478ddd22c4fbb6e8fcba8c84d Author: Nirbhay Choubey Date: Tue Mar 25 17:02:57 2014 -0400 Updated WSREP_PATCH_REVNO. commit 899f9801d4466a6ecccd32a34a38aaf19019e39a Author: Nirbhay Choubey Date: Tue Mar 25 17:01:05 2014 -0400 bzr merge -r3946..3968 codership/5.5 commit f761835b5c13158fd958a5239b346daa09b06cc6 Author: Jan Lindström Date: Tue Mar 25 21:31:27 2014 +0200 Fix candidate for XtraDB and row compressed tables. commit 3088d52c20eca10e5b8689648edef8f7fd49830a Author: Nirbhay Choubey Date: Tue Mar 25 14:42:15 2014 -0400 bzr merge -r3933..3945 codership/5.5 (Non-InnoDB changes only). commit 3c0b3babd9fdaa6d6697289368022cc152c77593 Author: Nirbhay Choubey Date: Tue Mar 25 13:39:12 2014 -0400 bzr merge -r3928..3932 codership/5.5 commit 586fab72f01e1c7f0f8bf363fa6b06a2f10965b4 Author: Nirbhay Choubey Date: Mon Mar 24 16:40:24 2014 -0400 Merging deb/rpm script changes from maria-5.5-galera. commit a81f8fd5804e84b0679fe11a079d2ced641ee1f6 Author: Jan Lindström Date: Sat Mar 22 11:30:03 2014 +0200 Fix test cases to contain new status variables introduced. commit 6a756b3a44cbe849a3a5a41b0e134e820d567c6d Author: Jan Lindström Date: Fri Mar 21 15:46:36 2014 +0200 Code cleanup: Removed some unnecessary outputs from standard builds (available on special builds UNIV_PAGECOMPRESS_DEBUG and UNIV_MTFLUSH_DEBUG). Added a new status variable compress_pages_page_compression_error to count possible compression errors. commit 983366e0eef50b95329bcba154ee4fb38b85df3c Author: Nirbhay Choubey Date: Thu Mar 20 18:33:23 2014 -0400 MDEV#5903 mariadb-galera tree builds too many rpm packages Modified the components list to make sure that only server package gets generated. commit 7b57c5ea6f1fda5100ce4a5fb61ee63e8a153d0f Author: Seppo Jaakola Date: Thu Mar 20 16:03:20 2014 +0200 References: https://mariadb.atlassian.net/browse/MDEV-5908 - moved releasing of wsrep THD mutex and thd->awake later, so that wsrep->abort_pre_commit() is guaranteed to run for a thread which is still in conflict state commit 4154f3aa058ee4fb7a7633874038c122a5e8985a Author: Nirbhay Choubey Date: Fri Mar 14 17:54:53 2014 -0400 Modified debian scripts to make galera packages self-contained. commit 8a99be643c36c0b5e1c7c2e5bd553118fe1b2ec8 Author: Nirbhay Choubey Date: Fri Mar 14 17:52:55 2014 -0400 Modified debian scripts to make galera packages self-contained. commit ff0f41974c92fc11f338da461113705c20dd3f23 Author: Nirbhay Choubey Date: Thu Mar 13 11:56:37 2014 -0400 Debian script fixes. commit d395440d0f63314894eb11b5f53408c0036d14cf Author: Nirbhay Choubey Date: Thu Mar 13 11:51:31 2014 -0400 Debian script fixes. commit 3ea72a2ba9deb9e3da7efe57a74ce9b34b346dfd Author: Jan Lindström Date: Wed Mar 12 14:47:38 2014 +0200 Removed options innodb_compress_index_pages and innodb_trim_pct. Both are unnecessary. There is a lot more index pages than there is normal pages. Earlier all pages were compressed and this provided best performance and compression ratio. Added status variable to show how many non index pages are written. commit 57ba177dafef33bac544498e66bfd705e6cfc476 Author: Nirbhay Choubey Date: Tue Mar 11 23:12:18 2014 -0400 MDEV#5812 Memory leaks while running mysqld in bootstrap mode Added calls to deinit functions at appropriate places. commit 0fcddbc2ae77a33908a11b097a731804f8d2a258 Author: Jan Lindström Date: Tue Mar 11 13:49:52 2014 +0200 Added multi-key unique test case. commit 4e02c2fe568b43c675dc154976b5499a32c14eae Author: Jan Lindström Date: Tue Mar 11 13:40:29 2014 +0200 MDEV-5335: Force PK option. Added a new dynamic configuration variable innodb_force_primary_key default off. If option is true, create table without primary key or unique key where all keyparts are NOT NULL is not accepted. Instead an error message is printed. Variable value can be changed with set global innodb_force_primary_key = . commit e7df30b8dd704adf569744612504ef38905418fb Merge: c556b9d8176 5b7cab82195 Author: Jan Lindström Date: Tue Mar 11 07:57:54 2014 +0200 Merge lp:maria/10.0 up to revision 4040 = MariaDB 10.0.9 RC commit c556b9d8176107ba892ac218dd72e35d53e0c4f9 Author: Jan Lindström Date: Fri Mar 7 08:20:43 2014 +0200 Changed so that innodb_compress_index pages means that if true also index pages are compressed if false index pages are not compressed. Fixed small output error when page_compression_level was incorrectly given. commit 67cb55c51d5bfa8b0cd15356ab536d5f9be6a66f Merge: 3a4b8879e52 b95c8ce530c Author: Jan Lindström Date: Fri Mar 7 07:42:28 2014 +0200 Merge lp:maria/10.0 up to revision 4032 (10.0.9). commit 653ef22336a5c14404b9690bb44df702292463b2 Author: Nirbhay Choubey Date: Thu Mar 6 18:44:16 2014 -0500 MDEV#5687: Maria doesn't shutdown following upgrade to 5.5.35-galera Restored patch for MDEV#4136 and added a test. commit 27c09524eb8223f787e9d4322b3c6c939dbc767a Author: Nirbhay Choubey Date: Tue Mar 4 22:10:28 2014 -0500 MDEV#5790 : SHOW GLOBAL STATUS LIKE does not show the correct list of variables when using "_" Fixed the type for offending "wsrep", wrongly set to SHOW_SIMPLE_FUNC. Added a test case. commit 3a4b8879e5250eeac3e0a6c770fdf235111c8171 Author: Jan Lindström Date: Tue Mar 4 20:12:32 2014 +0200 Set index page page compression on by default and remove innodb_trim_pct as it is not used/implemented. commit d64fa1d65180afa24d5bbe32d595618faeefb58f Merge: 7322270a051 5ec49e6452d Author: Jan Lindström Date: Tue Mar 4 18:56:18 2014 +0200 Additional merge to lp:maria/10.0 commit 7322270a0514883b62f4148e6acc039a5e1b7fd9 Author: Jan Lindström Date: Tue Mar 4 17:14:08 2014 +0200 Set actual compressed page size also on read code path to buffer pool so that we can later use it to avoid unnecessary trim operations. commit fd38dca5d580eafcdd6c521be686601d5efa4c85 Author: Jan Lindström Date: Mon Mar 3 18:14:29 2014 +0200 Fixed a hang. The core issues is with the heap-thrashing by the individual queue's. Tried to minimize memory allocation from heap whenever it is unnecessary. commit 81318f04c8dd935d994d5ade3aed95f0059d5a83 Author: Jan Lindström Date: Mon Mar 3 15:51:54 2014 +0200 Yet more windows fixes. commit e656a8a92791944420c3793f6686357f584788bf Author: Jan Lindström Date: Mon Mar 3 15:43:38 2014 +0200 Fix windows os_file_write. commit b8e0bc3a67557290aaee67e9b6f59b782eebd59e Author: Jan Lindström Date: Mon Mar 3 15:26:58 2014 +0200 Additional windows fixes. commit 6cde211d8ddefb98945904967cb028d6e3844bd0 Author: Jan Lindström Date: Mon Mar 3 15:15:00 2014 +0200 Fix typo. commit ec45160e3b8cb5fb4dc1118fc7c539f5f256d85c Author: Jan Lindström Date: Mon Mar 3 15:02:39 2014 +0200 Fix windows compiler erros. commit be50724d89d141360472326f4fad006ba6e377b7 Author: Jan Lindström Date: Mon Mar 3 14:45:45 2014 +0200 Fix compiler error on windows. commit 96100d6652831d6423cc59bb3f065ab7f6f0cf85 Merge: b67892cf598 4b3cf4aa268 Author: Jan Lindström Date: Mon Mar 3 14:27:56 2014 +0200 Merge: lp:maria/10.0 latest. commit b67892cf59872867514709784c54526434784ea9 Author: Jan Lindström Date: Mon Mar 3 12:34:33 2014 +0200 Turn all new features off by default. commit 689aaab0f8d5ac98a08bc33b3e2edc3c2cd0fcf6 Author: Nirbhay Choubey Date: Fri Feb 28 23:15:35 2014 -0500 MDEV#5552 Deadlock when inserting NULL column value in column with UNIQUE index References: lp:1276424 commit c3a2394641e2f7b199977bcf699ad64c1bb1367f Author: Nirbhay Choubey Date: Fri Feb 28 13:56:08 2014 -0500 * Merged revisions 3945, 3946..3950, 3951..3961 from codership-mysql/5.5. * Merged changes in innobase to xtradb. * Updated WSREP_PATCH_REVNO. commit e667c0f926deaa7ce7f093cd4679431599c55b1f Author: Jan Lindström Date: Fri Feb 28 09:05:36 2014 +0200 Fix compiler error. commit c88a0d48c6624466d058282bf7e2e8279660564e Author: Jan Lindström Date: Fri Feb 28 08:53:09 2014 +0200 Temporal fix for flush thread hang. Added option to disable multi-threaded flush with innodb_use_mtflush = 0 option, by default multi-threaded flush is used. Updated innochecksum tool, still it does not support new checksums. commit 87910f7d30fa5208fc98638e954f6e5356d43ecb Author: Nirbhay Choubey Date: Thu Feb 27 17:56:28 2014 -0500 MDEV#5759 Init script contains syntax error Fixed the init script. commit b620e7368f05af52f3fa1a759bc446140baf7b56 Author: Jan Lindström Date: Wed Feb 26 19:00:24 2014 +0200 Small fixes to work_item handling. commit ae6e1548cbda6cb1509f84edb57786c9520a7a6e Merge: e36fe045c03 ff2e82f4a17 Author: Nirbhay Choubey Date: Tue Feb 25 17:49:41 2014 -0500 Merge from maria/5.5 (-rtag:mariadb-5.5.36). commit e36fe045c03038b3bc2d9d21b4bbce66077985f5 Author: Nirbhay Choubey Date: Tue Feb 25 13:13:39 2014 -0500 Added MTR support for galera. * include/galera_cluster.inc : Configures galera cluster with 2 nodes. * include/galera_init.inc : Opens named connection with all the nodes. * include/galera_end.inc : Closes all the connections. * include/galera_connect.inc : Opens a named connection with a single node. * include/galera_diff.inc : Runs a specified SQL query on all the nodes and diffs the output. commit 24235e99d83170f1802875f020179cc5dcda3182 Author: Jan Lindström Date: Tue Feb 25 13:15:55 2014 +0200 Fixed memory leak on queue nodes by using local memory heap on normal execution and global memory heap on shutdown. Added a funcition to get work items from queue without waiting and additional info when there is no work to do for a extended periods. commit 38471a6d6aa6ed96cac056794a1c5ee22d861c93 Author: Jan Lindström Date: Fri Feb 21 12:51:03 2014 +0200 Remove incorrect trim_len calculation. We have already alligned actual page data write. commit 3c7714301718cc1b18847829582b3e3b71be940e Author: Jan Lindström Date: Fri Feb 21 10:20:18 2014 +0200 Write size was not correctly alligned to SECT_SIZE. This lead to situation where trim corrupted the database. Fixed the issue and added temporal guards against unalligned write/trim. commit 6e3fc511c452f075f61f01c156d96a95654420ca Author: Nirbhay Choubey Date: Thu Feb 20 13:49:50 2014 -0500 MDEV #5682 : Incompatible galera / mariadb-galera-server version on Debian Updated galera package version to >=25.2 in Debian/Ubuntu control files. commit fc86a1f4af2f4ff1314953617769b1126ad70c4f Author: unknown Date: Thu Feb 20 09:28:18 2014 +0200 Make tokudb working with 10.1 commit 5de274c43b82cd0eaab606bf6a02e687f5c81f43 Author: Nirbhay Choubey Date: Wed Feb 19 13:59:10 2014 -0500 Fixed install_macros.cmake to set the correct destination for documentation. commit 24bc0314c2b8ba373d970f15d5fba52c02cd01d2 Author: Jan Lindström Date: Wed Feb 19 20:25:55 2014 +0200 Removed unnecessary memory initialization of page compressed buffer and added guard against unalligned trim size. commit 25318038a92872492036e8eb5da9363f22d1b7c2 Author: Jan Lindström Date: Sat Feb 15 09:51:06 2014 +0200 Fixed hang seen on TPC-C measure phase. We should not use timedwait on threads waiting for a job. They should sleep and let other threads to their work. At shutdown, we know that we put "work" and that is handled as soon as possible. commit e6a7a3804d05570d061c05756f3262dab364ce02 Author: Nirbhay Choubey Date: Fri Feb 14 17:03:44 2014 -0500 * mysqld_safe could not start server as it failed trying to perform wsrep position recovery. Fixed by correcting the erroneous mysqld command by properly quoting it. * Merged the changes made to Ubuntu rules in previous revision to Debian rules. commit 8e476e6cbe313fadb6e0cd4402ff8c9d2d487406 Author: Nirbhay Choubey Date: Fri Feb 14 11:38:46 2014 -0500 MDEV#5534: mysql_tzinfo_to_sql generates wrong query mysql_tzinfo_to_sql tries to set wsrep_replicate_myisam as SESSION variable, while its a GLOBAL-only system variable, and thus the resulting sql would fail to load. Fixed by changing the scope to GLOBAL in the SET command. Also added following include files to facilitate testing : * include/have_wsrep.inc * include/not_wsrep.inc * include/have_wsrep_enabled.inc commit cae21c52f604ba804f07f858edae5a930978d820 Author: Jan Lindström Date: Fri Feb 14 15:02:26 2014 +0200 Fix timing on queues, this could clearly lead to starvation. commit 9564537cb1a4bfeabd073705fa9359e98fb69145 Author: Nirbhay Choubey Date: Thu Feb 13 09:33:04 2014 -0500 Fixes in debian distribution files. commit 9c614665ee78028b9cf2edfe043373b4f6f0ff3e Author: Jan Lindström Date: Thu Feb 13 12:35:37 2014 +0200 Fixed compiler warnings. commit dfc295035609c669e699f1df07d60495d6b8dbb0 Author: Jan Lindström Date: Thu Feb 13 12:23:55 2014 +0200 Fixed small issue with dictionary. commit d17ecff410180adf96dcd7f261157d52e7f62af2 Author: Jan Lindström Date: Thu Feb 13 09:13:56 2014 +0200 Fixed issue on data dictionary corruption. Fixed issue on multi-threaded flush at shutdown. Removed unnecessary startup option innodb_compress_pages. Added a new startup option innodb_mtflush_threads, default 8. commit da927da04def025f91f6d71172d6b525513a6cd7 Author: Jan Lindström Date: Wed Feb 12 18:00:03 2014 +0200 Fixed issue on atomic writes and system tables. Atomic writes can be used also on system tables but not per table. commit 1fa19bf777cb435e6630694fae029802260b5f6d Author: Jan Lindström Date: Wed Feb 12 12:52:34 2014 +0200 Fixed issue on atomic writes setup and atomic blobs setup on system tables. commit f6ad325883dafdcdf1645d198bfe1a59e5a2b44b Author: Jan Lindström Date: Wed Feb 12 10:55:45 2014 +0200 Code cleanup. Removed those questions that are now addressed. commit 184e302ab471ebf47662221eba883cb47a3fa84c Author: Jan Lindström Date: Wed Feb 12 07:09:06 2014 +0200 Fix compiler error if lz4 is not found on the system. commit fa9f5f63e918a557150e1e940ff0e8ea9ca09dc6 Author: Jan Lindström Date: Tue Feb 11 20:05:09 2014 +0200 Removed unnecessary files and set lz4 under HAVE_LZ4 compiler option using cmake find_library. Fixed bunch of compiler warnings. commit b0ad00df2716283f0e6e3e10084f537cbbd107e6 Author: Jan Lindström Date: Tue Feb 11 15:03:42 2014 +0200 MDEV-5644: Assertion failure during lock_cancel_waiting_and_release. Analysis: In wsrep case there is two transactions possible trx and conflicting lock owning transaction. Code was handling trx mutexin correctly but not for c_lock->trx case. Fixed by taking clock-trx mutex when needed and releasing trx mutex if it is taken at lower levels. commit e0f0f5f6d0b983619a67725c6a3351c31a547852 Author: Nirbhay Choubey Date: Mon Feb 10 23:54:18 2014 -0500 Reverting the change erroneously got introduced during merge. commit 65f2f289d106efbfa73002d10294ff22e7af834a Author: Nirbhay Choubey Date: Mon Feb 10 09:22:24 2014 -0500 MDEV#5626 : Cannot install InnoDB/XtraDB plugin (undefined symbol: wsrep_md5_update) Refactored wsrep's md5 related code so that Innodb/xtradb no longer relies on mysys_ssl for md5 implementation. commit aaf3063d0d504c718e079c89158c6f2ad4a4478a Author: Nirbhay Choubey Date: Fri Feb 7 09:14:43 2014 -0500 Dummy empty revision (to trigger bb). commit a5cf3a800e20e86a4469dff659e68cc1b21263e5 Author: Jan Lindström Date: Fri Feb 7 15:31:31 2014 +0200 Merged latest mt-flush code to xtradb. Cleaned up thread statistic output code. commit 18353c6a4d8241ea45aeabb4a606953531c3c9dd Author: Jan Lindström Date: Thu Feb 6 17:49:55 2014 +0200 Fixed issue on file space extension. File space should be extended from current offset to desired size if posix_fallocate is used. commit 7f3950a2aedd55b299735645882b48917a380be3 Author: Jan Lindström Date: Thu Feb 6 17:25:26 2014 +0200 Moved mt-flush code to buf0mtflu.[cc|h] and cleaned it up. This is for InnoDB. commit 195e08940e7ae713ecc6fc22c0ccb8328840d262 Author: Sergey Petrunya Date: Thu Feb 6 00:14:15 2014 +0400 Change version number to 10.1 commit 921d87d47c779240ea30aec01fbfcab888e98261 Author: Jan Lindström Date: Wed Feb 5 15:32:29 2014 +0200 Fixed issue on xtradb shutdown merge error. Multi-threaded flush threads where not shut down properly. commit 4cb029b38b914751926c472a3a944fc0e84533be Author: Nirbhay Choubey Date: Wed Feb 5 00:28:11 2014 -0500 * Merged the missing revision 3934 from codership-mysql/5.5 (missed in the last merge). * Merged changes from Innodb to xtradb. * Updated WSREP_PATCH_REVNO commit 862b0344880524bfde91b8361ccbdc99eac62a6d Author: Jan Lindström Date: Tue Feb 4 20:08:59 2014 +0200 Fixed compiler errors. commit 55fab3dbf413d663b66e6c4d147a0395c18068c2 Author: Jan Lindström Date: Tue Feb 4 14:52:02 2014 +0200 Fixed issue on atomic writes on startup, removed incorrect assert. Fixed issue on file space extend when posix_fallocate is used. Merged second iteration of multi-threaded flush code. commit 7ca53d947959fe420c28400c621f427b3008fe19 Author: Nirbhay Choubey Date: Mon Feb 3 22:55:46 2014 -0500 Merging revisions 3934..3944 from codership-mysql/5.5. commit 324544ea64e0a0c7e3dec836cb72d47e6033543a Author: Nirbhay Choubey Date: Mon Feb 3 17:14:38 2014 -0500 Fix for main.commit test. commit 8c5d5bc5de135ed143bfe91c99fd53a8c9b4487c Author: Jan Lindström Date: Mon Feb 3 10:08:15 2014 +0200 Fixed merge error on InnoDB page compression level handling. Merged page compression feature to XtraDB storage engine. Added feature where page compression can use lz4 compression method (innodb_use_lz4, default OFF). commit 4d254ef4f20855d3b72a0a660aa17c3fcdc57a03 Author: Nirbhay Choubey Date: Thu Jan 30 20:27:01 2014 -0500 * Fixed debian dist file names. * Fixed failing test results. * Updated tztime.cc (lp:1161432). commit 30b6b39d0b388dc13cbb75aabc539409f19e2f0f Author: Nirbhay Choubey Date: Thu Jan 30 19:08:00 2014 -0500 Updating test result. commit 4a6be51f78e79b1ee5bc0442b7af8b3108a64512 Author: Nirbhay Choubey Date: Thu Jan 30 12:45:38 2014 -0500 * Merged revisions: 3431, 3435..3457, 3459, 3460 from maria-5.5-galera. * Fixed Debian/Ubuntu dist files. * Fixed some compiler warnings. commit ecc2c96c9d9b0fb5d94a1203d3ffa1a2d6c036b7 Merge: d2c72da6100 6b6d40fa6ca Author: Nirbhay Choubey Date: Wed Jan 29 19:00:43 2014 -0500 Merge of maria/5.5 into maria-5.5-galera. bzr merge -r tag:mariadb-5.5.35 maria/5.5 commit 5b6a4f25a566f967e8b1010998a22256bd045511 Author: Jan Lindström Date: Wed Jan 29 08:54:17 2014 +0200 Fixed issue on wsrep_kill_victim mutexing order error. Furthermore, fixed merge errors found on mysql-test suite testing. commit 86d470386b4d5728c9c6af009884774ef0a814b4 Author: Jan Lindström Date: Tue Jan 28 09:48:51 2014 +0200 Fixed issue with extra status lines Wsrep_local_bf_aborts at SHOW GLOBAL STATUS LIKE 'x'; where x != wsrep_local_bf_aborts by changing it as SHOW_SIMPLE_FUNC from SHOW_FUNC. commit febe99ec8d6b30236982a127fd5d194a7deceb44 Merge: 58ce55134f6 02765f4c614 Author: Jan Lindström Date: Mon Jan 27 13:00:36 2014 +0200 Merge lp:maria/10.0 10.0.7 revision 3961 commit d43afb8828e358f9c3bb690d0fdcd88b0637f155 Merge: d0f77b83611 02765f4c614 Author: Jan Lindström Date: Sat Jan 25 11:02:49 2014 +0200 Merge MariaDB-10.0.7 revision 3961. commit d2c72da610074afe95959094a11f95b29a741f29 Author: Nirbhay Choubey Date: Thu Jan 23 15:57:47 2014 -0500 The bzr revision visible in @@version_comment should represent the last merged revision from codership branch and not the revision of the MGC tree itself. Fixed by adding a cmake variable to hold the revision number of last merged revision from codership branch. commit d0f77b83611077344ff29db02ea5593c9da62537 Author: Jan Lindström Date: Mon Jan 20 12:17:31 2014 +0200 Fixed issue with retrying autocommitted transactions. We might need to clean up the explain structure in this case. commit caa1b783bd398dad8ec8f3a93fc97d8194998e86 Author: Seppo Jaakola Date: Fri Jan 17 13:55:09 2014 +0200 Fixed one compiler warning in wsrep_applier.cc commit a8dbf680e6228c58afc1ef28628d088879614a0d Author: Seppo Jaakola Date: Fri Jan 17 13:28:43 2014 +0200 Added missing files commit 58ce55134f6d7b21d38c356f448d8464b52bb983 Author: Jan Lindström Date: Mon Jan 13 15:02:31 2014 +0200 Removed some unnecessary assertions to debug build and enhanced the page_compression and page_compression_level fetch. commit ec8257216e5b25ed82d63f074254b9454e0a0df3 Author: Jan Lindström Date: Fri Jan 10 12:11:36 2014 +0200 Enhancement: Change atomic_writes table option to enum type. Now every file can either use atomic writes, not use it or use default. SYNTAX: ATOMIC_WRITES=['DEFAULT','ON','OFF'] Idea here is to be able to define innodb_doublewrite = 1 but with following rules: ATOMIC_WRITES='DEFAULT' - if innodb_use_atomic_writes = 1, we do not write to doublewrite buffer the changes if innodb_use_atomic_writes = 0, we write to doublewrite buffer ATOMIC_WRITES='ON' - do not write to doublewrite buffer ATOMIC_WRITES='OFF' - write to doublewrite buffer Note that doublewrite buffer can't be used if innodb_doublewrite = 0. commit 9d5c3731be1395bd19329443e680db11545bb5c4 Author: Nirbhay Choubey Date: Thu Jan 9 23:22:10 2014 -0500 Fixes for some compiler warnings. commit 31eaa90a6ef767b4f846bfe454892979200003a1 Author: Nirbhay Choubey Date: Thu Jan 9 14:54:57 2014 -0500 Merging revision 3839..3932 from codership-mysql/5.5. commit 2b5a0a22802a0069f318f7d23a1071a703930c90 Author: Jan Lindström Date: Thu Jan 9 12:33:29 2014 +0200 Feature: In first write if we trim we set write_size to actual bytes written and rest of the page is trimmed. In following writes there is no need to trim again if write_size only increases because rest of the page is already trimmed. If actual write size decreases we need to trim again. Need to research if this can happen frequently enough to make any effect. commit e80f2468b468540c27e9b7174769262297bffc13 Author: Jan Lindström Date: Thu Jan 9 08:30:09 2014 +0200 Fixed issues with atomic writes and compressed pages. Temporal solution: In directFS using atomic writes we must use posix_fallocate to extend the file because pwrite past end of file fails but when compression is used the file pages must be physically initialized with zeroes, thus after file extend with posix_fallocate we still write empty pages to file. commit f6a196555e639489a7e1987eb88c67827f468a9d Author: Jan Lindström Date: Fri Dec 20 08:59:34 2013 +0200 Temporally disable posix_fallocate on os_file_set_size because currently Fusion-io SSD drive does not support setting file size without fysically writing pages with zeroes when fallocate with PUCH_HOLE is used. Added additional error message if atomic write setup does not succeed. commit f023715fe8c3bc7c60f65cfd58e4980b4cc89560 Author: Jan Lindström Date: Fri Dec 20 06:50:58 2013 +0200 Need to disable fast file extension with posix_fallocate for Fusion-io currently. commit 9ba590930a94e7cdbd3a7c3f34702fa588fd504e Author: Jan Lindström Date: Thu Dec 19 18:04:26 2013 +0200 Atomic writes require also atomic_blobs. Add that missing flag to dictionary setting and from there it will be stored to table space. commit 5e55d1ced52c52fb2f0508e1346059901a85960f Author: Jan Lindström Date: Thu Dec 19 14:36:38 2013 +0200 Changes for Fusion-io multi-threaded flush, page compressed tables and tables using atomic write/table. This is work in progress and some parts are at most POC quality. commit 088c069462d4a5cf26e97690e045fc3e737453a3 Author: Sergei Golubchik Date: Wed Dec 11 21:09:18 2013 +0100 fix debian builds commit ea6f92662c6ad3db3745aacb80dd162930c88cd8 Author: Jan Lindström Date: Wed Dec 11 10:45:49 2013 +0200 MDEV-5430: Debian MariaDB-Galera packages do not get built in buildbot [Part 4] Missed one file name change. commit 92a15782f9b4f1100cf121294237cf0f643bf734 Author: Jan Lindström Date: Wed Dec 11 09:38:21 2013 +0200 MDEV-5428: Debian MariaDB-Galera packages do not get built in buildbot [Part 3] Missed one lintian rule. commit 48e83ba6f79a042022c1949772e999ddb4fd10c4 Author: Nirbhay Choubey Date: Tue Dec 10 22:11:42 2013 -0500 * Updated auto_increment_xxx_func.result to reflect the changes made by https://bugs.launchpad.net/codership-mysql/+bug/587170 * Fix for some compiler errors/warnings. commit e1ed3dcebf649a540a8a5fd6293ef1494757fb38 Author: Nirbhay Choubey Date: Tue Dec 10 11:30:23 2013 -0500 MDEV#5407, MDEV#5386, MVED#4222 Problem: As, wsrep_provider is dynamic and can accept a valid provider while server is running. Patch for #4222 wrongly skips the initialization of binlog plugin during server start, when wsrep provider is not specified. In wsrep build, if opt_log_bin is not provided, we still init binlog with wsrep_emulate_bin_log ON. Fix: This patch fixes #4222 by adding a check to return from binlog_savepoint_set without proceeding further if wsrep_on is OFF/false. This patch also fixes MDEV#5407 and reverts changes pushed for MDEV#5386 (no longer valid). commit 3ad45220bc848e6cb5a06cbd71fdfb6970b5f3a4 Author: Jan Lindström Date: Tue Dec 10 17:45:02 2013 +0200 Additional name fixes. commit 170c3c2b213a29b90aa948e1879cae334d48b1e7 Author: Jan Lindström Date: Tue Dec 10 10:34:41 2013 +0200 MDEV-5423: Debian MariaDB-Galera packages do not get built in buildbot [Part 2] Fix: Server name is mariadb-galera-5.5 commit ded756c90dd92ddc656d92ea29fd66a3c7181767 Author: Jan Lindström Date: Tue Dec 10 10:14:43 2013 +0200 MDEV-5408: Crash in mariadb-wsrep during plugin load at startup Analysis: If wsrep_provider is not specified ("none") the wsrep is not initialized. Fix: Add additional guard not to call wsrep->post_rollback if wsrep_provider is not specified. commit 3df2aa9458dae45b7b9667672da30252d1a75ce1 Author: Jan Lindström Date: Thu Dec 5 19:22:00 2013 +0200 MDEV-5385: Debian MariaDB-Galera packages do not get built in buildbot Analysis: File names were incorrect for distribution files. Fix: Fixed file names to be same as in 5.5. commit af2bb9de9d71dd55f2e4a36ef18ca22a018515e5 Author: Nirbhay Choubey Date: Sat Dec 7 12:30:53 2013 -0500 Fix for a failing test. commit 8acebe6d639500d90288a34c6d0cbc217fe2f1ca Author: Nirbhay Choubey Date: Thu Dec 5 10:59:18 2013 -0500 MDEV#5384: Update init script in MariaDB Cluster Reduced the sleep time to 10secs. commit f41ee56df7b7cd841a2d9ac6a753f752742cd2ee Author: Jan Lindström Date: Thu Dec 5 14:53:22 2013 +0200 MDEV-5386: Server crashes in thd_get_ha_data on maria-5.5-galera tree while running 'check testcase before test Analysis: In Galera binlog is not enabled by default in case when wsrep provider is not specified. In this case we should not call thd->binlog_flush_pending_rows_event(TRUE). Fix: Added a additional guard on galera not to call binlog function if wsrep provider is not specified and binlog is not enabled. commit 329fb586568f822e6ccb6faeb2e950a644b459d3 Author: Jan Lindström Date: Wed Dec 4 18:49:40 2013 +0200 MDEV-5385: Debian MariaDB-Galera packages do not get built in buildbot Added missing .in files and updated CMakeLists.txt to contain galera specific files. commit ed26f7012640f4e1f65776f7bbc57fba5e87b0a5 Author: Jan Lindström Date: Wed Dec 4 13:46:28 2013 +0200 MDEV-443: Galera: Server crashes on flushing tables for SST if started with character_set_server utf16 or utf32 or ucs2, and with wsrep_sst_method=rsync Analysis: In SST Galera directly calls parser using current client character set. Similarly in BF Galera uses client character set to apply. However, there are character sets that are not currently supported by the parser. Fix: If currenct client character set is one of those that is not supported by the parser, temporally set character set to latin1 before we enter parser and restore it after we have parsed. commit eea69c57b2479192a6e5cb59e7631029edb3b35a Author: Jan Lindström Date: Wed Dec 4 13:42:17 2013 +0200 Fixed additional problem with kernel_mutex. Kernel mutex is also held on lock_rec_other_has_conflicting that will also call (eventually) wsrep_innobase_kill_one_trx. Added a new parameter have_kernel_mutex to mark do we already own kernel mutex or not. commit 496e22cf3bd2a481fd3502d86e5a4e8228bf9823 Merge: 45f484b8381 26f56089c73 Author: Seppo Jaakola Date: Wed Dec 4 10:32:43 2013 +0200 merge with MariaDB 5.6 bzr merge lp:maria --rtag:mariadb-10.0.6 and a number of fixes to make this buildable. Run also few short multi-master high conflict rate tests, with no issues commit 9379edb63d85bcb256a4e145827db9c4c76f15c4 Author: Jan Lindström Date: Mon Dec 2 08:58:06 2013 +0200 MDEV-4227: Galera server should stop crashing on setting binlog_format STATEMENT Analysis: Currently you can set binlog_format to STATEMENT or MIXED even when they are not really supported by galera. Fix: Produce an error message if binlog_format is set to STATEMENT or MIXED and wsrep_on = ON. Added a test case for this. commit 730466b3282bd23054f86fa7979db1a83703ef89 Author: Nirbhay Choubey Date: Sat Nov 30 07:46:53 2013 -0500 MDEV#4138: Galera: mysqld_safe doesn't pass on wsrep_provider to mysqld In mysqld_safe script, during the processing of command line options, the supplied wsrep_provider option was not getting appended to the set of mysqld options. Hence, wsrep plugin would never receive the path for wsrep provider. Fixed by adding logic to append the wsrep_provider option to the set of mysqld options. commit e4f5e49cd6de1c9e4899a6e6f5c6666434e02437 Author: Nirbhay Choubey Date: Fri Nov 29 13:03:00 2013 -0500 MDEV#4109: Galera: Valgrind warnings "blocks are still reachable" in wsrep_init_startup on MTR tests The initialization & de-initialization of wsrep plugin is solely controlled by wsrep_on system variable. Now, as wsrep_on is ON by default, the plugin gets initialized during server start. However, there would be a leakage in case wsrep_on is turned off before plugin's deinitialization (while server is shutting down) takes place, in which case the deinit routine will not be invoked. In this particular case, wsrep_on is turned off as no wsrep provider has been specified & thus the valgrind warnings. Fixed by introducing a flag which tracks and now controls the (de|)initialization of the wsrep plugin instead on wsrep_on. Added necessary asserts. main.connect [ pass ] 16534 valgrind_report [ pass ] commit 6271c06a73ce1065ac53a554e42a0049bf77eb53 Author: Nirbhay Choubey Date: Fri Nov 29 12:50:31 2013 -0500 MDEV-4222: Assertion `( ((global_system_variables.wsrep_on) && (thd && thd->variables.wsrep_on)) && wsrep_emulate_bin_log) || mysql_bin_log .is_open()' fails on SAVEPOINT with disabled wsrep_provider As wsrep_on system variable is ON by default the binlog handlerton is implicitly enabled during the server initialization phase. Later, while wsrep plugin is getting initialized, wsrep_on in corrected & turned OFF in case wsrep provider is not specified (leaving binlog in ON state!). This leads to the reported assertion. Fixed by adding another check for wsrep provider before binlog is enabled. Added a test case. commit 62bd131d06eaf9567e63ea1c508eb07aa758b2e0 Author: Jan Lindström Date: Fri Nov 29 12:27:05 2013 +0200 MDEV-4235: Galera: Assertion `0' fails in tdc_remove_table on creating a trigger Analysis: There is two different THD's using the same table. Fix: In galera brute force (BF) exclusive locks are cancelled. Thus other threads could access the same table. Added additional check if this is the case, then we should not assert here. commit 45f484b8381a5923aec9c704e54c7f7bcfa02a40 Author: Seppo Jaakola Date: Wed Nov 27 22:20:32 2013 +0200 fixes for wsrep-5.5 merges commit 447b19a3bf19f9c87e05c51a553c2e90c53cad3c Author: Seppo Jaakola Date: Wed Nov 27 14:45:32 2013 +0200 Ported all remaining storage/innobase changes from lp:codership-mysql/5.6, up tp revision #4021 This is same level as wsrep_25.1 milestone Note: stotage/xtaradb is not upgraded yet commit 21bb5cdfb59629e4d35ba6bfea4d050bf2ec5f9a Author: Jan Lindström Date: Wed Nov 27 08:43:46 2013 +0200 MDEV-4223: Galera: InnoDB assertion failure !mutex_own(mutex) in file sync0sync.ic line 207 Analysis: Code acquired kernel_mutex when calling wsrep_innobase_kill_one_trx. However, functions below also might take kernel mutex thus the assertion. Fix: Acquire kernel_mutex only for lock_cancel_waiting_and_release where it is really needed. commit 964234412b2f891e0489d79479655d0f46f66cbd Author: Seppo Jaakola Date: Wed Nov 27 01:10:29 2013 +0200 diffed in fix in #3953 from lp:codership-mysql/5.6 commit ae8f0eb1eef45d4a62941836d9681b89bc7cfb7d Author: Seppo Jaakola Date: Wed Nov 27 00:54:21 2013 +0200 diffed in the fix from revision #3937 from lp:codership-mysql/5.6 commit 9b16346e84d8201e414a9cb792db777b9407c788 Author: Seppo Jaakola Date: Wed Nov 27 00:44:10 2013 +0200 bzr merge -c 3921 lp:codership-mysql/5.6 commit b098b7a84c374ee7e5a133cbf16be643609c1543 Author: Seppo Jaakola Date: Wed Nov 27 00:18:44 2013 +0200 bzr merge -r3904..3928 lp:codership-mysql/5.5 This is now otherwise on level wsrep-25.9, but storage/innobase has not been fully merged wsrep-5.5 is not good source for that, so we probably have to cherry pick innodb changes from wsrep-5.6 commit 6422d276fa8d1217aa68be1d90c712efa4d71409 Author: Seppo Jaakola Date: Tue Nov 26 22:09:14 2013 +0200 bzr merge -r3895..3903 lp:codership-mysql/5.5 This is just before 5.5.34 merge in wsrep-5.5 branch commit 480753972a96efa2dd9f59434ed811ffe788f08f Author: Jan Lindström Date: Tue Nov 26 20:32:38 2013 +0200 MDEV-4233: Galera: assertion: (lock->trx)->wait_lock == lock fails in file lock0lock.c line 796 Analysis: Assertion means that InnoDB transaction lock queue is not correctly set. Reason seams to be the fact that wrong lock is cancelled. Fix: We have selected c_lock to be cancelled. Thus we should cancel and release lock that is waiting for this lock i.e. c_lock->trx->wait_lock. commit 4a11e84414292e852a0968ef871dc90cbd24ae30 Author: Seppo Jaakola Date: Tue Nov 26 17:03:14 2013 +0200 merge from lp:codership-mysql/5.5 rev #3895 commit a2594e96f7c7fe762a8165916551ae96bcbb869f Author: Seppo Jaakola Date: Tue Nov 26 16:48:30 2013 +0200 Merges from lp:codership-mysql/5.5 up to rev #3893, this changes to wsrep API #24 commit 88f0e0ebeeca6194b73e20747cbc004970aeb26c Author: Nirbhay Choubey Date: Mon Nov 25 12:40:08 2013 -0500 MDEV-4108 Compilation warnings with RelWithDebInfo only present in the Galera tree Fix for some compiler warnings. commit 071edcfea05674f86926ee4c5fbf30f97c2ed368 Merge: 4f85baab95f 160236f880e Author: Jan Lindström Date: Mon Nov 25 17:14:08 2013 +0200 Merge with MariaDB 5.5.34. commit 4f85baab95f50448930a8c9915f7178aa121e66e Author: Jan Lindström Date: Mon Nov 25 14:04:49 2013 +0200 Merged revisions 3931--3942 from from lp:~codership/codership-mysql/5.5-23. ------------------------------------------------------------ revno: 3942 committer: Seppo Jaakola branch nick: wsrep-5.5-23 timestamp: Thu 2013-11-07 17:37:10 +0200 message: References: lp:1248921 - checking if index is foreign earlier to adhere to lat ch order protocol ------------------------------------------------------------ revno: 3941 fixes bug: https://launchpad.net/bugs/1248908 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Thu 2013-11-07 14:31:04 +0200 message: References lp:1248908 - Fixed access to trx sys header Pass trx sys header as argument for trx_sys_update_wsrep_checkpoint() and trx_sys_update_mysql_binlog_offset() to avoid successive calls to trx_sysf_get(). ------------------------------------------------------------ revno: 3940 fixes bug: https://launchpad.net/bugs/1244100 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Tue 2013-11-05 15:31:12 +0200 message: References lp:1244100 - assign value for check_purge before return ------------------------------------------------------------ revno: 3939 fixes bug: https://launchpad.net/bugs/1247978 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Tue 2013-11-05 01:01:36 +0200 message: References lp:1247978 - force release transactional MDL locks if wsrep is on a nd no active transaction at the end of mysql_execute_command() ------------------------------------------------------------ revno: 3938 committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Sun 2013-11-03 20:48:06 +0400 message: References lp:1232789 - fix FLUSH STATUS zeroes up wsrep_cluster_size and wsre p_local_index ------------------------------------------------------------ revno: 3937 5kB/s - committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Sun 2013-11-03 17:06:31 +0400 message: References lp:587170 - reset auto_increment_* vars to defaults for TOI operati ons ------------------------------------------------------------ revno: 3936 committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Sun 2013-11-03 00:10:45 +0400 message: References lp:1072839 - fix for memory leaks with wsrep variables ------------------------------------------------------------ revno: 3935 committer: Seppo Jaakola branch nick: wsrep-5.5-23 timestamp: Wed 2013-10-30 14:34:32 +0200 message: References: lp:1246257 - skipping replication for CREATE TEMPORARY TABLE LIKE. .. constructs ------------------------------------------------------------ revno: 3934 6kB/s \ fixes bug: https://launchpad.net/bugs/1241760 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Mon 2013-10-28 11:01:53 +0200 message: References lp:1241760 - save thd->db to wsrep_thd_shadow before replay ------------------------------------------------------------ revno: 3933 fixes bug: https://launchpad.net/bugs/1206129 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Sun 2013-10-27 18:15:12 +0200 message: References lp:1206129 - check binlog_hton->commit() return value, call wsrep_p ost_commit() instead of wsrep_cleanup_transaction() ------------------------------------------------------------ revno: 3932 fixes bug: https://launchpad.net/bugs/1244661 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Sun 2013-10-27 13:14:02 +0200 message: References lp:1244661 - added wsrep_register_hton() to trans_rollback_implicit () ------------------------------------------------------------ revno: 3931 fixes bug: https://launchpad.net/bugs/1244667 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Sun 2013-10-27 11:08:49 +0200 message: References lp:1244667 - restore thd->server_status after replay commit 0e248e62bdaf881f8b07b97e361d44ee30933bc1 Author: Jan Lindström Date: Mon Nov 25 11:09:48 2013 +0200 Merged revisions 2925--3929 from from lp:~codership/codership-mysql/5.5-23 ------------------------------------------------------------ revno: 3929 [merge] fixes bug: https://launchpad.net/bugs/1243150 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Wed 2013-10-23 20:05:01 +0300 message: 8kB/s - References lp:1243150 - initial wsrep hton cleanups * Removed wsrep_seqno_changed boolean * wsrep_cleanup_transaction() is now called explicitly whenever it is clear that transaction has come to an end * wsrep_trans_cache_is_empty() now checks from cache_mngr recardless of command type * Separated call to wsrep->post_commit() to own function, called from transaction.cc whenever appropriate * wsrep_thd_is_brute_force() now investigates only thd->wsrep_exec_mode * More comments and debug time assertions * Debug code to check that wsrep position stored in InnoDB is monotinically increasing. Enabled with UNIV_DEBUG ------------------------------------------------------------ revno: 3928 fixes bug: https://launchpad.net/bugs/1237889 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Tue 2013-10-22 22:01:20 +0300 message: References lp:1237889 - reverting fix in r3926, it broke crash recovery ------------------------------------------------------------ revno: 3927 fixes bug: https://launchpad.net/bugs/1240040 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Tue 2013-10-15 14:46:15 +0300 message: References lp:1240040 - added WSREP_MYSQL_DB as a key for DROP VIEW ------------------------------------------------------------ revno: 3926 fixes bug: https://launchpad.net/bugs/1237889 committer: Teemu Ollakka branch nick: 5.5-23 timestamp: Thu 2013-10-10 14:22:58 +0300 message: References lp:1237889 - register wsrep hton only if thd->wsrep_exec_mode == LO CAL_STATE ------------------------------------------------------------ revno: 3925 fixes bug: https://launchpad.net/bugs/1235635 committer: Alexey Yurchenko branch nick: 5.5-23 timestamp: Sat 2013-10-05 18:03:06 +0300 message: References lp:1235635 - fixed the warning by initializing c_lock to NULL. commit eb29ce250aaefb359cc9d85419931560f3d74aca Author: Nirbhay Choubey Date: Fri Nov 22 14:30:00 2013 -0500 MDEV-3895 Version naming for MariaDB-Galera builds This patch fixes both the reported issues : (1) Included '-wsrep' to the server version information. > select @@version; +-----------------------------+ | @@version | +-----------------------------+ | 5.5.33a-MariaDB-wsrep-debug | +-----------------------------+ (2) The @@version_comment would no longer have XXXX in the wsrep version information in case cmake couldn't determine the current bzr revision. commit 2b4183f10b54a5b3f8c848d897b3107859c23fa4 Author: Seppo Jaakola Date: Wed Nov 6 00:29:37 2013 +0200 bzr merge -r3890..3891 lp:codership-mysql/5.5 commit 9129c8f1d3e1f8c9daeae559eaf6b9807b4331ec Author: Seppo Jaakola Date: Wed Nov 6 00:02:22 2013 +0200 bzr merge -r3889..3890 lp:codership-mysql/5.5 commit eec8297107e52dc80999f3bb067c663149410d4b Author: Jan Lindström Date: Tue Oct 15 12:03:57 2013 +0300 Fixed performance schema instrumentation on galera and added correct mutexing when cancelling waiting trx on InnoDB commit 1a34a56a9fb990ce09f58392144c8c1dd3cb4483 Author: Jan Lindström Date: Mon Oct 14 11:54:27 2013 +0300 Fix incorrect merge commit 8da8c60d0d852d4839ffd09ba209b3e39eb26280 Author: Jan Lindström Date: Fri Oct 11 16:51:26 2013 +0300 Fix temporary table search commit 37b3d9447733e7e69db71bcd4a64de81caa9bc6b Author: Seppo Jaakola Date: Fri Oct 11 12:28:13 2013 +0300 Merge fix for DDL handling commit a0c8679416cb78f2adaf3d556ee66a9b974adc73 Author: Jan Lindström Date: Mon Oct 7 20:18:58 2013 +0300 Added correct mutexing on trx handling. commit f222e7d471079cd164d6cc822fce311b67b92ecd Author: Seppo Jaakola Date: Mon Oct 7 11:35:19 2013 +0300 Merge fixes, now at level 3430 in mariadb-galera-5.5 commit 61bda9a2f0017b1fbe88c63a0ada68ad1024a72c Author: Seppo Jaakola Date: Mon Oct 7 09:43:19 2013 +0300 Merged revisions 3425..3430 from mariadb-galera-5.5 commit 255e20a17534cf3b56201562990d5e5e01bccd33 Author: Seppo Jaakola Date: Mon Oct 7 08:57:23 2013 +0300 Merged revisions 3418..3424 from mariadb-galera-5.5 commit 06a7eeb992fe881f056fe83a8b716b3a81f224ff Author: Seppo Jaakola Date: Mon Oct 7 00:18:26 2013 +0300 Merged revisions 3411..3417 from mariadb-galera-5.5 commit 337fdb80f3edf3c6fdb47fbd06d044abbafc7041 Author: Seppo Jaakola Date: Sun Oct 6 23:59:20 2013 +0300 Merged revisions 3409..3411 from mariadb-galera-5.5 commit 089f10feb41e42c034f1431d4e639388fa63e5ed Author: Seppo Jaakola Date: Sun Oct 6 23:54:18 2013 +0300 Merged #3909 from mariadb-galera-5.5 commit 20afd6b1c3f39e6ae9cfb4e2e63a2ae0028a99fe Author: Seppo Jaakola Date: Tue Oct 1 00:28:54 2013 +0300 References lp:587170 - merged fix in from wsrep-5.5-23 branch This branch is now in position 3924 in wsrep-5.5-23 commit 4e00dd68612806e03494921bb573de470fa3e64b Author: Seppo Jaakola Date: Mon Sep 30 23:14:31 2013 +0300 References: lp:1233353 - releasing explicit MDL locks for BF aborted transactions commit 239dcdaa909cba065b9e6c83e59baef25a35eb58 Author: Seppo Jaakola Date: Sun Sep 29 23:53:10 2013 +0300 References lp:1232890 - Rows_log_event type cast only for row events commit 370a67679cc886f512d1f076a00a29e68abed900 Author: Sergei Golubchik Date: Fri Sep 27 22:32:49 2013 +0200 revert the change for auto-rpm-packages for plugins. galera tree should only build galera-server package commit decd08408b7802543cd953c2f6b396e70ee865d2 Author: Jan Lindström Date: Fri Sep 27 17:07:44 2013 +0300 Fix merge error. commit 6a6522319316204bbe46d52140151935ecde938f Merge: 8ad1b5b1086 28ec372744e Author: Jan Lindström Date: Fri Sep 27 13:48:58 2013 +0300 mariadb-5.5.33a merge commit 8ad1b5b1086b6791b95a33c664184bfb56993d94 Author: Jan Lindström Date: Fri Sep 27 13:01:14 2013 +0300 Updated test results because of new system variables and a new lock variable. commit ac5d1d761adaae3200559f64b61d6ecd5b005f04 Author: Jan Lindström Date: Thu Sep 26 17:51:01 2013 +0300 Merged revisions 3916--3921 from lp:~codership/codership-mysql/5.5-23 ------------------------------------------------------------ revno: 3921 fixes bug: https://launchpad.net/bugs/1228149 committer: Alexey Yurchenko branch nick: 5.5-23 timestamp: Mon 2013-09-23 18:29:42 +0300 message: References lp:1228149 - fixing typos. ------------------------------------------------------------ revno: 3920 committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Fri 2013-09-20 15:43:18 +0400 message: References lp:1201893 - remove setenv("WSREP_LOG_DIR") from ha_innodb.cc ------------------------------------------------------------ revno: 3919 tags: wsrep_23.7.6 fixes bug: https://launchpad.net/bugs/1087368 committer: Alexey Yurchenko branch nick: 5.5-23 timestamp: Thu 2013-09-19 06:00:43 +0300 message: References lp:1087368 - fix to preserve the order of options in case --wsrep-new-cluster is i n the middle of option list ------------------------------------------------------------ revno: 3918 committer: Alexey Yurchenko branch nick: 5.5-23\ timestamp: Wed 2013-09-18 23:22:55 +0300 message: bumped wsrep patch version number to 7.6 ------------------------------------------------------------ revno: 3917 committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Wed 2013-09-18 20:11:39 +0400 message: References lp:1218944 - wsrep_sst_rsync now recognizes log_group_home_dir ------------------------------------------------------------ revno: 3916 fixes bug: https://launchpad.net/bugs/1224775 committer: Alexey Yurchenko branch nick: 5.5-23 timestamp: Sun 2013-09-15 21:29:57 +0300 message: References lp:1224775 - reworked wsrep_recover to create temporary log file in $DATADIR. Plus cleaned up that function slightly. commit c72126e043c42ccbc3e0e138dc3aef3950959158 Author: Jan Lindström Date: Thu Sep 26 16:43:49 2013 +0300 Merge revisions 3907--3914 from lp:~codership/codership-mysql/5.5-23 ------------------------------------------------------------ revno: 3914 3kB/s | committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Thu 2013-09-12 15:00:46 +0400 message: References lp:1217653 - fix index-id evaluation of FOREIGN KEY, when referenced table without PRIMARY KEY ------------------------------------------------------------ revno: 3913 committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Wed 2013-09-11 13:58:02 +0400 message: References lp:1217653 - fix index-id evaluation of FOREIGN KEY, when referenced table without PRIMARY KEY ------------------------------------------------------------ revno: 3912 committer: Seppo Jaakola branch nick: wsrep-5.5-23 timestamp: Fri 2013-09-06 13:13:48 +0300 message: References: lp:1212955 - releasing MDL after failed BEGIN and "SET AUTOCOMMIT" ------------------------------------------------------------ revno: 3911 committer: Seppo Jaakola branch nick: wsrep-5.5-23 timestamp: Wed 2013-09-04 10:52:31 +0300 message: References: lp:1123233 - avoiding to set wsrep_seqno_changed for replaying transactions Note, also missing transactions don't declare seqno_changed anymore. Earlier they would have caused crash at wsrep_cleanup_transaction phase. ------------------------------------------------------------ revno: 3910 [merge] committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Tue 2013-09-03 15:27:02 +0400 message: References lp:1049599 - expose desync functionality to the client ------------------------------------------------------------ revno: 3909 committer: Seppo Jaakola branch nick: wsrep-5.5-23 timestamp: Tue 2013-09-03 09:41:08 +0300 message: References: lp:1123233 - rollback for transaction which has not appended key information ------------------------------------------------------------ revno: 3908 committer: Vladislav Klyachin branch nick: 5.5-23 timestamp: Sun 2013-09-01 13:29:12 +0400 message: lp:1201893 - fix command for default IP address ------------------------------------------------------------ revno: 3907 committer: Seppo Jaakola branch nick: wsrep-5.5-23 timestamp: Thu 2013-08-29 12:16:42 +0300 message: References: lp:1212955 - releasing transactional MDL locks after commit failures (e.g. certification failure). commit bfbb0ff3bc3d3c59c5e56df7260aa3f2fdf4a67a Author: Jan Lindström Date: Thu Sep 26 14:10:47 2013 +0300 Fixed merge error on rollback to savepoint commit 745239fd29d88ead433dddf39e4b369776efe62b Author: Jan Lindström Date: Wed Sep 25 10:42:05 2013 +0300 After merge fixes commit 77fae5af0065664c3b90eebc4a0dbc4bd48efa3a Author: Sergei Golubchik Date: Thu Sep 19 09:21:17 2013 +0200 updated test results commit 427daab74f22450c11b5f517d4ae5a041ac61811 Author: Sergei Golubchik Date: Wed Sep 18 20:55:58 2013 +0200 fix broken (after merge) galera deb packaging commit c3d635bdc3becb736473a8f1f2a8c5ff886fe450 Author: Sergei Golubchik Date: Wed Sep 18 14:59:51 2013 +0200 cmake error on osx commit 909775a7623505bea1b42327c7ce592b649dcdab Merge: 39f82b4e6eb 6d06ccbe538 Author: Sergei Golubchik Date: Wed Sep 18 12:00:23 2013 +0200 mariadb-5.5.33 merge commit 9c85ced30dc4f6d28b4fe7ad1b73ca76f3c43a44 Author: Jan Lindström Date: Mon Sep 9 10:38:58 2013 +0300 Merge fix. commit 0880db56407c8eb2d8cd7804471ee2fd5662d150 Author: Jan Lindström Date: Wed Sep 4 09:54:40 2013 +0300 Fix merge error commit 6e8bfb0b26b35d2a767f0e47e7d6857b0786e529 Author: Jan Lindström Date: Wed Sep 4 08:47:05 2013 +0300 Fixed merge errors and XA prepare commit ba3ff50ab2bfabab6a4307282f92854f6efe6382 Merge: 81739d308fe c8b87ca16f0 Author: Jan Lindström Date: Tue Sep 3 17:50:36 2013 +0300 Merge 10.0 to galera-10.0 commit 39f82b4e6ebed949ba17fe4884d96471574c1da1 Author: Seppo Jaakola Date: Tue Aug 27 23:40:49 2013 +0300 References: MDEV-4953 Calling ha_start_of_new_statement() for all table handlers under partition engine. This will enable innodb transactions to be declared as read/write. commit f68a7611d10083d72e358915f8fbe1258b7b7946 Author: Seppo Jaakola Date: Tue Aug 27 09:06:04 2013 +0300 References lp:1216904 - guaranteeing native "create table like.." processing when running without wsrep provider Merged the fix from lp:~codership/codership-mysql/5.5-23, rev 3906 commit c942889d41e38eedc93bcf9106e9583b9015af47 Author: Seppo Jaakola Date: Fri Aug 23 12:21:00 2013 +0300 References: lp:1206129 - Merged revision 3904 from lp:~codership/codership-mysql/5.5-23 enable LOAD DATA transaction splitting Added new global variable: wsrep_load_data_splitting to control if splitting is wanted or not commit fca065f95c3f62b0f6ec8448f7dcda40d73eb433 Author: Seppo Jaakola Date: Wed Aug 21 17:17:30 2013 +0300 Merged with lp:~codership/codership-mysql/5.5-23, up to revision 3903 commit 2db87f65167c389c191336672e7ae1ddc65c8436 Author: Seppo Jaakola Date: Wed Aug 21 16:37:22 2013 +0300 References MDEV-4404 - Added log message to catch information of log event corruption commit 4222b2520bdea2be41b50b888f930a63f5af8991 Merge: 551ad1cf6f8 c7973615e72 Author: Seppo Jaakola Date: Wed Aug 21 16:34:31 2013 +0300 Merge with mariadb 5.5: bzr merge lp:maria/5.5 --rtag:mariadb-5.5.32 commit 551ad1cf6f80ad1fab35746eee304d733baa9adf Author: Seppo Jaakola Date: Wed Aug 7 00:17:16 2013 +0300 Merged FreeBSD compatibility changes (up to revision 3893 in lp:~codership/codership-mysql/5.5-23) commit 7cf10ddf8ca7044278b4aa1cf5a5525675cd101d Author: Seppo Jaakola Date: Mon Aug 5 18:01:05 2013 +0300 References lp:1208493 https://mariadb.atlassian.net/browse/MDEV-4830 Enabling slave applier thread to send COND_thread_count commit 81739d308fee0317e56bd70d97e3429ece83dd4b Author: Seppo Jaakola Date: Tue Jul 16 12:09:38 2013 +0300 Initial fixes after mariadb 10 merge, basic replication works now commit db0cfba638383569b1e30765e2d36e0707bfb930 Merge: 0a9216835f4 a057b504904 Author: Seppo Jaakola Date: Sat Jul 13 13:30:03 2013 +0300 Merged with lp:maria revision #3766 commit 0a9216835f406947fb4d492616da4cda75e5e113 Author: Seppo Jaakola Date: Sat Jul 13 13:01:13 2013 +0300 Initial merge result with mariaDB 10: lp:maria commit 93ed851cc63ce2510c26c656e55e0e1dc28f99f9 Author: Seppo Jaakola Date: Thu Jun 20 21:51:11 2013 +0300 References lp:1193079 - bumped wsrep version to 7.5 commit 862c6b219e672a39d24db6555084ad6e3a1cbbfd Author: Seppo Jaakola Date: Wed Jun 19 10:35:40 2013 +0300 References lp:1191778 - merged xtrabackup SST fixes from PXC commit 6793d7f1146639f03e3d860bcd668ba2e2d028eb Author: Seppo Jaakola Date: Sun Jun 16 20:38:02 2013 +0300 References lp:1134892 - WSREP_DEBUG_PRINT was left on by mistake commit 1c09bbfe3dedb0b11ebbfc5eb4b774f44b321d9a Author: Seppo Jaakola Date: Sat Jun 15 16:16:38 2013 +0300 References lp:1087368 - merged fix from wsrep-5.5 branch. Note this is compatible only with new wsrep provider #23 libraries, which understand 'bootstrap' address in connecting. commit 527ce30cf3aa517816d9bd87dc99c1f6967cf7f5 Author: Seppo Jaakola Date: Sat Jun 15 16:15:45 2013 +0300 References: MDEV-4572 - merge with lp:codership-mysql/5.5-23 revisions 3874..3878 commit 7d2a0e9da45fb66659493767fa3adda1e7ef499d Author: Seppo Jaakola Date: Sat Jun 15 16:15:17 2013 +0300 References lp:1108035 - merged fix from http://bazaar.launchpad.net/~percona-core/percona-xtradb-cluster/release-5.5.31/revision/394 commit 3fa8559debb41102089788bcbe575d887a25dffd Author: Alexey Botchkov Date: Fri Jun 14 22:01:18 2013 +0500 MDEV-4656 MariaDB-Galera deb packages cannot be built, expected files are missing. Kristian changed the install directory for these files to share/mysql. (that was changeset 3334.1.345 Fix wrong install location for DEB supportfiles.) But dist/mariadb-galera-server.files weren't changed accordingly. Here we fix them. commit 4107af8810c49dcf17ade88342179594eb1ca040 Author: Seppo Jaakola Date: Thu Jun 13 10:22:37 2013 +0300 References: lp:1182441 - merged fix from revision: http://bazaar.launchpad.net/~percona-core/percona-xtradb-cluster/release-5.5.31/revision/416 commit b0d30e234efeddd4b1ee62e89b510b5d64a5ec07 Author: Seppo Jaakola Date: Thu Jun 13 09:55:28 2013 +0300 References lp:1169326 - merged fix from LP wsrep-5.5-23 Now at revision 3874 in lp:~codership/codership-mysql/5.5-23 commit bf9d5b7f64f6e1c8b679dc941d7d1537cfccee65 Author: Seppo Jaakola Date: Thu Jun 13 09:49:48 2013 +0300 References: lp:1134892 MDEV-4624 - merged fix from LP wsrep-5.5-23 commit 71509626d2ef792ace47faccbbfff9a294648411 Author: Seppo Jaakola Date: Thu Jun 13 09:44:34 2013 +0300 References: lp:1187526 - merged fix from wsrep-5.5-23 commit 7e0db6be56dd8f5f4343ebfe4d3c7ac225f38a01 Author: Alexey Botchkov Date: Wed Jun 12 17:07:48 2013 +0500 MDEV-4600 mariadb-galera-server-5.5 on ubuntu has no dependency to galera while debian has. dependency on galera added to the Ubuntu packaging script. commit f37231cf46a8586c96462bee63ae3726961d7f1c Author: Seppo Jaakola Date: Mon May 27 23:03:08 2013 +0300 References: MDEV-3924 lp:1088267 - merged fix from lp:codership-mysql commit 24fd60895bb57918247f7e01d977223207a95319 Author: Seppo Jaakola Date: Mon May 27 22:51:22 2013 +0300 References lp:1012138 - merged fix from lp:codership-mysql commit bd0eae595fc5d050913ea01bd4c6a8e47f379176 Merge: 9d1546fe2cd cb246b20d6e Author: Seppo Jaakola Date: Sun May 26 11:26:58 2013 +0300 References: MDEV-4572 - merge with mariaDB 5.5.31 bzr merge lp:maria/5.5 -rtag:mariadb-5.5.31 Text conflict in cmake/cpack_rpm.cmake Text conflict in debian/dist/Debian/control Text conflict in debian/dist/Ubuntu/control Text conflict in sql/CMakeLists.txt Conflict adding file sql/db.opt. Moved existing file to sql/db.opt.moved. Conflict adding file sql/db.opt.moved. Moved existing file to sql/db.opt.moved.moved. Text conflict in sql/mysqld.cc Text conflict in support-files/mysql.spec.sh 8 conflicts encountered. commit 9d1546fe2cdced5efb4af831fa2e560b7f80fb54 Author: Seppo Jaakola Date: Sat May 25 12:22:57 2013 +0300 References: MDEV-4572 - merge with lp:codership-mysql/5.5-23 revisions 3858..3867 commit 48af4be62a077f5edfadc9b5ea4f6c8c4b00c469 Merge: e95fdb74ab8 421c885446d Author: Seppo Jaakola Date: Fri May 24 15:29:01 2013 +0300 References: MDEV-4572 - merge with mariaDB 5.5.30 commit e95fdb74ab85bf24b805c1d4ead8c3d3a791b79a Author: Seppo Jaakola Date: Tue May 21 00:10:35 2013 +0300 merged in revisions 3853..3857 from lp:codership-mysql/5.5-23 commit 3e841b77e0b683bcf16546eeef8c286150ed2b6f Author: Seppo Jaakola Date: Tue Mar 26 16:40:02 2013 +0200 References: MDEV-4328 - avoiding race condition for wsrep_format_desc access commit 972acdb16484ec6b533d7bc6fabeec32a9e6ecc3 Author: Seppo Jaakola Date: Tue Mar 5 00:01:20 2013 +0200 References: lp:1144911 - merged fix for prepared statement processing from upstream. Merged fix is revision 3853 in lp:~codership/codership-mysql/5.5-23 commit 4174f1a47437dff6614f01c75651b371d8fcb876 Author: Seppo Jaakola Date: Mon Mar 4 23:01:36 2013 +0200 References: MDEV-4211 - appended format description event for TOI replication write set, FD carries binlog checksum algorithm commit 7ba8b2ae4933850c841a3dfa2bb4515aca6062be Author: Elena Stepanova Date: Sun Mar 3 03:22:48 2013 +0400 MDEV-4232 : percona.innodb_sys_index fails due to a wrong version_comment commit 55da5f1fbf76057acfcab204de557c4d4eaf1956 Author: Seppo Jaakola Date: Sat Mar 2 12:23:08 2013 +0200 References: lp:1136303 - adapting wsrep status variable usage according to wsrep provider version 2.2 behavior commit 3af84bb4732b1fc998f9fd36e89bc9d2589ce8e6 Author: Daniel Bartholomew Date: Thu Feb 28 21:25:56 2013 -0500 Removed the obsolete instructions from the MySQL 5.1 manual. Instead provide a link to https://kb.askmonty.org/en/compiling-mariadb-from-source/ commit 797482cc54f2fb696a104f882056feefa179e810 Author: Daniel Bartholomew Date: Thu Feb 28 21:25:04 2013 -0500 Added a MariaDB Galera Cluster section to the beginning of the README. commit 518ced3a78e027eadb92c66c9f100c0ce16b5851 Author: Seppo Jaakola Date: Tue Feb 26 22:19:54 2013 +0200 References: https://bugs.launchpad.net/codership-mysql/+bug/1084702 https://bugs.launchpad.net/percona-xtradb-cluster/+bug/1019473 Merged revisions 3851-3852 from lp:~codership/codership-mysql/5.5-23 commit 2b0f16c577130c5085c94d99273570fd583af7d1 Author: Seppo Jaakola Date: Tue Feb 26 01:03:21 2013 +0200 References: https://mariadb.atlassian.net/browse/MDEV-4179 https://bugs.launchpad.net/codership-mysql/+bug/1130888 https://bugs.launchpad.net/codership-mysql/+bug/1019473 Merged revisions 3847-3850 from lp:~codership/codership-mysql/5.5-23 commit 68154e62b1b3d0ff2552b8503523d81459c30327 Author: Elena Stepanova Date: Mon Feb 25 23:05:31 2013 +0400 MDEV-4202: innodb.innodb-autoinc fails due to missing wsrep-specific variable in the result file commit 91cd73104f0755a8c91becc3300aaa8311752e3d Author: Seppo Jaakola Date: Thu Feb 21 10:16:47 2013 +0200 References https://mariadb.atlassian.net/browse/MDEV-4185 - thread terminate was blocked for non-wsrep threads commit 7144f7f2d17bdf03fbd28dfdd6b4d6bf689e7aaa Author: Seppo Jaakola Date: Sun Feb 17 00:22:40 2013 +0200 References https://mariadb.atlassian.net/browse/MDEV-4176 Avoiding ha_kill_query for aborts initiated by replicator commit 2a6aa0a312ed44f0806d878a8f5b315b71ab1cfd Author: Seppo Jaakola Date: Fri Feb 15 15:51:02 2013 +0200 References https://mariadb.atlassian.net/browse/MDEV-4136 Fixes to stop wsrep replicator when thread pool scheduler is in use commit 53f5ea24313909f0aebaa5640a16edce4bbe1390 Author: Sergei Golubchik Date: Thu Feb 7 19:01:19 2013 +0100 restore changes that were lost in the merge commit 3f847afe4c7b1a26b73a4c9e38362278ea003640 Author: Seppo Jaakola Date: Thu Feb 7 17:40:32 2013 +0200 References: MDEV-4142 Merged revision 3846 from lp:codership-mysql/5.5-23 commit f64a2c9970e4db2ab0880b8eb58d2329bd1bb81a Author: Seppo Jaakola Date: Wed Feb 6 00:46:10 2013 +0200 wsrep build scripts commit 96baf431afdcebcab23733e22e99d04f27f17411 Author: Seppo Jaakola Date: Wed Feb 6 00:10:54 2013 +0200 References lp:1115708 - merged innodb wsrep changes to xtradb between revisions 3809...3845 commit e51a884e9c364a1c5276754871cf7267316c392c Author: Seppo Jaakola Date: Tue Feb 5 22:48:40 2013 +0200 References lp:1115708 - merged with wsrep branch, revision 3845 bzr merge -r3840..3845 lp:~codership/codership-mysql/5.5-23 commit 18c97eea5cc53962c5148eb9f42d6764c8629949 Merge: d5dc568f9be bfd179e8ed5 Author: Seppo Jaakola Date: Tue Feb 5 20:19:47 2013 +0200 References lp:1115708 - merged with lp:mariadb/5.5 revision 3657 commit d5dc568f9be19c5b3f0d003ec6a71a610fd32212 Author: Seppo Jaakola Date: Tue Feb 5 19:20:47 2013 +0200 fixes for the merge with codership-mysql, revision 3839 commit 800fa186e3ab77ee93e75e929fe7917983e607e9 Author: Seppo Jaakola Date: Tue Feb 5 17:54:42 2013 +0200 merged with codership-mysql up to revision 3839 bzr merge -r3810..3839 lp:codership-mysql/5.5 commit 9da9a242faf1fd7b2f45dc0561e5bf742a7be47b Author: Seppo Jaakola Date: Tue Feb 5 16:54:50 2013 +0200 remerging wsrep files from lp:codership-mysql commit f2837a3b33da3282b344a4adb442d12163d29e29 Author: Seppo Jaakola Date: Tue Feb 5 16:49:51 2013 +0200 remerging wsrep files from lp:codership-mysql commit e0c6a87b997509f9eb282988cfb097e30b4c9749 Author: Seppo Jaakola Date: Tue Feb 5 15:48:54 2013 +0200 re-merging wsrep files from lp:codership-mysql commit db7495822940b5c95f10ff5b1e6273701e868436 Author: Elena Stepanova Date: Mon Feb 4 00:30:15 2013 +0400 MDEV-508 - wsrep revno can be either a number or XXXX, test should be able to handle both commit c40abe9df0b759e2f8ba44b342eba4cfe2ca6388 Author: Elena Stepanova Date: Sun Feb 3 04:03:08 2013 +0400 MDEV-508 (Wrong MTR result files in MariaDB-Galera) commit ffc82ab60665ae910950022811370d7db49b41ea Author: Sergei Golubchik Date: Thu Dec 20 12:34:37 2012 +0100 update test cases and results commit b52dfd71b537dd7b82182d14d6dd6728d7a9c6e5 Merge: c194027f227 4df29fef362 Author: Alexey Botchkov Date: Thu Dec 13 18:01:50 2012 +0400 merging. commit c194027f2271aad12624761d770551d837167a4b Author: Alexey Botchkov Date: Thu Dec 13 17:48:46 2012 +0400 MDEV-507 Galera Deb/RPM packages. Add new wsrep-related files to the DEB packages. commit 4df29fef362389f3fe64da4880af7050396baa94 Merge: fc6cd855e9d 7c5f62a313d Author: Seppo Jaakola Date: Fri Nov 30 13:36:29 2012 +0200 References: lp:1066784 - Merged with MariaDB 5.5.28a bzr merge -r tag:mariadb-5.5.28a lp:maria/5.5 ...no conflicts commit 28d9d0c7a8bc141daa4f881b5b2a4c474b550c58 Author: Alexey Botchkov Date: Thu Nov 29 14:50:52 2012 +0400 MDEV-3893 mariadb-galera-server deb package cannot be installed on a mysql-free machine. Fixed templates for messages. commit fc6cd855e9dd1b89a45f6584b3bd21ddc1f60607 Author: Seppo Jaakola Date: Wed Nov 28 17:38:32 2012 +0200 References: lp:1066784 - Merged revisions 3810-3827 from lp:codership-mysql commit fe0188166804de8cfb2ab9598ce58f786ba47eb7 Author: Alexey Botchkov Date: Wed Nov 28 17:15:46 2012 +0400 MDEV-507 deb/rpm packages for Galera. Ubuntu 'control' file fixed. commit 8ef2eb445431706cbf41849b35b9a40450f08a03 Author: Alexey Botchkov Date: Tue Nov 27 16:32:01 2012 +0400 MDEV 507 deb/rpm packages for galera builds. lindian-overrides files fixed. commit 30be3f7f1203c45688d51f93ae0a00e4c19276a5 Author: Alexey Botchkov Date: Tue Nov 27 16:22:10 2012 +0400 MDEV-507 deb/rpm packages for galera builds. If settings are not suitable for the WSREP, just turn it off and keep working. commit ab6d729816b2877bfe76b7163b1322ac8b83153a Author: Alexey Botchkov Date: Mon Nov 19 13:01:38 2012 +0400 MDEV-507 deb/rpm packages for galera builds. Debian packaging, part II. Changes in the set of package-related files. Some were removed, some renamed, as we only keep the mariadb-galera-server package. commit c9c458fa6e2e215c783794b11b30ed3a27904383 Author: Alexey Botchkov Date: Sun Nov 18 18:07:02 2012 +0400 MDEV 507 deb/rpm packages for galera builds. Debian/Ubuntu packages fixed. The mariadb-server-5.5 and mariadb-server packages became mariadb-galera-server-5.5 and mariadb-galera-server respectively. The rest of packages are removed from the build. This patch reflects only files that were changed. Second part of this patch has only file renaming/deletions. commit 9b47a442b5452cb6c541e312f78746e7739e9f42 Merge: ef6f9a82508 797082ca712 Author: Seppo Jaakola Date: Wed Oct 24 23:13:43 2012 +0300 References lp:1066784 - bzr merge lp:maria/5.5 (rev: 3562) commit ef6f9a8250804efb047ad6f28e476c59d7223e85 Author: Seppo Jaakola Date: Tue Oct 23 22:38:11 2012 +0300 References lp:1066784 merged with patch: bzr diff lp:codership-mysql/5.5 -r3795..3809 commit 20df56c1002e809daa68fa7431a9dd7e3d899642 Author: Seppo Jaakola Date: Thu Sep 20 09:35:22 2012 +0300 References lp:1051808 lp:1049024 https://mariadb.atlassian.net/browse/MDEV-541 patched with: bzr diff lp:codership-mysql/5.5 -r3794..3795 commit 6475ef7db3efff08da352cc90b55c4295c1bd6c2 Author: Seppo Jaakola Date: Wed Sep 19 00:23:06 2012 +0300 References lp:1052668 - DBUG macro issue in start_wsrep_THD merged fix from upstream: bzr diff lp:codership-mysql/5.5 -r3793..3794 commit 42b69efd5df8318a5d74edf32d4bba07454e1449 Author: Seppo Jaakola Date: Tue Sep 18 22:49:13 2012 +0300 References lp:1051808 - merged with lp:codership-mysql 5.5.27 based trunk patched with: bzr diff lp:codership-mysql/5.5 -r3790..3793 commit 076f2f322e6e983f69c73878c9d56dde964d1d59 Author: Sergei Golubchik Date: Mon Sep 17 17:42:14 2012 +0200 really disable embedded server in galera builds commit 456b01b09b7675396fbf8525b0bbaa497a7fa0a4 Author: Sergei Golubchik Date: Mon Sep 17 15:33:19 2012 +0200 MDEV-507 deb/rpm packages for galera builds rpm part: only build the server rpm, not client or shared or anything else commit 7b791250a1d2f293da83533fc332fd1d80f665a1 Merge: f4862acfc38 6f94b5c76d5 Author: Seppo Jaakola Date: Mon Sep 17 12:31:38 2012 +0300 References lp:1051808 - merged with lp:maria/5.5 bzr merge lp:maria/5.5 ... Text conflict in CMakeLists.txt Text conflict in sql/mysqld.cc Text conflict in sql/sql_class.h Text conflict in sql/sql_truncate.cc 4 conflicts encountered. commit f4862acfc389864f99100f66abe905c1f5be9e80 Author: Seppo Jaakola Date: Mon Sep 17 12:06:39 2012 +0300 References lp:1051808 - merged with lp:codership-mysql 5.5.27 based trunk merged xtradb storage engine part commit 0892c7ec5d7bbca00e042047c4220e6830491c37 Author: Seppo Jaakola Date: Mon Sep 17 11:34:57 2012 +0300 References lp:1051808 - merged with lp:codership-mysql 5.5.27 based trunk patched with: bzr diff lp:codership-mysql/5.5 -r3779..3790 commit 5f76c15a3b5c4f39370fe21764088ee88dab9f47 Author: Sergei Golubchik Date: Sat Sep 8 09:51:16 2012 +0200 MDEV-507 deb/rpm packages for galera builds rpm part. commit 02abef584c607667395bbfc3686b7c7063f57206 Author: Vladislav Vaintroub Date: Tue Sep 4 22:13:46 2012 +0200 Fixes for galera build - compile with WITH_WSREP on - fix package name commit 8e84b9e740ff3641f1fc500a616962cb3bc75a64 Author: Seppo Jaakola Date: Thu Aug 30 12:22:37 2012 +0300 Merged in change sets 3772-3779 from lp:codership-mysql/5.5 commit ebfa24b1d24377a241b79883da96969a9150f22c Merge: 1fd2e10736d a7123f50759 Author: Seppo Jaakola Date: Thu Aug 9 01:47:21 2012 +0300 References lp:1034621 - Merge up to mysql-5.5.25 level merged codership-mysql/5.5 revisions: bzr diff -r3759..3767 merged codership-mysql/5.5 revisions: bzr diff -r3768..3771 commit 1fd2e10736d6fd198e62054cb9006a3dc13fd55e Author: jani Date: Mon Jul 23 11:15:59 2012 +0300 New version of mysqld_multi. Building Galera tree fully first time in buildbot commit f97e67ffaae5c49e207cc6436684d3fbe218ab46 Author: Seppo Jaakola Date: Wed Jun 13 00:23:32 2012 +0300 References lp:1011983 Merged from codership-mysql/5.5 revision 3758 commit b96af9a3abe792c8711d59b693509ccd0677a150 Merge: 33ffe0dd29b 9892ace4757 Author: Seppo Jaakola Date: Tue Jun 12 16:34:18 2012 +0300 references lp:1011983 Merged latest MariaDB development in: bzr merge lp:maria/5.5 => Text conflict in CMakeLists.txt Text conflict in sql/handler.h Text conflict in support-files/CMakeLists.txt 3 conflicts commit 33ffe0dd29b6564e49dde8b1abda914da4b2f178 Author: Seppo Jaakola Date: Tue Jun 12 10:55:11 2012 +0300 References lp:1011983 Merged from codership-mysql/5.5 changes revisions 3743-3756 commit 609388fcfd912c9c2cb03a92251469a25a781893 Author: Seppo Jaakola Date: Thu Apr 26 20:18:30 2012 +0300 Merged changes from lp:codership-mysql up to rev 3743 -r3725..3737 -r3738..3740 -r3741..3743 commit e0015163515d1fe5d3747c6f859461a30c2ecfd6 Merge: f96fd3f40f3 b6ad03cde93 Author: Seppo Jaakola Date: Thu Apr 26 13:59:35 2012 +0300 Merge with mariaDB 5.5.23: bzr merge lp:maria/5.5 commit f96fd3f40f37c0080e71e45f85e53bd156aa27f5 Author: Seppo Jaakola Date: Thu Apr 26 13:09:06 2012 +0300 Added wsrep specific files commit 2fc1ec43560b453b4694adbc1aac11f3f23b1761 Author: Seppo Jaakola Date: Fri Apr 13 01:33:24 2012 +0300 Initial push of codership-wsrep API implementation for MariaDB. Merge of: lp:maria/5.5, #3334: http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/3334 lp:codership-mysql/5.5, #3725: http://bazaar.launchpad.net/~codership/codership-mysql/wsrep-5.5/revision/3725 --- storage/connect/CMakeLists.txt | 20 ++- storage/connect/array.cpp | 2 +- storage/connect/cmgoconn.cpp | 65 +++++---- storage/connect/cmgoconn.h | 2 + storage/connect/filter.cpp | 2 +- storage/connect/filter.h | 3 - storage/connect/ha_connect.cc | 129 ++++++++++-------- storage/connect/ha_connect.h | 10 +- storage/connect/javaconn.cpp | 5 +- storage/connect/javaconn.h | 4 +- storage/connect/jdbccat.h | 2 +- storage/connect/jdbconn.cpp | 2 +- storage/connect/jmgoconn.cpp | 21 +-- storage/connect/json.h | 2 +- storage/connect/jsonudf.cpp | 25 ++-- storage/connect/mongo.cpp | 98 +++++++++++-- storage/connect/mongo.h | 2 +- storage/connect/mycat.cc | 36 ++--- .../mysql-test/connect/r/json_java_2.result | 6 +- .../mysql-test/connect/r/json_java_3.result | 6 +- .../mysql-test/connect/r/json_mongo_c.result | 4 +- .../mysql-test/connect/r/mongo_c.result | 4 +- .../mysql-test/connect/r/mongo_java_2.result | 6 +- .../mysql-test/connect/r/mongo_java_3.result | 6 +- .../mysql-test/connect/r/odbc_firebird.result | 71 ++-------- .../mysql-test/connect/t/mongo_test.inc | 6 +- storage/connect/plgdbutl.cpp | 13 +- storage/connect/preparse.h | 2 +- storage/connect/reldef.h | 4 +- storage/connect/tabjmg.cpp | 15 +- storage/connect/tabjson.cpp | 84 ++++++------ storage/connect/tabjson.h | 22 +-- storage/connect/tabtbl.cpp | 2 +- storage/connect/tabutil.cpp | 4 +- storage/connect/tabxml.h | 2 + storage/connect/valblk.h | 2 +- storage/connect/value.cpp | 62 +++++---- storage/connect/value.h | 2 +- storage/connect/xtable.h | 2 +- 39 files changed, 403 insertions(+), 352 deletions(-) diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 1f687c3c8d8..43a3e2894dd 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -38,7 +38,7 @@ user_connect.h valblk.h value.h xindex.h xobject.h xtable.h) # Definitions that are shared for all OSes # add_definitions( -DMARIADB -DFORCE_INIT_OF_VARS -Dconnect_EXPORTS) -add_definitions( -DHUGE_SUPPORT -DGZ_SUPPORT -DPIVOT_SUPPORT -DUSE_TRY ) +add_definitions( -DHUGE_SUPPORT -DGZ_SUPPORT ) # @@ -247,7 +247,7 @@ ENDIF(CONNECT_WITH_ODBC) # # JDBC with MongoDB Java Driver included but disabled # -#OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON) +# OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON) OPTION(CONNECT_WITH_JDBC "Compile CONNECT storage engine with JDBC support" ON) IF(CONNECT_WITH_JDBC) @@ -260,17 +260,16 @@ IF(CONNECT_WITH_JDBC) # SET(JDBC_LIBRARY ${JAVA_JVM_LIBRARY}) will be dynamically linked SET(CONNECT_SOURCES ${CONNECT_SOURCES} javaconn.cpp jdbconn.cpp tabjdbc.cpp + jmgfam.cpp jmgoconn.cpp mongo.cpp tabjmg.cpp jdbccat.h javaconn.h jdbconn.h tabjdbc.h + jmgfam.h jmgoconn.h mongo.h tabjmg.h JdbcInterface.java ApacheInterface.java MariadbInterface.java MysqlInterface.java OracleInterface.java PostgresqlInterface.java + Mongo2Interface.java Mongo3Interface.java JavaWrappers.jar) - add_definitions(-DJDBC_SUPPORT) + add_definitions(-DJAVA_SUPPORT) IF(CONNECT_WITH_MONGO) - SET(CONNECT_SOURCES ${CONNECT_SOURCES} - jmgfam.cpp jmgoconn.cpp mongo.cpp tabjmg.cpp - jmgfam.h jmgoconn.h mongo.h tabjmg.h - Mongo2Interface.java Mongo3Interface.java) - add_definitions(-DMONGO_SUPPORT -DMONGO_ENABLED=0) + add_definitions(-DMONGO_SUPPORT) ENDIF() ELSE() SET(JDBC_LIBRARY "") @@ -313,10 +312,7 @@ IF(CONNECT_WITH_MONGO) add_definitions(-DCMGO_SUPPORT) IF (NOT JAVA_FOUND AND JNI_FOUND) SET(CONNECT_SOURCES ${CONNECT_SOURCES} mongo.cpp mongo.h) - add_definitions(-DMONGO_SUPPORT -DMONGO_ENABLED=1) - ELSE () - remove_definitions(-DMONGO_ENABLED=0) - add_definitions(-DMONGO_ENABLED=1) + add_definitions(-DMONGO_SUPPORT) ENDIF (NOT JAVA_FOUND AND JNI_FOUND) ENDIF(libmongoc-1.0_FOUND) ENDIF(CONNECT_WITH_MONGO) diff --git a/storage/connect/array.cpp b/storage/connect/array.cpp index 59a53487a7e..639edf63a1a 100644 --- a/storage/connect/array.cpp +++ b/storage/connect/array.cpp @@ -520,7 +520,7 @@ bool ARRAY::FilTest(PGLOBAL g, PVAL valp, OPVAL opc, int opm) } else if (opc != OP_EXIST) { sprintf(g->Message, MSG(MISSING_ARG), opc); - throw (int)TYPE_ARRAY; + throw (int)TYPE_ARRAY; } else // OP_EXIST return Nval > 0; diff --git a/storage/connect/cmgoconn.cpp b/storage/connect/cmgoconn.cpp index fdd59040257..44fac56137f 100644 --- a/storage/connect/cmgoconn.cpp +++ b/storage/connect/cmgoconn.cpp @@ -22,17 +22,10 @@ #include "filter.h" #include "cmgoconn.h" +bool CMgoConn::IsInit = false; + bool IsNum(PSZ s); - -// Required to initialize libmongoc's internals -void mongo_init(bool init) -{ - if (init) - mongoc_init(); - else - mongoc_cleanup(); - -} // end of mongo_init +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s); /* --------------------------- Class INCOL --------------------------- */ @@ -139,11 +132,36 @@ CMgoConn::CMgoConn(PGLOBAL g, PCPARM pcg) m_Connected = false; } // end of CMgoConn standard constructor +/***********************************************************************/ +/* Required to initialize libmongoc's internals. */ +/***********************************************************************/ +void CMgoConn::mongo_init(bool init) +{ + if (init) + mongoc_init(); + else if (IsInit) + mongoc_cleanup(); + + IsInit = init; +} // end of mongo_init + /***********************************************************************/ /* Connect to the MongoDB server and get the collection. */ /***********************************************************************/ bool CMgoConn::Connect(PGLOBAL g) { + if (!IsInit) +#if defined(__WIN__) + __try { + mongo_init(true); + } __except (EXCEPTION_EXECUTE_HANDLER) { + strcpy(g->Message, "Cannot load MongoDB C driver"); + return true; + } // end try/except +#else // !__WIN__ + mongo_init(true); +#endif // !__WIN__ + Uri = mongoc_uri_new(Pcg->Uristr); if (!Uri) { @@ -240,12 +258,13 @@ int CMgoConn::CollSize(PGLOBAL g) /***********************************************************************/ bool CMgoConn::MakeCursor(PGLOBAL g) { - const char *p; - bool id, b = false, all = false; - PCSZ options = Pcg->Options; - PTDB tp = Pcg->Tdbp; - PCOL cp; - PSTRG s = NULL; + const char *p; + bool id, b = false, all = false; + PCSZ options = Pcg->Options; + PTDB tp = Pcg->Tdbp; + PCOL cp; + PSTRG s = NULL; + PFIL filp = tp->GetFilter(); id = (tp->GetMode() != MODE_READ); @@ -274,10 +293,10 @@ bool CMgoConn::MakeCursor(PGLOBAL g) s = new(g) STRING(g, 1023, (PSZ)options); - if (tp->GetFilter()) { + if (filp) { s->Append(",{\"$match\":"); - if (tp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return true; } else @@ -330,15 +349,15 @@ bool CMgoConn::MakeCursor(PGLOBAL g) } // endif error } else { - if (Pcg->Filter || tp->GetFilter()) { + if (Pcg->Filter || filp) { if (trace) { if (Pcg->Filter) htrc("Filter: %s\n", Pcg->Filter); - if (tp->GetFilter()) { + if (filp) { char buf[512]; - tp->GetFilter()->Prints(g, buf, 511); + filp->Prints(g, buf, 511); htrc("To_Filter: %s\n", buf); } // endif To_Filter @@ -346,11 +365,11 @@ bool CMgoConn::MakeCursor(PGLOBAL g) s = new(g) STRING(g, 1023, (PSZ)Pcg->Filter); - if (tp->GetFilter()) { + if (filp) { if (Pcg->Filter) s->Append(','); - if (tp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return NULL; } // endif Selector diff --git a/storage/connect/cmgoconn.h b/storage/connect/cmgoconn.h index f5cefea3442..b1216ac576c 100644 --- a/storage/connect/cmgoconn.h +++ b/storage/connect/cmgoconn.h @@ -93,6 +93,7 @@ public: PSZ Mini(PGLOBAL g, PCOL colp, const bson_t *bson, bool b); void GetColumnValue(PGLOBAL g, PCOL colp); bool AddValue(PGLOBAL g, PCOL colp, bson_t *doc, char *key, bool upd); + static void mongo_init(bool init); protected: // Members @@ -112,4 +113,5 @@ protected: PINCOL Fpc; // To insert INCOL classes PFBLOCK fp; bool m_Connected; + static bool IsInit; }; // end of class CMgoConn diff --git a/storage/connect/filter.cpp b/storage/connect/filter.cpp index 6a96240c469..079128f9aa6 100644 --- a/storage/connect/filter.cpp +++ b/storage/connect/filter.cpp @@ -10,7 +10,7 @@ /* Include relevant MariaDB header file. */ /***********************************************************************/ #include "my_global.h" -#include "sql_class.h" +//#include "sql_class.h" //#include "sql_time.h" #if defined(__WIN__) diff --git a/storage/connect/filter.h b/storage/connect/filter.h index 11b77aec132..c6ab8fddd35 100644 --- a/storage/connect/filter.h +++ b/storage/connect/filter.h @@ -61,9 +61,6 @@ class DllExport FILTER : public XOBJECT { /* Filter description block */ //virtual PXOB CheckSubQuery(PGLOBAL, PSQL); //virtual bool CheckLocal(PTDB); //virtual int CheckSpcCol(PTDB tdbp, int n); -#if defined(MONGO_SUPPORT) - bool MakeSelector(PGLOBAL g, PSTRG s); -#endif // MONGO_SUPPORT virtual void Printf(PGLOBAL g, FILE *f, uint n); virtual void Prints(PGLOBAL g, char *ps, uint z); // PFIL Linearize(bool nosep); diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 692c7674eb6..c738f39c668 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -129,10 +129,13 @@ #if defined(ODBC_SUPPORT) #include "odbccat.h" #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) #include "tabjdbc.h" #include "jdbconn.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT +#if defined(CMGO_SUPPORT) +#include "cmgoconn.h" +#endif // CMGO_SUPPORT #include "tabmysql.h" #include "filamdbf.h" #include "tabxcl.h" @@ -171,18 +174,18 @@ #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.06.0004 September 03, 2017"; + char version[]= "Version 1.06.0005 October 14, 2017"; #if defined(__WIN__) - char compver[]= "Version 1.06.0004 " __DATE__ " " __TIME__; + char compver[]= "Version 1.06.0005 " __DATE__ " " __TIME__; char slash= '\\'; #else // !__WIN__ char slash= '/'; #endif // !__WIN__ } // extern "C" -#if defined(NEW_MAR) +#if MYSQL_VERSION_ID > 100200 #define stored_in_db stored_in_db() -#endif // NEW_MAR) +#endif // MYSQL_VERSION_ID #if defined(XMAP) my_bool xmap= false; @@ -196,10 +199,10 @@ extern "C" { } // extern "C" #endif // XMSG -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) char *JvmPath; char *ClassPath; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT pthread_mutex_t parmut; pthread_mutex_t usrmut; @@ -222,7 +225,7 @@ bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, PCSZ host, PCSZ db, bool ZipLoadFile(PGLOBAL, PCSZ, PCSZ, PCSZ, bool, bool); bool ExactInfo(void); #if defined(CMGO_SUPPORT) -void mongo_init(bool); +//void mongo_init(bool); #endif // CMGO_SUPPORT USETEMP UseTemp(void); int GetConvSize(void); @@ -234,6 +237,8 @@ uint GetWorkSize(void); void SetWorkSize(uint); extern "C" const char *msglang(void); +static char *strz(PGLOBAL g, LEX_STRING &ls); + static void PopUser(PCONNECT xp); static PCONNECT GetUser(THD *thd, PCONNECT xp); static PGLOBAL GetPlug(THD *thd, PCONNECT& lxp); @@ -350,14 +355,21 @@ static MYSQL_THDVAR_UINT(json_grp_size, "max number of rows for JSON aggregate functions.", NULL, NULL, JSONMAX, 1, INT_MAX, 1); -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) // Default java wrapper to use with JDBC tables static MYSQL_THDVAR_STR(java_wrapper, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC, "Java wrapper class name", // check_java_wrapper, update_java_wrapper, NULL, NULL, "wrappers/JdbcInterface"); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT + +#if 0 // This is apparently not acceptable for a plugin +// Enabling MONGO table type +static MYSQL_THDVAR_BOOL(enable_mongo, PLUGIN_VAR_RQCMDARG, + "Enabling the MongoDB access", + NULL, NULL, MONGO_ENABLED); +#endif // 0 #if defined(MONGO_SUPPORT) // Enabling MONGO table type @@ -421,10 +433,14 @@ extern "C" const char *msglang(void) } // end of msglang #else // !XMSG && !NEWMSG -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) char *GetJavaWrapper(void) {return connect_hton ? THDVAR(current_thd, java_wrapper) : (char*)"wrappers/JdbcInterface";} -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT + +#if defined(JAVA_SUPPORT) +//bool MongoEnabled(void) { return THDVAR(current_thd, enable_mongo); } +#endif // JAVA_SUPPORT #if defined(MONGO_SUPPORT) bool MongoEnabled(void) { return THDVAR(current_thd, enable_mongo); } @@ -705,7 +721,7 @@ static int connect_init_func(void *p) XmlInitParserLib(); #endif // LIBXML2_SUPPORT -#if defined(CMGO_SUPPORT) +#if 0 //defined(CMGO_SUPPORT) mongo_init(true); #endif // CMGO_SUPPORT @@ -726,9 +742,9 @@ static int connect_init_func(void *p) DTVAL::SetTimeShift(); // Initialize time zone shift once for all BINCOL::SetEndian(); // Initialize host endian setting -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) JAVAConn::SetJVM(); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT DBUG_RETURN(0); } // end of connect_init_func @@ -748,12 +764,12 @@ static int connect_done_func(void *) #endif // LIBXML2_SUPPORT #if defined(CMGO_SUPPORT) - mongo_init(false); + CMgoConn::mongo_init(false); #endif // CMGO_SUPPORT -#ifdef JDBC_SUPPORT +#ifdef JAVA_SUPPORT JAVAConn::ResetJVM(); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #if !defined(__WIN__) PROFILE_End(); @@ -1758,7 +1774,7 @@ bool ha_connect::IsPartitioned(void) } // end of IsPartitioned -const char *ha_connect::GetDBName(const char* name) +PCSZ ha_connect::GetDBName(PCSZ name) { return (name) ? name : table->s->db.str; } // end of GetDBName @@ -1821,7 +1837,7 @@ void ha_connect::AddColName(char *cp, Field *fp) /***********************************************************************/ /* This function sets the current database path. */ /***********************************************************************/ -bool ha_connect::SetDataPath(PGLOBAL g, const char *path) +bool ha_connect::SetDataPath(PGLOBAL g, PCSZ path) { return (!(datapath= SetPath(g, path))); } // end of SetDataPath @@ -2181,7 +2197,7 @@ int ha_connect::MakeRecord(char *buf) /***********************************************************************/ /* Set row values from a MySQL pseudo record. Specific to MySQL. */ /***********************************************************************/ -int ha_connect::ScanRecord(PGLOBAL g, uchar *) +int ha_connect::ScanRecord(PGLOBAL g, const uchar *) { char attr_buffer[1024]; char data_buffer[1024]; @@ -2324,7 +2340,7 @@ int ha_connect::ScanRecord(PGLOBAL g, uchar *) /* Check change in index column. Specific to MySQL. */ /* Should be elaborated to check for real changes. */ /***********************************************************************/ -int ha_connect::CheckRecord(PGLOBAL g, const uchar *, uchar *newbuf) +int ha_connect::CheckRecord(PGLOBAL g, const uchar *, const uchar *newbuf) { return ScanRecord(g, newbuf); } // end of dummy CheckRecord @@ -2517,7 +2533,7 @@ const char *ha_connect::GetValStr(OPVAL vop, bool neg) val= (neg) ? " IS NOT NULL" : " IS NULL"; break; case OP_LIKE: - val= " LIKE "; + val= (neg) ? " NOT LIKE " : " LIKE "; break; case OP_XX: val= (neg) ? " NOT BETWEEN " : " BETWEEN "; @@ -2886,7 +2902,10 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) case Item_func::LE_FUNC: vop= OP_LE; break; case Item_func::GE_FUNC: vop= OP_GE; break; case Item_func::GT_FUNC: vop= OP_GT; break; - case Item_func::LIKE_FUNC: vop= OP_LIKE; break; + case Item_func::LIKE_FUNC: + vop= OP_LIKE; + neg = ((Item_func_opt_neg *)condf)->negated; + break; case Item_func::ISNOTNULL_FUNC: neg = true; // fall through @@ -4417,8 +4436,8 @@ bool ha_connect::IsSameIndex(PIXDEF xp1, PIXDEF xp2) return b; } // end of IsSameIndex -MODE ha_connect::CheckMode(PGLOBAL g, THD *thd, - MODE newmode, bool *chk, bool *cras) +MODE ha_connect::CheckMode(PGLOBAL g, THD *thd, + MODE newmode, bool *chk, bool *cras) { #if defined(DEVELOPMENT) if (true) { @@ -5379,20 +5398,18 @@ static int connect_assisted_discovery(handlerton *, THD* thd, #endif // __WIN__ //int hdr, mxe; int port = 0, mxr = 0, rc = 0, mul = 0, lrecl = 0; - PCSZ tabtyp = NULL; #if defined(ODBC_SUPPORT) POPARM sop= NULL; PCSZ ucnc= NULL; + PCSZ tabtyp = NULL; bool cnc= false; int cto= -1, qto= -1; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) || defined(MONGO_SUPPORT) -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) PJPARM sjp= NULL; -#endif // JDBC_SUPPORT PCSZ driver= NULL; char *url= NULL; -#endif // JDBC_SUPPORT || MONGO_SUPPORT +#endif // JAVA_SUPPORT uint tm, fnc= FNC_NO, supfnc= (FNC_NO | FNC_COL); bool bif, ok= false, dbf= false; TABTYPE ttp= TAB_UNDEF; @@ -5453,9 +5470,9 @@ static int connect_assisted_discovery(handlerton *, THD* thd, if ((ucnc= GetListOption(g, "UseDSN", topt->oplist))) cnc= (!*ucnc || *ucnc == 'y' || *ucnc == 'Y' || atoi(ucnc) != 0); #endif -#if defined(JDBC_SUPPORT) || defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) driver= GetListOption(g, "Driver", topt->oplist, NULL); -#endif // JDBC_SUPPORT || MONGO_SUPPORT +#endif // JAVA_SUPPORT #if defined(PROMPT_OK) cop= atoi(GetListOption(g, "checkdsn", topt->oplist, "0")); #endif // PROMPT_OK @@ -5542,7 +5559,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, supfnc |= (FNC_TABLE | FNC_DSN | FNC_DRIVER); break; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_JDBC: if (fnc & FNC_DRIVER) { ok = true; @@ -5576,10 +5593,10 @@ static int connect_assisted_discovery(handlerton *, THD* thd, supfnc |= (FNC_DRIVER | FNC_TABLE); break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT case TAB_DBF: dbf = true; - // fall through + // Passthru case TAB_CSV: if (!fn && fnc != FNC_NO) sprintf(g->Message, "Missing %s file name", topt->type); @@ -5633,10 +5650,8 @@ static int connect_assisted_discovery(handlerton *, THD* thd, ok = true; break; #endif // __WIN__ -#if defined(PIVOT_SUPPORT) case TAB_PIVOT: supfnc = FNC_NO; -#endif // PIVOT_SUPPORT case TAB_PRX: case TAB_TBL: case TAB_XCL: @@ -5667,14 +5682,14 @@ static int connect_assisted_discovery(handlerton *, THD* thd, ok = true; break; -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_MONGO: if (!topt->tabname) topt->tabname = tab; ok = true; break; -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT case TAB_VIR: ok = true; break; @@ -5747,7 +5762,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, break; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_JDBC: switch (fnc) { case FNC_NO: @@ -5776,7 +5791,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } // endswitch info break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT case TAB_MYSQL: qrp = MyColumns(g, thd, host, db, user, pwd, tab, NULL, port, fnc == FNC_COL); @@ -5806,11 +5821,9 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } // endif OcrColumns break; -#if defined(PIVOT_SUPPORT) case TAB_PIVOT: qrp = PivotColumns(g, tab, src, pic, fcl, skc, host, db, user, pwd, port); break; -#endif // PIVOT_SUPPORT case TAB_VIR: qrp = VirColumns(g, fnc == FNC_COL); break; @@ -5819,9 +5832,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, break; #if defined(MONGO_SUPPORT) case TAB_MONGO: - if (!(url = strz(g, create_info->connect_string)) || !*url) - url = "mongodb://localhost:27017"; - + url = strz(g, create_info->connect_string); qrp = MGOColumns(g, db, url, topt, fnc == FNC_COL); break; #endif // MONGO_SUPPORT @@ -5949,7 +5960,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, break; case FLD_SCHEM: -#if defined(ODBC_SUPPORT) || defined(JDBC_SUPPORT) +#if defined(ODBC_SUPPORT) || defined(JAVA_SUPPORT) if ((ttp == TAB_ODBC || ttp == TAB_JDBC) && crp->Kdata) { if (schem && stricmp(schem, crp->Kdata->GetCharValue(i))) { sprintf(g->Message, @@ -5960,7 +5971,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, schem = crp->Kdata->GetCharValue(i); } // endif ttp -#endif // ODBC_SUPPORT || JDBC_SUPPORT +#endif // ODBC_SUPPORT || JAVA_SUPPORT default: break; // Ignore } // endswitch Fld @@ -6008,7 +6019,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } else #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) if (ttp == TAB_JDBC) { int plgtyp; @@ -7151,7 +7162,7 @@ static MYSQL_SYSVAR_STR(errmsg_dir_path, msg_path, "../../../../storage/connect/"); // for testing #endif // XMSG -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) static MYSQL_SYSVAR_STR(jvm_path, JvmPath, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC, "Path to the directory where is the JVM lib", @@ -7163,7 +7174,7 @@ static MYSQL_SYSVAR_STR(class_path, ClassPath, "Java class path", // check_class_path, update_class_path, NULL, NULL, NULL); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT static struct st_mysql_sys_var* connect_system_variables[]= { @@ -7184,14 +7195,14 @@ static struct st_mysql_sys_var* connect_system_variables[]= { #endif // XMSG MYSQL_SYSVAR(json_null), MYSQL_SYSVAR(json_grp_size), -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) MYSQL_SYSVAR(jvm_path), MYSQL_SYSVAR(class_path), MYSQL_SYSVAR(java_wrapper), -#endif // JDBC_SUPPORT -#if defined(MONGO_SUPPORT) - MYSQL_SYSVAR(enable_mongo), -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT +#if defined(JAVA_SUPPORT) +//MYSQL_SYSVAR(enable_mongo), +#endif // JAVA_SUPPORT NULL }; @@ -7208,7 +7219,7 @@ maria_declare_plugin(connect) 0x0106, /* version number (1.05) */ NULL, /* status variables */ connect_system_variables, /* system variables */ - "1.06.0004", /* string version */ + "1.06.0005", /* string version */ MariaDB_PLUGIN_MATURITY_STABLE /* maturity */ } maria_declare_plugin_end; diff --git a/storage/connect/ha_connect.h b/storage/connect/ha_connect.h index e839590dbc8..4c5bf5856cc 100644 --- a/storage/connect/ha_connect.h +++ b/storage/connect/ha_connect.h @@ -32,8 +32,6 @@ /****************************************************************************/ #include "mycat.h" -static char *strz(PGLOBAL g, LEX_STRING &ls); - /****************************************************************************/ /* Structures used to pass info between CONNECT and ha_connect. */ /****************************************************************************/ @@ -207,13 +205,13 @@ public: bool IsOpened(void); int CloseTable(PGLOBAL g); int MakeRecord(char *buf); - int ScanRecord(PGLOBAL g, uchar *buf); - int CheckRecord(PGLOBAL g, const uchar *oldbuf, uchar *newbuf); + int ScanRecord(PGLOBAL g, const uchar *buf); + int CheckRecord(PGLOBAL g, const uchar *oldbuf, const uchar *newbuf); int ReadIndexed(uchar *buf, OPVAL op, const key_range *kr= NULL); bool IsIndexed(Field *fp); bool MakeKeyWhere(PGLOBAL g, PSTRG qry, OPVAL op, char q, const key_range *kr); - inline char *Strz(LEX_STRING &ls); +//inline char *Strz(LEX_STRING &ls); key_range start_key; @@ -231,7 +229,7 @@ public: /** @brief The file extensions. */ - const char **bas_ext() const; +//const char **bas_ext() const; /** Check if a storage engine supports a particular alter table in-place diff --git a/storage/connect/javaconn.cpp b/storage/connect/javaconn.cpp index 3ba99ed89f8..90f834ef9a7 100644 --- a/storage/connect/javaconn.cpp +++ b/storage/connect/javaconn.cpp @@ -17,7 +17,7 @@ /* Include relevant MariaDB header file. */ /***********************************************************************/ #include -#include +//#include #if defined(__WIN__) #include // for getcwd #if defined(__BORLANDC__) @@ -57,6 +57,7 @@ extern "C" HINSTANCE s_hModule; // Saved module handle extern char *JvmPath; // The connect_jvm_path global variable value extern char *ClassPath; // The connect_class_path global variable value +char *GetPluginDir(void); char *GetJavaWrapper(void); // The connect_java_wrapper variable value /***********************************************************************/ @@ -453,7 +454,7 @@ bool JAVAConn::Open(PGLOBAL g) vm_args.options = options; vm_args.ignoreUnrecognized = false; // invalid options make the JVM init fail - //=============== load and initialize Java VM and JNI interface ============= + //=============== load and initialize Java VM and JNI interface ============= rc = CreateJavaVM(&jvm, (void**)&env, &vm_args); // YES !! delete options; // we then no longer need the initialisation options. diff --git a/storage/connect/javaconn.h b/storage/connect/javaconn.h index 5d82570365b..54b7c4e92b7 100644 --- a/storage/connect/javaconn.h +++ b/storage/connect/javaconn.h @@ -54,12 +54,12 @@ typedef jint(JNICALL *GETJVM) (JavaVM **, jsize, jsize *); typedef jint(JNICALL *GETDEF) (void *); #endif // _DEBUG -class JAVAConn; +//class JAVAConn; /***********************************************************************/ /* JAVAConn class. */ /***********************************************************************/ -class JAVAConn : public BLOCK { +class DllExport JAVAConn : public BLOCK { friend class TDBJMG; friend class JMGDISC; private: diff --git a/storage/connect/jdbccat.h b/storage/connect/jdbccat.h index 1210aff77d8..d137164b53a 100644 --- a/storage/connect/jdbccat.h +++ b/storage/connect/jdbccat.h @@ -6,7 +6,7 @@ #define DEFAULT_QUERY_TIMEOUT -1 // means do not set typedef struct jdbc_parms { - int CheckSize(int rows); + int CheckSize(int rows); PCSZ Driver; // JDBC driver PCSZ Url; // Driver URL PCSZ User; // User connect info diff --git a/storage/connect/jdbconn.cpp b/storage/connect/jdbconn.cpp index cfe74cabacd..4c21c2c9681 100644 --- a/storage/connect/jdbconn.cpp +++ b/storage/connect/jdbconn.cpp @@ -654,7 +654,7 @@ bool JDBConn::Connect(PJPARM sop) if (gmID(g, typid, "ColumnType", "(ILjava/lang/String;)I")) return true; else - m_Opened = true; + m_Connected = true; return false; } // end of Connect diff --git a/storage/connect/jmgoconn.cpp b/storage/connect/jmgoconn.cpp index 7535431c82e..4736641ef3f 100644 --- a/storage/connect/jmgoconn.cpp +++ b/storage/connect/jmgoconn.cpp @@ -25,6 +25,7 @@ #define nullptr 0 bool IsNum(PSZ s); +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s); /* --------------------------- Class JNCOL --------------------------- */ @@ -123,12 +124,13 @@ void JMgoConn::AddJars(PSTRG jpop, char sep) #if defined(DEVELOPMENT) if (m_Version == 2) { jpop->Append(sep); - jpop->Append("C:/Eclipse/workspace/MongoWrap2/bin"); +// jpop->Append("C:/Eclipse/workspace/MongoWrap2/bin"); jpop->Append(sep); jpop->Append("C:/mongo-java-driver/mongo-java-driver-2.13.3.jar"); } else { jpop->Append(sep); - jpop->Append("C:/Eclipse/workspace/MongoWrap3/bin"); +// jpop->Append("C:/Eclipse/workspace/MongoWrap3/bin"); +// jpop->Append("C:/Program Files/MariaDB 10.1/lib/plugin/JavaWrappers.jar"); jpop->Append(sep); jpop->Append("C:/mongo-java-driver/mongo-java-driver-3.4.2.jar"); } // endif m_Version @@ -238,6 +240,7 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, PSZ jp; PCSZ op = NULL, sf = NULL, Options = options; PSTRG s = NULL; + PFIL filp = tdbp->GetFilter(); if (Options && !stricmp(Options, "all")) { Options = NULL; @@ -264,10 +267,10 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, s = new(g) STRING(g, 1023, (PSZ)Options); - if (tdbp->GetFilter()) { + if (filp) { s->Append(",{\"$match\":"); - if (tdbp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return NULL; } else @@ -314,15 +317,15 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, return AggregateCollection(p); } else { - if (filter || tdbp->GetFilter()) { + if (filter || filp) { if (trace) { if (filter) htrc("Filter: %s\n", filter); - if (tdbp->GetFilter()) { + if (filp) { char buf[512]; - tdbp->GetFilter()->Prints(g, buf, 511); + filp->Prints(g, buf, 511); htrc("To_Filter: %s\n", buf); } // endif To_Filter @@ -331,11 +334,11 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, s = new(g) STRING(g, 1023, (PSZ)filter); len = s->GetLength(); - if (tdbp->GetFilter()) { + if (filp) { if (filter) s->Append(','); - if (tdbp->GetFilter()->MakeSelector(g, s)) { + if (MakeSelector(g, filp, s)) { strcpy(g->Message, "Failed making selector"); return NULL; } // endif Selector diff --git a/storage/connect/json.h b/storage/connect/json.h index cf7b2b18737..375532212c4 100644 --- a/storage/connect/json.h +++ b/storage/connect/json.h @@ -53,8 +53,8 @@ PSZ Serialize(PGLOBAL g, PJSON jsp, char *fn, int pretty); bool SerializeArray(JOUT *js, PJAR jarp, bool b); bool SerializeObject(JOUT *js, PJOB jobp); bool SerializeValue(JOUT *js, PJVAL jvp); -bool IsNum(PSZ s); char *NextChr(PSZ s, char sep); +DllExport bool IsNum(PSZ s); /***********************************************************************/ /* Class JOUT. Used by Serialize. */ diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index 4f0978cb548..e338d6c49a2 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -497,28 +497,23 @@ PVAL JSNX::ExpandArray(PGLOBAL g, PJAR arp, int n) /*********************************************************************************/ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) { -//int i, ars, nv = 0, nextsame = Tjp->NextSame; - int i, nv = 0, nextsame = 0; - my_bool err; + int i, ars = arp->size(), nv = 0; + bool err; OPVAL op = Nodes[n].Op; PVAL val[2], vp = Nodes[n].Valp; PJVAL jvrp, jvp; JVALUE jval; vp->Reset(); -//ars = arp->size(); if (trace) - htrc("CalculateArray size=%d\n", arp->size()); -// htrc("CalculateArray size=%d\n", ars); + htrc("CalculateArray size=%d op=%d\n", ars, op); for (i = 0; i < arp->size(); i++) { -//for (i = 0; i < ars; i++) { because compiler bug jvrp = arp->GetValue(i); if (trace) - htrc("Value %s null=%d nv=%d\n", - jvrp->GetString(g), jvrp->IsNull() ? 1 : 0, nv); + htrc("i=%d nv=%d\n", i, nv); if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) { if (jvrp->IsNull()) { @@ -530,6 +525,10 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) } else jvp = jvrp; + if (trace) + htrc("jvp=%s null=%d\n", + jvp->GetString(g), jvp->IsNull() ? 1 : 0); + if (!nv++) { SetJsonValue(g, vp, jvp, n); continue; @@ -562,6 +561,13 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) if (err) vp->Reset(); + if (trace) { + char buf(32); + + htrc("vp='%s' err=%d\n", + vp->GetCharString(&buf), err ? 1 : 0); + } // endif trace + } // endif Zero } // endif jvrp @@ -579,7 +585,6 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) } // endif Op -//Tjp->NextSame = nextsame; return vp; } // end of CalculateArray diff --git a/storage/connect/mongo.cpp b/storage/connect/mongo.cpp index 12f2f428112..088dc2d29d1 100644 --- a/storage/connect/mongo.cpp +++ b/storage/connect/mongo.cpp @@ -18,12 +18,13 @@ #include "plgdbsem.h" #include "xtable.h" #include "tabext.h" +#include "filter.h" #if defined(CMGO_SUPPORT) #include "tabcmg.h" -#endif // MONGO_SUPPORT -#if defined(JDBC_SUPPORT) +#endif // CMGO_SUPPORT +#if defined(JAVA_SUPPORT) #include "tabjmg.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #include "resource.h" /***********************************************************************/ @@ -32,8 +33,89 @@ #define MAXCOL 200 /* Default max column nb in result */ #define TYPE_UNKNOWN 12 /* Must be greater than other types */ +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s); bool IsNum(PSZ s); +/***********************************************************************/ +/* Make selector json representation for Mongo tables. */ +/***********************************************************************/ +bool MakeSelector(PGLOBAL g, PFIL fp, PSTRG s) +{ + OPVAL opc = fp->GetOpc(); + + s->Append('{'); + + if (opc == OP_AND || opc == OP_OR) { + if (fp->GetArgType(0) != TYPE_FILTER || fp->GetArgType(1) != TYPE_FILTER) + return true; + + s->Append("\"$"); + s->Append(opc == OP_AND ? "and" : "or"); + s->Append("\":["); + + if (MakeSelector(g, (PFIL)fp->Arg(0), s)) + return true; + + s->Append(','); + + if (MakeSelector(g, (PFIL)fp->Arg(1), s)) + return true; + + s->Append(']'); + } else { + if (fp->GetArgType(0) != TYPE_COLBLK) + return true; + + s->Append('"'); + s->Append(((PCOL)fp->Arg(0))->GetJpath(g, false)); + s->Append("\":{\"$"); + + switch (opc) { + case OP_EQ: + s->Append("eq"); + break; + case OP_NE: + s->Append("ne"); + break; + case OP_GT: + s->Append("gt"); + break; + case OP_GE: + s->Append("gte"); + break; + case OP_LT: + s->Append("lt"); + break; + case OP_LE: + s->Append("lte"); + break; + case OP_NULL: + case OP_LIKE: + case OP_EXIST: + default: + return true; + } // endswitch Opc + + s->Append("\":"); + + if (fp->GetArgType(1) == TYPE_COLBLK) { + s->Append("\"$"); + s->Append(((PEXTCOL)fp->Arg(1))->GetJpath(g, false)); + s->Append('"'); + } else { + char buf[501]; + + fp->Arg(1)->Prints(g, buf, 500); + s->Append(buf); + } // endif Type + + s->Append('}'); + } // endif opc + + s->Append('}'); + return false; +} // end of MakeSelector + /***********************************************************************/ /* MGOColumns: construct the result blocks containing the description */ /* of all the columns of a document contained inside MongoDB. */ @@ -49,7 +131,7 @@ PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt, bool info) int i, n = 0; PCSZ drv; PBCOL bcp; - MGODISC *cmgd; + MGODISC *cmgd = NULL; PQRYRES qrp; PCOLRES crp; @@ -72,7 +154,7 @@ PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt, bool info) goto err; #endif } else if (drv && toupper(*drv) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) cmgd = new(g) JMGDISC(g, (int*)length); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); @@ -142,7 +224,7 @@ skipit: return qrp; err: - if (cmgd->tmgp) + if (cmgd && cmgd->tmgp) cmgd->tmgp->CloseDB(g); return NULL; @@ -181,7 +263,7 @@ int MGODISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt) /* Open the MongoDB collection. */ /*********************************************************************/ tdp = new(g) MGODEF; - tdp->Uri = uri; + tdp->Uri = (uri && *uri) ? uri : "mongodb://localhost:27017"; tdp->Driver = drv; tdp->Tabname = GetStringTableOption(g, topt, "Name", NULL); tdp->Tabname = GetStringTableOption(g, topt, "Tabname", tdp->Tabname); @@ -346,7 +428,7 @@ PTDB MGODEF::GetTable(PGLOBAL g, MODE m) return NULL; #endif } else if (Driver && toupper(*Driver) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) if (Catfunc == FNC_COL) return new(g) TDBJGL(this); else diff --git a/storage/connect/mongo.h b/storage/connect/mongo.h index af69226ea8b..97c391a217f 100644 --- a/storage/connect/mongo.h +++ b/storage/connect/mongo.h @@ -63,7 +63,7 @@ class DllExport MGODEF : public EXTDEF { /* Table description */ friend class TDBJGL; friend class CMGFAM; friend class MGODISC; - friend PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); + friend DllExport PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); public: // Constructor MGODEF(void); diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc index 0f8d7b76b60..bb77512be62 100644 --- a/storage/connect/mycat.cc +++ b/storage/connect/mycat.cc @@ -83,22 +83,20 @@ #define NODBC #include "tabodbc.h" #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) #define NJDBC #include "tabjdbc.h" -#endif // JDBC_SUPPORT -#if defined(PIVOT_SUPPORT) +#endif // JAVA_SUPPORT #include "tabpivot.h" -#endif // PIVOT_SUPPORT #include "tabvir.h" #include "tabjson.h" #include "ha_connect.h" #if defined(XML_SUPPORT) #include "tabxml.h" #endif // XML_SUPPORT -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) #include "mongo.h" -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT #if defined(ZIP_SUPPORT) #include "tabzip.h" #endif // ZIP_SUPPORT @@ -111,9 +109,9 @@ extern "C" HINSTANCE s_hModule; // Saved module handle #endif // !__WIN__ -#if defined(MONGO_SUPPORT) -bool MongoEnabled(void); -#endif // MONGO_SUPPORT +#if defined(JAVA_SUPPORT) +//bool MongoEnabled(void); +#endif // JAVA_SUPPORT PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info); /***********************************************************************/ @@ -144,8 +142,9 @@ TABTYPE GetTypeID(const char *type) #if defined(ODBC_SUPPORT) : (!stricmp(type, "ODBC")) ? TAB_ODBC #endif -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) : (!stricmp(type, "JDBC")) ? TAB_JDBC + : (!stricmp(type, "MONGO")) ? TAB_MONGO #endif : (!stricmp(type, "MYSQL")) ? TAB_MYSQL : (!stricmp(type, "MYPRX")) ? TAB_MYSQL @@ -159,16 +158,11 @@ TABTYPE GetTypeID(const char *type) : (!stricmp(type, "OCCUR")) ? TAB_OCCUR : (!stricmp(type, "CATLG")) ? TAB_PRX // Legacy : (!stricmp(type, "PROXY")) ? TAB_PRX -#if defined(PIVOT_SUPPORT) : (!stricmp(type, "PIVOT")) ? TAB_PIVOT -#endif : (!stricmp(type, "VIR")) ? TAB_VIR : (!stricmp(type, "JSON")) ? TAB_JSON #if defined(ZIP_SUPPORT) : (!stricmp(type, "ZIP")) ? TAB_ZIP -#endif -#if defined(MONGO_SUPPORT) - : (!stricmp(type, "MONGO")) ? TAB_MONGO #endif : (!stricmp(type, "OEM")) ? TAB_OEM : TAB_NIY; } // end of GetTypeID @@ -542,9 +536,9 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) #if defined(ODBC_SUPPORT) case TAB_ODBC: tdp= new(g) ODBCDEF; break; #endif // ODBC_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_JDBC: tdp= new(g) JDBCDEF; break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #if defined(__WIN__) case TAB_MAC: tdp= new(g) MACDEF; break; case TAB_WMI: tdp= new(g) WMIDEF; break; @@ -555,17 +549,15 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) case TAB_PRX: tdp= new(g) PRXDEF; break; case TAB_OCCUR: tdp= new(g) OCCURDEF; break; case TAB_MYSQL: tdp= new(g) MYSQLDEF; break; -#if defined(PIVOT_SUPPORT) case TAB_PIVOT: tdp= new(g) PIVOTDEF; break; -#endif // PIVOT_SUPPORT case TAB_VIR: tdp= new(g) VIRDEF; break; case TAB_JSON: tdp= new(g) JSONDEF; break; #if defined(MONGO_SUPPORT) case TAB_MONGO: - if (MongoEnabled()) +// if (MongoEnabled()) tdp = new(g) MGODEF; - else - strcpy(g->Message, "MONGO type not enabled"); +// else +// strcpy(g->Message, "MONGO type not enabled"); break; #endif // MONGO_SUPPORT diff --git a/storage/connect/mysql-test/connect/r/json_java_2.result b/storage/connect/mysql-test/connect/r/json_java_2.result index ad1ca0fe85f..783d86e6595 100644 --- a/storage/connect/mysql-test/connect/r/json_java_2.result +++ b/storage/connect/mysql-test/connect/r/json_java_2.result @@ -1,5 +1,4 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.0/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; -set connect_enable_mongo=1; +SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; # # Test the MONGO table type # @@ -310,7 +309,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=JSON TABNAME='cities' OPTION_LIST='Driver=Java,Version=2' CONNECTION='mongodb://localhost:27017' LRECL=4096 DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -382,4 +381,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/json_java_3.result b/storage/connect/mysql-test/connect/r/json_java_3.result index d7d185956d6..a301e0273d5 100644 --- a/storage/connect/mysql-test/connect/r/json_java_3.result +++ b/storage/connect/mysql-test/connect/r/json_java_3.result @@ -1,5 +1,4 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.0/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; -set connect_enable_mongo=1; +SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; # # Test the MONGO table type # @@ -310,7 +309,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=JSON TABNAME='cities' OPTION_LIST='Driver=Java,Version=3' CONNECTION='mongodb://localhost:27017' LRECL=4096 DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -382,4 +381,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/json_mongo_c.result b/storage/connect/mysql-test/connect/r/json_mongo_c.result index afcad8d2ea2..8adc006a51b 100644 --- a/storage/connect/mysql-test/connect/r/json_mongo_c.result +++ b/storage/connect/mysql-test/connect/r/json_mongo_c.result @@ -1,4 +1,3 @@ -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -309,7 +308,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=JSON TABNAME='cities' OPTION_LIST='Driver=C,Version=0' CONNECTION='mongodb://localhost:27017' LRECL=1024 DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -381,4 +380,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_c.result b/storage/connect/mysql-test/connect/r/mongo_c.result index f90f3a94b44..c7aadcf1165 100644 --- a/storage/connect/mysql-test/connect/r/mongo_c.result +++ b/storage/connect/mysql-test/connect/r/mongo_c.result @@ -1,4 +1,3 @@ -set connect_enable_mongo=1; # # Test the MONGO table type # @@ -305,7 +304,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=MONGO TABNAME='cities' OPTION_LIST='Driver=C,Version=0' DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -377,4 +376,3 @@ planner 167 41.750000 postcard 23 5.750000 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_java_2.result b/storage/connect/mysql-test/connect/r/mongo_java_2.result index a77ccd2d452..708b6f1cc7c 100644 --- a/storage/connect/mysql-test/connect/r/mongo_java_2.result +++ b/storage/connect/mysql-test/connect/r/mongo_java_2.result @@ -1,5 +1,4 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.0/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; -set connect_enable_mongo=1; +SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; # # Test the MONGO table type # @@ -306,7 +305,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=MONGO TABNAME='cities' OPTION_LIST='Driver=Java,Version=2' DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -378,4 +377,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_java_3.result b/storage/connect/mysql-test/connect/r/mongo_java_3.result index ceb1be9ddcb..672d9f15b80 100644 --- a/storage/connect/mysql-test/connect/r/mongo_java_3.result +++ b/storage/connect/mysql-test/connect/r/mongo_java_3.result @@ -1,5 +1,4 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.0/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; -set connect_enable_mongo=1; +SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; # # Test the MONGO table type # @@ -306,7 +305,7 @@ loc_0 double(12,6) NOT NULL `FIELD_FORMAT`='loc.0', loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=MONGO TABNAME='cities' OPTION_LIST='Driver=Java,Version=3' DATA_CHARSET='utf8'; # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -378,4 +377,3 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true -set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/odbc_firebird.result b/storage/connect/mysql-test/connect/r/odbc_firebird.result index b0c2582abeb..3c4cd84fffc 100644 --- a/storage/connect/mysql-test/connect/r/odbc_firebird.result +++ b/storage/connect/mysql-test/connect/r/odbc_firebird.result @@ -9,29 +9,13 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='ODBC' `CATFUNC`='Sources' SELECT * FROM t1; Name Description -dBASE Files Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx) -PLUGDB_DEBUG PLUGODBC_Driver -PLUGDB_ODBC PLUGODBC_Driver -SafeDB_ODBC SDB_ODBC_Driver -Firebird Firebird/InterBase(r) driver -ConnectEngineXLS Microsoft Excel Driver (*.xls) Excel Files Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) -MariaODBC MySQL ODBC 5.2a Driver -MariaODBCbeta MariaDB ODBC 1.0 Driver -MyODBC MySQL ODBC 5.2a Driver MS Access Database Microsoft Access Driver (*.mdb, *.accdb) -MS Access Db1 Microsoft Access Driver (*.mdb) -MySQL-ANSI MySQL ODBC 5.3 ANSI Driver -MySQL-Unicode MySQL ODBC 5.3 Unicode Driver -Xtreme Sample Database 2008 Microsoft Access Driver (*.mdb) -PlugDB test PLUGODBC_Driver -SQLite3 Datasource SQLite3 ODBC Driver -SQLite Datasource SQLite ODBC Driver -SQLite UTF-8 Datasource SQLite ODBC (UTF-8) Driver ORACLE_TEST Oracle in XE -ConnectEnginePostgresql PostgreSQL ODBC Driver(ANSI) +SQLServer_Test SQL Server Native Client 11.0 +Firebird Firebird/InterBase(r) driver ConnectEngineOracle Oracle in XE -ConnectEngineSQLServer SQL Server +ConnectEngineSQLServer SQL Server Native Client 11.0 DROP TABLE t1; CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Drivers; SHOW CREATE TABLE t1; @@ -42,51 +26,12 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='ODBC' `CATFUNC`='Drivers' SELECT * FROM t1; Description Attributes -SQL Server UsageCount=1;SQLLevel=1;FileUsage=0;DriverODBCVer=03.50;ConnectFunctions=YYY;APILevel=2;CPTimeout=60; -Microsoft ODBC for Oracle UsageCount=1;SQLLevel=1;FileUsage=0;DriverODBCVer=02.50;ConnectFunctions=YYY;APILevel=1;CPTimeout=120; -Microsoft Access Driver (*.mdb) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=2;FileExtns=*.mdb;SQLLevel=0; -Microsoft Access-Treiber (*.mdb) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=2;FileExtns=*.mdb;SQLLevel=0; -Driver do Microsoft Access (*.mdb) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=2;FileExtns=*.mdb;SQLLevel=0; -Microsoft dBase Driver (*.dbf) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.ndx,*.mdx;SQLLevel=0; -Microsoft dBase-Treiber (*.dbf) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.ndx,*.mdx;SQLLevel=0; -Driver do Microsoft dBase (*.dbf) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.ndx,*.mdx;SQLLevel=0; -Microsoft Excel Driver (*.xls) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.xls;SQLLevel=0; -Microsoft Excel-Treiber (*.xls) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.xls;SQLLevel=0; -Driver do Microsoft Excel(*.xls) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.xls;SQLLevel=0; -Microsoft Paradox Driver (*.db ) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.db;SQLLevel=0; -Microsoft Paradox-Treiber (*.db ) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.db;SQLLevel=0; -Driver do Microsoft Paradox (*.db ) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.db;SQLLevel=0; -Microsoft Text Driver (*.txt; *.csv) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv;SQLLevel=0; -Microsoft Text-Treiber (*.txt; *.csv) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv;SQLLevel=0; -Driver da Microsoft para arquivos texto (*.txt; *.csv) UsageCount=1;APILevel=1;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv;SQLLevel=0; -Microsoft Visual FoxPro Driver UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Microsoft FoxPro VFP Driver (*.dbf) UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Microsoft dBase VFP Driver (*.dbf) UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Microsoft Visual FoxPro-Treiber UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -Driver para o Microsoft Visual FoxPro UsageCount=1;APILevel=0;ConnectFunctions=YYN;DriverODBCVer=02.50;FileUsage=1;FileExtns=*.dbf,*.cdx,*.idx,*.fpt;SQLLevel=0; -SQL Native Client UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=09.00;FileUsage=0;SQLLevel=1; -CR Sybase Wire Protocol ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=0;SQLLevel=0;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -CR SQL Server Native Wire Protocol ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=0;SQLLevel=1;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -CR SQL Server Classic Wire Protocol ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=0;SQLLevel=1;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -CR TextFile ODBC Driver 6.0 UsageCount=1;APILevel=1;ConnectFunctions=YYY;DriverODBCVer=3.52;FileUsage=1;FileExtns=*.*;SQLLevel=0;CPTimeout=60;HelpRootDirectory=C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\help; -PLUGODBC_Driver UsageCount=1; -SDB_ODBC_Driver UsageCount=2; -Microsoft Access Text Driver (*.txt, *.csv) SQLLevel=0;FileExtns=*.txt, *.csv;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx) SQLLevel=0;FileExtns=*.dbf, *.ndx, *.mdx;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) SQLLevel=0;FileExtns=*.xls,*.xlsx, *.xlsb;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -Microsoft Access Driver (*.mdb, *.accdb) SQLLevel=0;FileExtns=*.mdb,*.accdb;FileUsage=2;DriverODBCVer=02.50;ConnectFunctions=YYN;APILevel=1;UsageCount=3; -SQLite3 ODBC Driver UsageCount=1; -SQLite ODBC Driver UsageCount=1; -SQLite ODBC (UTF-8) Driver UsageCount=1; +SQL Server APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.50;FileUsage=0;SQLLevel=1;UsageCount=1; Oracle in XE ConnectionFunctions=YYY;DriverODBCVer=03.51;CPTimeout=60;FileUsage=0;APILevel=1;SQLLevel=1; -Oracle in instantclient_12_1 APILevel=1;ConnectionFunctions=YYY;CPTimeout=60;DriverODBCVer=03.51;FileUsage=0;SQLLevel=1; -PostgreSQL ODBC Driver(ANSI) APILevel=1;ConnectFunctions=YYN;DriverODBCVer=09.02.0100;FileUsage=0;SQLLevel=1; -PostgreSQL ODBC Driver(UNICODE) APILevel=1;ConnectFunctions=YYN;DriverODBCVer=09.02.0100;FileUsage=0;SQLLevel=1; SQL Server Native Client 11.0 UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.80;FileUsage=0;SQLLevel=1; -MariaDB ODBC 1.0 Driver UsageCount=1; +ODBC Driver 13 for SQL Server UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.80;FileUsage=0;SQLLevel=1; +SQL Server Native Client RDA 11.0 UsageCount=1;APILevel=2;ConnectFunctions=YYY;CPTimeout=60;DriverODBCVer=03.80;FileUsage=0;SQLLevel=1; Firebird/InterBase(r) driver UsageCount=1;FileExtns=*.fdb,*.gdb;APILevel=1;ConnectFunctions=YYY;FileUsage=0;DriverODBCVer=03.51;SQLLevel=1; -MySQL ODBC 5.3 ANSI Driver UsageCount=1; -MySQL ODBC 5.3 Unicode Driver UsageCount=1; DROP TABLE t1; CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Tables CONNECTION='Not important'; SHOW CREATE TABLE t1; @@ -154,9 +99,9 @@ EMP_NO FIRST_NAME LAST_NAME PHONE_EXT HIRE_DATE DEPT_NO JOB_CODE JOB_GRADE JOB_C 113 Mary Page 845 1993-04-12 00:00:00 671 Eng 4 USA 48000.00 Page, Mary 114 Bill Parker 247 1993-06-01 00:00:00 623 Eng 5 USA 35000.00 Parker, Bill 118 Takashi Yamamoto 23 1993-07-01 00:00:00 115 SRep 4 Japan 7480000.00 Yamamoto, Takashi -121 Roberto Ferrari 1 1993-07-12 00:00:00 125 SRep 4 Italy 99000000.00 Ferrari, Roberto +121 Roberto Ferrari 1 1993-07-12 00:00:00 125 SRep 4 Italy 33000.00 Ferrari, Roberto 127 Michael Yanowski 492 1993-08-09 00:00:00 100 SRep 4 USA 44000.00 Yanowski, Michael -134 Jacques Glon NULL 1993-08-23 00:00:00 123 SRep 4 France 390500.00 Glon, Jacques +134 Jacques Glon NULL 1993-08-23 00:00:00 123 SRep 4 France 38500.00 Glon, Jacques 136 Scott Johnson 265 1993-09-13 00:00:00 623 Doc 3 USA 60000.00 Johnson, Scott 138 T.J. Green 218 1993-11-01 00:00:00 621 Eng 4 USA 36000.00 Green, T.J. 141 Pierre Osborne NULL 1994-01-03 00:00:00 121 SRep 4 Switzerland 110000.00 Osborne, Pierre diff --git a/storage/connect/mysql-test/connect/t/mongo_test.inc b/storage/connect/mysql-test/connect/t/mongo_test.inc index c728b85fd2f..dfc223e9074 100644 --- a/storage/connect/mysql-test/connect/t/mongo_test.inc +++ b/storage/connect/mysql-test/connect/t/mongo_test.inc @@ -1,4 +1,4 @@ -set connect_enable_mongo=1; +#set connect_enable_mongo=1; --echo # --echo # Test the MONGO table type @@ -156,7 +156,7 @@ eval CREATE TABLE t1 ( loc_1 char(12) NOT NULL `FIELD_FORMAT`='loc.1', pop int(11) NOT NULL, state char(2) NOT NULL) -ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE='MONGO' TABNAME='cities' +ENGINE=CONNECT CONNECTION='mongodb://localhost:27017' TABLE_TYPE=$TYPE TABNAME='cities' OPTION_LIST='Driver=$DRV,Version=$VERS' $CONN DATA_CHARSET='utf8'; --echo # Using SQL for grouping SELECT state, sum(pop) AS totalPop FROM t1 GROUP BY state HAVING totalPop >= 10000000 ORDER BY totalPop DESC; @@ -204,4 +204,4 @@ SELECT * FROM t1; DROP TABLE t1; --exec $MONGO --eval "db.testcoll.drop()" --quiet -set connect_enable_mongo=0; +#set connect_enable_mongo=0; diff --git a/storage/connect/plgdbutl.cpp b/storage/connect/plgdbutl.cpp index 25da3162516..0a6507315db 100644 --- a/storage/connect/plgdbutl.cpp +++ b/storage/connect/plgdbutl.cpp @@ -38,6 +38,7 @@ /* Include relevant MariaDB header file. */ /***********************************************************************/ #include "my_global.h" +#include "my_pthread.h" #if defined(__WIN__) #include #include @@ -71,12 +72,12 @@ #ifdef ZIP_SUPPORT #include "filamzip.h" #endif // ZIP_SUPPORT -#ifdef JDBC_SUPPORT +#ifdef JAVA_SUPPORT #include "javaconn.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #ifdef CMGO_SUPPORT #include "cmgoconn.h" -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT /***********************************************************************/ /* DB static variables. */ @@ -952,20 +953,20 @@ int PlugCloseFile(PGLOBAL g, PFBLOCK fp, bool all) fp->File = NULL; break; #endif // ZIP_SUPPORT -#ifdef JDBC_SUPPORT +#ifdef JAVA_SUPPORT case TYPE_FB_JAVA: ((JAVAConn*)fp->File)->Close(); fp->Count = 0; fp->File = NULL; break; -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #ifdef CMGO_SUPPORT case TYPE_FB_MONGO: ((CMgoConn*)fp->File)->Close(); fp->Count = 0; fp->File = NULL; break; -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT default: rc = RC_FX; } // endswitch Type diff --git a/storage/connect/preparse.h b/storage/connect/preparse.h index 3db7a2af1cd..f16624548fb 100644 --- a/storage/connect/preparse.h +++ b/storage/connect/preparse.h @@ -8,7 +8,7 @@ /***********************************************************************/ typedef struct _datpar { const char *Format; // Points to format to decode - const char *Curp; // Points to current parsing position + char *Curp; // Points to current parsing position char *InFmt; // Start of input format char *OutFmt; // Start of output format int Index[8]; // Indexes of date values diff --git a/storage/connect/reldef.h b/storage/connect/reldef.h index 84ae2a491f0..f8256a59b3d 100644 --- a/storage/connect/reldef.h +++ b/storage/connect/reldef.h @@ -11,7 +11,7 @@ #include "block.h" #include "catalog.h" -#include "my_sys.h" +//#include "my_sys.h" #include "mycat.h" typedef class INDEXDEF *PIXDEF; @@ -114,7 +114,7 @@ public: int Sort; /* Table already sorted ??? */ int Multiple; /* 0: No 1: DIR 2: Section 3: filelist */ int Degree; /* Number of columns in the table */ - int Pseudo; /* Bit: 1 ROWID }Ok, 2 FILEID Ok */ + int Pseudo; /* Bit: 1 ROWID }Ok, 2 FILEID Ok */ bool Read_Only; /* true for read only tables */ const CHARSET_INFO *m_data_charset; const char *csname; /* Table charset name */ diff --git a/storage/connect/tabjmg.cpp b/storage/connect/tabjmg.cpp index 50efd727604..ba3e1c3e7c0 100644 --- a/storage/connect/tabjmg.cpp +++ b/storage/connect/tabjmg.cpp @@ -73,9 +73,10 @@ bool JMGDISC::ColDesc(PGLOBAL g, jobject obj, char *pcn, char *pfmt, int ncol, int k) { const char *key; - char colname[65]; - char fmt[129]; - bool rc = true; + char colname[65]; + char fmt[129]; + bool rc = true; + size_t z; jint *n = nullptr; jstring jkey; jobject jres; @@ -105,14 +106,16 @@ bool JMGDISC::ColDesc(PGLOBAL g, jobject obj, char *pcn, char *pfmt, if (pcn) { strncpy(colname, pcn, 64); colname[64] = 0; - strncat(strncat(colname, "_", 65), key, 65); + z = 65 - strlen(colname); + strncat(strncat(colname, "_", z), key, z - 1); } else strcpy(colname, key); if (pfmt) { strncpy(fmt, pfmt, 128); fmt[128] = 0; - strncat(strncat(fmt, ".", 129), key, 129); + z = 129 - strlen(fmt); + strncat(strncat(fmt, ".", z), key, z - 1); } else strcpy(fmt, key); @@ -178,7 +181,7 @@ TDBJMG::TDBJMG(PMGODEF tdp) : TDBEXT(tdp) Ops.User = NULL; Ops.Pwd = NULL; Ops.Scrollable = false; - Ops.Fsize = Ops.CheckSize(Rows); + Ops.Fsize = 0; Fpos = -1; N = 0; Done = false; diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 401441520da..8778b7d4b47 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -31,14 +31,12 @@ #if defined(ZIP_SUPPORT) #include "filamzip.h" #endif // ZIP_SUPPORT -#if defined(MONGO_SUPPORT) -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) #include "jmgfam.h" -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #if defined(CMGO_SUPPORT) #include "cmgfam.h" #endif // CMGO_SUPPORT -#endif // MONGO_SUPPORT #include "tabmul.h" #include "checklvl.h" #include "resource.h" @@ -149,7 +147,7 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) tdp->Fn, tdp->Objname, tdp->Pretty, lvl); if (tdp->Uri) { -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) tdp->Collname = GetStringTableOption(g, topt, "Name", NULL); tdp->Collname = GetStringTableOption(g, topt, "Tabname", tdp->Collname); tdp->Schema = GetStringTableOption(g, topt, "Dbname", "test"); @@ -157,10 +155,8 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) tdp->Pipe = GetBooleanTableOption(g, topt, "Pipeline", false); tdp->Driver = (PSZ)GetStringTableOption(g, topt, "Driver", NULL); tdp->Version = GetIntegerTableOption(g, topt, "Version", 3); -#if defined(JDBC_SUPPORT) tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); -#endif // JDBC_SUPPORT tdp->Pretty = 0; #else // !MONGO_SUPPORT sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); @@ -201,7 +197,6 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) return NULL; #endif // !ZIP_SUPPORT } else if (tdp->Uri) { -#if defined(MONGO_SUPPORT) if (tdp->Driver && toupper(*tdp->Driver) == 'C') { #if defined(CMGO_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); @@ -210,7 +205,7 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) return NULL; #endif } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); @@ -219,14 +214,14 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) } else { // Driver not specified #if defined(CMGO_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); -#else +#elif defined(JAVA_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); +#else + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return NULL; #endif } // endif Driver -#else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; -#endif // MONGO_SUPPORT + } else tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); @@ -497,16 +492,12 @@ JSONDEF::JSONDEF(void) Base = 0; Strict = false; Sep = '.'; -#if defined(MONGO_SUPPORT) Uri = NULL; Collname = Options = Filter = NULL; Pipe = false; Driver = NULL; Version = 0; -#if defined(JDBC_SUPPORT) Wrapname = NULL; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT } // end of JSONDEF constructor /***********************************************************************/ @@ -524,7 +515,7 @@ bool JSONDEF::DefineAM(PGLOBAL g, LPCSTR, int poff) Sep = *GetStringCatInfo(g, "Separator", "."); if (Uri = GetStringCatInfo(g, "Connect", NULL)) { -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) Collname = GetStringCatInfo(g, "Name", (Catfunc & (FNC_TABLE | FNC_COL)) ? NULL : Name); Collname = GetStringCatInfo(g, "Tabname", Collname); @@ -534,12 +525,12 @@ bool JSONDEF::DefineAM(PGLOBAL g, LPCSTR, int poff) Driver = GetStringCatInfo(g, "Driver", NULL); Version = GetIntCatInfo("Version", 3); Pretty = 0; -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) if (Version == 2) Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo2Interface"); else Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo3Interface"); -#endif // JDBC_SUPPORT +#endif // JAVA_SUPPORT #else // !MONGO_SUPPORT sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); return true; @@ -569,7 +560,6 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) (m == MODE_UPDATE || m == MODE_DELETE)); if (Uri) { -#if defined(MONGO_SUPPORT) if (Driver && toupper(*Driver) == 'C') { #if defined(CMGO_SUPPORT) txfp = new(g) CMGFAM(this); @@ -578,7 +568,7 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) return NULL; #endif } else if (Driver && toupper(*Driver) == 'J') { -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) txfp = new(g) JMGFAM(this); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); @@ -587,14 +577,14 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) } else { // Driver not specified #if defined(CMGO_SUPPORT) txfp = new(g) CMGFAM(this); -#else +#elif defined(JAVA_SUPPORT) txfp = new(g) JMGFAM(this); -#endif +#else // !MONGO_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return NULL; +#endif // !MONGO_SUPPORT } // endif Driver -#else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; -#endif // MONGO_SUPPORT + } else if (Zipped) { #if defined(ZIP_SUPPORT) if (m == MODE_READ || m == MODE_ANY || m == MODE_ALTER) { @@ -1591,8 +1581,7 @@ PVAL JSONCOL::ExpandArray(PGLOBAL g, PJAR arp, int n) /***********************************************************************/ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) { -//int i, ars, nv = 0, nextsame = Tjp->NextSame; - int i, nv = 0, nextsame = Tjp->NextSame; + int i, ars, nv = 0, nextsame = Tjp->NextSame; bool err; OPVAL op = Nodes[n].Op; PVAL val[2], vp = Nodes[n].Valp; @@ -1600,12 +1589,18 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) JVALUE jval; vp->Reset(); -//ars = MY_MIN(Tjp->Limit, arp->size()); + ars = MY_MIN(Tjp->Limit, arp->size()); -//for (i = 0; i < ars; i++) { - for (i = 0; i < arp->size(); i++) { + if (trace) + htrc("CalculateArray: size=%d op=%d nextsame=%d\n", + ars, op, nextsame); + + for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); + if (trace) + htrc("i=%d nv=%d\n", i, nv); + if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) do { if (jvrp->IsNull()) { jvrp->Value = AllocateValue(g, GetJsonNull(), TYPE_STRING); @@ -1617,13 +1612,16 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) } else jvp = jvrp; - if (!nv++) { + if (trace) + htrc("jvp=%s null=%d\n", + jvp->GetString(g), jvp->IsNull() ? 1 : 0); + + if (!nv++) { SetJsonValue(g, vp, jvp, n); continue; } else SetJsonValue(g, MulVal, jvp, n); - -// if (!MulVal->IsZero()) { + if (!MulVal->IsNull()) { switch (op) { case OP_CNC: @@ -1634,7 +1632,7 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) val[0] = MulVal; err = vp->Compute(g, val, 1, op); - break; + break; // case OP_NUM: case OP_SEP: val[0] = Nodes[n].Valp; @@ -1650,7 +1648,15 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) if (err) vp->Reset(); - } // endif Null + if (trace) { + char buf(32); + + htrc("vp='%s' err=%d\n", + vp->GetCharString(&buf), err ? 1 : 0); + + } // endif trace + + } // endif Null } while (Tjp->NextSame > nextsame); diff --git a/storage/connect/tabjson.h b/storage/connect/tabjson.h index 00e2f4614e7..17583cba333 100644 --- a/storage/connect/tabjson.h +++ b/storage/connect/tabjson.h @@ -36,14 +36,12 @@ class DllExport JSONDEF : public DOSDEF { /* Table description */ friend class TDBJSON; friend class TDBJSN; friend class TDBJCL; -#if defined(MONGO_SUPPORT) #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) friend class JMGFAM; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT friend PQRYRES JSONColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); public: // Constructor @@ -68,17 +66,13 @@ public: bool Strict; /* Strict syntax checking */ char Sep; /* The Jpath separator */ const char *Uri; /* MongoDB connection URI */ -#if defined(MONGO_SUPPORT) PCSZ Collname; /* External collection name */ PSZ Options; /* Colist ; Pipe */ PSZ Filter; /* Filter */ PSZ Driver; /* MongoDB Driver (C or JAVA) */ bool Pipe; /* True if Colist is a pipeline */ int Version; /* Driver version */ -#if defined(JDBC_SUPPORT) PSZ Wrapname; /* MongoDB java wrapper name */ -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT }; // end of JSONDEF /* -------------------------- TDBJSN class --------------------------- */ @@ -90,14 +84,12 @@ public: class DllExport TDBJSN : public TDBDOS { friend class JSONCOL; friend class JSONDEF; -#if defined(MONGO_SUPPORT) #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) friend class JMGFAM; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT public: // Constructor TDBJSN(PJDEF tdp, PTXF txfp); @@ -162,14 +154,12 @@ public: class DllExport JSONCOL : public DOSCOL { friend class TDBJSN; friend class TDBJSON; -#if defined(MONGO_SUPPORT) #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT -#if defined(JDBC_SUPPORT) +#if defined(JAVA_SUPPORT) friend class JMGFAM; -#endif // JDBC_SUPPORT -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT public: // Constructors JSONCOL(PGLOBAL g, PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i); diff --git a/storage/connect/tabtbl.cpp b/storage/connect/tabtbl.cpp index bb7eae9c256..d3fb31fb57a 100644 --- a/storage/connect/tabtbl.cpp +++ b/storage/connect/tabtbl.cpp @@ -650,7 +650,7 @@ bool TDBTBM::IsLocal(PTABLE tbp) return ((!stricmp(tdbp->Host, "localhost") || !strcmp(tdbp->Host, "127.0.0.1")) && - tdbp->Port == GetDefaultPort()); + tdbp->Port == (int)GetDefaultPort()); } // end of IsLocal /***********************************************************************/ diff --git a/storage/connect/tabutil.cpp b/storage/connect/tabutil.cpp index af77c87ef8d..5d8d7c1b9f8 100644 --- a/storage/connect/tabutil.cpp +++ b/storage/connect/tabutil.cpp @@ -120,7 +120,7 @@ PQRYRES TabColumns(PGLOBAL g, THD *thd, const char *db, FLD_REM, FLD_NO, FLD_CHARSET}; unsigned int length[] = {0, 4, 16, 4, 4, 4, 4, 4, 0, 32, 32}; PCSZ fmt; - char *pn, *tn, *fld, *colname, v; //, *chset; + char *pn, *tn, *fld, *colname, v; // *chset int i, n, ncol = sizeof(buftyp) / sizeof(int); int prec, len, type, scale; int zconv = GetConvSize(); @@ -185,7 +185,7 @@ PQRYRES TabColumns(PGLOBAL g, THD *thd, const char *db, colname = (char *)fp->field_name; crp->Kdata->SetValue(colname, i); -// chset = (char *)fp->charset()->name; +// chset = (char *)fp->charset()->name; // v = (!strcmp(chset, "binary")) ? 'B' : 0; v = 0; diff --git a/storage/connect/tabxml.h b/storage/connect/tabxml.h index 813f62dde52..f55b7d98de7 100644 --- a/storage/connect/tabxml.h +++ b/storage/connect/tabxml.h @@ -53,6 +53,8 @@ class DllExport XMLDEF : public TABDEF { /* Logical table description */ }; // end of XMLDEF #if defined(INCLUDE_TDBXML) +#include "m_ctype.h" + /***********************************************************************/ /* This is the class declaration for the simple XML tables. */ /***********************************************************************/ diff --git a/storage/connect/valblk.h b/storage/connect/valblk.h index a3d7bf30fcf..ad970105868 100644 --- a/storage/connect/valblk.h +++ b/storage/connect/valblk.h @@ -40,7 +40,7 @@ class MBVALS : public BLOCK { // Methods void *GetMemp(void) {return Mblk.Memp;} PVBLK Allocate(PGLOBAL g, int type, int len, int prec, - int n, bool sub = FALSE); + int n, bool sub = false); bool ReAllocate(PGLOBAL g, int n); void Free(void); diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index f08d18b5421..7af70ea1349 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -1656,38 +1656,48 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) char *p[2], val[2][32]; int i; - for (i = 0; i < np; i++) - p[i] = vp[i]->IsNull() ? NULL : vp[i]->GetCharString(val[i]); + if (trace) + htrc("Compute: np=%d op=%d\n", np, op); - if (p[i]) { - switch (op) { - case OP_CNC: - assert(np == 1 || np == 2); + for (i = 0; i < np; i++) + if (!vp[i]->IsNull()) { + p[i] = vp[i]->GetCharString(val[i]); - if (np == 2) - SetValue_psz(p[0]); + if (trace) + htrc("p[%d]=%s\n", i, p[i]); - if ((i = Len - (signed)strlen(Strp)) > 0) - strncat(Strp, p[np - 1], i); + } else + return false; - break; - case OP_MIN: - assert(np == 2); - SetValue_psz((strcmp(p[0], p[1]) < 0) ? p[0] : p[1]); - break; - case OP_MAX: - assert(np == 2); - SetValue_psz((strcmp(p[0], p[1]) > 0) ? p[0] : p[1]); - break; - default: - // sprintf(g->Message, MSG(BAD_EXP_OPER), op); - strcpy(g->Message, "Function not supported"); - return true; - } // endswitch op + switch (op) { + case OP_CNC: + assert(np == 1 || np == 2); - Null = false; - } // endif p[i] + if (np == 2) + SetValue_psz(p[0]); + if ((i = Len - (signed)strlen(Strp)) > 0) + strncat(Strp, p[np - 1], i); + + if (trace) + htrc("Strp=%s\n", Strp); + + break; + case OP_MIN: + assert(np == 2); + SetValue_psz((strcmp(p[0], p[1]) < 0) ? p[0] : p[1]); + break; + case OP_MAX: + assert(np == 2); + SetValue_psz((strcmp(p[0], p[1]) > 0) ? p[0] : p[1]); + break; + default: + // sprintf(g->Message, MSG(BAD_EXP_OPER), op); + strcpy(g->Message, "Function not supported"); + return true; + } // endswitch op + + Null = false; return false; } // end of Compute diff --git a/storage/connect/value.h b/storage/connect/value.h index f771d33dc52..6613e25100a 100644 --- a/storage/connect/value.h +++ b/storage/connect/value.h @@ -102,7 +102,7 @@ class DllExport VALUE : public BLOCK { virtual bool SetValue_pval(PVAL valp, bool chktype = false) = 0; virtual bool SetValue_char(const char *p, int n) = 0; virtual void SetValue_psz(PCSZ s) = 0; - virtual void SetValue_bool(bool) {assert(FALSE);} + virtual void SetValue_bool(bool) {assert(false);} virtual int CompareValue(PVAL vp) = 0; virtual BYTE TestValue(PVAL vp); virtual void SetValue(char) {assert(false);} diff --git a/storage/connect/xtable.h b/storage/connect/xtable.h index ebef7a2549a..bc9265e0223 100644 --- a/storage/connect/xtable.h +++ b/storage/connect/xtable.h @@ -16,7 +16,7 @@ #include "assert.h" #include "block.h" #include "colblk.h" -#include "m_ctype.h" +//#include "m_ctype.h" #include "reldef.h" typedef class CMD *PCMD; From b933a8c354159c9a22c76b5d6f430a76e8a920cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Oct 2017 13:29:28 +0300 Subject: [PATCH 105/128] MDEV-12569 InnoDB suggests filing bugs at MySQL bug tracker Replace all references in InnoDB and XtraDB error log messages to bugs.mysql.com with references to https://jira.mariadb.org/. The original merge commit 4274d0bf578aeac9780ffd9ab06aebba48a0fac9 was accidentally reverted by the subsequent merge commit 3b35d745c3245f63fcc9757bfa90392bf923fcc3 --- storage/innobase/btr/btr0btr.cc | 2 +- storage/innobase/ibuf/ibuf0ibuf.cc | 12 ++++++------ storage/innobase/include/mtr0log.ic | 2 +- storage/innobase/lock/lock0lock.cc | 4 ++-- storage/innobase/row/row0ins.cc | 2 +- storage/innobase/row/row0sel.cc | 2 +- storage/innobase/row/row0umod.cc | 2 +- storage/innobase/row/row0upd.cc | 2 +- storage/innobase/srv/srv0srv.cc | 2 +- storage/innobase/trx/trx0purge.cc | 2 +- storage/innobase/trx/trx0rec.cc | 2 +- storage/innobase/ut/ut0dbg.cc | 2 +- storage/xtradb/btr/btr0btr.cc | 2 +- storage/xtradb/ibuf/ibuf0ibuf.cc | 12 ++++++------ storage/xtradb/include/mtr0log.ic | 2 +- storage/xtradb/lock/lock0lock.cc | 4 ++-- storage/xtradb/row/row0ins.cc | 2 +- storage/xtradb/row/row0sel.cc | 2 +- storage/xtradb/row/row0umod.cc | 2 +- storage/xtradb/row/row0upd.cc | 2 +- storage/xtradb/srv/srv0srv.cc | 2 +- storage/xtradb/trx/trx0purge.cc | 2 +- storage/xtradb/trx/trx0rec.cc | 2 +- storage/xtradb/ut/ut0dbg.cc | 2 +- 24 files changed, 36 insertions(+), 36 deletions(-) diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index e75f116d458..c5fc4a58620 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -1896,7 +1896,7 @@ btr_page_reorganize_low( "InnoDB: Error: page old max ins size %lu" " new max ins size %lu\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned long) data_size1, (unsigned long) data_size2, (unsigned long) max_ins_size1, (unsigned long) max_ins_size2); diff --git a/storage/innobase/ibuf/ibuf0ibuf.cc b/storage/innobase/ibuf/ibuf0ibuf.cc index 4b772eedd8a..ba4cc0924b9 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.cc +++ b/storage/innobase/ibuf/ibuf0ibuf.cc @@ -3972,7 +3972,7 @@ ibuf_insert_to_index_page_low( (ulong) zip_size, (ulong) old_bits); fputs("InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); DBUG_RETURN(NULL); } @@ -4045,7 +4045,7 @@ dump: " Please run CHECK TABLE on\n" "InnoDB: your tables.\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com!\n", stderr); + " https://jira.mariadb.org/\n", stderr); DBUG_VOID_RETURN; } @@ -4221,7 +4221,7 @@ ibuf_set_del_mark( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4285,7 +4285,7 @@ ibuf_delete( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4356,7 +4356,7 @@ ibuf_restore_pos( } else { fprintf(stderr, "InnoDB: ERROR: Submit the output to" - " http://bugs.mysql.com\n" + " https://jira.mariadb.org/\n" "InnoDB: ibuf cursor restoration fails!\n" "InnoDB: ibuf record inserted to page %lu:%lu\n", (ulong) space, (ulong) page_no); @@ -4665,7 +4665,7 @@ ibuf_merge_or_delete_for_page( "InnoDB: to determine if they are corrupt" " after this.\n\n" "InnoDB: Please submit a detailed bug report" - " to http://bugs.mysql.com\n\n", + " to https://jira.mariadb.org/\n\n", (ulong) page_no, (ulong) fil_page_get_type(block->frame)); diff --git a/storage/innobase/include/mtr0log.ic b/storage/innobase/include/mtr0log.ic index 3ed4876eeab..c7372d1d0f1 100644 --- a/storage/innobase/include/mtr0log.ic +++ b/storage/innobase/include/mtr0log.ic @@ -215,7 +215,7 @@ mlog_write_initial_log_record_fast( "%d on page %lu of space %lu in the " "doublewrite buffer, continuing anyway.\n" "Please post a bug report to " - "bugs.mysql.com.\n", + "https://jira.mariadb.org/\n", type, offset, space); ut_ad(0); } diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc index a72db9e8e83..f5b7b35d749 100644 --- a/storage/innobase/lock/lock0lock.cc +++ b/storage/innobase/lock/lock0lock.cc @@ -1981,7 +1981,7 @@ lock_rec_enqueue_waiting( dict_index_name_print(stderr, trx, index); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } @@ -4438,7 +4438,7 @@ lock_table_enqueue_waiting( ut_print_name(stderr, trx, TRUE, table->name); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/innobase/row/row0ins.cc b/storage/innobase/row/row0ins.cc index d2e9e8f1940..47f09ac764b 100644 --- a/storage/innobase/row/row0ins.cc +++ b/storage/innobase/row/row0ins.cc @@ -1129,7 +1129,7 @@ row_ins_foreign_check_on_constraint( rec_print(stderr, clust_rec, clust_index); fputs("\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n", stderr); + " https://jira.mariadb.org/\n", stderr); ut_ad(0); err = DB_SUCCESS; diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index f14424dd252..007e686bc79 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -3085,7 +3085,7 @@ row_sel_get_clust_rec_for_mysql( trx_print(stderr, trx, 600); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/innobase/row/row0umod.cc b/storage/innobase/row/row0umod.cc index 77fa3cada2b..d8bb6955e60 100644 --- a/storage/innobase/row/row0umod.cc +++ b/storage/innobase/row/row0umod.cc @@ -676,7 +676,7 @@ row_undo_mod_del_unmark_sec_and_undo_update( trx_print(stderr, trx, 0); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ib_logf(IB_LOG_LEVEL_WARN, "record in index %s was not found" diff --git a/storage/innobase/row/row0upd.cc b/storage/innobase/row/row0upd.cc index 7151801783c..a650222e2a2 100644 --- a/storage/innobase/row/row0upd.cc +++ b/storage/innobase/row/row0upd.cc @@ -1781,7 +1781,7 @@ row_upd_sec_index_entry( trx_print(stderr, trx, 0); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); break; case ROW_FOUND: diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index e552e54846f..e8e77c1376a 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -1791,7 +1791,7 @@ loop: " was greater\n" "InnoDB: than the new log sequence number " LSN_PF "!\n" "InnoDB: Please submit a bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org\n", old_lsn, new_lsn); ut_ad(0); } diff --git a/storage/innobase/trx/trx0purge.cc b/storage/innobase/trx/trx0purge.cc index cfe6309c36b..456e7357043 100644 --- a/storage/innobase/trx/trx0purge.cc +++ b/storage/innobase/trx/trx0purge.cc @@ -604,7 +604,7 @@ trx_purge_rseg_get_next_history_log( "InnoDB: but its length is still" " reported as %lu! Make a detailed bug\n" "InnoDB: report, and submit it" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (ulong) trx_sys->rseg_history_len); ut_ad(0); } diff --git a/storage/innobase/trx/trx0rec.cc b/storage/innobase/trx/trx0rec.cc index 8701fbcc0f5..e3ab15e185f 100644 --- a/storage/innobase/trx/trx0rec.cc +++ b/storage/innobase/trx/trx0rec.cc @@ -1021,7 +1021,7 @@ trx_undo_update_rec_get_update( fprintf(stderr, "\n" "InnoDB: but index has only %lu fields\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Run also CHECK TABLE ", (ulong) dict_index_get_n_fields(index)); ut_print_name(stderr, trx, TRUE, index->table_name); diff --git a/storage/innobase/ut/ut0dbg.cc b/storage/innobase/ut/ut0dbg.cc index a1cad144da4..a0bd82b385a 100644 --- a/storage/innobase/ut/ut0dbg.cc +++ b/storage/innobase/ut/ut0dbg.cc @@ -63,7 +63,7 @@ ut_dbg_assertion_failed( fputs("InnoDB: We intentionally generate a memory trap.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com.\n" + " to https://jira.mariadb.org/\n" "InnoDB: If you get repeated assertion failures" " or crashes, even\n" "InnoDB: immediately after the mysqld startup, there may be\n" diff --git a/storage/xtradb/btr/btr0btr.cc b/storage/xtradb/btr/btr0btr.cc index 47a2fa9b2cb..d6fbba01202 100644 --- a/storage/xtradb/btr/btr0btr.cc +++ b/storage/xtradb/btr/btr0btr.cc @@ -1940,7 +1940,7 @@ btr_page_reorganize_low( "InnoDB: Error: page old max ins size %lu" " new max ins size %lu\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned long) data_size1, (unsigned long) data_size2, (unsigned long) max_ins_size1, (unsigned long) max_ins_size2); diff --git a/storage/xtradb/ibuf/ibuf0ibuf.cc b/storage/xtradb/ibuf/ibuf0ibuf.cc index fd17f531a16..fb5d4ffa3af 100644 --- a/storage/xtradb/ibuf/ibuf0ibuf.cc +++ b/storage/xtradb/ibuf/ibuf0ibuf.cc @@ -4014,7 +4014,7 @@ ibuf_insert_to_index_page_low( (ulong) zip_size, (ulong) old_bits); fputs("InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); DBUG_RETURN(NULL); } @@ -4087,7 +4087,7 @@ dump: " Please run CHECK TABLE on\n" "InnoDB: your tables.\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com!\n", stderr); + " https://jira.mariadb.org/\n", stderr); DBUG_VOID_RETURN; } @@ -4263,7 +4263,7 @@ ibuf_set_del_mark( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4327,7 +4327,7 @@ ibuf_delete( fprintf(stderr, "\nspace %u offset %u" " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (unsigned) buf_block_get_space(block), (unsigned) buf_block_get_page_no(block), (unsigned) page_get_n_recs(page), @@ -4398,7 +4398,7 @@ ibuf_restore_pos( } else { fprintf(stderr, "InnoDB: ERROR: Submit the output to" - " http://bugs.mysql.com\n" + " https://jira.mariadb.org/\n" "InnoDB: ibuf cursor restoration fails!\n" "InnoDB: ibuf record inserted to page %lu:%lu\n", (ulong) space, (ulong) page_no); @@ -4707,7 +4707,7 @@ ibuf_merge_or_delete_for_page( "InnoDB: to determine if they are corrupt" " after this.\n\n" "InnoDB: Please submit a detailed bug report" - " to http://bugs.mysql.com\n\n", + " to https://jira.mariadb.org/\n\n", (ulong) page_no, (ulong) fil_page_get_type(block->frame)); diff --git a/storage/xtradb/include/mtr0log.ic b/storage/xtradb/include/mtr0log.ic index bc49f655294..72b961539f1 100644 --- a/storage/xtradb/include/mtr0log.ic +++ b/storage/xtradb/include/mtr0log.ic @@ -216,7 +216,7 @@ mlog_write_initial_log_record_fast( "%d on page %lu of space %lu in the " "doublewrite buffer, continuing anyway.\n" "Please post a bug report to " - "bugs.mysql.com.\n", + "https://jira.mariadb.org/\n", type, offset, space); ut_ad(0); } diff --git a/storage/xtradb/lock/lock0lock.cc b/storage/xtradb/lock/lock0lock.cc index 4f4fc37c645..1a2b15422bb 100644 --- a/storage/xtradb/lock/lock0lock.cc +++ b/storage/xtradb/lock/lock0lock.cc @@ -2008,7 +2008,7 @@ lock_rec_enqueue_waiting( dict_index_name_print(stderr, trx, index); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } @@ -4475,7 +4475,7 @@ lock_table_enqueue_waiting( ut_print_name(stderr, trx, TRUE, table->name); fputs(".\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/xtradb/row/row0ins.cc b/storage/xtradb/row/row0ins.cc index 20a68e7eca2..6dcb11c8bb5 100644 --- a/storage/xtradb/row/row0ins.cc +++ b/storage/xtradb/row/row0ins.cc @@ -1135,7 +1135,7 @@ row_ins_foreign_check_on_constraint( rec_print(stderr, clust_rec, clust_index); fputs("\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n", stderr); + " https://jira.mariadb.org/\n", stderr); ut_ad(0); err = DB_SUCCESS; diff --git a/storage/xtradb/row/row0sel.cc b/storage/xtradb/row/row0sel.cc index a20b44de411..ec502234e32 100644 --- a/storage/xtradb/row/row0sel.cc +++ b/storage/xtradb/row/row0sel.cc @@ -3104,7 +3104,7 @@ row_sel_get_clust_rec_for_mysql( trx_print(stderr, trx, 600); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/xtradb/row/row0umod.cc b/storage/xtradb/row/row0umod.cc index bd0a36e2240..eeb48b42621 100644 --- a/storage/xtradb/row/row0umod.cc +++ b/storage/xtradb/row/row0umod.cc @@ -646,7 +646,7 @@ row_undo_mod_del_unmark_sec_and_undo_update( trx_print(stderr, trx, 0); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ib_logf(IB_LOG_LEVEL_WARN, "record in index %s was not found" diff --git a/storage/xtradb/row/row0upd.cc b/storage/xtradb/row/row0upd.cc index 66fe55bbcce..0f520229a18 100644 --- a/storage/xtradb/row/row0upd.cc +++ b/storage/xtradb/row/row0upd.cc @@ -1786,7 +1786,7 @@ row_upd_sec_index_entry( trx_print(stderr, trx, 0); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); break; case ROW_FOUND: diff --git a/storage/xtradb/srv/srv0srv.cc b/storage/xtradb/srv/srv0srv.cc index 6a119756401..d79c29ffe97 100644 --- a/storage/xtradb/srv/srv0srv.cc +++ b/storage/xtradb/srv/srv0srv.cc @@ -2225,7 +2225,7 @@ loop: " was greater\n" "InnoDB: than the new log sequence number " LSN_PF "!\n" "InnoDB: Please submit a bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org\n", old_lsn, new_lsn); ut_ad(0); } diff --git a/storage/xtradb/trx/trx0purge.cc b/storage/xtradb/trx/trx0purge.cc index a4463744a69..8d6982ad860 100644 --- a/storage/xtradb/trx/trx0purge.cc +++ b/storage/xtradb/trx/trx0purge.cc @@ -608,7 +608,7 @@ trx_purge_rseg_get_next_history_log( "InnoDB: but its length is still" " reported as %lu! Make a detailed bug\n" "InnoDB: report, and submit it" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", (ulong) trx_sys->rseg_history_len); ut_ad(0); } diff --git a/storage/xtradb/trx/trx0rec.cc b/storage/xtradb/trx/trx0rec.cc index 3193dfd81b5..4e0ba825ed2 100644 --- a/storage/xtradb/trx/trx0rec.cc +++ b/storage/xtradb/trx/trx0rec.cc @@ -1022,7 +1022,7 @@ trx_undo_update_rec_get_update( fprintf(stderr, "\n" "InnoDB: but index has only %lu fields\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n" + " to https://jira.mariadb.org/\n" "InnoDB: Run also CHECK TABLE ", (ulong) dict_index_get_n_fields(index)); ut_print_name(stderr, trx, TRUE, index->table_name); diff --git a/storage/xtradb/ut/ut0dbg.cc b/storage/xtradb/ut/ut0dbg.cc index a1cad144da4..a0bd82b385a 100644 --- a/storage/xtradb/ut/ut0dbg.cc +++ b/storage/xtradb/ut/ut0dbg.cc @@ -63,7 +63,7 @@ ut_dbg_assertion_failed( fputs("InnoDB: We intentionally generate a memory trap.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com.\n" + " to https://jira.mariadb.org/\n" "InnoDB: If you get repeated assertion failures" " or crashes, even\n" "InnoDB: immediately after the mysqld startup, there may be\n" From 550c8bdb81fd31b95df4424acabb0d2224f94e24 Mon Sep 17 00:00:00 2001 From: Monty Date: Thu, 26 Oct 2017 13:49:11 +0300 Subject: [PATCH 106/128] Make debug multi thread safe Fixes crashes in InList when calling _db_set_init (part of SET debug_dbug in the test suite) from another thread. Patch backported from 10.3 --- dbug/dbug.c | 111 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 86 insertions(+), 25 deletions(-) diff --git a/dbug/dbug.c b/dbug/dbug.c index 08d81a51342..90bb8a16409 100644 --- a/dbug/dbug.c +++ b/dbug/dbug.c @@ -259,7 +259,7 @@ typedef struct _db_code_state_ { #define ListDel(A,B,C) ListAddDel(A,B,C,EXCLUDE) static struct link *ListAddDel(struct link *, const char *, const char *, int); static struct link *ListCopy(struct link *); -static int InList(struct link *linkp,const char *cp, int exact_match); +static int InList(struct link *linkp,const char *cp,int exact_match); static uint ListFlags(struct link *linkp); static void FreeList(struct link *linkp); @@ -458,8 +458,8 @@ static int DbugParse(CODE_STATE *cs, const char *control) if (!(org_cs_locked= cs->locked)) { - cs->locked= 1; pthread_mutex_lock(&THR_LOCK_dbug); + cs->locked= 1; } if (control[0] == '-' && control[1] == '#') @@ -666,8 +666,8 @@ static int DbugParse(CODE_STATE *cs, const char *control) } if (!org_cs_locked) { - pthread_mutex_unlock(&THR_LOCK_dbug); cs->locked= 0; + pthread_mutex_unlock(&THR_LOCK_dbug); } return !rel || f_used; } @@ -1096,7 +1096,7 @@ int _db_explain_init_(char *buf, size_t len) void _db_enter_(const char *_func_, const char *_file_, uint _line_, struct _db_stack_frame_ *_stack_frame_) { - int save_errno; + int save_errno, org_cs_locked; CODE_STATE *cs; if (!((cs=code_state()))) { @@ -1125,12 +1125,20 @@ void _db_enter_(const char *_func_, const char *_file_, cs->stack->flags &= ~SANITY_CHECK_ON; if (TRACING) { - if (!cs->locked) + if (!(org_cs_locked= cs->locked)) + { pthread_mutex_lock(&THR_LOCK_dbug); + cs->locked= 1; + } DoPrefix(cs, _line_); Indent(cs, cs->level); (void) fprintf(cs->stack->out_file->file, ">%s\n", cs->func); DbugFlush(cs); /* This does a unlock */ + if (!org_cs_locked) + { + cs->locked= 0; + pthread_mutex_unlock(&THR_LOCK_dbug); + } } break; case DISABLE_TRACE: @@ -1181,16 +1189,25 @@ void _db_return_(struct _db_stack_frame_ *_stack_frame_) if (DoTrace(cs) & DO_TRACE) { + int org_cs_locked; if ((cs->stack->flags & SANITY_CHECK_ON) && sf_sanity()) cs->stack->flags &= ~SANITY_CHECK_ON; if (TRACING) { - if (!cs->locked) + if (!(org_cs_locked= cs->locked)) + { pthread_mutex_lock(&THR_LOCK_dbug); + cs->locked= 1; + } DoPrefix(cs, _stack_frame_->line); Indent(cs, cs->level); (void) fprintf(cs->stack->out_file->file, "<%s\n", cs->func); DbugFlush(cs); + if (!org_cs_locked) + { + cs->locked= 0; + pthread_mutex_unlock(&THR_LOCK_dbug); + } } } /* @@ -1267,14 +1284,17 @@ void _db_doprnt_(const char *format,...) { va_list args; CODE_STATE *cs; - int save_errno; + int save_errno, org_cs_locked; get_code_state_or_return; va_start(args,format); - if (!cs->locked) + if (!(org_cs_locked= cs->locked)) + { pthread_mutex_lock(&THR_LOCK_dbug); + cs->locked= 1; + } save_errno=errno; DoPrefix(cs, cs->u_line); if (TRACING) @@ -1284,6 +1304,11 @@ void _db_doprnt_(const char *format,...) (void) fprintf(cs->stack->out_file->file, "%s: ", cs->u_keyword); DbugVfprintf(cs->stack->out_file->file, format, args); DbugFlush(cs); + if (!org_cs_locked) + { + cs->locked= 0; + pthread_mutex_unlock(&THR_LOCK_dbug); + } errno=save_errno; va_end(args); @@ -1323,12 +1348,15 @@ static void DbugVfprintf(FILE *stream, const char* format, va_list args) void _db_dump_(uint _line_, const char *keyword, const unsigned char *memory, size_t length) { - int pos; + int pos, org_cs_locked; CODE_STATE *cs; get_code_state_or_return; - if (!cs->locked) + if (!(org_cs_locked= cs->locked)) + { pthread_mutex_lock(&THR_LOCK_dbug); + cs->locked= 1; + } if (_db_keyword_(cs, keyword, 0)) { DoPrefix(cs, _line_); @@ -1360,8 +1388,11 @@ void _db_dump_(uint _line_, const char *keyword, (void) fputc('\n',cs->stack->out_file->file); DbugFlush(cs); } - else if (!cs->locked) + if (!org_cs_locked) + { + cs->locked= 0; pthread_mutex_unlock(&THR_LOCK_dbug); + } } @@ -1509,11 +1540,13 @@ static struct link *ListCopy(struct link *orig) static int InList(struct link *linkp, const char *cp, int exact_match) { int result; - for (result=MATCHED; linkp != NULL; linkp= linkp->next_link) { if (!(exact_match ? strcmp(linkp->str,cp) : fnmatch(linkp->str, cp, 0))) - return linkp->flags; + { + result= linkp->flags; + break; + } if (!(linkp->flags & EXCLUDE)) result=NOT_MATCHED; if (linkp->flags & SUBDIR) @@ -1647,6 +1680,7 @@ void _db_end_() FreeState(cs, 0); pthread_mutex_destroy(&THR_LOCK_dbug); init_done= 0; + _dbug_on_= 0; } @@ -1665,22 +1699,39 @@ void _db_end_() static int DoTrace(CODE_STATE *cs) { + int res= DONT_TRACE; + if (!cs->locked) + pthread_mutex_lock(&THR_LOCK_dbug); if ((cs->stack->maxdepth == 0 || cs->level <= cs->stack->maxdepth) && InList(cs->stack->processes, cs->process, 0) & (MATCHED|INCLUDE)) + { switch(InList(cs->stack->functions, cs->func, 0)) { - case INCLUDE|SUBDIR: return ENABLE_TRACE; - case INCLUDE: return DO_TRACE; + case INCLUDE|SUBDIR: + res= ENABLE_TRACE; + break; + case INCLUDE: + res= DO_TRACE; + break; case MATCHED|SUBDIR: case NOT_MATCHED|SUBDIR: - case MATCHED: return framep_trace_flag(cs, cs->framep) ? - DO_TRACE : DONT_TRACE; + case MATCHED: + res= (framep_trace_flag(cs, cs->framep) ? DO_TRACE : DONT_TRACE); + break; case EXCLUDE: - case NOT_MATCHED: return DONT_TRACE; - case EXCLUDE|SUBDIR: return DISABLE_TRACE; + case NOT_MATCHED: + res= DONT_TRACE; + break; + case EXCLUDE|SUBDIR: + res= DISABLE_TRACE; + break; } - return DONT_TRACE; + } + if (!cs->locked) + pthread_mutex_unlock(&THR_LOCK_dbug); + return res; } + FILE *_db_fp_(void) { CODE_STATE *cs; @@ -1711,10 +1762,17 @@ FILE *_db_fp_(void) BOOLEAN _db_keyword_(CODE_STATE *cs, const char *keyword, int strict) { int match= strict ? INCLUDE : INCLUDE|MATCHED; + int res; get_code_state_if_not_set_or_return FALSE; - return (DEBUGGING && DoTrace(cs) & DO_TRACE && - InList(cs->stack->keywords, keyword, strict) & match); + if (!(DEBUGGING && (DoTrace(cs) & DO_TRACE))) + return 0; + if (!cs->locked) + pthread_mutex_lock(&THR_LOCK_dbug); + res= (InList(cs->stack->keywords, keyword, strict) & match); + if (!cs->locked) + pthread_mutex_unlock(&THR_LOCK_dbug); + return res != 0; } /* @@ -2130,8 +2188,6 @@ static void DbugFlush(CODE_STATE *cs) if (cs->stack->delay) (void) Delay(cs->stack->delay); } - if (!cs->locked) - pthread_mutex_unlock(&THR_LOCK_dbug); } /* DbugFlush */ @@ -2141,7 +2197,12 @@ void _db_flush_() { CODE_STATE *cs; get_code_state_or_return; - (void) fflush(cs->stack->out_file->file); + if (DEBUGGING) + { + pthread_mutex_lock(&THR_LOCK_dbug); + (void) fflush(cs->stack->out_file->file); + pthread_mutex_unlock(&THR_LOCK_dbug); + } } From 771305b21df142c9200d671994d2ad3d729281b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Oct 2017 14:11:38 +0300 Subject: [PATCH 107/128] MDEV-12569 InnoDB suggests filing bugs at MySQL bug tracker Replace all references in InnoDB error log messages to bugs.mysql.com with references to https://jira.mariadb.org/. --- storage/innobase/handler/ha_innodb.cc | 2 +- storage/innobase/ibuf/ibuf0ibuf.cc | 2 +- storage/innobase/row/row0ins.cc | 2 +- storage/innobase/row/row0sel.cc | 2 +- storage/innobase/srv/srv0srv.cc | 2 +- storage/innobase/trx/trx0purge.cc | 2 +- storage/innobase/ut/ut0dbg.cc | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index d7b68885aa6..87360c8589c 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -22522,7 +22522,7 @@ const char* TROUBLESHOOT_DATADICT_MSG = " for how to resolve the issue."; const char* BUG_REPORT_MSG = - "Submit a detailed bug report to http://bugs.mysql.com"; + "Submit a detailed bug report to https://jira.mariadb.org/"; const char* FORCE_RECOVERY_MSG = "Please refer to " REFMAN "forcing-innodb-recovery.html" diff --git a/storage/innobase/ibuf/ibuf0ibuf.cc b/storage/innobase/ibuf/ibuf0ibuf.cc index b53ede41427..ea083381757 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.cc +++ b/storage/innobase/ibuf/ibuf0ibuf.cc @@ -4210,7 +4210,7 @@ ibuf_delete( fprintf(stderr, "\nspace " UINT32PF " offset " UINT32PF " (%u records, index id %llu)\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", + " to https://jira.mariadb.org/\n", block->page.id.space(), block->page.id.page_no(), (unsigned) page_get_n_recs(page), diff --git a/storage/innobase/row/row0ins.cc b/storage/innobase/row/row0ins.cc index df14e9f8123..c5e0aabff2f 100644 --- a/storage/innobase/row/row0ins.cc +++ b/storage/innobase/row/row0ins.cc @@ -1240,7 +1240,7 @@ row_ins_foreign_check_on_constraint( rec_print(stderr, clust_rec, clust_index); fputs("\n" "InnoDB: Submit a detailed bug report to" - " http://bugs.mysql.com\n", stderr); + " https://jira.mariadb.org/\n", stderr); ut_ad(0); err = DB_SUCCESS; diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index d38538a4ac2..9bf71592f54 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -3436,7 +3436,7 @@ row_sel_get_clust_rec_for_mysql( trx_print(stderr, trx, 600); fputs("\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com\n", stderr); + " to https://jira.mariadb.org/\n", stderr); ut_ad(0); } diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index ce1a30659ed..25ec0670c7d 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -1913,7 +1913,7 @@ loop: ib::error() << "Old log sequence number " << old_lsn << " was" << " greater than the new log sequence number " << new_lsn << ". Please submit a bug report to" - " http://bugs.mysql.com"; + " https://jira.mariadb.org/"; ut_ad(0); } diff --git a/storage/innobase/trx/trx0purge.cc b/storage/innobase/trx/trx0purge.cc index e22bbd61162..8d3c5b18cec 100644 --- a/storage/innobase/trx/trx0purge.cc +++ b/storage/innobase/trx/trx0purge.cc @@ -1177,7 +1177,7 @@ trx_purge_rseg_get_next_history_log( " list, but its length is still reported as " << trx_sys->rseg_history_len << "! Make" " a detailed bug report, and submit it to" - " http://bugs.mysql.com"; + " https://jira.mariadb.org/"; ut_ad(0); } diff --git a/storage/innobase/ut/ut0dbg.cc b/storage/innobase/ut/ut0dbg.cc index 28643645de9..9e596dcda81 100644 --- a/storage/innobase/ut/ut0dbg.cc +++ b/storage/innobase/ut/ut0dbg.cc @@ -48,7 +48,7 @@ ut_dbg_assertion_failed( fputs("InnoDB: We intentionally generate a memory trap.\n" "InnoDB: Submit a detailed bug report" - " to http://bugs.mysql.com.\n" + " to https://jira.mariadb.org/\n" "InnoDB: If you get repeated assertion failures" " or crashes, even\n" "InnoDB: immediately after the mysqld startup, there may be\n" From 965c72d331013dc724c90a66cd18840e56729e1e Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Thu, 26 Oct 2017 18:21:20 +0300 Subject: [PATCH 108/128] MDEV-12474 - Fails in fulltest Apply fix for https://github.com/facebook/mysql-5.6/issues/748 A few tests in rocksdb suite fail with --ps-protocol They fail because --ps-protocol uses different data format on the wire. Work around that by doing a dummy CONCAT operation which forces the data to be transfered in text form (like it is done without --ps-protocol) --- .../rocksdb/r/col_opt_not_null.result | 32 ++++++++++++------- .../mysql-test/rocksdb/r/col_opt_null.result | 32 ++++++++++++------- .../rocksdb/r/col_opt_unsigned.result | 32 ++++++++++++------- .../rocksdb/r/col_opt_zerofill.result | 32 ++++++++++++------- .../mysql-test/rocksdb/r/type_float.result | 32 ++++++++++++------- .../rocksdb/mysql-test/rocksdb/t/disabled.def | 6 ---- .../mysql-test/rocksdb/t/type_float.inc | 13 +++++++- 7 files changed, 117 insertions(+), 62 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_not_null.result b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_not_null.result index 7f197f05b15..2ae965b6cfc 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_not_null.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_not_null.result @@ -1643,17 +1643,27 @@ r1_1 -0.9 r1_1 0.0 r1_1 0.9 r1_1 0.9 -SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1; -MAX(f) 9.999999680285692e37 -MAX(d) 1e81 -MAX(d10_10) 0.9999999999 -MAX(d1_0) 9 -MAX(d53) 100000000000000000000000000000000000000000000000000000 -MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000 -MAX(f0) 9.999999680285692e37 -MAX(f20_3) 99999998430674940.000 -MAX(f23_0) 9.999999680285692e37 -MAX(r1_1) 0.9 +SELECT +CONCAT('', MAX(f)), +CONCAT('', MAX(f0)), +CONCAT('', MAX(r1_1)), +CONCAT('', MAX(f23_0)), +CONCAT('', MAX(f20_3)), +CONCAT('', MAX(d)), +CONCAT('', MAX(d1_0)), +CONCAT('', MAX(d10_10)), +CONCAT('', MAX(d53)), +CONCAT('', MAX(d53_10)) FROM t1; +CONCAT('', MAX(f)) 9.999999680285692e37 +CONCAT('', MAX(d)) 1e81 +CONCAT('', MAX(d10_10)) 0.9999999999 +CONCAT('', MAX(d1_0)) 9 +CONCAT('', MAX(d53)) 100000000000000000000000000000000000000000000000000000 +CONCAT('', MAX(d53_10)) 10000000000000000000000000000000000000000000.0000000000 +CONCAT('', MAX(f0)) 9.999999680285692e37 +CONCAT('', MAX(f20_3)) 99999998430674940.000 +CONCAT('', MAX(f23_0)) 9.999999680285692e37 +CONCAT('', MAX(r1_1)) 0.9 INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES ( 9999999999999999999999999999999999999999999999999999999999999.9999, 9999999999999999999999999999999999999999999999999999999999999.9999, diff --git a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_null.result b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_null.result index fb0e2af4362..a834310417e 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_null.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_null.result @@ -1430,17 +1430,27 @@ r1_1 -0.9 r1_1 0.0 r1_1 0.9 r1_1 0.9 -SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1; -MAX(f) 9.999999680285692e37 -MAX(d) 1e81 -MAX(d10_10) 0.9999999999 -MAX(d1_0) 9 -MAX(d53) 100000000000000000000000000000000000000000000000000000 -MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000 -MAX(f0) 9.999999680285692e37 -MAX(f20_3) 99999998430674940.000 -MAX(f23_0) 9.999999680285692e37 -MAX(r1_1) 0.9 +SELECT +CONCAT('', MAX(f)), +CONCAT('', MAX(f0)), +CONCAT('', MAX(r1_1)), +CONCAT('', MAX(f23_0)), +CONCAT('', MAX(f20_3)), +CONCAT('', MAX(d)), +CONCAT('', MAX(d1_0)), +CONCAT('', MAX(d10_10)), +CONCAT('', MAX(d53)), +CONCAT('', MAX(d53_10)) FROM t1; +CONCAT('', MAX(f)) 9.999999680285692e37 +CONCAT('', MAX(d)) 1e81 +CONCAT('', MAX(d10_10)) 0.9999999999 +CONCAT('', MAX(d1_0)) 9 +CONCAT('', MAX(d53)) 100000000000000000000000000000000000000000000000000000 +CONCAT('', MAX(d53_10)) 10000000000000000000000000000000000000000000.0000000000 +CONCAT('', MAX(f0)) 9.999999680285692e37 +CONCAT('', MAX(f20_3)) 99999998430674940.000 +CONCAT('', MAX(f23_0)) 9.999999680285692e37 +CONCAT('', MAX(r1_1)) 0.9 INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES ( 9999999999999999999999999999999999999999999999999999999999999.9999, 9999999999999999999999999999999999999999999999999999999999999.9999, diff --git a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_unsigned.result b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_unsigned.result index ef85ad1c237..b931743d59a 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_unsigned.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_unsigned.result @@ -317,17 +317,27 @@ r1_1 0.0 r1_1 0.0 r1_1 0.9 r1_1 0.9 -SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1; -MAX(f) 9.999999680285692e37 -MAX(d) 1e81 -MAX(d10_10) 0.9999999999 -MAX(d1_0) 9 -MAX(d53) 100000000000000000000000000000000000000000000000000000 -MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000 -MAX(f0) 9.999999680285692e37 -MAX(f20_3) 99999998430674940.000 -MAX(f23_0) 9.999999680285692e37 -MAX(r1_1) 0.9 +SELECT +CONCAT('', MAX(f)), +CONCAT('', MAX(f0)), +CONCAT('', MAX(r1_1)), +CONCAT('', MAX(f23_0)), +CONCAT('', MAX(f20_3)), +CONCAT('', MAX(d)), +CONCAT('', MAX(d1_0)), +CONCAT('', MAX(d10_10)), +CONCAT('', MAX(d53)), +CONCAT('', MAX(d53_10)) FROM t1; +CONCAT('', MAX(f)) 9.999999680285692e37 +CONCAT('', MAX(d)) 1e81 +CONCAT('', MAX(d10_10)) 0.9999999999 +CONCAT('', MAX(d1_0)) 9 +CONCAT('', MAX(d53)) 100000000000000000000000000000000000000000000000000000 +CONCAT('', MAX(d53_10)) 10000000000000000000000000000000000000000000.0000000000 +CONCAT('', MAX(f0)) 9.999999680285692e37 +CONCAT('', MAX(f20_3)) 99999998430674940.000 +CONCAT('', MAX(f23_0)) 9.999999680285692e37 +CONCAT('', MAX(r1_1)) 0.9 INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES ( 9999999999999999999999999999999999999999999999999999999999999.9999, 9999999999999999999999999999999999999999999999999999999999999.9999, diff --git a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_zerofill.result b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_zerofill.result index 1f9bf16ecfc..f8fdfed86e7 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/col_opt_zerofill.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/col_opt_zerofill.result @@ -313,17 +313,27 @@ r1_1 0.0 r1_1 0.0 r1_1 0.9 r1_1 0.9 -SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1; -MAX(f) 9.999999680285692e37 -MAX(d) 1e81 -MAX(d10_10) 0.9999999999 -MAX(d1_0) 9 -MAX(d53) 100000000000000000000000000000000000000000000000000000 -MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000 -MAX(f0) 9.999999680285692e37 -MAX(f20_3) 99999998430674940.000 -MAX(f23_0) 9.999999680285692e37 -MAX(r1_1) 0.9 +SELECT +CONCAT('', MAX(f)), +CONCAT('', MAX(f0)), +CONCAT('', MAX(r1_1)), +CONCAT('', MAX(f23_0)), +CONCAT('', MAX(f20_3)), +CONCAT('', MAX(d)), +CONCAT('', MAX(d1_0)), +CONCAT('', MAX(d10_10)), +CONCAT('', MAX(d53)), +CONCAT('', MAX(d53_10)) FROM t1; +CONCAT('', MAX(f)) 9.999999680285692e37 +CONCAT('', MAX(d)) 1e81 +CONCAT('', MAX(d10_10)) 0.9999999999 +CONCAT('', MAX(d1_0)) 9 +CONCAT('', MAX(d53)) 100000000000000000000000000000000000000000000000000000 +CONCAT('', MAX(d53_10)) 10000000000000000000000000000000000000000000.0000000000 +CONCAT('', MAX(f0)) 9.999999680285692e37 +CONCAT('', MAX(f20_3)) 99999998430674940.000 +CONCAT('', MAX(f23_0)) 9.999999680285692e37 +CONCAT('', MAX(r1_1)) 0.9 INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES ( 9999999999999999999999999999999999999999999999999999999999999.9999, 9999999999999999999999999999999999999999999999999999999999999.9999, diff --git a/storage/rocksdb/mysql-test/rocksdb/r/type_float.result b/storage/rocksdb/mysql-test/rocksdb/r/type_float.result index fbb44d1552c..778ed95d338 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/type_float.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/type_float.result @@ -127,17 +127,27 @@ r1_1 -0.9 r1_1 0.0 r1_1 0.9 r1_1 0.9 -SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1; -MAX(f) 9.999999680285692e37 -MAX(d) 1e81 -MAX(d10_10) 0.9999999999 -MAX(d1_0) 9 -MAX(d53) 100000000000000000000000000000000000000000000000000000 -MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000 -MAX(f0) 9.999999680285692e37 -MAX(f20_3) 99999998430674940.000 -MAX(f23_0) 9.999999680285692e37 -MAX(r1_1) 0.9 +SELECT +CONCAT('', MAX(f)), +CONCAT('', MAX(f0)), +CONCAT('', MAX(r1_1)), +CONCAT('', MAX(f23_0)), +CONCAT('', MAX(f20_3)), +CONCAT('', MAX(d)), +CONCAT('', MAX(d1_0)), +CONCAT('', MAX(d10_10)), +CONCAT('', MAX(d53)), +CONCAT('', MAX(d53_10)) FROM t1; +CONCAT('', MAX(f)) 9.999999680285692e37 +CONCAT('', MAX(d)) 1e81 +CONCAT('', MAX(d10_10)) 0.9999999999 +CONCAT('', MAX(d1_0)) 9 +CONCAT('', MAX(d53)) 100000000000000000000000000000000000000000000000000000 +CONCAT('', MAX(d53_10)) 10000000000000000000000000000000000000000000.0000000000 +CONCAT('', MAX(f0)) 9.999999680285692e37 +CONCAT('', MAX(f20_3)) 99999998430674940.000 +CONCAT('', MAX(f23_0)) 9.999999680285692e37 +CONCAT('', MAX(r1_1)) 0.9 INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES ( 9999999999999999999999999999999999999999999999999999999999999.9999, 9999999999999999999999999999999999999999999999999999999999999.9999, diff --git a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def index 6a352e9511b..14e535f9a86 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def @@ -72,12 +72,6 @@ bloomfilter : MDEV-12474 Regularly fails on buildbot compact_deletes: MDEV-12663 : rocksdb.compact_deletes times out and causes other tests to fail -col_opt_not_null : MDEV-12474 - Fails in fulltest -col_opt_null : : MDEV-12474 - Fails in fulltest -col_opt_unsigned : MDEV-12474 - Fails in fulltest -col_opt_zerofill : MDEV-12474 - Fails in fulltest -type_float : MDEV-12474 - Fails in fulltest - native_procedure : Not supported in MariaDB ddl_high_priority: Needs fractional @@lock_wait_timeout diff --git a/storage/rocksdb/mysql-test/rocksdb/t/type_float.inc b/storage/rocksdb/mysql-test/rocksdb/t/type_float.inc index 8403b088f9d..ff58b73a91b 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/type_float.inc +++ b/storage/rocksdb/mysql-test/rocksdb/t/type_float.inc @@ -57,7 +57,18 @@ INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (-9999 --query_vertical SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1 --sorted_result ---query_vertical SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1 +query_vertical +SELECT + CONCAT('', MAX(f)), + CONCAT('', MAX(f0)), + CONCAT('', MAX(r1_1)), + CONCAT('', MAX(f23_0)), + CONCAT('', MAX(f20_3)), + CONCAT('', MAX(d)), + CONCAT('', MAX(d1_0)), + CONCAT('', MAX(d10_10)), + CONCAT('', MAX(d53)), + CONCAT('', MAX(d53_10)) FROM t1; # Invalid values From 4136288705c4bdd5f315fcda3aee7f9e40b56b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Oct 2017 16:29:08 +0300 Subject: [PATCH 109/128] Import the innodb_fts.sync tests from MySQL --- mysql-test/suite/innodb_fts/r/sync.result | 134 ++++++++++++++ .../suite/innodb_fts/r/sync_block.result | 67 +++++++ mysql-test/suite/innodb_fts/t/sync.test | 171 ++++++++++++++++++ mysql-test/suite/innodb_fts/t/sync_block.test | 125 +++++++++++++ 4 files changed, 497 insertions(+) create mode 100644 mysql-test/suite/innodb_fts/r/sync.result create mode 100644 mysql-test/suite/innodb_fts/r/sync_block.result create mode 100644 mysql-test/suite/innodb_fts/t/sync.test create mode 100644 mysql-test/suite/innodb_fts/t/sync_block.test diff --git a/mysql-test/suite/innodb_fts/r/sync.result b/mysql-test/suite/innodb_fts/r/sync.result new file mode 100644 index 00000000000..4180980a621 --- /dev/null +++ b/mysql-test/suite/innodb_fts/r/sync.result @@ -0,0 +1,134 @@ +# Case 1: Test select and insert(row in both disk and cache) +CREATE TABLE t1 ( +FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, +title VARCHAR(200), +FULLTEXT(title) +) ENGINE = InnoDB; +INSERT INTO t1(title) VALUES('mysql'); +INSERT INTO t1(title) VALUES('database'); +SET SESSION debug="+d,fts_instrument_sync_debug"; +SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR selected'; +INSERT INTO t1(title) VALUES('mysql database'); +SET DEBUG_SYNC= 'now WAIT_FOR written'; +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +database 2 3 2 2 0 +database 2 3 2 3 6 +mysql 1 3 2 1 0 +mysql 1 3 2 3 0 +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +SET GLOBAL innodb_ft_aux_table=default; +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +FTS_DOC_ID title +1 mysql +2 database +SET DEBUG_SYNC= 'now SIGNAL selected'; +/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +SET SESSION debug="-d,fts_instrument_sync_debug"; +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +database 2 3 2 2 0 +database 2 3 2 3 6 +mysql 1 3 2 1 0 +mysql 1 3 2 3 0 +SET GLOBAL innodb_ft_aux_table=default; +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +FTS_DOC_ID title +3 mysql database +1 mysql +2 database +DROP TABLE t1; +# Case 2: Test insert and insert(sync) +CREATE TABLE t1 ( +FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, +title VARCHAR(200), +FULLTEXT(title) +) ENGINE = InnoDB; +INSERT INTO t1(title) VALUES('mysql'); +INSERT INTO t1(title) VALUES('database'); +SET SESSION debug="+d,fts_instrument_sync_debug"; +SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR inserted'; +INSERT INTO t1(title) VALUES('mysql database'); +SET DEBUG_SYNC= 'now WAIT_FOR written'; +INSERT INTO t1(title) VALUES('mysql database'); +SET DEBUG_SYNC= 'now SIGNAL inserted'; +/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +SET SESSION debug="-d,fts_instrument_sync_debug"; +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +database 2 3 2 2 0 +database 2 3 2 3 6 +database 4 4 1 4 6 +mysql 1 4 3 1 0 +mysql 1 4 3 3 0 +mysql 1 4 3 4 0 +SET GLOBAL innodb_ft_aux_table=default; +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +FTS_DOC_ID title +3 mysql database +4 mysql database +1 mysql +2 database +DROP TABLE t1; +# Case 3: Test insert crash recovery +CREATE TABLE t1 ( +FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, +title VARCHAR(200), +FULLTEXT(title) +) ENGINE = InnoDB; +INSERT INTO t1(title) VALUES('database'); +SET SESSION debug="+d,fts_instrument_sync_debug,fts_write_node_crash"; +INSERT INTO t1(title) VALUES('mysql'); +ERROR HY000: Lost connection to MySQL server during query +# restart +After restart +SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); +FTS_DOC_ID title +1 database +SET SESSION debug="+d,fts_instrument_sync_debug"; +INSERT INTO t1(title) VALUES('mysql'); +SET SESSION debug="-d,fts_instrument_sync_debug"; +SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); +FTS_DOC_ID title +1 database +2 mysql +DROP TABLE t1; +# Case 4: Test sync commit & rollback in background +CREATE TABLE t1( +id INT AUTO_INCREMENT, +title VARCHAR(100), +FULLTEXT(title), +PRIMARY KEY(id)) ENGINE=InnoDB; +SET SESSION debug="+d,fts_instrument_sync"; +INSERT INTO t1(title) VALUES('mysql'); +SET SESSION debug="-d,fts_instrument_sync"; +# restart +SET GLOBAL debug="+d,fts_instrument_sync,fts_instrument_sync_interrupted"; +INSERT INTO t1(title) VALUES('database'); +SET GLOBAL debug="-d,fts_instrument_sync,fts_instrument_sync_interrupted"; +SET SESSION debug="+d,fts_instrument_sync_debug"; +INSERT INTO t1(title) VALUES('good'); +SET SESSION debug="-d,fts_instrument_sync_debug"; +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +database 4 4 1 4 0 +good 5 5 1 5 0 +mysql 2 2 1 2 0 +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION +SET GLOBAL innodb_ft_aux_table=default; +SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database good'); +id title +1 mysql +2 database +3 good +DROP TABLE t1; diff --git a/mysql-test/suite/innodb_fts/r/sync_block.result b/mysql-test/suite/innodb_fts/r/sync_block.result new file mode 100644 index 00000000000..c834ea46a8d --- /dev/null +++ b/mysql-test/suite/innodb_fts/r/sync_block.result @@ -0,0 +1,67 @@ +SET @old_log_output = @@global.log_output; +SET @old_slow_query_log = @@global.slow_query_log; +SET @old_general_log = @@global.general_log; +SET @old_long_query_time = @@global.long_query_time; +SET @old_binlog_order_commits = @@global.binlog_order_commits; +SET GLOBAL log_output = 'TABLE'; +SET GLOBAL general_log = 1; +SET GLOBAL slow_query_log = 1; +SET GLOBAL long_query_time = 1; +SET GLOBAL binlog_order_commits = 1; +# Case 1: Sync blocks DML(insert) on the same table. +CREATE TABLE t1 ( +FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, +title VARCHAR(200), +FULLTEXT(title) +) ENGINE = InnoDB; +SET GLOBAL debug="+d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +SET DEBUG_SYNC= 'fts_sync_begin SIGNAL begin WAIT_FOR continue'; +INSERT INTO t1(title) VALUES('mysql database'); +SET DEBUG_SYNC= 'now WAIT_FOR begin'; +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +SET DEBUG_SYNC= 'now SIGNAL continue'; +/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +/* conneciton con2 */ SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +FTS_DOC_ID title +# make con1 & con2 show up in mysql.slow_log +SELECT SLEEP(2); +SLEEP(2) +0 +# slow log results should only contain INSERT INTO t1. +SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; +sql_text +INSERT INTO t1(title) VALUES('mysql database') +SET GLOBAL debug="-d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +TRUNCATE TABLE mysql.slow_log; +DROP TABLE t1; +# Case 2: Sync blocks DML(insert) on other tables. +CREATE TABLE t1 ( +FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, +title VARCHAR(200), +FULLTEXT(title) +) ENGINE = InnoDB; +CREATE TABLE t2(id INT); +SET GLOBAL debug="+d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +SET DEBUG_SYNC= 'fts_instrument_sync_request SIGNAL begin WAIT_FOR continue'; +INSERT INTO t1(title) VALUES('mysql database'); +SET DEBUG_SYNC= 'now WAIT_FOR begin'; +INSERT INTO t2 VALUES(1); +SET DEBUG_SYNC= 'now SIGNAL continue'; +/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +/* conneciton con2 */ INSERT INTO t2 VALUES(1); +# make con1 & con2 show up in mysql.slow_log +SELECT SLEEP(2); +SLEEP(2) +0 +# slow log results should be empty here. +SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; +sql_text +SET GLOBAL debug="-d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +TRUNCATE TABLE mysql.slow_log; +DROP TABLE t1,t2; +# Restore slow log settings. +SET GLOBAL log_output = @old_log_output; +SET GLOBAL general_log = @old_general_log; +SET GLOBAL slow_query_log = @old_slow_query_log; +SET GLOBAL long_query_time = @old_long_query_time; +SET GLOBAL binlog_order_commits = @old_binlog_order_commits; diff --git a/mysql-test/suite/innodb_fts/t/sync.test b/mysql-test/suite/innodb_fts/t/sync.test new file mode 100644 index 00000000000..c62cbcd1196 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/sync.test @@ -0,0 +1,171 @@ +# +# BUG#22516559 MYSQL INSTANCE STALLS WHEN SYNCING FTS INDEX +# + +--source include/have_innodb.inc +--source include/have_debug_sync.inc +--source include/not_valgrind.inc +--source include/not_embedded.inc +--source include/not_crashrep.inc +--source include/not_log_bin.inc +--source include/count_sessions.inc + +connect (con1,localhost,root,,); +connection default; + +--echo # Case 1: Test select and insert(row in both disk and cache) +CREATE TABLE t1 ( + FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + FULLTEXT(title) +) ENGINE = InnoDB; + +INSERT INTO t1(title) VALUES('mysql'); +INSERT INTO t1(title) VALUES('database'); + +connection con1; + +SET SESSION debug="+d,fts_instrument_sync_debug"; + +SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR selected'; + +send INSERT INTO t1(title) VALUES('mysql database'); + +connection default; + +SET DEBUG_SYNC= 'now WAIT_FOR written'; + +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +SET GLOBAL innodb_ft_aux_table=default; + +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); + +SET DEBUG_SYNC= 'now SIGNAL selected'; + +connection con1; +--echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +--reap + +SET SESSION debug="-d,fts_instrument_sync_debug"; + +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +SET GLOBAL innodb_ft_aux_table=default; + +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); + +connection default; + +DROP TABLE t1; + +--echo # Case 2: Test insert and insert(sync) +CREATE TABLE t1 ( + FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + FULLTEXT(title) +) ENGINE = InnoDB; + +INSERT INTO t1(title) VALUES('mysql'); +INSERT INTO t1(title) VALUES('database'); + +connection con1; + +SET SESSION debug="+d,fts_instrument_sync_debug"; + +SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR inserted'; + +send INSERT INTO t1(title) VALUES('mysql database'); + +connection default; + +SET DEBUG_SYNC= 'now WAIT_FOR written'; + +INSERT INTO t1(title) VALUES('mysql database'); + +SET DEBUG_SYNC= 'now SIGNAL inserted'; + +connection con1; +--echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +--reap + +SET SESSION debug="-d,fts_instrument_sync_debug"; + +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +SET GLOBAL innodb_ft_aux_table=default; + +SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); + +connection default; +disconnect con1; + +DROP TABLE t1; + +--echo # Case 3: Test insert crash recovery +--let $_expect_file_name=$MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect + +CREATE TABLE t1 ( + FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + FULLTEXT(title) +) ENGINE = InnoDB; + +INSERT INTO t1(title) VALUES('database'); + +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect + +SET SESSION debug="+d,fts_instrument_sync_debug,fts_write_node_crash"; + +--error 2013 +INSERT INTO t1(title) VALUES('mysql'); + +--source include/start_mysqld.inc + +-- echo After restart +SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); + +SET SESSION debug="+d,fts_instrument_sync_debug"; + +INSERT INTO t1(title) VALUES('mysql'); + +SET SESSION debug="-d,fts_instrument_sync_debug"; + +SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); + +DROP TABLE t1; + +--echo # Case 4: Test sync commit & rollback in background +CREATE TABLE t1( + id INT AUTO_INCREMENT, + title VARCHAR(100), + FULLTEXT(title), + PRIMARY KEY(id)) ENGINE=InnoDB; + +SET SESSION debug="+d,fts_instrument_sync"; +INSERT INTO t1(title) VALUES('mysql'); +SET SESSION debug="-d,fts_instrument_sync"; + +--source include/restart_mysqld.inc + +SET GLOBAL debug="+d,fts_instrument_sync,fts_instrument_sync_interrupted"; +INSERT INTO t1(title) VALUES('database'); +SET GLOBAL debug="-d,fts_instrument_sync,fts_instrument_sync_interrupted"; + +SET SESSION debug="+d,fts_instrument_sync_debug"; +INSERT INTO t1(title) VALUES('good'); +SET SESSION debug="-d,fts_instrument_sync_debug"; + +SET GLOBAL innodb_ft_aux_table="test/t1"; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; +SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; +SET GLOBAL innodb_ft_aux_table=default; + +SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database good'); + +DROP TABLE t1; + +--source include/wait_until_count_sessions.inc diff --git a/mysql-test/suite/innodb_fts/t/sync_block.test b/mysql-test/suite/innodb_fts/t/sync_block.test new file mode 100644 index 00000000000..adfcb703139 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/sync_block.test @@ -0,0 +1,125 @@ +# +# BUG#22516559 MYSQL INSTANCE STALLS WHEN SYNCING FTS INDEX +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_log_bin.inc +--source include/count_sessions.inc + +SET @old_log_output = @@global.log_output; +SET @old_slow_query_log = @@global.slow_query_log; +SET @old_general_log = @@global.general_log; +SET @old_long_query_time = @@global.long_query_time; +SET @old_binlog_order_commits = @@global.binlog_order_commits; + +SET GLOBAL log_output = 'TABLE'; +SET GLOBAL general_log = 1; +SET GLOBAL slow_query_log = 1; +SET GLOBAL long_query_time = 1; +SET GLOBAL binlog_order_commits = 1; + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); +connection default; + +--echo # Case 1: Sync blocks DML(insert) on the same table. +CREATE TABLE t1 ( + FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + FULLTEXT(title) +) ENGINE = InnoDB; + +connection con1; + +SET GLOBAL debug="+d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; + +SET DEBUG_SYNC= 'fts_sync_begin SIGNAL begin WAIT_FOR continue'; + +send INSERT INTO t1(title) VALUES('mysql database'); + +connection con2; + +SET DEBUG_SYNC= 'now WAIT_FOR begin'; + +send SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); + +connection default; +SET DEBUG_SYNC= 'now SIGNAL continue'; + +connection con1; +--echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +--reap + +connection con2; +--echo /* conneciton con2 */ SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +--reap + +connection default; +-- echo # make con1 & con2 show up in mysql.slow_log +SELECT SLEEP(2); +-- echo # slow log results should only contain INSERT INTO t1. +SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; + +SET GLOBAL debug="-d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +TRUNCATE TABLE mysql.slow_log; + +DROP TABLE t1; + +--echo # Case 2: Sync blocks DML(insert) on other tables. +CREATE TABLE t1 ( + FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + FULLTEXT(title) +) ENGINE = InnoDB; + +CREATE TABLE t2(id INT); + +connection con1; + +SET GLOBAL debug="+d,fts_instrument_sync_request,fts_instrument_sync_sleep"; + +SET DEBUG_SYNC= 'fts_instrument_sync_request SIGNAL begin WAIT_FOR continue'; + +send INSERT INTO t1(title) VALUES('mysql database'); + +connection con2; + +SET DEBUG_SYNC= 'now WAIT_FOR begin'; + +send INSERT INTO t2 VALUES(1); + +connection default; +SET DEBUG_SYNC= 'now SIGNAL continue'; + +connection con1; +--echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +--reap + +connection con2; +--echo /* conneciton con2 */ INSERT INTO t2 VALUES(1); +--reap + +connection default; +-- echo # make con1 & con2 show up in mysql.slow_log +SELECT SLEEP(2); +-- echo # slow log results should be empty here. +SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; + +SET GLOBAL debug="-d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +TRUNCATE TABLE mysql.slow_log; + +DROP TABLE t1,t2; + +disconnect con1; +disconnect con2; + +--source include/wait_until_count_sessions.inc + +-- echo # Restore slow log settings. +SET GLOBAL log_output = @old_log_output; +SET GLOBAL general_log = @old_general_log; +SET GLOBAL slow_query_log = @old_slow_query_log; +SET GLOBAL long_query_time = @old_long_query_time; +SET GLOBAL binlog_order_commits = @old_binlog_order_commits; From b4f104c9f0d243af81925be9fdc56c4657eb5ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Oct 2017 17:08:07 +0300 Subject: [PATCH 110/128] Adjust the innodb_fts.sync and innodb_fts.sync_block tests for MariaDB --- mysql-test/suite/innodb_fts/r/sync.result | 51 +++++++++++-------- .../suite/innodb_fts/r/sync_block.result | 30 ++++++++--- mysql-test/suite/innodb_fts/t/sync.opt | 2 + mysql-test/suite/innodb_fts/t/sync.test | 37 +++++++------- mysql-test/suite/innodb_fts/t/sync_block.test | 13 +++-- 5 files changed, 80 insertions(+), 53 deletions(-) create mode 100644 mysql-test/suite/innodb_fts/t/sync.opt diff --git a/mysql-test/suite/innodb_fts/r/sync.result b/mysql-test/suite/innodb_fts/r/sync.result index 4180980a621..82959cfea96 100644 --- a/mysql-test/suite/innodb_fts/r/sync.result +++ b/mysql-test/suite/innodb_fts/r/sync.result @@ -1,3 +1,5 @@ +connect con1,localhost,root,,; +connection default; # Case 1: Test select and insert(row in both disk and cache) CREATE TABLE t1 ( FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, @@ -6,9 +8,12 @@ FULLTEXT(title) ) ENGINE = InnoDB; INSERT INTO t1(title) VALUES('mysql'); INSERT INTO t1(title) VALUES('database'); -SET SESSION debug="+d,fts_instrument_sync_debug"; +connection con1; +SET @old_dbug = @@SESSION.debug_dbug; +SET debug_dbug = '+d,fts_instrument_sync_debug'; SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR selected'; INSERT INTO t1(title) VALUES('mysql database'); +connection default; SET DEBUG_SYNC= 'now WAIT_FOR written'; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; @@ -25,8 +30,8 @@ FTS_DOC_ID title 1 mysql 2 database SET DEBUG_SYNC= 'now SIGNAL selected'; -/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); -SET SESSION debug="-d,fts_instrument_sync_debug"; +connection con1; +SET @old_dbug = @@SESSION.debug_dbug; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION @@ -42,6 +47,7 @@ FTS_DOC_ID title 3 mysql database 1 mysql 2 database +connection default; DROP TABLE t1; # Case 2: Test insert and insert(sync) CREATE TABLE t1 ( @@ -51,14 +57,16 @@ FULLTEXT(title) ) ENGINE = InnoDB; INSERT INTO t1(title) VALUES('mysql'); INSERT INTO t1(title) VALUES('database'); -SET SESSION debug="+d,fts_instrument_sync_debug"; +connection con1; +SET debug_dbug = '+d,fts_instrument_sync_debug'; SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR inserted'; INSERT INTO t1(title) VALUES('mysql database'); +connection default; SET DEBUG_SYNC= 'now WAIT_FOR written'; INSERT INTO t1(title) VALUES('mysql database'); SET DEBUG_SYNC= 'now SIGNAL inserted'; -/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); -SET SESSION debug="-d,fts_instrument_sync_debug"; +connection con1; +SET debug_dbug = @old_dbug; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION @@ -77,6 +85,8 @@ FTS_DOC_ID title 4 mysql database 1 mysql 2 database +connection default; +disconnect con1; DROP TABLE t1; # Case 3: Test insert crash recovery CREATE TABLE t1 ( @@ -85,17 +95,17 @@ title VARCHAR(200), FULLTEXT(title) ) ENGINE = InnoDB; INSERT INTO t1(title) VALUES('database'); -SET SESSION debug="+d,fts_instrument_sync_debug,fts_write_node_crash"; +SET debug_dbug = '+d,fts_instrument_sync_debug,fts_write_node_crash'; INSERT INTO t1(title) VALUES('mysql'); ERROR HY000: Lost connection to MySQL server during query -# restart After restart SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); FTS_DOC_ID title 1 database -SET SESSION debug="+d,fts_instrument_sync_debug"; +SET @old_dbug = @@SESSION.debug_dbug; +SET debug_dbug = '+d,fts_instrument_sync_debug'; INSERT INTO t1(title) VALUES('mysql'); -SET SESSION debug="-d,fts_instrument_sync_debug"; +SET debug_dbug = @old_dbug; SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); FTS_DOC_ID title 1 database @@ -107,22 +117,23 @@ id INT AUTO_INCREMENT, title VARCHAR(100), FULLTEXT(title), PRIMARY KEY(id)) ENGINE=InnoDB; -SET SESSION debug="+d,fts_instrument_sync"; +SET debug_dbug = '+d,fts_instrument_sync'; INSERT INTO t1(title) VALUES('mysql'); -SET SESSION debug="-d,fts_instrument_sync"; -# restart -SET GLOBAL debug="+d,fts_instrument_sync,fts_instrument_sync_interrupted"; +SET debug_dbug = @old_dbug; +SET @old_global_dbug = @@GLOBAL.debug_dbug; +SET @old_dbug = @@SESSION.debug_dbug; +SET GLOBAL debug_dbug='+d,fts_instrument_sync,fts_instrument_sync_interrupted'; INSERT INTO t1(title) VALUES('database'); -SET GLOBAL debug="-d,fts_instrument_sync,fts_instrument_sync_interrupted"; -SET SESSION debug="+d,fts_instrument_sync_debug"; +SET GLOBAL debug_dbug = @old_global_dbug; +SET debug_dbug = '+d,fts_instrument_sync_debug'; INSERT INTO t1(title) VALUES('good'); -SET SESSION debug="-d,fts_instrument_sync_debug"; +SET debug_dbug = @old_dbug; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION -database 4 4 1 4 0 -good 5 5 1 5 0 -mysql 2 2 1 2 0 +database 2 2 1 2 0 +good 3 3 1 3 0 +mysql 1 1 1 1 0 SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION SET GLOBAL innodb_ft_aux_table=default; diff --git a/mysql-test/suite/innodb_fts/r/sync_block.result b/mysql-test/suite/innodb_fts/r/sync_block.result index c834ea46a8d..f9f695c42f4 100644 --- a/mysql-test/suite/innodb_fts/r/sync_block.result +++ b/mysql-test/suite/innodb_fts/r/sync_block.result @@ -2,27 +2,35 @@ SET @old_log_output = @@global.log_output; SET @old_slow_query_log = @@global.slow_query_log; SET @old_general_log = @@global.general_log; SET @old_long_query_time = @@global.long_query_time; -SET @old_binlog_order_commits = @@global.binlog_order_commits; +SET @old_debug = @@global.debug_dbug; SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 1; SET GLOBAL slow_query_log = 1; SET GLOBAL long_query_time = 1; -SET GLOBAL binlog_order_commits = 1; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection default; # Case 1: Sync blocks DML(insert) on the same table. CREATE TABLE t1 ( FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), FULLTEXT(title) ) ENGINE = InnoDB; -SET GLOBAL debug="+d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +connection con1; +SET GLOBAL debug_dbug='+d,fts_instrument_sync_debug,fts_instrument_sync_sleep'; SET DEBUG_SYNC= 'fts_sync_begin SIGNAL begin WAIT_FOR continue'; INSERT INTO t1(title) VALUES('mysql database'); +connection con2; SET DEBUG_SYNC= 'now WAIT_FOR begin'; SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); +connection default; SET DEBUG_SYNC= 'now SIGNAL continue'; +connection con1; /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +connection con2; /* conneciton con2 */ SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); FTS_DOC_ID title +connection default; # make con1 & con2 show up in mysql.slow_log SELECT SLEEP(2); SLEEP(2) @@ -31,7 +39,7 @@ SLEEP(2) SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; sql_text INSERT INTO t1(title) VALUES('mysql database') -SET GLOBAL debug="-d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +SET GLOBAL debug_dbug = @old_debug_dbug; TRUNCATE TABLE mysql.slow_log; DROP TABLE t1; # Case 2: Sync blocks DML(insert) on other tables. @@ -41,14 +49,21 @@ title VARCHAR(200), FULLTEXT(title) ) ENGINE = InnoDB; CREATE TABLE t2(id INT); -SET GLOBAL debug="+d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +connection con1; +SET GLOBAL debug_dbug='+d,fts_instrument_sync_request,fts_instrument_sync_sleep'; SET DEBUG_SYNC= 'fts_instrument_sync_request SIGNAL begin WAIT_FOR continue'; INSERT INTO t1(title) VALUES('mysql database'); +connection con2; SET DEBUG_SYNC= 'now WAIT_FOR begin'; INSERT INTO t2 VALUES(1); +connection default; SET DEBUG_SYNC= 'now SIGNAL continue'; +connection con1; /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); +connection con2; /* conneciton con2 */ INSERT INTO t2 VALUES(1); +connection default; +SET DEBUG_SYNC = 'RESET'; # make con1 & con2 show up in mysql.slow_log SELECT SLEEP(2); SLEEP(2) @@ -56,12 +71,13 @@ SLEEP(2) # slow log results should be empty here. SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; sql_text -SET GLOBAL debug="-d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +SET GLOBAL debug_dbug = @old_debug_dbug; TRUNCATE TABLE mysql.slow_log; DROP TABLE t1,t2; +disconnect con1; +disconnect con2; # Restore slow log settings. SET GLOBAL log_output = @old_log_output; SET GLOBAL general_log = @old_general_log; SET GLOBAL slow_query_log = @old_slow_query_log; SET GLOBAL long_query_time = @old_long_query_time; -SET GLOBAL binlog_order_commits = @old_binlog_order_commits; diff --git a/mysql-test/suite/innodb_fts/t/sync.opt b/mysql-test/suite/innodb_fts/t/sync.opt new file mode 100644 index 00000000000..7724f97647f --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/sync.opt @@ -0,0 +1,2 @@ +--innodb-ft-index-cache +--innodb-ft-index-table diff --git a/mysql-test/suite/innodb_fts/t/sync.test b/mysql-test/suite/innodb_fts/t/sync.test index c62cbcd1196..2ad5423d73b 100644 --- a/mysql-test/suite/innodb_fts/t/sync.test +++ b/mysql-test/suite/innodb_fts/t/sync.test @@ -7,8 +7,6 @@ --source include/not_valgrind.inc --source include/not_embedded.inc --source include/not_crashrep.inc ---source include/not_log_bin.inc ---source include/count_sessions.inc connect (con1,localhost,root,,); connection default; @@ -25,7 +23,8 @@ INSERT INTO t1(title) VALUES('database'); connection con1; -SET SESSION debug="+d,fts_instrument_sync_debug"; +SET @old_dbug = @@SESSION.debug_dbug; +SET debug_dbug = '+d,fts_instrument_sync_debug'; SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR selected'; @@ -45,10 +44,9 @@ SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database'); SET DEBUG_SYNC= 'now SIGNAL selected'; connection con1; ---echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); --reap -SET SESSION debug="-d,fts_instrument_sync_debug"; +SET @old_dbug = @@SESSION.debug_dbug; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; @@ -73,7 +71,7 @@ INSERT INTO t1(title) VALUES('database'); connection con1; -SET SESSION debug="+d,fts_instrument_sync_debug"; +SET debug_dbug = '+d,fts_instrument_sync_debug'; SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR inserted'; @@ -88,10 +86,9 @@ INSERT INTO t1(title) VALUES('mysql database'); SET DEBUG_SYNC= 'now SIGNAL inserted'; connection con1; ---echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database'); --reap -SET SESSION debug="-d,fts_instrument_sync_debug"; +SET debug_dbug = @old_dbug; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE; @@ -118,7 +115,7 @@ INSERT INTO t1(title) VALUES('database'); --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -SET SESSION debug="+d,fts_instrument_sync_debug,fts_write_node_crash"; +SET debug_dbug = '+d,fts_instrument_sync_debug,fts_write_node_crash'; --error 2013 INSERT INTO t1(title) VALUES('mysql'); @@ -128,11 +125,13 @@ INSERT INTO t1(title) VALUES('mysql'); -- echo After restart SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); -SET SESSION debug="+d,fts_instrument_sync_debug"; +SET @old_dbug = @@SESSION.debug_dbug; + +SET debug_dbug = '+d,fts_instrument_sync_debug'; INSERT INTO t1(title) VALUES('mysql'); -SET SESSION debug="-d,fts_instrument_sync_debug"; +SET debug_dbug = @old_dbug; SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database'); @@ -145,19 +144,21 @@ CREATE TABLE t1( FULLTEXT(title), PRIMARY KEY(id)) ENGINE=InnoDB; -SET SESSION debug="+d,fts_instrument_sync"; +SET debug_dbug = '+d,fts_instrument_sync'; INSERT INTO t1(title) VALUES('mysql'); -SET SESSION debug="-d,fts_instrument_sync"; +SET debug_dbug = @old_dbug; --source include/restart_mysqld.inc -SET GLOBAL debug="+d,fts_instrument_sync,fts_instrument_sync_interrupted"; +SET @old_global_dbug = @@GLOBAL.debug_dbug; +SET @old_dbug = @@SESSION.debug_dbug; +SET GLOBAL debug_dbug='+d,fts_instrument_sync,fts_instrument_sync_interrupted'; INSERT INTO t1(title) VALUES('database'); -SET GLOBAL debug="-d,fts_instrument_sync,fts_instrument_sync_interrupted"; +SET GLOBAL debug_dbug = @old_global_dbug; -SET SESSION debug="+d,fts_instrument_sync_debug"; +SET debug_dbug = '+d,fts_instrument_sync_debug'; INSERT INTO t1(title) VALUES('good'); -SET SESSION debug="-d,fts_instrument_sync_debug"; +SET debug_dbug = @old_dbug; SET GLOBAL innodb_ft_aux_table="test/t1"; SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE; @@ -167,5 +168,3 @@ SET GLOBAL innodb_ft_aux_table=default; SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database good'); DROP TABLE t1; - ---source include/wait_until_count_sessions.inc diff --git a/mysql-test/suite/innodb_fts/t/sync_block.test b/mysql-test/suite/innodb_fts/t/sync_block.test index adfcb703139..1dd3c2bc38e 100644 --- a/mysql-test/suite/innodb_fts/t/sync_block.test +++ b/mysql-test/suite/innodb_fts/t/sync_block.test @@ -12,13 +12,12 @@ SET @old_log_output = @@global.log_output; SET @old_slow_query_log = @@global.slow_query_log; SET @old_general_log = @@global.general_log; SET @old_long_query_time = @@global.long_query_time; -SET @old_binlog_order_commits = @@global.binlog_order_commits; +SET @old_debug = @@global.debug_dbug; SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 1; SET GLOBAL slow_query_log = 1; SET GLOBAL long_query_time = 1; -SET GLOBAL binlog_order_commits = 1; connect (con1,localhost,root,,); connect (con2,localhost,root,,); @@ -33,7 +32,7 @@ CREATE TABLE t1 ( connection con1; -SET GLOBAL debug="+d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +SET GLOBAL debug_dbug='+d,fts_instrument_sync_debug,fts_instrument_sync_sleep'; SET DEBUG_SYNC= 'fts_sync_begin SIGNAL begin WAIT_FOR continue'; @@ -62,7 +61,7 @@ SELECT SLEEP(2); -- echo # slow log results should only contain INSERT INTO t1. SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; -SET GLOBAL debug="-d,fts_instrument_sync_debug,fts_instrument_sync_sleep"; +SET GLOBAL debug_dbug = @old_debug_dbug; TRUNCATE TABLE mysql.slow_log; DROP TABLE t1; @@ -78,7 +77,7 @@ CREATE TABLE t2(id INT); connection con1; -SET GLOBAL debug="+d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +SET GLOBAL debug_dbug='+d,fts_instrument_sync_request,fts_instrument_sync_sleep'; SET DEBUG_SYNC= 'fts_instrument_sync_request SIGNAL begin WAIT_FOR continue'; @@ -102,12 +101,13 @@ connection con2; --reap connection default; +SET DEBUG_SYNC = 'RESET'; -- echo # make con1 & con2 show up in mysql.slow_log SELECT SLEEP(2); -- echo # slow log results should be empty here. SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02'; -SET GLOBAL debug="-d,fts_instrument_sync_request,fts_instrument_sync_sleep"; +SET GLOBAL debug_dbug = @old_debug_dbug; TRUNCATE TABLE mysql.slow_log; DROP TABLE t1,t2; @@ -122,4 +122,3 @@ SET GLOBAL log_output = @old_log_output; SET GLOBAL general_log = @old_general_log; SET GLOBAL slow_query_log = @old_slow_query_log; SET GLOBAL long_query_time = @old_long_query_time; -SET GLOBAL binlog_order_commits = @old_binlog_order_commits; From 02ba15a9dae97f23cfe47fa788c09d65aa1cfcd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Oct 2017 10:20:22 +0300 Subject: [PATCH 111/128] Relax a too strict assertion at shutdown trx_free_prepared(): The function trx_resurrect_insert() can resurrect a committed transaction when the TRX_UNDO_STATE field is not TRX_UNDO_ACTIVE or TRX_UNDO_PREPARED. (In the examined failure of mariabackup.xb_compressed_encrypted, assertion failure in --apply-log shutdown at line 25, the TRX_UNDO_STATE strangely contained the value 0xffff.) In any case, the assertion must allow the state TRX_STATE_COMMITTED_IN_MEMORY for resurrected transactions. --- storage/innobase/trx/trx0trx.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc index ffba8f314fb..dc8e115d2d1 100644 --- a/storage/innobase/trx/trx0trx.cc +++ b/storage/innobase/trx/trx0trx.cc @@ -616,8 +616,9 @@ trx_free_prepared( trx_t* trx) /*!< in, own: trx object */ { ut_a(trx_state_eq(trx, TRX_STATE_PREPARED) - || (trx_state_eq(trx, TRX_STATE_ACTIVE) - && trx->is_recovered + || (trx->is_recovered + && (trx_state_eq(trx, TRX_STATE_ACTIVE) + || trx_state_eq(trx, TRX_STATE_COMMITTED_IN_MEMORY)) && (!srv_was_started || srv_operation == SRV_OPERATION_RESTORE || srv_operation == SRV_OPERATION_RESTORE_EXPORT From f29cfa1d7e70f129fd53960d010803d79f8c2ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Oct 2017 10:43:06 +0300 Subject: [PATCH 112/128] Remove dead code for MLOG_UNDO_HDR_DISCARD The redo log record MLOG_UNDO_HDR_DISCARD is never written, and the function trx_undo_discard_latest_update_undo() is never called outside crash recovery. Starting with MariaDB 10.2.2, crash recovery from an older InnoDB version is refused. Therefore, we can safely remove the code for parsing this long-unused redo log record type. The use of MLOG_UNDO_HDR_DISCARD was removed by Heikki Tuuri, the original designer and author of InnoDB, more than 13 years ago: commit 3caab0f3275fb1d9ba3ad5f595cf171414b13560 Author: unknown Date: Thu Mar 18 14:57:22 2004 +0200 trx0undo.h, trx0undo.c, trx0trx.c: Update an obsolete comment about trx commit: we can no longer call trx_undo_update_cleanup_by_discard(), and actually, the idea to call it was erroneous, it cannot work --- storage/innobase/include/mtr0types.h | 3 - storage/innobase/include/trx0undo.h | 10 ---- storage/innobase/log/log0recv.cc | 7 --- storage/innobase/trx/trx0undo.cc | 83 ---------------------------- 4 files changed, 103 deletions(-) diff --git a/storage/innobase/include/mtr0types.h b/storage/innobase/include/mtr0types.h index e47e89ae4ba..af8f1d2c7db 100644 --- a/storage/innobase/include/mtr0types.h +++ b/storage/innobase/include/mtr0types.h @@ -109,9 +109,6 @@ enum mlog_id_t { /** initialize a page in an undo log */ MLOG_UNDO_INIT = 22, - /** discard an update undo log header */ - MLOG_UNDO_HDR_DISCARD = 23, - /** reuse an insert undo log header */ MLOG_UNDO_HDR_REUSE = 24, diff --git a/storage/innobase/include/trx0undo.h b/storage/innobase/include/trx0undo.h index b1d442a9acf..20e7aaa4913 100644 --- a/storage/innobase/include/trx0undo.h +++ b/storage/innobase/include/trx0undo.h @@ -357,16 +357,6 @@ trx_undo_parse_page_header( const byte* end_ptr, page_t* page, mtr_t* mtr); -/***********************************************************//** -Parses the redo log entry of an undo log page header discard. -@return end of log record or NULL */ -byte* -trx_undo_parse_discard_latest( -/*==========================*/ - byte* ptr, /*!< in: buffer */ - byte* end_ptr,/*!< in: buffer end */ - page_t* page, /*!< in: page or NULL */ - mtr_t* mtr); /*!< in: mtr or NULL */ /************************************************************************ Frees an undo log memory copy. */ void diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index b9202ce985f..0a6679be721 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -1334,10 +1334,6 @@ parse_log: /* Allow anything in page_type when creating a page. */ ptr = trx_undo_parse_page_init(ptr, end_ptr, page, mtr); break; - case MLOG_UNDO_HDR_DISCARD: - ut_ad(!page || page_type == FIL_PAGE_UNDO_LOG); - ptr = trx_undo_parse_discard_latest(ptr, end_ptr, page, mtr); - break; case MLOG_UNDO_HDR_CREATE: case MLOG_UNDO_HDR_REUSE: ut_ad(!page || page_type == FIL_PAGE_UNDO_LOG); @@ -3564,9 +3560,6 @@ get_mlog_string(mlog_id_t type) case MLOG_UNDO_INIT: return("MLOG_UNDO_INIT"); - case MLOG_UNDO_HDR_DISCARD: - return("MLOG_UNDO_HDR_DISCARD"); - case MLOG_UNDO_HDR_REUSE: return("MLOG_UNDO_HDR_REUSE"); diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc index bb69d3651e1..e8bea3a2199 100644 --- a/storage/innobase/trx/trx0undo.cc +++ b/storage/innobase/trx/trx0undo.cc @@ -132,15 +132,6 @@ trx_undo_insert_header_reuse( header page, x-latched */ trx_id_t trx_id, /*!< in: transaction id */ mtr_t* mtr); /*!< in: mtr */ -/**********************************************************************//** -If an update undo log can be discarded immediately, this function frees the -space, resetting the page to the proper state for caching. */ -static -void -trx_undo_discard_latest_update_undo( -/*================================*/ - page_t* undo_page, /*!< in: header page of an undo log of size 1 */ - mtr_t* mtr); /*!< in: mtr */ /***********************************************************************//** Gets the previous record in an undo log from the previous page. @@ -783,80 +774,6 @@ trx_undo_insert_header_reuse( return(free); } -/**********************************************************************//** -Writes the redo log entry of an update undo log header discard. */ -UNIV_INLINE -void -trx_undo_discard_latest_log( -/*========================*/ - page_t* undo_page, /*!< in: undo log header page */ - mtr_t* mtr) /*!< in: mtr */ -{ - mlog_write_initial_log_record(undo_page, MLOG_UNDO_HDR_DISCARD, mtr); -} - -/***********************************************************//** -Parses the redo log entry of an undo log page header discard. -@return end of log record or NULL */ -byte* -trx_undo_parse_discard_latest( -/*==========================*/ - byte* ptr, /*!< in: buffer */ - byte* end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */ - page_t* page, /*!< in: page or NULL */ - mtr_t* mtr) /*!< in: mtr or NULL */ -{ - ut_ad(end_ptr); - - if (page) { - trx_undo_discard_latest_update_undo(page, mtr); - } - - return(ptr); -} - -/**********************************************************************//** -If an update undo log can be discarded immediately, this function frees the -space, resetting the page to the proper state for caching. */ -static -void -trx_undo_discard_latest_update_undo( -/*================================*/ - page_t* undo_page, /*!< in: header page of an undo log of size 1 */ - mtr_t* mtr) /*!< in: mtr */ -{ - trx_usegf_t* seg_hdr; - trx_upagef_t* page_hdr; - trx_ulogf_t* log_hdr; - trx_ulogf_t* prev_log_hdr; - ulint free; - ulint prev_hdr_offset; - - seg_hdr = undo_page + TRX_UNDO_SEG_HDR; - page_hdr = undo_page + TRX_UNDO_PAGE_HDR; - - free = mach_read_from_2(seg_hdr + TRX_UNDO_LAST_LOG); - log_hdr = undo_page + free; - - prev_hdr_offset = mach_read_from_2(log_hdr + TRX_UNDO_PREV_LOG); - - if (prev_hdr_offset != 0) { - prev_log_hdr = undo_page + prev_hdr_offset; - - mach_write_to_2(page_hdr + TRX_UNDO_PAGE_START, - mach_read_from_2(prev_log_hdr - + TRX_UNDO_LOG_START)); - mach_write_to_2(prev_log_hdr + TRX_UNDO_NEXT_LOG, 0); - } - - mach_write_to_2(page_hdr + TRX_UNDO_PAGE_FREE, free); - - mach_write_to_2(seg_hdr + TRX_UNDO_STATE, TRX_UNDO_CACHED); - mach_write_to_2(seg_hdr + TRX_UNDO_LAST_LOG, prev_hdr_offset); - - trx_undo_discard_latest_log(undo_page, mtr); -} - /** Allocate an undo log page. @param[in,out] trx transaction @param[in,out] undo undo log From b94a62b5dfa48c0ecec8560e8fcd0431d2904e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Oct 2017 11:16:32 +0300 Subject: [PATCH 113/128] MDEV-13890 mariabackup.xb_compressed_encrypted failed in buildbot, InnoDB: assertion failure The assertion failure was relaxed in commit 02ba15a9dae97f23cfe47fa788c09d65aa1cfcd2 but it was not enough, because another assertion would fail. trx_undo_free_prepared(): Allow any undo log state. For transactions that were resurrected in TRX_STATE_COMMITTED_IN_MEMORY the undo log state would have been reset by trx_undo_set_state_at_finish(). --- storage/innobase/trx/trx0undo.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc index e8bea3a2199..5e6b67007ad 100644 --- a/storage/innobase/trx/trx0undo.cc +++ b/storage/innobase/trx/trx0undo.cc @@ -1818,6 +1818,12 @@ trx_undo_free_prepared( switch (trx->rsegs.m_redo.update_undo->state) { case TRX_UNDO_PREPARED: break; + case TRX_UNDO_CACHED: + case TRX_UNDO_TO_FREE: + case TRX_UNDO_TO_PURGE: + ut_ad(trx_state_eq(trx, + TRX_STATE_COMMITTED_IN_MEMORY)); + /* fall through */ case TRX_UNDO_ACTIVE: /* lock_trx_release_locks() assigns trx->is_recovered=false */ @@ -1840,6 +1846,12 @@ trx_undo_free_prepared( switch (trx->rsegs.m_redo.insert_undo->state) { case TRX_UNDO_PREPARED: break; + case TRX_UNDO_CACHED: + case TRX_UNDO_TO_FREE: + case TRX_UNDO_TO_PURGE: + ut_ad(trx_state_eq(trx, + TRX_STATE_COMMITTED_IN_MEMORY)); + /* fall through */ case TRX_UNDO_ACTIVE: /* lock_trx_release_locks() assigns trx->is_recovered=false */ From 1792a80af45247226be8fe220565ac3404f0d54a Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 27 Oct 2017 12:33:27 +0300 Subject: [PATCH 114/128] Disable rocksdb.col_opt_zerofill due to MDEV-14165. --- storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 2 ++ 1 file changed, 2 insertions(+) diff --git a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def index 14e535f9a86..d3435c42359 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def @@ -78,3 +78,5 @@ ddl_high_priority: Needs fractional @@lock_wait_timeout deadlock_tracking : Needs SHOW ENGINE ROCKSDB TRANSACTION STATUS bytes_written: Needs I_S.TABLE_STATISTICS.IO_WRITE_BYTES +col_opt_zerofill: MDEV-14165: not MyRocks -problem in ps-protocol, happens in upstream too + From 057a6cf768e8308b79bf571c30e62ca81d31d68d Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 27 Oct 2017 11:56:10 +0000 Subject: [PATCH 115/128] MDEV-14132 : fix posix_fallocate() calls to workaround some (ancient) Linux bugs With this patch, parameters passed to posix_fallocate() will be the same as they were prior to refactoring in commit b731a5bcf2a0c86b6e31e4a99e3c632bb39a9c53 In particular, 'offset' parameter for posix_fallocate is again current_file_size and 'length' is new_file_size - current_file_size. This seems to fix crashes on ancient Linux (kernel 2.6). --- storage/innobase/os/os0file.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index b5c6381537e..dc84c159f3c 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -5381,7 +5381,8 @@ fallback: # ifdef HAVE_POSIX_FALLOCATE int err; do { - err = posix_fallocate(file, 0, size); + os_offset_t current_size = os_file_get_size(file); + err = posix_fallocate(file, current_size, size - current_size); } while (err == EINTR && srv_shutdown_state == SRV_SHUTDOWN_NONE); From 3d46ebbc89eb59e76398f1147c7fc317c204cb95 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 27 Oct 2017 17:48:17 +0300 Subject: [PATCH 116/128] MDEV-11934: MariaRocks: Group Commit with binlog Adjust and enable rocksdb.2pc_group_commit test --- .../rocksdb/r/2pc_group_commit.result | 105 +++++++++++----- .../rocksdb/t/2pc_group_commit.test | 115 +++++++++++++++--- .../rocksdb/mysql-test/rocksdb/t/disabled.def | 1 - 3 files changed, 170 insertions(+), 51 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/r/2pc_group_commit.result b/storage/rocksdb/mysql-test/rocksdb/r/2pc_group_commit.result index 7b15ed47d44..a9e80f1562e 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/2pc_group_commit.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/2pc_group_commit.result @@ -3,42 +3,87 @@ DROP DATABASE IF EXISTS mysqlslap; CREATE DATABASE mysqlslap; USE mysqlslap; CREATE TABLE t1(id BIGINT AUTO_INCREMENT, value BIGINT, PRIMARY KEY(id)) ENGINE=rocksdb; +SET @save_rocksdb_enable_2pc= @@rocksdb_enable_2pc; +SET @save_rocksdb_flush_log_at_trx_commit= @@rocksdb_flush_log_at_trx_commit; # 2PC enabled, MyRocks durability enabled SET GLOBAL rocksdb_enable_2pc=1; SET GLOBAL rocksdb_flush_log_at_trx_commit=1; +## ## 2PC + durability + single thread -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select case when variable_value-@c = 1000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -case when variable_value-@c = 1000 then 'true' else 'false' end -true +## +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +select IF(variable_value - @b1 = 1000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +Binlog_commits +OK +select IF(variable_value - @b2 = 1000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +Binlog_group_commits +OK +# Prepare operations sync, commits don't. We expect slightly more than 1K syncs: +select IF(variable_value - @b3 between 1000 and 1500, 'OK', 'FAIL') as Rocksdb_wal_synced +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +Rocksdb_wal_synced +OK +## ## 2PC + durability + group commit -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select case when variable_value-@c > 0 and variable_value-@c < 10000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -case when variable_value-@c > 0 and variable_value-@c < 10000 then 'true' else 'false' end -true -# 2PC enabled, MyRocks durability disabled +## +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +select IF(variable_value - @b1 = 10000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +Binlog_commits +OK +select IF(variable_value - @b2 between 100 and 5000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +Binlog_group_commits +OK +select IF(variable_value - @b3 between 1 and 9000, 'OK', 'FAIL') +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +IF(variable_value - @b3 between 1 and 9000, 'OK', 'FAIL') +OK +## +# 2PC enabled, MyRocks durability disabled, single thread +## SET GLOBAL rocksdb_enable_2pc=1; SET GLOBAL rocksdb_flush_log_at_trx_commit=0; -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -case when variable_value-@c = 0 then 'true' else 'false' end -true -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -case when variable_value-@c = 0 then 'true' else 'false' end -true -# 2PC disabled, MyRocks durability enabled -SET GLOBAL rocksdb_enable_2pc=0; -SET GLOBAL rocksdb_flush_log_at_trx_commit=1; -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -case when variable_value-@c = 0 then 'true' else 'false' end -true -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -case when variable_value-@c = 0 then 'true' else 'false' end -true -SET GLOBAL rocksdb_enable_2pc=1; -SET GLOBAL rocksdb_flush_log_at_trx_commit=1; +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +select IF(variable_value - @b1 = 1000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +Binlog_commits +OK +select IF(variable_value - @b2 = 1000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +Binlog_group_commits +OK +select IF(variable_value - @b3 < 10, 'OK', 'FAIL') +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +IF(variable_value - @b3 < 10, 'OK', 'FAIL') +OK +## +# 2PC enabled, MyRocks durability disabled, concurrent workload +## +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +select IF(variable_value - @b1 = 10000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +Binlog_commits +OK +select IF(variable_value - @b2 < 8000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +Binlog_group_commits +OK +select IF(variable_value - @b3 < 10, 'OK', 'FAIL') +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +IF(variable_value - @b3 < 10, 'OK', 'FAIL') +OK +SET GLOBAL rocksdb_enable_2pc= @save_rocksdb_enable_2pc; +SET GLOBAL rocksdb_flush_log_at_trx_commit= @save_rocksdb_flush_log_at_trx_commit; DROP TABLE t1; DROP DATABASE mysqlslap; diff --git a/storage/rocksdb/mysql-test/rocksdb/t/2pc_group_commit.test b/storage/rocksdb/mysql-test/rocksdb/t/2pc_group_commit.test index 923c9db17f2..124d700d51d 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/2pc_group_commit.test +++ b/storage/rocksdb/mysql-test/rocksdb/t/2pc_group_commit.test @@ -12,53 +12,128 @@ CREATE DATABASE mysqlslap; USE mysqlslap; CREATE TABLE t1(id BIGINT AUTO_INCREMENT, value BIGINT, PRIMARY KEY(id)) ENGINE=rocksdb; +SET @save_rocksdb_enable_2pc= @@rocksdb_enable_2pc; +SET @save_rocksdb_flush_log_at_trx_commit= @@rocksdb_flush_log_at_trx_commit; + +# +# In MariaDB, regular group commit operation does not cause increment of +# rocksdb_wal_group_syncs. +# + --echo # 2PC enabled, MyRocks durability enabled SET GLOBAL rocksdb_enable_2pc=1; SET GLOBAL rocksdb_flush_log_at_trx_commit=1; +--echo ## --echo ## 2PC + durability + single thread -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +--echo ## +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; --exec $MYSQL_SLAP --silent --concurrency=1 --number-of-queries=1000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)" -select case when variable_value-@c = 1000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select IF(variable_value - @b1 = 1000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +select IF(variable_value - @b2 = 1000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +--echo # Prepare operations sync, commits don't. We expect slightly more than 1K syncs: +select IF(variable_value - @b3 between 1000 and 1500, 'OK', 'FAIL') as Rocksdb_wal_synced +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +--echo ## --echo ## 2PC + durability + group commit -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +--echo ## +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; + --exec $MYSQL_SLAP --silent --concurrency=50 --number-of-queries=10000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)" -select case when variable_value-@c > 0 and variable_value-@c < 10000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select IF(variable_value - @b1 = 10000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +select IF(variable_value - @b2 between 100 and 5000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +select IF(variable_value - @b3 between 1 and 9000, 'OK', 'FAIL') +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; ---echo # 2PC enabled, MyRocks durability disabled +--echo ## +--echo # 2PC enabled, MyRocks durability disabled, single thread +--echo ## SET GLOBAL rocksdb_enable_2pc=1; SET GLOBAL rocksdb_flush_log_at_trx_commit=0; -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; --exec $MYSQL_SLAP --silent --concurrency=1 --number-of-queries=1000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)" -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select IF(variable_value - @b1 = 1000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +select IF(variable_value - @b2 = 1000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +select IF(variable_value - @b3 < 10, 'OK', 'FAIL') +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; + +--echo ## +--echo # 2PC enabled, MyRocks durability disabled, concurrent workload +--echo ## + +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; + --exec $MYSQL_SLAP --silent --concurrency=50 --number-of-queries=10000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)" -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select IF(variable_value - @b1 = 10000, 'OK', 'FAIL') as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +select IF(variable_value - @b2 < 8000, 'OK', 'FAIL') as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +select IF(variable_value - @b3 < 10, 'OK', 'FAIL') +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; ---echo # 2PC disabled, MyRocks durability enabled +## +## The next two are disabled because they don't add any test coverage in +## MariaDB. @@rocksdb_enable_2pc=0 is a MyRocks-internal setting, binlog +## [group] commit still happens, and syncing RocksDB WAL too. +## + +--disable_parsing +--echo ## +--echo # 2PC disabled, MyRocks durability enabled, one thread +--echo ## SET GLOBAL rocksdb_enable_2pc=0; SET GLOBAL rocksdb_flush_log_at_trx_commit=1; -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; + --exec $MYSQL_SLAP --silent --concurrency=1 --number-of-queries=1000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)" -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; -select variable_value into @c from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select variable_value - @b1 as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value - @b2 as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value - @b3 as Rocksdb_wal_synced +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; + +--echo ## +--echo # 2PC disabled, MyRocks durability enabled, concurrent workload +--echo ## +select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced'; --exec $MYSQL_SLAP --silent --concurrency=50 --number-of-queries=10000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)" -select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_wal_group_syncs'; +select variable_value - @b1 as Binlog_commits +from information_schema.global_status where variable_name='Binlog_commits'; +select variable_value - @b2 as Binlog_group_commits +from information_schema.global_status where variable_name='Binlog_group_commits'; +select variable_value - @b3 as Rocksdb_wal_synced +from information_schema.global_status where variable_name='Rocksdb_wal_synced'; +--enable_parsing +SET GLOBAL rocksdb_enable_2pc= @save_rocksdb_enable_2pc; +SET GLOBAL rocksdb_flush_log_at_trx_commit= @save_rocksdb_flush_log_at_trx_commit; - - - - -SET GLOBAL rocksdb_enable_2pc=1; -SET GLOBAL rocksdb_flush_log_at_trx_commit=1; DROP TABLE t1; DROP DATABASE mysqlslap; diff --git a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def index 6a352e9511b..d160ce46ebc 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def @@ -40,7 +40,6 @@ read_only_tx : MariaRocks: requires GTIDs rpl_row_triggers : MariaRocks: requires GTIDs trx_info_rpl : MariaRocks: @@rpl_skip_tx_api doesn't work, yet. -2pc_group_commit : MariaRocks: Group Commit is not functional yet mysqldump : MariaRocks: MariaDB's mysqldump doesn't support --print-ordering-key mysqldump2 : MariaRocks: MariaDB's mysqldump doesn't support --print-ordering-key From 5f5ffdc76bdf9237e15e5f8a83fe41a9ca8a5288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Oct 2017 18:59:22 +0300 Subject: [PATCH 117/128] MDEV-14132 follow-up fix: Validate the posix_fallocate() argument os_file_set_size(): Sometimes the file already is large enough. Avoid calling posix_fallocate() with a non-positive argument. Also, add a missing space to an error message. --- storage/innobase/os/os0file.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index dc84c159f3c..633a27226d9 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -5382,14 +5382,16 @@ fallback: int err; do { os_offset_t current_size = os_file_get_size(file); - err = posix_fallocate(file, current_size, size - current_size); + err = current_size >= size + ? 0 : posix_fallocate(file, current_size, + size - current_size); } while (err == EINTR && srv_shutdown_state == SRV_SHUTDOWN_NONE); if (err) { ib::error() << "preallocating " << size << " bytes for" << - "file " << name << "failed with error " << err; + "file " << name << " failed with error " << err; } errno = err; return(!err); From 9dfe84d5de1041bdd9b0a04d8d894431a778a7db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Oct 2017 19:01:24 +0300 Subject: [PATCH 118/128] Remove a bogus page_is_root() debug assertion on btr_create() failure The predicate page_is_root() would not hold if btr_create() fails before the root page is fully initialized. Move the debug assertion from btr_free_root_invalidate() to its other caller, btr_free_if_exists(). In that caller, we actually already checked for page_is_root(). --- storage/innobase/btr/btr0btr.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index e638af8a217..fcb3e24b42f 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -1133,8 +1133,6 @@ btr_free_root_invalidate( buf_block_t* block, mtr_t* mtr) { - ut_ad(page_is_root(block->frame)); - btr_page_set_index_id( buf_block_get_frame(block), buf_block_get_page_zip(block), @@ -1435,6 +1433,7 @@ btr_free_if_exists( return; } + ut_ad(page_is_root(root->frame)); btr_free_but_not_root(root, mtr->get_log_mode()); mtr->set_named_space(page_id.space()); btr_free_root(root, mtr); From 067f83969caca50d95492a01f4af22176abf7ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Oct 2017 19:33:38 +0300 Subject: [PATCH 119/128] MDEV-14132 follow-up fix: Make os_file_get_size() thread-safe os_file_get_size(): Use fstat() instead of calling lseek() 3 times. In this way, concurrent calls to this function should not interfere with each other. Suggested by Vladislav Vaintroub. --- storage/innobase/os/os0file.cc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index 633a27226d9..65affe7638d 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -3238,17 +3238,10 @@ os_file_close_func( @param[in] file handle to an open file @return file size, or (os_offset_t) -1 on failure */ os_offset_t -os_file_get_size( - os_file_t file) +os_file_get_size(os_file_t file) { - /* Store current position */ - os_offset_t pos = lseek(file, 0, SEEK_CUR); - os_offset_t file_size = lseek(file, 0, SEEK_END); - - /* Restore current position as the function should not change it */ - lseek(file, pos, SEEK_SET); - - return(file_size); + struct stat statbuf; + return fstat(file, &statbuf) ? os_offset_t(-1) : statbuf.st_size; } /** Gets a file size. From 97df230aed24dc9ba1990c955c083c2d53d1f723 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 27 Oct 2017 23:42:02 +0000 Subject: [PATCH 120/128] MDEV-14115 : Do not use lpNumberOfBytesRead/Written params in ReadFile/WriteFile operations. Innodb opens files with FILE_FLAG_OVERLAPPED. lpNumberOfBytesRead/Written are documented to be potentially inaccurate in this case, (possibly even if async operations complete synchronously?) The fix is to always pass NULL for the correspondng parameters, as recommended by MSDN. Read the actual counts with GetQueuedCompletionStatus() or GetOverlappedResult(). --- storage/innobase/os/os0file.cc | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index 65affe7638d..44b78dabf87 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -775,9 +775,9 @@ os_win32_device_io_control( OVERLAPPED overlapped = { 0 }; overlapped.hEvent = win_get_syncio_event(); BOOL result = DeviceIoControl(handle, code, inbuf, inbuf_size, outbuf, - outbuf_size, bytes_returned, &overlapped); + outbuf_size, NULL, &overlapped); - if (!result && (GetLastError() == ERROR_IO_PENDING)) { + if (result || (GetLastError() == ERROR_IO_PENDING)) { /* Wait for async io to complete */ result = GetOverlappedResult(handle, &overlapped, bytes_returned, TRUE); } @@ -3451,14 +3451,14 @@ SyncFileIO::execute(const IORequest& request) if (request.is_read()) { ret = ReadFile(m_fh, m_buf, - static_cast(m_n), &n_bytes, &seek); + static_cast(m_n), NULL, &seek); } else { ut_ad(request.is_write()); ret = WriteFile(m_fh, m_buf, - static_cast(m_n), &n_bytes, &seek); + static_cast(m_n), NULL, &seek); } - if (!ret && (GetLastError() == ERROR_IO_PENDING)) { + if (ret || (GetLastError() == ERROR_IO_PENDING)) { /* Wait for async io to complete */ ret = GetOverlappedResult(m_fh, &seek, &n_bytes, TRUE); } @@ -3478,17 +3478,17 @@ SyncFileIO::execute(Slot* slot) ret = ReadFile( slot->file, slot->ptr, slot->len, - &slot->n_bytes, &slot->control); + NULL, &slot->control); } else { ut_ad(slot->type.is_write()); ret = WriteFile( slot->file, slot->ptr, slot->len, - &slot->n_bytes, &slot->control); + NULL, &slot->control); } - if (!ret && (GetLastError() == ERROR_IO_PENDING)) { + if (ret || (GetLastError() == ERROR_IO_PENDING)) { /* Wait for async io to complete */ ret = GetOverlappedResult(slot->file, &slot->control, &slot->n_bytes, TRUE); } @@ -6725,7 +6725,7 @@ try_again: #ifdef WIN_ASYNC_IO ret = ReadFile( file, slot->ptr, slot->len, - &slot->n_bytes, &slot->control); + NULL, &slot->control); #elif defined(LINUX_NATIVE_AIO) if (!array->linux_dispatch(slot)) { goto err_exit; @@ -6743,7 +6743,7 @@ try_again: #ifdef WIN_ASYNC_IO ret = WriteFile( file, slot->ptr, slot->len, - &slot->n_bytes, &slot->control); + NULL, &slot->control); #elif defined(LINUX_NATIVE_AIO) if (!array->linux_dispatch(slot)) { goto err_exit; @@ -6759,8 +6759,7 @@ try_again: } #ifdef WIN_ASYNC_IO - if ((ret && slot->len == slot->n_bytes) - || (!ret && GetLastError() == ERROR_IO_PENDING)) { + if (ret || (GetLastError() == ERROR_IO_PENDING)) { /* aio completed or was queued successfully! */ return(DB_SUCCESS); } From b6d48595477033fcbb1e26e5700f70ee58f47c54 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Sun, 29 Oct 2017 11:39:52 +0300 Subject: [PATCH 121/128] MDEV-14181: rocksdb.rocksdb fails: line 1117: query 'reap' succeeded - should have failed Fix a race condition in the testcase. --- storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 1 - storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def index 52b51231841..5699e8ccb7d 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def @@ -54,7 +54,6 @@ blind_delete_without_tx_api: MDEV-12286: rocksdb.blind_delete_without_tx_api tes persistent_cache: Upstream RocksDB bug https://github.com/facebook/mysql-5.6/issues/579 collation: Fails on gcc 4.8 and before, MDEV-12433 -rocksdb : Intermittent failures in BB unique_sec : Intermittent failures in BB # See also storage/rocksdb/mysql-test/rocksdb/suite.pm diff --git a/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test b/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test index 0089b62e0b9..5c8fa9ed443 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test +++ b/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test @@ -1107,6 +1107,10 @@ set autocommit = 1; update t1 set a = sleep(100) where pk = 1; --connect (con1,localhost,root,,) + +let $wait_condition= select State='User sleep' from information_schema.processlist where id=$con_id; +--source include/wait_condition.inc + --echo kill query \$con_id; --disable_query_log eval kill query $con_id; From a6dc22fc73bca5718fb210bf7abd5df4aa0f0140 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Sun, 29 Oct 2017 11:49:18 +0300 Subject: [PATCH 122/128] MyRocks: enable a few tests that do not seem to fail anymore --- storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def index 5699e8ccb7d..d35d1bdaf94 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def @@ -54,7 +54,6 @@ blind_delete_without_tx_api: MDEV-12286: rocksdb.blind_delete_without_tx_api tes persistent_cache: Upstream RocksDB bug https://github.com/facebook/mysql-5.6/issues/579 collation: Fails on gcc 4.8 and before, MDEV-12433 -unique_sec : Intermittent failures in BB # See also storage/rocksdb/mysql-test/rocksdb/suite.pm # Running tests under valgrind is disabled there. @@ -64,9 +63,11 @@ rocksdb_deadlock_stress_rc: stress test rocksdb_deadlock_stress_rr: stress test # MDEV-12474 Regularly failing tests on Buildbot -autoinc_vars_thread : MDEV-12474 Regularly fails on buildbot -unique_check : MDEV-12474 Regularly fails on buildbot -bloomfilter : MDEV-12474 Regularly fails on buildbot +# Enabling these didn't seem to cause any trouble: +# autoinc_vars_thread : MDEV-12474 Regularly fails on buildbot +# unique_check : MDEV-12474 Regularly fails on buildbot +# bloomfilter : MDEV-12474 Regularly fails on buildbot +# unique_sec : Intermittent failures in BB compact_deletes: MDEV-12663 : rocksdb.compact_deletes times out and causes other tests to fail From 34188ac4553b9325081280bec14a7cb65453b7ce Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Sun, 29 Oct 2017 09:41:40 +0000 Subject: [PATCH 123/128] Organize information in storage/rocksdb/mysql-test/rocksdb/t/disabled.def --- .../rocksdb/mysql-test/rocksdb/t/disabled.def | 107 +++++++++--------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def index d35d1bdaf94..3af1d99ff22 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/disabled.def +++ b/storage/rocksdb/mysql-test/rocksdb/t/disabled.def @@ -3,79 +3,84 @@ ## platforms and under valgrind are disabled from there. ## +## +## Tests that are disabled in the upstream +## cons_snapshot_serializable : Consistent read does not work on serializable level_read_uncommitted : Not supported level_serializable: Not supported -# Tests that are (temporarily) disabled in MariaDB: +## +## Tests that require FB/MySQL specific features for which there are +## no plans of ever porting them into MariaDB +## +optimizer_loose_index_scans: MariaDB doesnt support Skip Scan +mysqldump : MariaDB's mysqldump doesn't support --print-ordering-key +mysqldump2 : MariaDB's mysqldump doesn't support --print-ordering-key +native_procedure : Not supported in MariaDB slow_query_log: MDEV-11480 select_for_update_skip_locked_nowait: MDEV-11481 -rpl_read_free: MDEV-10976 -lock_wait_timeout_stats: MDEV-13404 -optimizer_loose_index_scans: MariaDB doesnt support Skip Scan -# MDEV-11735: MyRocks: Gap Lock detector support -gap_lock_issue254: MDEV-11735: MyRocks: Gap Lock detector support -gap_lock_raise_error: MDEV-11735: MyRocks: Gap Lock detector support - -# -# The idea of including RQG as a submodule and running RQG as part of -# MTR tests doesn't seem to be a good fit in MariaDB atm. -# -# The objection is that MTR tests are deterministic and can be run in -# a constrained environment. -# +## +## Tests that do not fit MariaDB's test environment. Upstream seems to test +## on boxes with much more RAM and CPU, some tests are more of a stress tests +## than functional tests or bug testcases. +## rqg_examples : Test that use RQG are disabled rqg_runtime : Test that use RQG are disabled rqg_transactions : Test that use RQG are disabled - -# -# Temporarily disabled tests -# -information_schema : MariaRocks: requires GTIDs -mysqlbinlog_gtid_skip_empty_trans_rocksdb : MariaRocks: requires GTIDs -read_only_tx : MariaRocks: requires GTIDs -rpl_row_triggers : MariaRocks: requires GTIDs - -trx_info_rpl : MariaRocks: @@rpl_skip_tx_api doesn't work, yet. - -mysqldump : MariaRocks: MariaDB's mysqldump doesn't support --print-ordering-key -mysqldump2 : MariaRocks: MariaDB's mysqldump doesn't support --print-ordering-key - -show_engine : MariaRocks: MariaDB doesnt support SHOW ENGINE rocksdb TRANSACTION STATUS -issue243_transactionStatus: MariaDB doesnt support SHOW ENGINE rocksdb TRANSACTION STATUS - -rpl_row_not_found : MariaDB doesnt support slave_exec_mode='SEMI_STRICT' - -blind_delete_without_tx_api: MDEV-12286: rocksdb.blind_delete_without_tx_api test fails - -persistent_cache: Upstream RocksDB bug https://github.com/facebook/mysql-5.6/issues/579 - -collation: Fails on gcc 4.8 and before, MDEV-12433 - -# See also storage/rocksdb/mysql-test/rocksdb/suite.pm -# Running tests under valgrind is disabled there. - allow_no_pk_concurrent_insert: stress test rocksdb_deadlock_stress_rc: stress test rocksdb_deadlock_stress_rr: stress test -# MDEV-12474 Regularly failing tests on Buildbot + +## +## Tests which hit a problem elsewhere (Upstream, SQL layer, etc) +## +persistent_cache: Upstream RocksDB bug https://github.com/facebook/mysql-5.6/issues/579 +collation: Fails on gcc 4.8 and before, MDEV-12433 +col_opt_zerofill: MDEV-14165: not MyRocks -problem in ps-protocol, happens in upstream too + + +## +## Tests that require FB/MySQL specific features which MariaDB +## currently doesnt have but eventually might get: +## +gap_lock_issue254: MDEV-11735: MyRocks: Gap Lock detector support +gap_lock_raise_error: MDEV-11735: MyRocks: Gap Lock detector support +show_engine : MariaRocks: MariaDB doesnt support SHOW ENGINE rocksdb TRANSACTION STATUS +issue243_transactionStatus: MariaDB doesnt support SHOW ENGINE rocksdb TRANSACTION STATUS +rpl_row_not_found : MariaDB doesnt support slave_exec_mode='SEMI_STRICT' +ddl_high_priority: Needs fractional @@lock_wait_timeout +deadlock_tracking : Needs SHOW ENGINE ROCKSDB TRANSACTION STATUS +bytes_written: Needs I_S.TABLE_STATISTICS.IO_WRITE_BYTES +trx_info_rpl : MariaRocks: @@rpl_skip_tx_api doesn't work, yet. +rpl_read_free: MDEV-10976 +lock_wait_timeout_stats: MDEV-13404 + + +## +## Test failures (in buildbot or else where) +## + +compact_deletes: MDEV-12663 : rocksdb.compact_deletes times out and causes other tests to fail +blind_delete_without_tx_api: MDEV-12286: rocksdb.blind_delete_without_tx_api test fails + # Enabling these didn't seem to cause any trouble: # autoinc_vars_thread : MDEV-12474 Regularly fails on buildbot # unique_check : MDEV-12474 Regularly fails on buildbot # bloomfilter : MDEV-12474 Regularly fails on buildbot # unique_sec : Intermittent failures in BB -compact_deletes: MDEV-12663 : rocksdb.compact_deletes times out and causes other tests to fail -native_procedure : Not supported in MariaDB +## +## Tests that fail for some other reason +## +information_schema : MariaRocks: requires GTIDs +mysqlbinlog_gtid_skip_empty_trans_rocksdb : MariaRocks: requires GTIDs +read_only_tx : MariaRocks: requires GTIDs +rpl_row_triggers : MariaRocks: requires GTIDs -ddl_high_priority: Needs fractional @@lock_wait_timeout -deadlock_tracking : Needs SHOW ENGINE ROCKSDB TRANSACTION STATUS -bytes_written: Needs I_S.TABLE_STATISTICS.IO_WRITE_BYTES - -col_opt_zerofill: MDEV-14165: not MyRocks -problem in ps-protocol, happens in upstream too From e5678c3fac27af7ca5a8503cccf1fdf3ad4f6fce Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Sun, 29 Oct 2017 13:21:23 +0300 Subject: [PATCH 124/128] MDEV-13904: rocksdb.add_index_inplace_sstfilewriter timed out Downscale rocksdb.add_index_inplace_sstfilewriter to be 10x smaller --- .../r/add_index_inplace_sstfilewriter.result | 18 +++++++++--------- .../t/add_index_inplace_sstfilewriter.test | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace_sstfilewriter.result b/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace_sstfilewriter.result index 2d1ba7ca1d8..0c3ad720194 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace_sstfilewriter.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace_sstfilewriter.result @@ -1,18 +1,18 @@ drop table if exists t1; CREATE TABLE t1(pk CHAR(5) PRIMARY KEY, a char(30), b char(30)) COLLATE 'latin1_bin'; set rocksdb_bulk_load=1; -set rocksdb_bulk_load_size=100000; +set rocksdb_bulk_load_size=10000; LOAD DATA INFILE INTO TABLE t1; set rocksdb_bulk_load=0; select count(pk) from t1; count(pk) -3000000 +300000 select count(a) from t1; count(a) -3000000 +300000 select count(b) from t1; count(b) -3000000 +300000 ALTER TABLE t1 ADD INDEX kb(b), ALGORITHM=INPLACE; ALTER TABLE t1 ADD INDEX kb_copy(b), ALGORITHM=COPY; SELECT COUNT(*) as c FROM @@ -25,22 +25,22 @@ c 1 select count(*) from t1 FORCE INDEX(kb); count(*) -3000000 +300000 select count(*) from t1 FORCE INDEX(kb_copy); count(*) -3000000 +300000 select count(*) from t1 FORCE INDEX(PRIMARY); count(*) -3000000 +300000 ALTER TABLE t1 DROP INDEX kb, ALGORITHM=INPLACE; ALTER TABLE t1 DROP INDEX kb_copy, ALGORITHM=INPLACE; ALTER TABLE t1 ADD INDEX kb(b), ADD INDEX kab(a,b), ALGORITHM=INPLACE; SELECT COUNT(*) FROM t1 FORCE INDEX(kab); COUNT(*) -3000000 +300000 SELECT COUNT(*) FROM t1 FORCE INDEX(kb); COUNT(*) -3000000 +300000 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/rocksdb/mysql-test/rocksdb/t/add_index_inplace_sstfilewriter.test b/storage/rocksdb/mysql-test/rocksdb/t/add_index_inplace_sstfilewriter.test index 1ac382794ae..78ddbe60da5 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/add_index_inplace_sstfilewriter.test +++ b/storage/rocksdb/mysql-test/rocksdb/t/add_index_inplace_sstfilewriter.test @@ -19,7 +19,7 @@ CREATE TABLE t1(pk CHAR(5) PRIMARY KEY, a char(30), b char(30)) COLLATE 'latin1_ perl; my $fn = $ENV{'ROCKSDB_INFILE'}; open(my $fh, '>>', $fn) || die "perl open($fn): $!"; -my $max = 3000000; +my $max = 300000; my @chars = ("A".."Z", "a".."z", "0".."9"); my @lowerchars = ("a".."z"); my @powers_of_26 = (26 * 26 * 26 * 26, 26 * 26 * 26, 26 * 26, 26, 1); @@ -48,7 +48,7 @@ EOF --file_exists $file set rocksdb_bulk_load=1; -set rocksdb_bulk_load_size=100000; +set rocksdb_bulk_load_size=10000; --disable_query_log --echo LOAD DATA INFILE INTO TABLE t1; eval LOAD DATA INFILE '$file' INTO TABLE t1; From 7cca0df0d75815013af6b7fc1a8b5a2a33cd62cc Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Sun, 29 Oct 2017 22:55:51 +0300 Subject: [PATCH 125/128] Fix rocksdb.rocksdb test Forgot to put the updated rocksdb.result in --- .../mysql-test/rocksdb/r/rocksdb.result | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result b/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result index b3dba1612a5..ed0688c96ad 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result @@ -1351,6 +1351,7 @@ insert into t1 select (@a:=@a+1), 1234 from information_schema.session_variables set @tmp1= @@rocksdb_max_row_locks; set rocksdb_max_row_locks= 20; update t1 set a=a+10; +ERROR HY000: Status error 10 received from RocksDB: Operation aborted: Failed to acquire lock due to max_num_locks limit DROP TABLE t1; # # Test AUTO_INCREMENT behavior problem, @@ -1461,21 +1462,22 @@ Rocksdb_rows_inserted # Rocksdb_rows_read # Rocksdb_rows_updated # Rocksdb_rows_deleted_blind # -rocksdb_rows_expired # +Rocksdb_rows_expired # +Rocksdb_system_rows_deleted # Rocksdb_system_rows_inserted # Rocksdb_system_rows_read # Rocksdb_system_rows_updated # +Rocksdb_memtable_total # +Rocksdb_memtable_unflushed # +Rocksdb_queries_point # +Rocksdb_queries_range # +Rocksdb_covered_secondary_key_lookups # Rocksdb_block_cache_add # -rocksdb_memtable_total # -rocksdb_memtable_unflushed # -rocksdb_queries_point # -rocksdb_queries_range # +Rocksdb_block_cache_data_hit # +Rocksdb_block_cache_data_miss # +Rocksdb_block_cache_filter_hit # +Rocksdb_block_cache_filter_miss # Rocksdb_block_cache_hit # -rocksdb_memtable_total # -rocksdb_memtable_unflushed # -rocksdb_queries_point # -rocksdb_queries_range # -rocksdb_covered_secondary_key_lookups # Rocksdb_block_cache_index_hit # Rocksdb_block_cache_index_miss # Rocksdb_block_cache_miss # @@ -1493,13 +1495,13 @@ Rocksdb_compaction_key_drop_obsolete # Rocksdb_compaction_key_drop_user # Rocksdb_flush_write_bytes # Rocksdb_getupdatessince_calls # -Rocksdb_l0_num_files_stall_micros # -Rocksdb_l0_slowdown_micros # -Rocksdb_memtable_compaction_micros # Rocksdb_memtable_hit # Rocksdb_memtable_miss # Rocksdb_no_file_closes # Rocksdb_no_file_errors # +Rocksdb_no_file_opens # +Rocksdb_num_iterators # +Rocksdb_number_block_not_compressed # Rocksdb_number_deletes_filtered # Rocksdb_number_keys_read # Rocksdb_number_keys_updated # @@ -1520,6 +1522,17 @@ Rocksdb_number_superversion_cleanups # Rocksdb_number_superversion_releases # Rocksdb_rate_limit_delay_millis # Rocksdb_snapshot_conflict_errors # +Rocksdb_stall_l0_file_count_limit_slowdowns # +Rocksdb_stall_locked_l0_file_count_limit_slowdowns # +Rocksdb_stall_l0_file_count_limit_stops # +Rocksdb_stall_locked_l0_file_count_limit_stops # +Rocksdb_stall_pending_compaction_limit_stops # +Rocksdb_stall_pending_compaction_limit_slowdowns # +Rocksdb_stall_memtable_limit_stops # +Rocksdb_stall_memtable_limit_slowdowns # +Rocksdb_stall_total_stops # +Rocksdb_stall_total_slowdowns # +Rocksdb_stall_micros # Rocksdb_wal_bytes # Rocksdb_wal_group_syncs # Rocksdb_wal_synced # @@ -1527,17 +1540,6 @@ Rocksdb_write_other # Rocksdb_write_self # Rocksdb_write_timedout # Rocksdb_write_wal # -rocksdb_stall_l0_file_count_limit_slowdowns # -rocksdb_stall_locked_l0_file_count_limit_slowdowns # -rocksdb_stall_l0_file_count_limit_stops # -rocksdb_stall_locked_l0_file_count_limit_stops # -rocksdb_stall_pending_compaction_limit_stops # -rocksdb_stall_pending_compaction_limit_slowdowns # -rocksdb_stall_memtable_limit_stops # -rocksdb_stall_memtable_limit_slowdowns # -rocksdb_stall_total_stops # -rocksdb_stall_total_slowdowns # -rocksdb_stall_micros # select VARIABLE_NAME from INFORMATION_SCHEMA.global_status where VARIABLE_NAME LIKE 'rocksdb%'; VARIABLE_NAME ROCKSDB_ROWS_DELETED @@ -2225,7 +2227,7 @@ a b c drop table t1; create table t1 (a int, b text, c varchar(400), Primary Key(a), Key(b(2255))) engine=rocksdb; Warnings: -Warning 1071 Specified key was too long; max key length is 2048 bytes +Note 1071 Specified key was too long; max key length is 767 bytes drop table t1; SET sql_mode = @old_mode; drop table t0; From a269173e976239a20811f3ff0a43b1db36fd692c Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Mon, 30 Oct 2017 03:24:35 +0200 Subject: [PATCH 126/128] Workaround for MDEV-13852 (tests don't run on Windows) --- storage/rocksdb/mysql-test/storage_engine/parts/suite.opt | 2 +- storage/rocksdb/mysql-test/storage_engine/suite.opt | 2 +- storage/rocksdb/mysql-test/storage_engine/trx/suite.opt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/storage/rocksdb/mysql-test/storage_engine/parts/suite.opt b/storage/rocksdb/mysql-test/storage_engine/parts/suite.opt index 713e46dcddb..1e464761753 100644 --- a/storage/rocksdb/mysql-test/storage_engine/parts/suite.opt +++ b/storage/rocksdb/mysql-test/storage_engine/parts/suite.opt @@ -1 +1 @@ ---ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW +--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --loose-rocksdb_flush_log_at_trx_commit=0 diff --git a/storage/rocksdb/mysql-test/storage_engine/suite.opt b/storage/rocksdb/mysql-test/storage_engine/suite.opt index 41beb675cc1..8eb0e87db98 100644 --- a/storage/rocksdb/mysql-test/storage_engine/suite.opt +++ b/storage/rocksdb/mysql-test/storage_engine/suite.opt @@ -1 +1 @@ ---ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --collation-server=latin1_bin +--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --collation-server=latin1_bin --loose-rocksdb_flush_log_at_trx_commit=0 diff --git a/storage/rocksdb/mysql-test/storage_engine/trx/suite.opt b/storage/rocksdb/mysql-test/storage_engine/trx/suite.opt index 713e46dcddb..1e464761753 100644 --- a/storage/rocksdb/mysql-test/storage_engine/trx/suite.opt +++ b/storage/rocksdb/mysql-test/storage_engine/trx/suite.opt @@ -1 +1 @@ ---ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW +--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --loose-rocksdb_flush_log_at_trx_commit=0 From de6bfbd5e9e2b269767ac0859f3b6bfacec10e12 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Mon, 30 Oct 2017 03:25:49 +0200 Subject: [PATCH 127/128] Updated list of unstable tests for 10.2.10 --- mysql-test/unstable-tests | 314 ++++++++++++++++++-------------------- 1 file changed, 149 insertions(+), 165 deletions(-) diff --git a/mysql-test/unstable-tests b/mysql-test/unstable-tests index 62a3d493288..76e1a19a40c 100644 --- a/mysql-test/unstable-tests +++ b/mysql-test/unstable-tests @@ -24,74 +24,76 @@ ############################################################################## -main.alter_table : Modified in 10.2.9 -main.alter_table_online : Modified in 10.2.8 -main.analyze_format_json : MDEV-11866 - Mismatch; modified in 10.2.8 +main.alter_table : Modified in 10.2.10 +main.analyze_format_json : MDEV-11866 - Mismatch main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result main.analyze_stmt_orderby : MDEV-11866 - Mismatch -main.binary_to_hex : Added in 10.2.8 +main.case : Modified in 10.2.10 main.check_constraint : Modified in 10.2.9 main.connect2 : MDEV-13885 - Server crash main.count_distinct : Modified in 10.2.9 -main.create_drop_event : Modified in 10.2.8 -main.ctype_utf8 : Modified in 10.2.9 +main.cte_nonrecursive : Modified in 10.2.10 +main.ctype_gbk : Modified in 10.2.10 +main.ctype_latin1 : Modified in 10.2.10 +main.ctype_ucs : Modified in 10.2.10 +main.ctype_utf32 : Modified in 10.2.10 +main.ctype_utf8 : Modified in 10.2.10 main.date_formats : Modified in 10.2.9 main.default : Modified in 10.2.9 +main.delete_returning : Modified in 10.2.10 +main.distinct : MDEV-14194 - Crash main.drop-no_root : MDEV-12633 - Valgrind -main.errors : Modified in 10.2.8 main.events_2 : MDEV-13277 - Crash -main.func_json : MDEV-11648 - Crash, valgrind; modified in 10.2.9 +main.func_in : Modified in 10.2.10 +main.func_json : MDEV-11648 - Crash, valgrind; modified in 10.2.10 main.func_math : Modified in 10.2.9 main.func_misc : Modified in 10.2.9 -main.func_regexp_pcre : MDEV-13412 - Crash; modified in 10.2.8 -main.gis : Modified in 10.2.8 -main.gis-json : Modified in 10.2.8 -main.group_by : Modified in 10.2.8 -main.index_merge_innodb : MDEV-7142 - Plan mismatch; include file modified in 10.2.8 -main.index_merge_myisam : Include file modified in 10.2.8 +main.func_regexp_pcre : Modified in 10.2.10 +main.func_time : Modified in 10.2.10 +main.gis-precise : Modified in 10.2.10 +main.gis2 : Modified in 10.2.10 +main.index_merge_innodb : MDEV-7142 - Plan mismatch +main.information_schema : Modified in 10.2.10 main.innodb_mysql_lock : MDEV-7861 - Wrong result main.insert : Modified in 10.2.9 main.kill-2 : MDEV-13257 - Wrong result -main.loadxml : Data file modified in 10.2.8 main.locale : Modified in 10.2.9 main.log_slow : MDEV-13263 - Wrong result main.log_tables-big : Modified in 10.2.9 -main.myisam : Modified in 10.2.9 +main.mdev13607 : Added in 10.2.10 +main.myisam : Modified in 10.2.10 main.mysql_client_test : MDEV-12633 - Valgrind main.mysql_client_test_comp : MDEV-12633 - Valgrind main.mysql_client_test_nonblock : MDEV-12633 - Valgrind, CONC-208 - Error on Power -main.mysql_upgrade : Modified in 10.2.8 main.mysql_upgrade_ssl : MDEV-13492 - Unknown SSL error main.mysqlcheck : MDEV-12633 - Valgrind -main.mysqld--help : Modified in 10.2.8 main.mysqld_option_err : MDEV-12747 - Timeout main.mysqlhotcopy_myisam : MDEV-10995 - Hang on debug main.mysqltest : MDEV-13887 - Wrong result main.old-mode : Modified in 10.2.9 main.openssl_1 : MDEV-13492 - Unknown SSL error +main.partition_datatype : Modified in 10.2.10 main.partition_symlink : Modified in 10.2.9 +main.ps : Modified in 10.2.10 main.range_interrupted-13751 : Added in 10.2.9 -main.read_only : Modified in 10.2.8 +main.range_vs_index_merge : Modified in 10.2.10 main.shm : MDEV-12727 - Mismatch, ERROR 2013 main.show_check : MDEV-12633 - Valgrind +main.show_function_with_pad_char_to_full_length : Added in 10.2.10 main.sp : MDEV-7866 - Mismatch; modified in 10.2.9 -main.sp-destruct : Modified in 10.2.8 -main.sp-security : Modified in 10.2.8 main.ssl_7937 : MDEV-11546 - Timeout on Windows main.ssl_ca : MDEV-10895 - SSL connection error on Power main.ssl_cert_verify : MDEV-13735 - Server crash main.ssl_connect : MDEV-13492 - Unknown SSL error main.ssl_timeout : MDEV-11244 - Crash main.stat_tables_par : MDEV-13266 - Wrong result -main.statistics : Modified in 10.2.8 main.status : MDEV-13255 - Wrong result -main.subselect : Modified in 10.2.8 -main.subselect_nulls : Modified in 10.2.8 +main.subselect_mat_cost_bugs : Modified in 10.2.10 main.symlink : Modified in 10.2.9 -main.tc_heuristic_recover : Added in 10.2.9 -main.type_json : Modified in 10.2.8 -main.type_num : Modified in 10.2.8 -main.union : Modified in 10.2.8 +main.tc_heuristic_recover : MDEV-14189 - Wrong result; modified in 10.2.10 +main.type_float : Modified in 10.2.10 +main.type_varchar : Modified in 10.2.10 +main.user_var : Modified in 10.2.10 main.userstat : MDEV-12904 - SSL errors main.view : Modified in 10.2.9 main.wait_timeout : Modified in 10.2.9 @@ -99,6 +101,7 @@ main.wait_timeout_not_windows : Modified in 10.2.9 main.win : Modified in 10.2.9 main.win_as_arg_to_aggregate_func : Added in 10.2.9 main.win_insert_select : Modified in 10.2.9 +main.xml : Modified in 10.2.10 #---------------------------------------------------------------- @@ -108,13 +111,14 @@ archive.mysqlhotcopy_archive : MDEV-10995 - Hang on debug #---------------------------------------------------------------- binlog.binlog_commit_wait : MDEV-10150 - Mismatch -binlog.binlog_innodb : Modified in 10.2.8 -binlog.binlog_unsafe : Modified in 10.2.8 binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint #---------------------------------------------------------------- binlog_encryption.binlog_xa_recover : MDEV-12908 - Extra checkpoint +binlog_encryption.encrypted_master : MDEV-14201 - Extra warnings +binlog_encryption.encrypted_master_switch_to_unencrypted : MDEV-14190 - Can't init tc log +binlog_encryption.encryption_combo : MDEV-14199 - Table is marked as crashed binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash binlog_encryption.rpl_parallel : MDEV-10653 - Timeout in include binlog_encryption.rpl_semi_sync : MDEV-11673 - Valgrind @@ -123,50 +127,26 @@ binlog_encryption.rpl_stm_relay_ign_space : MDEV-13278 - Wrong result (test asse #---------------------------------------------------------------- -connect.alter_xml : Modified in 10.2.8 -connect.alter_xml2 : Added in 10.2.8 -connect.dir : Modified in 10.2.8 -connect.infoschema-9739 : Modified in 10.2.8 -connect.infoschema2-9739 : Added in 10.2.8 -connect.jdbc_new : Modified in 10.2.8 -connect.json : Enabled in 10.2.8 -connect.json_java_2 : Added in 10.2.8 -connect.json_java_3 : Added in 10.2.8 -connect.json_mongo_c : Added in 10.2.8 -connect.json_udf : Enabled in 10.2.8 -connect.json_udf_bin : Enabled in 10.2.8 -connect.mongo_c : Added in 10.2.8 -connect.mongo_java_2 : Added in 10.2.8 -connect.mongo_java_3 : Added in 10.2.8 -connect.mul_new : Added in 10.2.8 -connect.mysql_exec : Modified in 10.2.8 -connect.tbl : MDEV-10179 - Mismatch, MDEV-9844 - Valgrind, crash; modified in 10.2.8 -connect.tbl_thread : MDEV-10179 - Mismatch, MDEV-9844 - Valgrind, crash; modified in 10.2.9 +connect.json_java_2 : Include file modified in 10.2.10 +connect.json_java_3 : Include file modified in 10.2.10 +connect.json_mongo_c : Include file modified in 10.2.10 +connect.mongo_c : Include file modified in 10.2.10 +connect.mongo_java_2 : Include file modified in 10.2.10 +connect.mongo_java_3 : Include file modified in 10.2.10 +connect.tbl : MDEV-10179 - Mismatch, MDEV-9844 - Valgrind, crash +connect.tbl_thread : MDEV-10179 - Mismatch, MDEV-9844 - Valgrind, crash connect.vcol : MDEV-12374 - Fails on Windows -connect.xml : Modified in 10.2.8 -connect.xml2 : Added in 10.2.8 -connect.xml2_grant : Added in 10.2.8 -connect.xml2_html : Added in 10.2.8 -connect.xml2_mdev5261 : Added in 10.2.8 -connect.xml2_mult : Added in 10.2.8 -connect.xml2_zip : Added in 10.2.8 -connect.xml_grant : Modified in 10.2.8 -connect.xml_html : Modified in 10.2.8 -connect.xml_mdev5261 : Modified in 10.2.8 -connect.xml_mult : Modified in 10.2.8 -connect.xml_zip : Modified in 10.2.8 -connect.zip : Modified in 10.2.8 #---------------------------------------------------------------- encryption.create_or_replace : MDEV-9359, MDEV-13516 - Assertion failure, MDEV-12694 - Timeout encryption.debug_key_management : MDEV-13841 - Timeout encryption.encrypt_and_grep : MDEV-13765 - Wrong result -encryption.innochecksum : MDEV-13644 - Assertion failure; modified in 10.2.8 +encryption.innochecksum : MDEV-13644 - Assertion failure encryption.innodb-discard-import-change : MDEV-12632 - Valgrind encryption.innodb_encryption : Modified in 10.2.9 encryption.innodb-encryption-alter : MDEV-13566 - Lock wait timeout -encryption.innodb_encryption_discard_import : MDEV-12903 - Wrong result +encryption.innodb_encryption_discard_import : MDEV-12903 - Wrong result, MDEV-14045 - Error 192 encryption.innodb_encryption_filekeys : MDEV-9962 - Timeout encryption.innodb_encrypt_log : Modified in 10.2.9 encryption.innodb_encryption_tables : MDEV-9359 - Assertion failure @@ -174,7 +154,6 @@ encryption.innodb-first-page-read : Modified in 10.2.9 encryption.innodb_lotoftables : Modified in 10.2.9 encryption.innodb-redo-badkey : MDEV-13893 - page cannot be decrypted; modified in 10.2.9 encryption.innodb-spatial-index : MDEV-13746 - Wrong result; modified in 10.2.9 -encryption.second_plugin-12863 : Added in 10.2.8 #---------------------------------------------------------------- @@ -185,25 +164,10 @@ engines/rr_trx.* : MDEV-10998 - Not maintained federated.federated_innodb : MDEV-10617 - Wrong checksum federated.federated_transactions : MDEV-10617 - Wrong checksum federated.federatedx : MDEV-10617 - Wrong checksum -federated.net_thd_crash-12725 : Added in 10.2.8 federated.net_thd_crash-12951 : Added in 10.2.9 #---------------------------------------------------------------- -funcs_1.is_character_sets : Modified in 10.2.8 -funcs_1.is_coll_char_set_appl : Modified in 10.2.8 -funcs_1.is_collations : Modified in 10.2.8 -funcs_1.is_engines : Modified in 10.2.8 -funcs_1.is_events : Modified in 10.2.8 -funcs_1.is_key_column_usage : Include file modified in 10.2.8 -funcs_1.is_key_column_usage_embedded : Modified in 10.2.8 -funcs_1.is_routines_embedded : Modified in 10.2.8 -funcs_1.is_schemata_embedded : Modified in 10.2.8 -funcs_1.is_table_constraints : Modified in 10.2.8 -funcs_1.is_tables_embedded : Modified in 10.2.8 -funcs_1.is_triggers_embedded : Modified in 10.2.8 -funcs_1.is_views_embedded : Modified in 10.2.8 - funcs_2/charset.* : MDEV-10999 - Not maintained #---------------------------------------------------------------- @@ -213,42 +177,42 @@ galera_3nodes.* : Suite is not stable yet #---------------------------------------------------------------- -gcol.gcol_bugfixes : Modified in 10.2.8 -gcol.gcol_keys_innodb : Modified in 10.2.8 -gcol.gcol_keys_myisam : Include file modified in 10.2.8 gcol.gcol_rollback : Modified in 10.2.9 gcol.gcol_update : Modified in 10.2.9 -gcol.innodb_virtual_basic : Modified in 10.2.8 -gcol.innodb_virtual_debug_purge : MDEV-13568 - Wrong result; modified in 10.2.8 -gcol.innodb_virtual_purge : Modified in 10.2.8 +gcol.innodb_virtual_debug_purge : MDEV-13568 - Wrong result #---------------------------------------------------------------- innodb.101_compatibility : MDEV-13891 - Wrong result innodb.alter_crash : Added in 10.2.9 innodb.alter_rename_existing : Added in 10.2.9 +innodb.alter_table : Modified in 10.2.10 innodb.create-index-debug : Added in 10.2.9 innodb.deadlock_detect : MDEV-13262 - Wrong error code -innodb.defrag_mdl-9155 : MDEV-11336 - Timeout -innodb.foreign_key : Modified in 10.2.8 +innodb.defrag_mdl-9155 : Re-enabled in 10.2.10 +innodb_defragment_fill_factor : Re-enabled in 10.2.10 +innodb.doublewrite : MDEV-14205 - Crash +innodb.group_commit_crash : MDEV-14191 - InnoDB registration failed innodb.group_commit_crash_no_optimize_thread : MDEV-13830 - Assertion failure -innodb.index_merge_threshold : Modified in 10.2.8 innodb.index_tree_operation : Added in 10.2.9 -innodb.innodb-32k : Opt file modified in 10.2.8 -innodb.innodb-32k-crash : Opt file modified in 10.2.8 -innodb.innodb-64k : Modified in 10.2.8 -innodb.innodb-64k-crash : Opt file modified in 10.2.8 +innodb.innodb-16k : Modified in 10.2.10 +innodb.innodb-32k : Modified in 10.2.10 +innodb.innodb-64k : MDEV-14132 - Crash; modified in 10.2.10 +innodb.innodb-64k-crash : MDEV-14132 - Crash innodb.innodb_bug14147491 : MDEV-11808 - Index is corrupt -innodb.innodb-alter : Added in 10.2.9 +innodb.innodb_bug34300 : MDEV-14132 - Crash +innodb.innodb-alter : Modified in 10.2.10 innodb.innodb-alter-autoinc : Added in 10.2.9 -innodb.innodb_defragment : MDEV-11336 - Mismatch -innodb.innodb_defragment_fill_factor : Modified in 10.2.8 -innodb.innodb_defragment_small : MDEV-11336 - Mismatch -innodb.innodb_defrag_binlog : MDEV-11336 - Mismatch -innodb.innodb_defrag_concurrent : MDEV-11336 - Assertion failure, mismatch -innodb.innodb_defrag_stats : MDEV-11336 - Mismatch +innodb.innodb-alter-table : Modified in 10.2.10 +innodb.innodb_defrag_binlog : Re-enabled in 10.2.10 +innodb.innodb_defrag_concurrent : Re-enabled in 10.2.10 +innodb.innodb_defrag_stats : Re-enabled in 10.2.10 +innodb.innodb_defrag_stats_many_tables : MDEV-14198 - Table is full; re-enabled in 10.2.10 +innodb.innodb_defragment : Re-enabled in 10.2.10 +innodb.innodb_defragment_fill_factor : Re-enabled in 10.2.10 +innodb.innodb_defragment_small : Re-enabled in 10.2.10 innodb.innodb-enlarge-blob : Modified in 10.2.9 -innodb.innodb-get-fk : MDEV-13276 - Server crash +innodb.innodb-get-fk : MDEV-13276 - Server crash; modified in 10.2.10 innodb.innodb-index : Modified in 10.2.9 innodb.innodb-index-debug : Added in 10.2.9 innodb.innodb-index-online : Added in 10.2.9 @@ -256,58 +220,99 @@ innodb.innodb-index-online-delete : Added in 10.2.9 innodb.innodb-index-online-fk : Added in 10.2.9 innodb.innodb-index-online-purge : Added in 10.2.9 innodb.innodb_information_schema : MDEV-8851 - Wrong result -innodb.innodb_max_recordsize_32k : Added in 10.2.8 -innodb.innodb_max_recordsize_64k : Added in 10.2.8 +innodb.innodb-online-alter-gis : Modified in 10.2.10 innodb.innodb-page_compression_default : MDEV-13644 - Assertion failure innodb.innodb-table-online : MDEV-13894 - Wrong result; modified in 10.2.9 +innodb.innodb-truncate : Modified in 10.2.10 innodb.innodb_stats_persistent_debug : Added in 10.2.9 innodb.innodb_sys_semaphore_waits : MDEV-10331 - Semaphore wait -innodb.innodb-wl5522-debug : Modified in 10.2.9 -innodb.innodb-wl5980-alter : Added in 10.2.9 -innodb.innodb_zip_innochecksum : Added in 10.2.8 -innodb.innodb_zip_innochecksum2 : Added in 10.2.8 -innodb.innodb_zip_innochecksum3 : Added in 10.2.8 +innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno; modified in 10.2.9 +innodb.innodb-wl5980-alter : Modified in 10.2.10 innodb.log_corruption : MDEV-13251 - Wrong result -innodb.log_data_file_size : Modified in 10.2.9 -innodb.purge_thread_shutdown : MDEV-13792 - Wrong result; added in 10.2.8 -innodb.read_only_recovery : MDEV-13886 - Server crash, modified in 10.2.8 -innodb.rename_table : Added in 10.2.8 +innodb.log_data_file_size : MDEV-14204 - Server failed to start; modified in 10.2.9 +innodb.log_file_name : MDEV-14193 - Exception +innodb.log_file_size : Modified in 10.2.10 +innodb.purge_thread_shutdown : MDEV-13792 - Wrong result +innodb.read_only_recovery : MDEV-13886 - Server crash +innodb.table_definition_cache_debug : MDEV-14206 - Extra warning; added in 10.2.10 innodb.table_flags : MDEV-13572 - Wrong result; modified in 10.2.9 innodb.temporary_table : MDEV-13265 - Wrong result -innodb.truncate_debug : MDEV-13256 - Timeout +innodb.truncate_debug : Modified in 10.2.10 +innodb.undo_log : Added in 10.2.10 +innodb-wl5980-alter : Re-enabled in 10.2.10 innodb.xa_recovery : Modified in 10.2.9 +innodb_fts.concurrent_insert : Added in 10.2.10 +innodb_fts.fulltext : Modified in 10.2.10 innodb_fts.fulltext_misc : MDEV-12636 - Valgrind innodb_fts.innodb_fts_plugin : MDEV-13888 - Errors in server log innodb_fts.innodb_fts_stopword_charset : MDEV-13259 - Table crashed +innodb_fts.sync : Added in 10.2.10 +innodb_fts.sync_block : Added in 10.2.10 +innodb_fts.truncate : Added in 10.2.10 -innodb_gis.1 : Modified in 10.2.8 -innodb_gis.alter_spatial_index : Modified in 10.2.9 -innodb_gis.gis : Modified in 10.2.8 +innodb_gis.alter_spatial_index : Modified in 10.2.10 +innodb_gis.bug16236208 : Added in 10.2.10 +innodb_gis.bug16266012 : Added in 10.2.10 +innodb_gis.bug17057168 : Added in 10.2.10 +innodb_gis.geometry : Added in 10.2.10 +innodb_gis.gis_split_inf : Added in 10.2.10 +innodb_gis.gis_split_nan : Added in 10.2.10 +innodb_gis.kill_server : Added in 10.2.10 +innodb_gis.multi_pk : Added in 10.2.10 +innodb_gis.point_basic : Added in 10.2.10 +innodb_gis.point_big : Added in 10.2.10 +innodb_gis.repeatable_spatial : Added in 10.2.10 +innodb_gis.rollback : Added in 10.2.10 +innodb_gis.row_format : Added in 10.2.10 +innodb_gis.rtree_compress : MDEV-14207 - Missing include; added in 10.2.10 +innodb_gis.rtree_compress2 : MDEV-14207 - Missing include; added in 10.2.10 +innodb_gis.rtree_concurrent_srch : Added in 10.2.10 +innodb_gis.rtree_create_inplace : Added in 10.2.10 +innodb_gis.rtree_debug : MDEV-14209 - Huge error log; added in 10.2.10 +innodb_gis.rtree_drop_index : Added in 10.2.10 +innodb_gis.rtree_estimate : Added in 10.2.10 +innodb_gis.rtree_multi_pk : Added in 10.2.10 +innodb_gis.rtree_old : Added in 10.2.10 +innodb_gis.rtree_purge : MDEV-14207 - Missing include; added in 10.2.10 +innodb_gis.rtree_recovery : Added in 10.2.10 +innodb_gis.rtree_rollback1 : Added in 10.2.10 +innodb_gis.rtree_rollback2 : Added in 10.2.10 +innodb_gis.rtree_search : Added in 10.2.10 +innodb_gis.rtree_split : MDEV-14208 - Too many arguments; MDEV-14209 - Huge error log; added in 10.2.10 +innodb_gis.rtree_undo : Added in 10.2.10 +innodb_gis.types : Added in 10.2.10 +innodb_gis.update_root : Added in 10.2.10 +innodb_zip.16k : Modified in 10.2.10 +innodb_zip.4k : Modified in 10.2.10 +innodb_zip.8k : Modified in 10.2.10 innodb_zip.create_options : Modified in 10.2.9 -innodb_zip.innochecksum_3 : MDEV-13279 - Extra warnings; modified in 10.2.8 +innodb_zip.innochecksum_3 : MDEV-13279 - Extra warnings +innodb_zip.index_large_prefix_4k : Modified in 10.2.10 +innodb_zip.index_large_prefix_8k : Modified in 10.2.10 innodb_zip.wl6501_1 : MDEV-10891 - Can't create UNIX socket innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2; modified in 10.2.9 -innodb_zip.wl6501_scale_1 : MDEV-13254 - Timeout +innodb_zip.wl6501_scale_1 : MDEV-13254 - Timeout, MDEV-14104 - Error 192 #---------------------------------------------------------------- maria.insert_select : MDEV-12757 - Timeout -maria.maria : Modified in 10.2.9 +maria.maria : Modified in 10.2.10 #---------------------------------------------------------------- mariabackup.apply-log-only : Added in 10.2.9 mariabackup.apply-log-only-incr : Added in 10.2.9 mariabackup.auth_plugin_win : Added in 10.2.9 +mariabackup.compress_qpress : Added in 10.2.10 mariabackup.full_backup : MDEV-13889 - Timeout -mariabackup.huge_lsn : Added in 10.2.8 -mariabackup.incremental_backup : Modified in 10.2.8 +mariabackup.incremental_backup : MDEV-14192 - Assertion failure +mariabackup.incremental_encrypted : MDEV-14188 - Wrong result mariabackup.lock_ddl_per_table : Added in 10.2.9 mariabackup.partial : Modified in 10.2.9 mariabackup.xb_aws_key_management : Modified in 10.2.9 -mariabackup.xb_compressed_encrypted : MDEV-13890 - Assertion failure +mariabackup.xb_file_key_management : Modified in 10.2.10 mariabackup.xb_page_compress : Modified in 10.2.9 #---------------------------------------------------------------- @@ -316,12 +321,14 @@ mroonga/storage.index_multiple_column_unique_datetime_index_read : MDEV-8643 - V #---------------------------------------------------------------- -multi_source.info_logs : MDEV-12629 - Valgrind +multi_source.gtid : MDEV-14202 - Crash +multi_source.info_logs : MDEV-12629 - Valgrind, MDEV-10042 - wrong result multi_source.reset_slave : MDEV-10690 - Wrong result multi_source.simple : MDEV-4633 - Wrong result #---------------------------------------------------------------- +parts.partition_alter_maria : Added in 10.2.10 parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket parts.partition_exch_myisam_innodb : Modified in 10.2.9 parts.partition_exch_qa_10 : Include files modified in 10.2.9 @@ -341,11 +348,11 @@ percona.* : MDEV-10997 - Not maintained perfschema.bad_option_1 : MDEV-13892 - Timeout perfschema.bad_option_3 : MDEV-12728 - Timeout on Power +perfschema.bad_option_5 : MDEV-14197 - Timeout perfschema.hostcache_ipv4_addrinfo_again_allow : MDEV-12759 - Crash perfschema.hostcache_ipv6_addrinfo_again_allow : MDEV-12752 - Crash perfschema.hostcache_ipv6_addrinfo_bad_allow : MDEV-13260 - Crash perfschema.hostcache_ipv6_ssl : MDEV-10696 - Crash -perfschema.privilege_table_io : Modified in 10.2.8 perfschema.setup_actors : MDEV-10679 - Crash perfschema.stage_mdl_procedure : MDEV-11545 - Missing row @@ -363,24 +370,30 @@ rocksdb.* : MyRocks is alpha-quality and tests are uns #---------------------------------------------------------------- +roles.definer : Modified in 10.2.10 + +#---------------------------------------------------------------- + rpl.rpl_binlog_errors : MDEV-12742 - Crash rpl.rpl_binlog_index : MDEV-9501 - Failed registering on master rpl.rpl_domain_id_filter_io_crash : MDEV-12729 - Timeout in include file, MDEV-13677 - Server crash rpl.rpl_domain_id_filter_restart : MDEV-10684 - Wrong result +rpl.rpl_extra_col_master_myisam : MDEV-14203 - Extra warning rpl.rpl_gtid_crash : MDEV-9501 - Failed registering on master, MDEV-13643 - Lost connection rpl.rpl_gtid_errorhandling : MDEV-13261 - Crash; modified in 10.2.9 -rpl.rpl_gtid_stop_start : MDEV-11621 - Table marked as crashed, MDEV-12731 - Valgrind +rpl.rpl_gtid_stop_start : MDEV-11621 - Table marked as crashed rpl.rpl_mariadb_slave_capability : MDEV-11018 - Extra lines in binlog rpl.rpl_parallel : MDEV-12730 - Assertion failure rpl.rpl_parallel_mdev6589 : MDEV-12979 - Assertion failure rpl.rpl_parallel_optimistic_nobinlog : MDEV-12746 - Timeouts, mismatch rpl.rpl_parallel_retry : MDEV-11119 - Crash +rpl.rpl_parallel_temptable : MDEV-10356 - Crash rpl.rpl_temporal_mysql56_to_mariadb53 : MDEV-9501 - Failed registering on master -rpl.rpl_reset_slave_fail : Added in 10.2.8 -rpl.rpl_semi_sync_uninstall_plugin : MDEV-10892 - Assertion failure rpl.rpl_set_statement_default_master : MDEV-13258 - Extra warning +rpl.rpl_show_slave_hosts : MDEV-10681 - Crash rpl.rpl_skip_replication : MDEV-13258 - Extra warning rpl.rpl_slave_grp_exec : MDEV-10514 - Deadlock +rpl.rpl_slave_load_tmpdir_not_exist : MDEV-14203 - Extra warning rpl.rpl_slow_query_log : MDEV-13250 - Test abort rpl.rpl_sp_effects : MDEV-13249 - Crash rpl.rpl_sp_variables : Added in 10.2.9 @@ -397,6 +410,7 @@ rpl/extra/rpl_tests.* : MDEV-10994 - Not maintained spider.basic_sql : MDEV-11186 - Internal check fails spider/bg.direct_aggregate : MDEV-7098 - Packets out of order +spider/bg.ha_part : MDEV-7914 - Crash spider/bg.spider3_fixes : MDEV-12639 - Syntax error spider/handler.* : MDEV-10990 - Not maintained @@ -412,8 +426,12 @@ storage_engine.* : Not always timely maintained #---------------------------------------------------------------- -sys_vars.back_log_basic : Modified in 10.2.8 -sys_vars.rpl_init_slave_func : MDEV-10149 - Test assertion +sys_vars.explicit_defaults_for_timestamp_on : Include file modified in 10.2.10 +sys_vars.explicit_defaults_for_timestamp_off : Include file modified in 10.2.10 +sys_vars.host_cache_size_auto : Modified in 10.2.10 +sys_vars.innodb_buffer_pool_load_now_basic : MDEV-14196 - Timeout +sys_vars.log_slow_admin_statements_func : MDEV-14132 - Crash +sys_vars.rpl_init_slave_func : MDEV-10149 - Test assertion #---------------------------------------------------------------- @@ -423,52 +441,17 @@ tokudb.change_column_char : MDEV-12822 - Lost connection tokudb.dir_per_db : MDEV-11537 - Wrong result; modified in 10.2.9 tokudb.hotindex-insert-bigchar : MDEV-12640 - Crash tokudb.hotindex-update-1 : MDEV-12640 - Crash -tokudb.kill_query_blocked_in_lt : Added in 10.2.8 -tokudb.locks-select-update-3 : Modified in 10.2.8 tokudb.rows-32m-rand-insert : MDEV-12640 - Crash tokudb.rows-32m-seq-insert : MDEV-12640 - Crash -tokudb_mariadb.mdev12972 : Modified in 10.2.8 tokudb_mariadb.mdev6657 : MDEV-12737 - Mismatch or valgrind tokudb_backup.* : MDEV-11001 - Missing include file tokudb_sys_vars.* : MDEV-11001 - Missing include file tokudb_rpl.* : MDEV-11001 - Missing include file -tokudb_backup.rpl_safe_slave : Include file modified in 10.2.8 - tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection -rpl-tokudb.rpl_not_null_tokudb : Modified in 10.2.8 -rpl-tokudb.rpl_parallel_tokudb_delete_pk : Opt file modified in 10.2.8 -rpl-tokudb.rpl_parallel_tokudb_update_pk_uc0_lookup0 : Modified in 10.2.8 -rpl-tokudb.rpl_parallel_tokudb_write_pk : Modified in 10.2.8 -rpl-tokudb.rpl_rfr_disable_on_expl_pk_absence : Added in 10.2.8 -rpl-tokudb.rpl_row_basic_3tokudb : Modified in 10.2.8 -rpl-tokudb.rpl_tokudb_commit_after_flush : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_insert_id : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_insert_id_pk : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_multi_update : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_multi_update2 : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_multi_update3 : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_rfr_partition_table : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_crash_safe : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_blobs : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_eng_full : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_eng_min : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_eng_noblob : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_idx_full : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_idx_min : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_img_idx_noblob : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_log : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_lower_case_table_names : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_sp003 : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_sp006 : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_row_trig004 : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_stm_log : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_stm_mixed_crash_safe : Added in 10.2.8 -rpl-tokudb.rpl_tokudb_stm_mixed_lower_case_table_names : Added in 10.2.8 - #---------------------------------------------------------------- unit.conc_ps_bugs : MDEV-13252 - not ok 44 test_bug4236 @@ -477,13 +460,14 @@ unit.conc_ps_bugs : MDEV-13252 - not ok 44 test_bug4236 vcol.innodb_virtual_fk : Added in 10.2.9 vcol.update : Modified in 10.2.9 +vcol.vcol_misc : Modified in 10.2.10 vcol.vcol_supported_sql_funcs : Include file modified in 10.2.9 #---------------------------------------------------------------- wsrep.binlog_format : MDEV-11532 - Could not execute check-testcase wsrep.foreign_key : Re-enabled in 10.2.9 -wsrep.mdev_6832 : Option file changed in 10.2.9 +wsrep.mdev_6832 : MDEV-14195 - Check testcase failed; option file changed in 10.2.9 wsrep.mdev_7798 : Option file changed in 10.2.9 wsrep.pool_of_threads : MDEV-12234 - GLIBCXX_3.4.20 not found From 58e0dcb93dc2b2bf49f76c754bd216dbdf875a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 30 Oct 2017 10:06:47 +0200 Subject: [PATCH 128/128] Add a missing space to an error message --- storage/innobase/os/os0file.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index 44b78dabf87..cc687816ae8 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -5365,8 +5365,9 @@ fallback: if (is_sparse) { bool success = !ftruncate(file, size); if (!success) { - ib::error() << "ftruncate of file " << name << - " to " << size << " bytes failed with error " << errno; + ib::error() << "ftruncate of file " << name << " to " + << size << " bytes failed with error " + << errno; } return(success); } @@ -5382,9 +5383,9 @@ fallback: && srv_shutdown_state == SRV_SHUTDOWN_NONE); if (err) { - ib::error() << - "preallocating " << size << " bytes for" << - "file " << name << " failed with error " << err; + ib::error() << "preallocating " + << size << " bytes for file " << name + << " failed with error " << err; } errno = err; return(!err);